packages feed

bullet 0.2.2 → 0.2.3

raw patch · 283 files changed

+101759/−74244 lines, 283 files

Files

Physics/Bullet/Raw.chs view
@@ -28,156 +28,156 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_draw3dText as btGLDebugDrawer_draw3dText    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ location+, withVec3* `Vec3'  peekVec3* -- ^ location ,  `String'  -- ^ textString- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#29>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_draw3dText as btGLDebugDrawer_draw3dText'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ location+, allocaVec3-  `Vec3'  peekVec3* -- ^ location ,  `String'  -- ^ textString- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#23>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawTriangle as btGLDebugDrawer_drawTriangle    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ a-, withVector3* `Vector3'  peekVector3* -- ^ b-, withVector3* `Vector3'  peekVector3* -- ^ c-, withVector3* `Vector3'  peekVector3* -- ^ color+, withVec3* `Vec3'  peekVec3* -- ^ a+, withVec3* `Vec3'  peekVec3* -- ^ b+, withVec3* `Vec3'  peekVec3* -- ^ c+, withVec3* `Vec3'  peekVec3* -- ^ color ,  `Float'  -- ^ alpha- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#23>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawTriangle as btGLDebugDrawer_drawTriangle'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ a-, allocaVector3-  `Vector3'  peekVector3* -- ^ b-, allocaVector3-  `Vector3'  peekVector3* -- ^ c-, allocaVector3-  `Vector3'  peekVector3* -- ^ color+, allocaVec3-  `Vec3'  peekVec3* -- ^ a+, allocaVec3-  `Vec3'  peekVec3* -- ^ b+, allocaVec3-  `Vec3'  peekVec3* -- ^ c+, allocaVec3-  `Vec3'  peekVec3* -- ^ color ,  `Float'  -- ^ alpha- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#21>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawBox as btGLDebugDrawer_drawBox    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ boxMin-, withVector3* `Vector3'  peekVector3* -- ^ boxMax-, withVector3* `Vector3'  peekVector3* -- ^ color+, withVec3* `Vec3'  peekVec3* -- ^ boxMin+, withVec3* `Vec3'  peekVec3* -- ^ boxMax+, withVec3* `Vec3'  peekVec3* -- ^ color ,  `Float'  -- ^ alpha- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#21>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawBox as btGLDebugDrawer_drawBox'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ boxMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ boxMax-, allocaVector3-  `Vector3'  peekVector3* -- ^ color+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxMax+, allocaVec3-  `Vec3'  peekVec3* -- ^ color ,  `Float'  -- ^ alpha- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#25>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawContactPoint as btGLDebugDrawer_drawContactPoint    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ PointOnB-, withVector3* `Vector3'  peekVector3* -- ^ normalOnB+, withVec3* `Vec3'  peekVec3* -- ^ PointOnB+, withVec3* `Vec3'  peekVec3* -- ^ normalOnB ,  `Float'  -- ^ distance ,  `Int'  -- ^ lifeTime-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#25>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawContactPoint as btGLDebugDrawer_drawContactPoint'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ PointOnB-, allocaVector3-  `Vector3'  peekVector3* -- ^ normalOnB+, allocaVec3-  `Vec3'  peekVec3* -- ^ PointOnB+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalOnB ,  `Float'  -- ^ distance ,  `Int'  -- ^ lifeTime-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#16>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine0 as btGLDebugDrawer_drawLine    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ fromColor-, withVector3* `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ fromColor+, withVec3* `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#16>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine0 as btGLDebugDrawer_drawLine'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ fromColor-, allocaVector3-  `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ fromColor+, allocaVec3-  `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#16>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine0 as btGLDebugDrawer_drawLine0    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ fromColor-, withVector3* `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ fromColor+, withVec3* `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#16>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine0 as btGLDebugDrawer_drawLine0'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ fromColor-, allocaVector3-  `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ fromColor+, allocaVec3-  `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#18>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine1 as btGLDebugDrawer_drawLine1    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#18>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawLine1 as btGLDebugDrawer_drawLine1'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#27>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_reportErrorWarning as btGLDebugDrawer_reportErrorWarning    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^  ,  `String'  -- ^ warningString- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#33>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_getDebugMode as btGLDebugDrawer_getDebugMode    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#31>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_setDebugMode as btGLDebugDrawer_setDebugMode    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ debugMode- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#20>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawSphere as btGLDebugDrawer_drawSphere    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p+, withVec3* `Vec3'  peekVec3* -- ^ p ,  `Float'  -- ^ radius-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.h?r=2223#20>      <http://code.google.com/p/bullet/source/browse/trunk/src/GLDebugDrawer.cpp?r=2223> -} {#fun btGLDebugDrawer_drawSphere as btGLDebugDrawer_drawSphere'    `( BtGLDebugDrawerClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p+, allocaVec3-  `Vec3'  peekVec3* -- ^ p ,  `Float'  -- ^ radius-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}
Physics/Bullet/Raw/BulletCollision/BroadphaseCollision.chs view
@@ -21,2448 +21,4407 @@ -} {#fun btDbvt_IClone_CloneLeaf as btDbvt_IClone_CloneLeaf    `( BtDbvt_ICloneClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ arg0- } ->  `()'  #}--- * ICollide-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#224>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_new as btDbvt_ICollide    {  } -> `BtDbvt_ICollide' mkBtDbvt_ICollide* #}-{#fun btDbvt_ICollide_free    `( BtDbvt_ICollideClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_Process0 as btDbvt_ICollide_Process    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_Process0 as btDbvt_ICollide_Process0    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#227>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_Process1 as btDbvt_ICollide_Process1    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#228>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_Process2 as btDbvt_ICollide_Process2    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ n-,  `Float'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_AllLeaves as btDbvt_ICollide_AllLeaves    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#229>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_ICollide_Descent as btDbvt_ICollide_Descent    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `Bool'  #}--- * IWriter-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_IWriter_WriteLeaf as btDbvt_IWriter_WriteLeaf    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-,  `Int'  -- ^ index-,  `Int'  -- ^ parent- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_IWriter_WriteNode as btDbvt_IWriter_WriteNode    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-,  `Int'  -- ^ index-,  `Int'  -- ^ parent-,  `Int'  -- ^ child0-,  `Int'  -- ^ child1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#236>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_IWriter_Prepare as btDbvt_IWriter_Prepare    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ root-,  `Int'  -- ^ numnodes- } ->  `()'  #}--- * bt32BitAxisSweep3-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#1046>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>--}-{#fun bt32BitAxisSweep3_new as bt32BitAxisSweep3    `( BtOverlappingPairCacheClass p3 )' =>     {  withVector3* `Vector3' , withVector3* `Vector3' ,  `Word32' , withBt* `p3' ,  `Bool'  } -> `Bt32BitAxisSweep3' mkBt32BitAxisSweep3* #}-{#fun bt32BitAxisSweep3_free    `( Bt32BitAxisSweep3Class bc )' =>     { withBt* `bc'  } -> `()' #}--- * btAxisSweep3-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#1035>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>--}-{#fun btAxisSweep3_new as btAxisSweep3    `( BtOverlappingPairCacheClass p3 )' =>     {  withVector3* `Vector3' , withVector3* `Vector3' ,  `Int' , withBt* `p3' ,  `Bool'  } -> `BtAxisSweep3' mkBtAxisSweep3* #}-{#fun btAxisSweep3_free    `( BtAxisSweep3Class bc )' =>     { withBt* `bc'  } -> `()' #}--- * btBroadphaseAabbCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseAabbCallback_process as btBroadphaseAabbCallback_process    `( BtBroadphaseAabbCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy- } ->  `Bool'  #}--- * btBroadphaseInterface-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_rayTest as btBroadphaseInterface_rayTest    `( BtBroadphaseInterfaceClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_rayTest as btBroadphaseInterface_rayTest'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_setAabb as btBroadphaseInterface_setAabb    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_setAabb as btBroadphaseInterface_setAabb'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getBroadphaseAabb as btBroadphaseInterface_getBroadphaseAabb    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getBroadphaseAabb as btBroadphaseInterface_getBroadphaseAabb'    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_resetPool as btBroadphaseInterface_resetPool    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_calculateOverlappingPairs as btBroadphaseInterface_calculateOverlappingPairs    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_printStats as btBroadphaseInterface_printStats    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getAabb as btBroadphaseInterface_getAabb    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getAabb as btBroadphaseInterface_getAabb'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_aabbTest as btBroadphaseInterface_aabbTest    `( BtBroadphaseInterfaceClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_aabbTest as btBroadphaseInterface_aabbTest'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getOverlappingPairCache0 as btBroadphaseInterface_getOverlappingPairCache    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getOverlappingPairCache0 as btBroadphaseInterface_getOverlappingPairCache0    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#69>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_getOverlappingPairCache1 as btBroadphaseInterface_getOverlappingPairCache1    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseInterface_destroyProxy as btBroadphaseInterface_destroyProxy    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}--- * btBroadphasePair-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#188>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePair_new0 as btBroadphasePair0    {  } -> `BtBroadphasePair' mkBtBroadphasePair* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePair_new1 as btBroadphasePair1    `( BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtBroadphasePair' mkBtBroadphasePair* #}-{#fun btBroadphasePair_free    `( BtBroadphasePairClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePair_m_pProxy0_set    `( BtBroadphasePairClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#227>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePair_m_pProxy1_set    `( BtBroadphasePairClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#229>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePair_m_algorithm_set    `( BtBroadphasePairClass bc , BtCollisionAlgorithmClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btBroadphasePairSortPredicate-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#246>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphasePairSortPredicate_new as btBroadphasePairSortPredicate    {  } -> `BtBroadphasePairSortPredicate' mkBtBroadphasePairSortPredicate* #}-{#fun btBroadphasePairSortPredicate_free    `( BtBroadphasePairSortPredicateClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btBroadphaseProxy-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_new0 as btBroadphaseProxy0    {  } -> `BtBroadphaseProxy' mkBtBroadphaseProxy* #}-{#fun btBroadphaseProxy_free    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isConvex as btBroadphaseProxy_isConvex    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isInfinite as btBroadphaseProxy_isInfinite    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_getUid as btBroadphaseProxy_getUid    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isConcave as btBroadphaseProxy_isConcave    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isNonMoving as btBroadphaseProxy_isNonMoving    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#154>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isCompound as btBroadphaseProxy_isCompound    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isPolyhedral as btBroadphaseProxy_isPolyhedral    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isConvex2d as btBroadphaseProxy_isConvex2d    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_isSoftBody as btBroadphaseProxy_isSoftBody    `( )' =>     {   `Int'  -- ^ proxyType- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_aabbMax_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_aabbMax_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_aabbMin_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_aabbMin_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_collisionFilterGroup_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_collisionFilterGroup_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_collisionFilterMask_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_collisionFilterMask_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_uniqueId_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>--}-{#fun btBroadphaseProxy_m_uniqueId_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btBroadphaseRayCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseRayCallback_m_lambda_max_set    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseRayCallback_m_lambda_max_get    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseRayCallback_m_rayDirectionInverse_set    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>--}-{#fun btBroadphaseRayCallback_m_rayDirectionInverse_get    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * btBvhSubtreeInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_new as btBvhSubtreeInfo    {  } -> `BtBvhSubtreeInfo' mkBtBvhSubtreeInfo* #}-{#fun btBvhSubtreeInfo_free    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_setAabbFromQuantizeNode as btBvhSubtreeInfo_setAabbFromQuantizeNode    `( BtBvhSubtreeInfoClass bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ quantizedNode- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_m_rootNodeIndex_set    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_m_rootNodeIndex_get    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_m_subtreeSize_set    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfo_m_subtreeSize_get    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btBvhSubtreeInfoData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#502>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfoData_new as btBvhSubtreeInfoData    {  } -> `BtBvhSubtreeInfoData' mkBtBvhSubtreeInfoData* #}-{#fun btBvhSubtreeInfoData_free    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#503>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfoData_m_rootNodeIndex_set    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#503>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfoData_m_rootNodeIndex_get    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfoData_m_subtreeSize_set    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btBvhSubtreeInfoData_m_subtreeSize_get    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btCollisionAlgorithm-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithm_calculateTimeOfImpact as btCollisionAlgorithm_calculateTimeOfImpact    `( BtCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#72>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithm_processCollision as btCollisionAlgorithm_processCollision    `( BtCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `()'  #}--- * btCollisionAlgorithmConstructionInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#33>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithmConstructionInfo_new0 as btCollisionAlgorithmConstructionInfo0    {  } -> `BtCollisionAlgorithmConstructionInfo' mkBtCollisionAlgorithmConstructionInfo* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithmConstructionInfo_new1 as btCollisionAlgorithmConstructionInfo1    `( BtDispatcherClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtCollisionAlgorithmConstructionInfo' mkBtCollisionAlgorithmConstructionInfo* #}-{#fun btCollisionAlgorithmConstructionInfo_free    `( BtCollisionAlgorithmConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithmConstructionInfo_m_dispatcher1_set    `( BtCollisionAlgorithmConstructionInfoClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>--}-{#fun btCollisionAlgorithmConstructionInfo_m_manifold_set    `( BtCollisionAlgorithmConstructionInfoClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btDbvt-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#265>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_new as btDbvt    {  } -> `BtDbvt' mkBtDbvt* #}-{#fun btDbvt_free    `( BtDbvtClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#694>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_enumLeaves as btDbvt_enumLeaves    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root-, withBt* `p1'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#271>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_optimizeIncremental as btDbvt_optimizeIncremental    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ passes- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#996>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_rayTest as btDbvt_rayTest    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p3 )' =>     {  withBt* `p0'  -- ^ root-, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p3'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#996>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_rayTest as btDbvt_rayTest'    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p3 )' =>     {  withBt* `p0'  -- ^ root-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p3'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#270>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_optimizeTopDown as btDbvt_optimizeTopDown    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ bu_treshold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#680>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_enumNodes as btDbvt_enumNodes    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root-, withBt* `p1'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#279>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_write as btDbvt_write    `( BtDbvtClass bc , BtDbvt_IWriterClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ iwriter- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_empty as btDbvt_empty    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#910>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_collideTV as btDbvt_collideTV    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ root-, withBt* `p1'  -- ^ vol-, withBt* `p2'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#1216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_collideTU as btDbvt_collideTU    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root-, withBt* `p1'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#712>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_collideTT as btDbvt_collideTT    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ root0-, withBt* `p1'  -- ^ root1-, withBt* `p2'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#777>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_collideTTpersistentStack as btDbvt_collideTTpersistentStack    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ root0-, withBt* `p1'  -- ^ root1-, withBt* `p2'  -- ^ policy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_clone as btDbvt_clone    `( BtDbvtClass bc , BtDbvtClass p0 , BtDbvt_ICloneClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dest-, withBt* `p1'  -- ^ iclone- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#287>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_benchmark as btDbvt_benchmark    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#273>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update0 as btDbvt_update    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-,  `Int'  -- ^ lookahead- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#273>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update0 as btDbvt_update0    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-,  `Int'  -- ^ lookahead- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update1 as btDbvt_update1    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#275>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update2 as btDbvt_update2    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume-, withVector3* `Vector3'  peekVector3* -- ^ velocity-,  `Float'  -- ^ margin- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#275>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update2 as btDbvt_update2'    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume-, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity-,  `Float'  -- ^ margin- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update3 as btDbvt_update3    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume-, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update3 as btDbvt_update3'    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume-, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_update4 as btDbvt_update4    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf-, withBt* `p1'  -- ^ volume-,  `Float'  -- ^ margin- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_countLeaves as btDbvt_countLeaves    `(  BtDbvtNodeClass p0 )' =>     {  withBt* `p0'  -- ^ node- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#278>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_remove as btDbvt_remove    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#281>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_maxdepth as btDbvt_maxdepth    `(  BtDbvtNodeClass p0 )' =>     {  withBt* `p0'  -- ^ node- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#267>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_clear as btDbvt_clear    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#269>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_optimizeBottomUp as btDbvt_optimizeBottomUp    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_free_set    `( BtDbvtClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#257>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_leaves_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#257>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_leaves_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#256>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_lkhd_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#256>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_lkhd_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_opath_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_opath_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_m_root_set    `( BtDbvtClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btDbvtAabbMm-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_new as btDbvtAabbMm    {  } -> `BtDbvtAabbMm' mkBtDbvtAabbMm* #}-{#fun btDbvtAabbMm_free    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#446>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_SignedExpand as btDbvtAabbMm_SignedExpand    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ e- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#446>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_SignedExpand as btDbvtAabbMm_SignedExpand'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ e- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Extents as btDbvtAabbMm_Extents    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Center as btDbvtAabbMm_Center    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Lengths as btDbvtAabbMm_Lengths    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Maxs as btDbvtAabbMm_Maxs    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#493>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_ProjectMinimum as btDbvtAabbMm_ProjectMinimum    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v-,  `Word32'  -- ^ signs- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#493>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_ProjectMinimum as btDbvtAabbMm_ProjectMinimum'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v-,  `Word32'  -- ^ signs- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Classify as btDbvtAabbMm_Classify    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ n-,  `Float'  -- ^ o-,  `Int'  -- ^ s- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Classify as btDbvtAabbMm_Classify'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ n-,  `Float'  -- ^ o-,  `Int'  -- ^ s- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#454>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Contain as btDbvtAabbMm_Contain    `( BtDbvtAabbMmClass bc , BtDbvtAabbMmClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ a- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Mins as btDbvtAabbMm_Mins    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#440>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Expand as btDbvtAabbMm_Expand    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ e- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#440>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtAabbMm_Expand as btDbvtAabbMm_Expand'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ e- } ->  `()'  #}--- * btDbvtBroadphase-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_new as btDbvtBroadphase    `( BtOverlappingPairCacheClass p0 )' =>     {  withBt* `p0'  } -> `BtDbvtBroadphase' mkBtDbvtBroadphase* #}-{#fun btDbvtBroadphase_free    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_rayTest as btDbvtBroadphase_rayTest    `( BtDbvtBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_rayTest as btDbvtBroadphase_rayTest'    `( BtDbvtBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#124>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_performDeferredRemoval as btDbvtBroadphase_performDeferredRemoval    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_setAabb as btDbvtBroadphase_setAabb    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_setAabb as btDbvtBroadphase_setAabb'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getOverlappingPairCache0 as btDbvtBroadphase_getOverlappingPairCache    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getOverlappingPairCache0 as btDbvtBroadphase_getOverlappingPairCache0    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getOverlappingPairCache1 as btDbvtBroadphase_getOverlappingPairCache1    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_setVelocityPrediction as btDbvtBroadphase_setVelocityPrediction    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ prediction- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_benchmark as btDbvtBroadphase_benchmark    `(  BtBroadphaseInterfaceClass p0 )' =>     {  withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#103>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_collide as btDbvtBroadphase_collide    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_resetPool as btDbvtBroadphase_resetPool    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getVelocityPrediction as btDbvtBroadphase_getVelocityPrediction    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_calculateOverlappingPairs as btDbvtBroadphase_calculateOverlappingPairs    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_setAabbForceUpdate as btDbvtBroadphase_setAabbForceUpdate    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ absproxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ arg3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_setAabbForceUpdate as btDbvtBroadphase_setAabbForceUpdate'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ absproxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ arg3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#117>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getBroadphaseAabb as btDbvtBroadphase_getBroadphaseAabb    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#117>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getBroadphaseAabb as btDbvtBroadphase_getBroadphaseAabb'    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_printStats as btDbvtBroadphase_printStats    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getAabb as btDbvtBroadphase_getAabb    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_getAabb as btDbvtBroadphase_getAabb'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_aabbTest as btDbvtBroadphase_aabbTest    `( BtDbvtBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_aabbTest as btDbvtBroadphase_aabbTest'    `( BtDbvtBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_optimize as btDbvtBroadphase_optimize    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_destroyProxy as btDbvtBroadphase_destroyProxy    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_paircache_set    `( BtDbvtBroadphaseClass bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_prediction_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_prediction_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_stageCurrent_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_stageCurrent_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_fupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_fupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_dupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_dupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_cupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_cupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_newpairs_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_newpairs_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_fixedleft_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_fixedleft_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_call_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_call_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_done_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_done_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_ratio_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_updates_ratio_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_pid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_pid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_cid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_cid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#86>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_gid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#86>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_gid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_releasepaircache_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_releasepaircache_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_deferedcollide_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_deferedcollide_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_needcleanup_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtBroadphase_m_needcleanup_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * btDbvtNode-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#174>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtNode_new as btDbvtNode    {  } -> `BtDbvtNode' mkBtDbvtNode* #}-{#fun btDbvtNode_free    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtNode_isinternal as btDbvtNode_isinternal    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#177>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtNode_isleaf as btDbvtNode_isleaf    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvtNode_parent_set    `( BtDbvtNodeClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btDbvtProxy-{#fun btDbvtProxy_free    `( BtDbvtProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtProxy_leaf_set    `( BtDbvtProxyClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtProxy_stage_set    `( BtDbvtProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>--}-{#fun btDbvtProxy_stage_get    `( BtDbvtProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btDispatcher-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_releaseManifold as btDispatcher_releaseManifold    `( BtDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ manifold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#93>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_getNumManifolds as btDispatcher_getNumManifolds    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_clearManifold as btDispatcher_clearManifold    `( BtDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ manifold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_findAlgorithm as btDispatcher_findAlgorithm    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtPersistentManifoldClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ sharedManifold- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_needsResponse as btDispatcher_needsResponse    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#91>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_dispatchAllCollisionPairs as btDispatcher_dispatchAllCollisionPairs    `( BtDispatcherClass bc , BtOverlappingPairCacheClass p0 , BtDispatcherInfoClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pairCache-, withBt* `p1'  -- ^ dispatchInfo-, withBt* `p2'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_needsCollision as btDispatcher_needsCollision    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#95>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcher_getManifoldByIndexInternal as btDispatcher_getManifoldByIndexInternal    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}--- * btDispatcherInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_new as btDispatcherInfo    {  } -> `BtDispatcherInfo' mkBtDispatcherInfo* #}-{#fun btDispatcherInfo_free    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#64>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_allowedCcdPenetration_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#64>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_allowedCcdPenetration_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_convexConservativeDistanceThreshold_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_convexConservativeDistanceThreshold_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#60>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_debugDraw_set    `( BtDispatcherInfoClass bc , BtIDebugDrawClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_dispatchFunc_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_dispatchFunc_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_enableSPU_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_enableSPU_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_enableSatConvex_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_enableSatConvex_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_stackAllocator_set    `( BtDispatcherInfoClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_stepCount_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_stepCount_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_timeOfImpact_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_timeOfImpact_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_timeStep_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_timeStep_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useContinuous_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useContinuous_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useConvexConservativeDistanceUtil_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useConvexConservativeDistanceUtil_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useEpa_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>--}-{#fun btDispatcherInfo_m_useEpa_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * btHashedOverlappingPairCache-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_new as btHashedOverlappingPairCache    {  } -> `BtHashedOverlappingPairCache' mkBtHashedOverlappingPairCache* #}-{#fun btHashedOverlappingPairCache_free    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_getOverlapFilterCallback as btHashedOverlappingPairCache_getOverlapFilterCallback    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlapFilterCallback' mkBtOverlapFilterCallback*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_addOverlappingPair as btHashedOverlappingPairCache_addOverlappingPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy as btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_needsBroadphaseCollision as btHashedOverlappingPairCache_needsBroadphaseCollision    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#163>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_findPair as btHashedOverlappingPairCache_findPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_cleanProxyFromPairs as btHashedOverlappingPairCache_cleanProxyFromPairs    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_cleanOverlappingPair as btHashedOverlappingPairCache_cleanOverlappingPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pair-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_getNumOverlappingPairs as btHashedOverlappingPairCache_getNumOverlappingPairs    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#165>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_GetCount as btHashedOverlappingPairCache_GetCount    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_processAllOverlappingPairs as btHashedOverlappingPairCache_processAllOverlappingPairs    `( BtHashedOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr0 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr0 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr1 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#173>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btHashedOverlappingPairCache_setOverlapFilterCallback as btHashedOverlappingPairCache_setOverlapFilterCallback    `( BtHashedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback- } ->  `()'  #}--- * btMultiSapBroadphase-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_addToChildBroadphase as btMultiSapBroadphase_addToChildBroadphase    `( BtMultiSapBroadphaseClass bc , BtMultiSapBroadphase_btMultiSapProxyClass p0 , BtBroadphaseProxyClass p1 , BtBroadphaseInterfaceClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ parentMultiSapProxy-, withBt* `p1'  -- ^ childProxy-, withBt* `p2'  -- ^ childBroadphase- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_rayTest as btMultiSapBroadphase_rayTest    `( BtMultiSapBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_rayTest as btMultiSapBroadphase_rayTest'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_setAabb as btMultiSapBroadphase_setAabb    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_setAabb as btMultiSapBroadphase_setAabb'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getOverlappingPairCache0 as btMultiSapBroadphase_getOverlappingPairCache    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getOverlappingPairCache0 as btMultiSapBroadphase_getOverlappingPairCache0    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getOverlappingPairCache1 as btMultiSapBroadphase_getOverlappingPairCache1    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_buildTree as btMultiSapBroadphase_buildTree    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMin-, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_buildTree as btMultiSapBroadphase_buildTree'    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_resetPool as btMultiSapBroadphase_resetPool    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_calculateOverlappingPairs as btMultiSapBroadphase_calculateOverlappingPairs    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_testAabbOverlap as btMultiSapBroadphase_testAabbOverlap    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getAabb as btMultiSapBroadphase_getAabb    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getAabb as btMultiSapBroadphase_getAabb'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_printStats as btMultiSapBroadphase_printStats    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getBroadphaseAabb as btMultiSapBroadphase_getBroadphaseAabb    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_getBroadphaseAabb as btMultiSapBroadphase_getBroadphaseAabb'    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_destroyProxy as btMultiSapBroadphase_destroyProxy    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}--- * btMultiSapProxy-{#fun btMultiSapBroadphase_btMultiSapProxy_free    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#69>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_shapeType_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#69>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>--}-{#fun btMultiSapBroadphase_btMultiSapProxy_m_shapeType_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btNodeOverlapCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#155>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btNodeOverlapCallback_processNode as btNodeOverlapCallback_processNode    `( BtNodeOverlapCallbackClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ subPart-,  `Int'  -- ^ triangleIndex- } ->  `()'  #}--- * btNullPairCache-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#387>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_new as btNullPairCache    {  } -> `BtNullPairCache' mkBtNullPairCache* #}-{#fun btNullPairCache_free    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_sortOverlappingPairs as btNullPairCache_sortOverlappingPairs    `( BtNullPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#439>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_setInternalGhostPairCallback as btNullPairCache_setInternalGhostPairCallback    `( BtNullPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#444>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_addOverlappingPair as btNullPairCache_addOverlappingPair    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#454>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_removeOverlappingPairsContainingProxy as btNullPairCache_removeOverlappingPairsContainingProxy    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#434>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_hasDeferredRemoval as btNullPairCache_hasDeferredRemoval    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#429>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_findPair as btNullPairCache_findPair    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#416>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_cleanProxyFromPairs as btNullPairCache_cleanProxyFromPairs    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#406>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_cleanOverlappingPair as btNullPairCache_cleanOverlappingPair    `( BtNullPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#411>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_getNumOverlappingPairs as btNullPairCache_getNumOverlappingPairs    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#421>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_setOverlapFilterCallback as btNullPairCache_setOverlapFilterCallback    `( BtNullPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#393>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_getOverlappingPairArrayPtr0 as btNullPairCache_getOverlappingPairArrayPtr    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#393>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_getOverlappingPairArrayPtr0 as btNullPairCache_getOverlappingPairArrayPtr0    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#397>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_getOverlappingPairArrayPtr1 as btNullPairCache_getOverlappingPairArrayPtr1    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#425>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btNullPairCache_processAllOverlappingPairs as btNullPairCache_processAllOverlappingPairs    `( BtNullPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1- } ->  `()'  #}--- * btOptimizedBvhNode-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_new as btOptimizedBvhNode    {  } -> `BtOptimizedBvhNode' mkBtOptimizedBvhNode* #}-{#fun btOptimizedBvhNode_free    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_aabbMinOrg_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_aabbMinOrg_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_aabbMaxOrg_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_aabbMaxOrg_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_escapeIndex_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_escapeIndex_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_subPart_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_subPart_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_triangleIndex_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNode_m_triangleIndex_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btOptimizedBvhNodeDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#520>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_new as btOptimizedBvhNodeDoubleData    {  } -> `BtOptimizedBvhNodeDoubleData' mkBtOptimizedBvhNodeDoubleData* #}-{#fun btOptimizedBvhNodeDoubleData_free    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#523>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_escapeIndex_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#523>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_escapeIndex_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#524>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_subPart_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#524>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_subPart_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#525>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_triangleIndex_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#525>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeDoubleData_m_triangleIndex_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btOptimizedBvhNodeFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#510>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_new as btOptimizedBvhNodeFloatData    {  } -> `BtOptimizedBvhNodeFloatData' mkBtOptimizedBvhNodeFloatData* #}-{#fun btOptimizedBvhNodeFloatData_free    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#513>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_escapeIndex_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#513>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_escapeIndex_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#514>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_subPart_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#514>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_subPart_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#515>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_triangleIndex_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#515>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btOptimizedBvhNodeFloatData_m_triangleIndex_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btOverlapCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlapCallback_processOverlap as btOverlapCallback_processOverlap    `( BtOverlapCallbackClass bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pair- } ->  `Bool'  #}--- * btOverlapFilterCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlapFilterCallback_needBroadphaseCollision as btOverlapFilterCallback_needBroadphaseCollision    `( BtOverlapFilterCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}--- * btOverlappingPairCache-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_sortOverlappingPairs as btOverlappingPairCache_sortOverlappingPairs    `( BtOverlappingPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_setInternalGhostPairCallback as btOverlappingPairCache_setInternalGhostPairCallback    `( BtOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ghostPairCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_setOverlapFilterCallback as btOverlappingPairCache_setOverlapFilterCallback    `( BtOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_findPair as btOverlappingPairCache_findPair    `( BtOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_cleanProxyFromPairs as btOverlappingPairCache_cleanProxyFromPairs    `( BtOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_cleanOverlappingPair as btOverlappingPairCache_cleanOverlappingPair    `( BtOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pair-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_getNumOverlappingPairs as btOverlappingPairCache_getNumOverlappingPairs    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_processAllOverlappingPairs as btOverlappingPairCache_processAllOverlappingPairs    `( BtOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_getOverlappingPairArrayPtr0 as btOverlappingPairCache_getOverlappingPairArrayPtr    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_getOverlappingPairArrayPtr0 as btOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_getOverlappingPairArrayPtr1 as btOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btOverlappingPairCache_hasDeferredRemoval as btOverlappingPairCache_hasDeferredRemoval    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}--- * btOverlappingPairCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.cpp?r=2223>--}-{#fun btOverlappingPairCallback_addOverlappingPair as btOverlappingPairCallback_addOverlappingPair    `( BtOverlappingPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.cpp?r=2223>--}-{#fun btOverlappingPairCallback_removeOverlappingPairsContainingProxy as btOverlappingPairCallback_removeOverlappingPairsContainingProxy    `( BtOverlappingPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}--- * btQuantizedBvh-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#334>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_new as btQuantizedBvh    {  } -> `BtQuantizedBvh' mkBtQuantizedBvh* #}-{#fun btQuantizedBvh_free    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#470>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_getAlignmentSerializationPadding as btQuantizedBvh_getAlignmentSerializationPadding    `( )' =>     {  } ->  `Word32'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#343>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_buildInternal as btQuantizedBvh_buildInternal    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#479>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_deSerializeFloat as btQuantizedBvh_deSerializeFloat    `( BtQuantizedBvhClass bc , BtQuantizedBvhFloatDataClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ quantizedBvhFloatData- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#486>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_isQuantized as btQuantizedBvh_isQuantized    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#340>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_setQuantizationValues as btQuantizedBvh_setQuantizationValues    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMin-, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMax-,  `Float'  -- ^ quantizationMargin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#340>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_setQuantizationValues as btQuantizedBvh_setQuantizationValues'    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMax-,  `Float'  -- ^ quantizationMargin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#346>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportAabbOverlappingNodex as btQuantizedBvh_reportAabbOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#346>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportAabbOverlappingNodex as btQuantizedBvh_reportAabbOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#348>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportBoxCastOverlappingNodex as btQuantizedBvh_reportBoxCastOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, withVector3* `Vector3'  peekVector3* -- ^ raySource-, withVector3* `Vector3'  peekVector3* -- ^ rayTarget-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#348>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportBoxCastOverlappingNodex as btQuantizedBvh_reportBoxCastOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ raySource-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTarget-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#462>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_calculateSerializeBufferSize as btQuantizedBvh_calculateSerializeBufferSize    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word32'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#347>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportRayOverlappingNodex as btQuantizedBvh_reportRayOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, withVector3* `Vector3'  peekVector3* -- ^ raySource-, withVector3* `Vector3'  peekVector3* -- ^ rayTarget- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#347>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_reportRayOverlappingNodex as btQuantizedBvh_reportRayOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ nodeCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ raySource-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTarget- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#481>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_deSerializeDouble as btQuantizedBvh_deSerializeDouble    `( BtQuantizedBvhClass bc , BtQuantizedBvhDoubleDataClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ quantizedBvhDoubleData- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#572>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvh_calculateSerializeBufferSizeNew as btQuantizedBvh_calculateSerializeBufferSizeNew    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * btQuantizedBvhDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#555>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_new as btQuantizedBvhDoubleData    {  } -> `BtQuantizedBvhDoubleData' mkBtQuantizedBvhDoubleData* #}-{#fun btQuantizedBvhDoubleData_free    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#563>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_contiguousNodesPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtOptimizedBvhNodeDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#559>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_curNodeIndex_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#559>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_curNodeIndex_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#561>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numContiguousLeafNodes_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#561>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numContiguousLeafNodes_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#562>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#562>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#567>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numSubtreeHeaders_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#567>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_numSubtreeHeaders_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#564>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtQuantizedBvhNodeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#568>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_subTreeInfoPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtBvhSubtreeInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#566>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_traversalMode_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#566>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_traversalMode_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#560>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_useQuantization_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#560>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhDoubleData_m_useQuantization_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btQuantizedBvhFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#538>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_new as btQuantizedBvhFloatData    {  } -> `BtQuantizedBvhFloatData' mkBtQuantizedBvhFloatData* #}-{#fun btQuantizedBvhFloatData_free    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#546>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_contiguousNodesPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtOptimizedBvhNodeFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#542>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_curNodeIndex_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#542>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_curNodeIndex_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#544>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numContiguousLeafNodes_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#544>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numContiguousLeafNodes_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#545>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#545>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#550>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numSubtreeHeaders_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#550>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_numSubtreeHeaders_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#547>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtQuantizedBvhNodeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#548>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_subTreeInfoPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtBvhSubtreeInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#549>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_traversalMode_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#549>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_traversalMode_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#543>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_useQuantization_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#543>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhFloatData_m_useQuantization_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btQuantizedBvhNode-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_new as btQuantizedBvhNode    {  } -> `BtQuantizedBvhNode' mkBtQuantizedBvhNode* #}-{#fun btQuantizedBvhNode_free    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_getEscapeIndex as btQuantizedBvhNode_getEscapeIndex    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_getTriangleIndex as btQuantizedBvhNode_getTriangleIndex    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_getPartId as btQuantizedBvhNode_getPartId    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_isLeafNode as btQuantizedBvhNode_isLeafNode    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_set    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_get    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btQuantizedBvhNodeData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#531>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNodeData_new as btQuantizedBvhNodeData    {  } -> `BtQuantizedBvhNodeData' mkBtQuantizedBvhNodeData* #}-{#fun btQuantizedBvhNodeData_free    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#534>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_set    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#534>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_get    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btSimpleBroadphase-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_new as btSimpleBroadphase    `( BtOverlappingPairCacheClass p1 )' =>     {   `Int' , withBt* `p1'  } -> `BtSimpleBroadphase' mkBtSimpleBroadphase* #}-{#fun btSimpleBroadphase_free    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_rayTest as btSimpleBroadphase_rayTest    `( BtSimpleBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_rayTest as btSimpleBroadphase_rayTest'    `( BtSimpleBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ rayCallback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_setAabb as btSimpleBroadphase_setAabb    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_setAabb as btSimpleBroadphase_setAabb'    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p3'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getOverlappingPairCache0 as btSimpleBroadphase_getOverlappingPairCache    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getOverlappingPairCache0 as btSimpleBroadphase_getOverlappingPairCache0    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#145>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getOverlappingPairCache1 as btSimpleBroadphase_getOverlappingPairCache1    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_calculateOverlappingPairs as btSimpleBroadphase_calculateOverlappingPairs    `( BtSimpleBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_testAabbOverlap as btSimpleBroadphase_testAabbOverlap    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getAabb as btSimpleBroadphase_getAabb    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getAabb as btSimpleBroadphase_getAabb'    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_aabbTest as btSimpleBroadphase_aabbTest    `( BtSimpleBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_aabbTest as btSimpleBroadphase_aabbTest'    `( BtSimpleBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-, withBt* `p2'  -- ^ callback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#161>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_printStats as btSimpleBroadphase_printStats    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_aabbOverlap as btSimpleBroadphase_aabbOverlap    `(  BtSimpleBroadphaseProxyClass p0 , BtSimpleBroadphaseProxyClass p1 )' =>     {  withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#155>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getBroadphaseAabb as btSimpleBroadphase_getBroadphaseAabb    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#155>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_getBroadphaseAabb as btSimpleBroadphase_getBroadphaseAabb'    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphase_destroyProxy as btSimpleBroadphase_destroyProxy    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}--- * btSimpleBroadphaseProxy-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#30>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphaseProxy_new0 as btSimpleBroadphaseProxy0    {  } -> `BtSimpleBroadphaseProxy' mkBtSimpleBroadphaseProxy* #}-{#fun btSimpleBroadphaseProxy_free    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphaseProxy_GetNextFree as btSimpleBroadphaseProxy_GetNextFree    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphaseProxy_SetNextFree as btSimpleBroadphaseProxy_SetNextFree    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ next- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#25>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphaseProxy_m_nextFree_set    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#25>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>--}-{#fun btSimpleBroadphaseProxy_m_nextFree_get    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btSortedOverlappingPairCache-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#300>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_new as btSortedOverlappingPairCache    {  } -> `BtSortedOverlappingPairCache' mkBtSortedOverlappingPairCache* #}-{#fun btSortedOverlappingPairCache_free    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#378>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_sortOverlappingPairs as btSortedOverlappingPairCache_sortOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#373>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_setInternalGhostPairCallback as btSortedOverlappingPairCache_setInternalGhostPairCallback    `( BtSortedOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ghostPairCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#358>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_getOverlapFilterCallback as btSortedOverlappingPairCache_getOverlapFilterCallback    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlapFilterCallback' mkBtOverlapFilterCallback*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_addOverlappingPair as btSortedOverlappingPairCache_addOverlappingPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#316>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy as btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_needsBroadphaseCollision as btSortedOverlappingPairCache_needsBroadphaseCollision    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#368>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_hasDeferredRemoval as btSortedOverlappingPairCache_hasDeferredRemoval    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#311>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_findPair as btSortedOverlappingPairCache_findPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0-, withBt* `p1'  -- ^ proxy1- } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#314>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_cleanProxyFromPairs as btSortedOverlappingPairCache_cleanProxyFromPairs    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#307>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_cleanOverlappingPair as btSortedOverlappingPairCache_cleanOverlappingPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pair-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#353>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_getNumOverlappingPairs as btSortedOverlappingPairCache_getNumOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_processAllOverlappingPairs as btSortedOverlappingPairCache_processAllOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#343>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr0 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#343>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr0 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#348>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr1 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphasePair' mkBtBroadphasePair*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#363>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>--}-{#fun btSortedOverlappingPairCache_setOverlapFilterCallback as btSortedOverlappingPairCache_setOverlapFilterCallback    `( BtSortedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback- } ->  `()'  #}--- * sStkCLN-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkCLN_new as btDbvt_sStkCLN    `( BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtDbvt_sStkCLN' mkBtDbvt_sStkCLN* #}-{#fun btDbvt_sStkCLN_free    `( BtDbvt_sStkCLNClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkCLN_node_set    `( BtDbvt_sStkCLNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#217>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkCLN_parent_set    `( BtDbvt_sStkCLNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * sStkNN-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#197>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNN_new0 as btDbvt_sStkNN0    {  } -> `BtDbvt_sStkNN' mkBtDbvt_sStkNN* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#198>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNN_new1 as btDbvt_sStkNN1    `( BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtDbvt_sStkNN' mkBtDbvt_sStkNN* #}-{#fun btDbvt_sStkNN_free    `( BtDbvt_sStkNNClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#195>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNN_a_set    `( BtDbvt_sStkNNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#196>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNN_b_set    `( BtDbvt_sStkNNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * sStkNP-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#204>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNP_new as btDbvt_sStkNP    `( BtDbvtNodeClass p0 )' =>     {  withBt* `p0' ,  `Word32'  } -> `BtDbvt_sStkNP' mkBtDbvt_sStkNP* #}-{#fun btDbvt_sStkNP_free    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNP_mask_set    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNP_mask_get    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#202>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNP_node_set    `( BtDbvt_sStkNPClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * sStkNPS-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNPS_new0 as btDbvt_sStkNPS0    {  } -> `BtDbvt_sStkNPS' mkBtDbvt_sStkNPS* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#212>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNPS_new1 as btDbvt_sStkNPS1    `( BtDbvtNodeClass p0 )' =>     {  withBt* `p0' ,  `Word32' ,  `Float'  } -> `BtDbvt_sStkNPS' mkBtDbvt_sStkNPS* #}-{#fun btDbvt_sStkNPS_free    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNPS_mask_set    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNPS_mask_get    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#208>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>--}-{#fun btDbvt_sStkNPS_node_set    `( BtDbvt_sStkNPSClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+ } ->  `()'   #}+-- * ICollide+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_new as btDbvt_ICollide    {  } -> `BtDbvt_ICollide' mkBtDbvt_ICollide* #}+{#fun btDbvt_ICollide_free    `( BtDbvt_ICollideClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_Process0 as btDbvt_ICollide_Process    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_Process0 as btDbvt_ICollide_Process0    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_Process1 as btDbvt_ICollide_Process1    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_Process2 as btDbvt_ICollide_Process2    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ n+,  `Float'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_AllLeaves as btDbvt_ICollide_AllLeaves    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_ICollide_Descent as btDbvt_ICollide_Descent    `( BtDbvt_ICollideClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `Bool'   #}+-- * IWriter+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_IWriter_WriteLeaf as btDbvt_IWriter_WriteLeaf    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+,  `Int'  -- ^ index+,  `Int'  -- ^ parent+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_IWriter_WriteNode as btDbvt_IWriter_WriteNode    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+,  `Int'  -- ^ index+,  `Int'  -- ^ parent+,  `Int'  -- ^ child0+,  `Int'  -- ^ child1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_IWriter_Prepare as btDbvt_IWriter_Prepare    `( BtDbvt_IWriterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ root+,  `Int'  -- ^ numnodes+ } ->  `()'   #}+-- * bt32BitAxisSweep3+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#1046>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun bt32BitAxisSweep3_new as bt32BitAxisSweep3    `( BtOverlappingPairCacheClass p3 )' =>     {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Word32' , withBt* `p3' ,  `Bool'  } -> `Bt32BitAxisSweep3' mkBt32BitAxisSweep3* #}+{#fun bt32BitAxisSweep3_free    `( Bt32BitAxisSweep3Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAxisSweep3+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#1035>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3_new as btAxisSweep3    `( BtOverlappingPairCacheClass p3 )' =>     {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Int' , withBt* `p3' ,  `Bool'  } -> `BtAxisSweep3' mkBtAxisSweep3* #}+{#fun btAxisSweep3_free    `( BtAxisSweep3Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAxisSweep3Internal<unsigned int>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__new as btAxisSweep3Internal_unsignedint_    `( BtOverlappingPairCacheClass p5 )' =>     {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Word32' ,  `Word32' ,  `Word32' , withBt* `p5' ,  `Bool'  } -> `BtAxisSweep3Internal_unsignedint_' mkBtAxisSweep3Internal_unsignedint_* #}+{#fun btAxisSweep3Internal_unsignedint__free    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#859>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__sortMinUp as btAxisSweep3Internal_unsignedint__sortMinUp    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Word32'  -- ^ edge+, withBt* `p2'  -- ^ dispatcher+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#481>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__allocHandle as btAxisSweep3Internal_unsignedint__allocHandle    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getNumHandles as btAxisSweep3Internal_unsignedint__getNumHandles    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#505>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__addHandle as btAxisSweep3Internal_unsignedint__addHandle    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p5 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withVoidPtr* `VoidPtr'  -- ^ pOwner+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p5'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#505>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__addHandle as btAxisSweep3Internal_unsignedint__addHandle'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p5 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withVoidPtr* `VoidPtr'  -- ^ pOwner+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p5'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#978>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__sortMaxUp as btAxisSweep3Internal_unsignedint__sortMaxUp    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Word32'  -- ^ edge+, withBt* `p2'  -- ^ arg2+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__removeHandle as btAxisSweep3Internal_unsignedint__removeHandle    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ handle+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getOverlappingPairUserCallback as btAxisSweep3Internal_unsignedint__getOverlappingPairUserCallback    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#915>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__sortMaxDown as btAxisSweep3Internal_unsignedint__sortMaxDown    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Word32'  -- ^ edge+, withBt* `p2'  -- ^ dispatcher+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__rayTest as btAxisSweep3Internal_unsignedint__rayTest    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__rayTest as btAxisSweep3Internal_unsignedint__rayTest'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__setAabb as btAxisSweep3Internal_unsignedint__setAabb    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__setAabb as btAxisSweep3Internal_unsignedint__setAabb'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#618>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__resetPool as btAxisSweep3Internal_unsignedint__resetPool    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#722>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__testAabbOverlap as btAxisSweep3Internal_unsignedint__testAabbOverlap    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getAabb as btAxisSweep3Internal_unsignedint__getAabb    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getAabb as btAxisSweep3Internal_unsignedint__getAabb'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#756>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__updateHandle as btAxisSweep3Internal_unsignedint__updateHandle    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ handle+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#756>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__updateHandle as btAxisSweep3Internal_unsignedint__updateHandle'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ handle+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__freeHandle as btAxisSweep3Internal_unsignedint__freeHandle    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ handle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__printStats as btAxisSweep3Internal_unsignedint__printStats    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__createProxy as btAxisSweep3Internal_unsignedint__createProxy    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__createProxy as btAxisSweep3Internal_unsignedint__createProxy'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__setOverlappingPairUserCallback as btAxisSweep3Internal_unsignedint__setOverlappingPairUserCallback    `( BtAxisSweep3Internal_unsignedint_Class bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pairCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#636>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__calculateOverlappingPairs as btAxisSweep3Internal_unsignedint__calculateOverlappingPairs    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getOverlappingPairCache0 as btAxisSweep3Internal_unsignedint__getOverlappingPairCache    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getOverlappingPairCache0 as btAxisSweep3Internal_unsignedint__getOverlappingPairCache0    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getOverlappingPairCache1 as btAxisSweep3Internal_unsignedint__getOverlappingPairCache1    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__unQuantize as btAxisSweep3Internal_unsignedint__unQuantize    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__unQuantize as btAxisSweep3Internal_unsignedint__unQuantize'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#807>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__sortMinDown as btAxisSweep3Internal_unsignedint__sortMinDown    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Word32'  -- ^ edge+, withBt* `p2'  -- ^ arg2+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__aabbTest as btAxisSweep3Internal_unsignedint__aabbTest    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__aabbTest as btAxisSweep3Internal_unsignedint__aabbTest'    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getBroadphaseAabb as btAxisSweep3Internal_unsignedint__getBroadphaseAabb    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__getBroadphaseAabb as btAxisSweep3Internal_unsignedint__getBroadphaseAabb'    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#249>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__destroyProxy as btAxisSweep3Internal_unsignedint__destroyProxy    `( BtAxisSweep3Internal_unsignedint_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_bpHandleMask_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_bpHandleMask_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_handleSentinel_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_handleSentinel_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_worldAabbMin_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_worldAabbMin_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_worldAabbMax_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_worldAabbMax_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_quantize_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_quantize_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_numHandles_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_numHandles_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_maxHandles_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_maxHandles_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_firstFreeHandle_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_firstFreeHandle_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_pairCache_set    `( BtAxisSweep3Internal_unsignedint_Class bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_pairCache_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_userPairCallback_set    `( BtAxisSweep3Internal_unsignedint_Class bc , BtOverlappingPairCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_userPairCallback_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_ownsPairCache_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_ownsPairCache_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_invalidPair_set    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_invalidPair_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_raycastAccelerator_set    `( BtAxisSweep3Internal_unsignedint_Class bc , BtDbvtBroadphaseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_raycastAccelerator_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `BtDbvtBroadphase'  mkBtDbvtBroadphase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_nullPairCache_set    `( BtAxisSweep3Internal_unsignedint_Class bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedint__m_nullPairCache_get    `( BtAxisSweep3Internal_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+-- * btAxisSweep3Internal<unsigned short>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__new as btAxisSweep3Internal_unsignedshort_    `( BtOverlappingPairCacheClass p5 )' =>     {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Int' ,  `Int' ,  `Int' , withBt* `p5' ,  `Bool'  } -> `BtAxisSweep3Internal_unsignedshort_' mkBtAxisSweep3Internal_unsignedshort_* #}+{#fun btAxisSweep3Internal_unsignedshort__free    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#859>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__sortMinUp as btAxisSweep3Internal_unsignedshort__sortMinUp    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Int'  -- ^ edge+, withBt* `p2'  -- ^ dispatcher+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#481>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__allocHandle as btAxisSweep3Internal_unsignedshort__allocHandle    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getNumHandles as btAxisSweep3Internal_unsignedshort__getNumHandles    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#505>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__addHandle as btAxisSweep3Internal_unsignedshort__addHandle    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p5 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withVoidPtr* `VoidPtr'  -- ^ pOwner+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p5'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#505>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__addHandle as btAxisSweep3Internal_unsignedshort__addHandle'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p5 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withVoidPtr* `VoidPtr'  -- ^ pOwner+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p5'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#978>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__sortMaxUp as btAxisSweep3Internal_unsignedshort__sortMaxUp    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Int'  -- ^ edge+, withBt* `p2'  -- ^ arg2+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__removeHandle as btAxisSweep3Internal_unsignedshort__removeHandle    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ handle+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getOverlappingPairUserCallback as btAxisSweep3Internal_unsignedshort__getOverlappingPairUserCallback    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#915>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__sortMaxDown as btAxisSweep3Internal_unsignedshort__sortMaxDown    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Int'  -- ^ edge+, withBt* `p2'  -- ^ dispatcher+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__rayTest as btAxisSweep3Internal_unsignedshort__rayTest    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__rayTest as btAxisSweep3Internal_unsignedshort__rayTest'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__setAabb as btAxisSweep3Internal_unsignedshort__setAabb    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__setAabb as btAxisSweep3Internal_unsignedshort__setAabb'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#618>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__resetPool as btAxisSweep3Internal_unsignedshort__resetPool    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#722>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__testAabbOverlap as btAxisSweep3Internal_unsignedshort__testAabbOverlap    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getAabb as btAxisSweep3Internal_unsignedshort__getAabb    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getAabb as btAxisSweep3Internal_unsignedshort__getAabb'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#756>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__updateHandle as btAxisSweep3Internal_unsignedshort__updateHandle    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ handle+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#756>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__updateHandle as btAxisSweep3Internal_unsignedshort__updateHandle'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ handle+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__freeHandle as btAxisSweep3Internal_unsignedshort__freeHandle    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ handle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__printStats as btAxisSweep3Internal_unsignedshort__printStats    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__createProxy as btAxisSweep3Internal_unsignedshort__createProxy    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__createProxy as btAxisSweep3Internal_unsignedshort__createProxy'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__setOverlappingPairUserCallback as btAxisSweep3Internal_unsignedshort__setOverlappingPairUserCallback    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pairCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#636>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__calculateOverlappingPairs as btAxisSweep3Internal_unsignedshort__calculateOverlappingPairs    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getOverlappingPairCache0 as btAxisSweep3Internal_unsignedshort__getOverlappingPairCache    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getOverlappingPairCache0 as btAxisSweep3Internal_unsignedshort__getOverlappingPairCache0    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getOverlappingPairCache1 as btAxisSweep3Internal_unsignedshort__getOverlappingPairCache1    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__unQuantize as btAxisSweep3Internal_unsignedshort__unQuantize    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__unQuantize as btAxisSweep3Internal_unsignedshort__unQuantize'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#807>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__sortMinDown as btAxisSweep3Internal_unsignedshort__sortMinDown    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Int'  -- ^ edge+, withBt* `p2'  -- ^ arg2+,  `Bool'  -- ^ updateOverlaps+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__aabbTest as btAxisSweep3Internal_unsignedshort__aabbTest    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__aabbTest as btAxisSweep3Internal_unsignedshort__aabbTest'    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getBroadphaseAabb as btAxisSweep3Internal_unsignedshort__getBroadphaseAabb    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__getBroadphaseAabb as btAxisSweep3Internal_unsignedshort__getBroadphaseAabb'    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#249>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__destroyProxy as btAxisSweep3Internal_unsignedshort__destroyProxy    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_bpHandleMask_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_bpHandleMask_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_handleSentinel_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_handleSentinel_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_worldAabbMin_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_worldAabbMin_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_worldAabbMax_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_worldAabbMax_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_quantize_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_quantize_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_numHandles_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_numHandles_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_maxHandles_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_maxHandles_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_firstFreeHandle_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_firstFreeHandle_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_pairCache_set    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_pairCache_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_userPairCallback_set    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtOverlappingPairCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_userPairCallback_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_ownsPairCache_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_ownsPairCache_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_invalidPair_set    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_invalidPair_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_raycastAccelerator_set    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtDbvtBroadphaseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_raycastAccelerator_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `BtDbvtBroadphase'  mkBtDbvtBroadphase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_nullPairCache_set    `( BtAxisSweep3Internal_unsignedshort_Class bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp?r=2223>+-}+{#fun btAxisSweep3Internal_unsignedshort__m_nullPairCache_get    `( BtAxisSweep3Internal_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+-- * btBridgeProxy+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btBridgeProxy_new as btMultiSapBroadphase_btBridgeProxy    {  } -> `BtMultiSapBroadphase_btBridgeProxy' mkBtMultiSapBroadphase_btBridgeProxy* #}+{#fun btMultiSapBroadphase_btBridgeProxy_free    `( BtMultiSapBroadphase_btBridgeProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btBridgeProxy_m_childBroadphase_set    `( BtMultiSapBroadphase_btBridgeProxyClass bc , BtBroadphaseInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btBridgeProxy_m_childBroadphase_get    `( BtMultiSapBroadphase_btBridgeProxyClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btBridgeProxy_m_childProxy_set    `( BtMultiSapBroadphase_btBridgeProxyClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btBridgeProxy_m_childProxy_get    `( BtMultiSapBroadphase_btBridgeProxyClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+-- * btBroadphaseAabbCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseAabbCallback_process as btBroadphaseAabbCallback_process    `( BtBroadphaseAabbCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+ } ->  `Bool'   #}+-- * btBroadphaseInterface+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_rayTest as btBroadphaseInterface_rayTest    `( BtBroadphaseInterfaceClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_rayTest as btBroadphaseInterface_rayTest'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_setAabb as btBroadphaseInterface_setAabb    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_setAabb as btBroadphaseInterface_setAabb'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getBroadphaseAabb as btBroadphaseInterface_getBroadphaseAabb    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getBroadphaseAabb as btBroadphaseInterface_getBroadphaseAabb'    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_resetPool as btBroadphaseInterface_resetPool    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_calculateOverlappingPairs as btBroadphaseInterface_calculateOverlappingPairs    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_printStats as btBroadphaseInterface_printStats    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getAabb as btBroadphaseInterface_getAabb    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getAabb as btBroadphaseInterface_getAabb'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_aabbTest as btBroadphaseInterface_aabbTest    `( BtBroadphaseInterfaceClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_aabbTest as btBroadphaseInterface_aabbTest'    `( BtBroadphaseInterfaceClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_createProxy as btBroadphaseInterface_createProxy    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_createProxy as btBroadphaseInterface_createProxy'    `( BtBroadphaseInterfaceClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getOverlappingPairCache0 as btBroadphaseInterface_getOverlappingPairCache    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getOverlappingPairCache0 as btBroadphaseInterface_getOverlappingPairCache0    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_getOverlappingPairCache1 as btBroadphaseInterface_getOverlappingPairCache1    `( BtBroadphaseInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseInterface_destroyProxy as btBroadphaseInterface_destroyProxy    `( BtBroadphaseInterfaceClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+-- * btBroadphasePair+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_new0 as btBroadphasePair0    {  } -> `BtBroadphasePair' mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_new1 as btBroadphasePair1    `( BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtBroadphasePair' mkBtBroadphasePair* #}+{#fun btBroadphasePair_free    `( BtBroadphasePairClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_algorithm_set    `( BtBroadphasePairClass bc , BtCollisionAlgorithmClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_algorithm_get    `( BtBroadphasePairClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_pProxy0_set    `( BtBroadphasePairClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_pProxy0_get    `( BtBroadphasePairClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_pProxy1_set    `( BtBroadphasePairClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePair_m_pProxy1_get    `( BtBroadphasePairClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+-- * btBroadphasePairSortPredicate+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphasePairSortPredicate_new as btBroadphasePairSortPredicate    {  } -> `BtBroadphasePairSortPredicate' mkBtBroadphasePairSortPredicate* #}+{#fun btBroadphasePairSortPredicate_free    `( BtBroadphasePairSortPredicateClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btBroadphaseProxy+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_new0 as btBroadphaseProxy0    {  } -> `BtBroadphaseProxy' mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_new1 as btBroadphaseProxy1    {  withVec3* `Vec3' , withVec3* `Vec3' , withVoidPtr* `VoidPtr' ,  `Int' ,  `Int' , withVoidPtr* `VoidPtr'  } -> `BtBroadphaseProxy' mkBtBroadphaseProxy* #}+{#fun btBroadphaseProxy_free    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isConvex as btBroadphaseProxy_isConvex    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isInfinite as btBroadphaseProxy_isInfinite    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_getUid as btBroadphaseProxy_getUid    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isConcave as btBroadphaseProxy_isConcave    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isNonMoving as btBroadphaseProxy_isNonMoving    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isCompound as btBroadphaseProxy_isCompound    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isPolyhedral as btBroadphaseProxy_isPolyhedral    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isConvex2d as btBroadphaseProxy_isConvex2d    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_isSoftBody as btBroadphaseProxy_isSoftBody    `( )' =>     {   `Int'  -- ^ proxyType+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_aabbMax_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_aabbMax_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_aabbMin_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_aabbMin_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_clientObject_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_clientObject_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_collisionFilterGroup_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_collisionFilterGroup_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_collisionFilterMask_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_collisionFilterMask_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_multiSapParentProxy_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_multiSapParentProxy_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_uniqueId_set    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp?r=2223>+-}+{#fun btBroadphaseProxy_m_uniqueId_get    `( BtBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btBroadphaseRayCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseRayCallback_m_lambda_max_set    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseRayCallback_m_lambda_max_get    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseRayCallback_m_rayDirectionInverse_set    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btBroadphaseInterface.cpp?r=2223>+-}+{#fun btBroadphaseRayCallback_m_rayDirectionInverse_get    `( BtBroadphaseRayCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btBvhSubtreeInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_new as btBvhSubtreeInfo    {  } -> `BtBvhSubtreeInfo' mkBtBvhSubtreeInfo* #}+{#fun btBvhSubtreeInfo_free    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_setAabbFromQuantizeNode as btBvhSubtreeInfo_setAabbFromQuantizeNode    `( BtBvhSubtreeInfoClass bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ quantizedNode+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_m_rootNodeIndex_set    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_m_rootNodeIndex_get    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_m_subtreeSize_set    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfo_m_subtreeSize_get    `( BtBvhSubtreeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btBvhSubtreeInfoData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfoData_new as btBvhSubtreeInfoData    {  } -> `BtBvhSubtreeInfoData' mkBtBvhSubtreeInfoData* #}+{#fun btBvhSubtreeInfoData_free    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfoData_m_rootNodeIndex_set    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfoData_m_rootNodeIndex_get    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#504>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfoData_m_subtreeSize_set    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#504>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btBvhSubtreeInfoData_m_subtreeSize_get    `( BtBvhSubtreeInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btCollisionAlgorithm+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithm_getAllContactManifolds as btCollisionAlgorithm_getAllContactManifolds    `( BtCollisionAlgorithmClass bc , BtAlignedObjectArray_btPersistentManifold_ptr_Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifoldArray+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithm_calculateTimeOfImpact as btCollisionAlgorithm_calculateTimeOfImpact    `( BtCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithm_processCollision as btCollisionAlgorithm_processCollision    `( BtCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithm_m_dispatcher_set    `( BtCollisionAlgorithmClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithm_m_dispatcher_get    `( BtCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcher'  mkBtDispatcher* #}+-- * btCollisionAlgorithmConstructionInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_new0 as btCollisionAlgorithmConstructionInfo0    {  } -> `BtCollisionAlgorithmConstructionInfo' mkBtCollisionAlgorithmConstructionInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_new1 as btCollisionAlgorithmConstructionInfo1    `( BtDispatcherClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtCollisionAlgorithmConstructionInfo' mkBtCollisionAlgorithmConstructionInfo* #}+{#fun btCollisionAlgorithmConstructionInfo_free    `( BtCollisionAlgorithmConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_m_dispatcher1_set    `( BtCollisionAlgorithmConstructionInfoClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_m_dispatcher1_get    `( BtCollisionAlgorithmConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_m_manifold_set    `( BtCollisionAlgorithmConstructionInfoClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp?r=2223>+-}+{#fun btCollisionAlgorithmConstructionInfo_m_manifold_get    `( BtCollisionAlgorithmConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+-- * btDbvt+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_new as btDbvt    {  } -> `BtDbvt' mkBtDbvt* #}+{#fun btDbvt_free    `( BtDbvtClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#694>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_enumLeaves as btDbvt_enumLeaves    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root+, withBt* `p1'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_optimizeIncremental as btDbvt_optimizeIncremental    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ passes+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#996>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_rayTest as btDbvt_rayTest    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p3 )' =>     {  withBt* `p0'  -- ^ root+, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p3'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#996>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_rayTest as btDbvt_rayTest'    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p3 )' =>     {  withBt* `p0'  -- ^ root+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p3'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_optimizeTopDown as btDbvt_optimizeTopDown    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ bu_treshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#680>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_enumNodes as btDbvt_enumNodes    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root+, withBt* `p1'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#279>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_write as btDbvt_write    `( BtDbvtClass bc , BtDbvt_IWriterClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ iwriter+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#373>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_allocate as btDbvt_allocate    `(  BtAlignedObjectArray_int_Class p0 , BtAlignedObjectArray_btDbvt_sStkNPS_Class p1 , BtDbvt_sStkNPSClass p2 )' =>     {  withBt* `p0'  -- ^ ifree+, withBt* `p1'  -- ^ stock+, withBt* `p2'  -- ^ value+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_empty as btDbvt_empty    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#910>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_collideTV as btDbvt_collideTV    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ root+, withBt* `p1'  -- ^ vol+, withBt* `p2'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#1216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_collideTU as btDbvt_collideTU    `(  BtDbvtNodeClass p0 , BtDbvt_ICollideClass p1 )' =>     {  withBt* `p0'  -- ^ root+, withBt* `p1'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#712>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_collideTT as btDbvt_collideTT    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ root0+, withBt* `p1'  -- ^ root1+, withBt* `p2'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#777>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_collideTTpersistentStack as btDbvt_collideTTpersistentStack    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtNodeClass p1 , BtDbvt_ICollideClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ root0+, withBt* `p1'  -- ^ root1+, withBt* `p2'  -- ^ policy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_clone as btDbvt_clone    `( BtDbvtClass bc , BtDbvtClass p0 , BtDbvt_ICloneClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dest+, withBt* `p1'  -- ^ iclone+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#287>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_benchmark as btDbvt_benchmark    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#273>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update0 as btDbvt_update    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+,  `Int'  -- ^ lookahead+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#273>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update0 as btDbvt_update0    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+,  `Int'  -- ^ lookahead+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update1 as btDbvt_update1    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update2 as btDbvt_update2    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+, withVec3* `Vec3'  peekVec3* -- ^ velocity+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update2 as btDbvt_update2'    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update3 as btDbvt_update3    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update3 as btDbvt_update3'    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_update4 as btDbvt_update4    `( BtDbvtClass bc , BtDbvtNodeClass p0 , BtDbvtAabbMmClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+, withBt* `p1'  -- ^ volume+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_countLeaves as btDbvt_countLeaves    `(  BtDbvtNodeClass p0 )' =>     {  withBt* `p0'  -- ^ node+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_insert as btDbvt_insert    `( BtDbvtClass bc , BtDbvtAabbMmClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withVoidPtr* `VoidPtr'  -- ^ data+ } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#283>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_extractLeaves as btDbvt_extractLeaves    `(  BtDbvtNodeClass p0 , BtAlignedObjectArray_btDbvtNodeconst_ptr_Class p1 )' =>     {  withBt* `p0'  -- ^ node+, withBt* `p1'  -- ^ leaves+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_remove as btDbvt_remove    `( BtDbvtClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#281>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_maxdepth as btDbvt_maxdepth    `(  BtDbvtNodeClass p0 )' =>     {  withBt* `p0'  -- ^ node+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#267>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_clear as btDbvt_clear    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#269>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_optimizeBottomUp as btDbvt_optimizeBottomUp    `( BtDbvtClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_free_set    `( BtDbvtClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_free_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_leaves_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_leaves_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#256>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_lkhd_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#256>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_lkhd_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_opath_set    `( BtDbvtClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_opath_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_root_set    `( BtDbvtClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_root_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_stkStack_set    `( BtDbvtClass bc , BtAlignedObjectArray_btDbvt_sStkNN_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_m_stkStack_get    `( BtDbvtClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btDbvt_sStkNN_'  mkBtAlignedObjectArray_btDbvt_sStkNN_* #}+-- * btDbvtAabbMm+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_new as btDbvtAabbMm    {  } -> `BtDbvtAabbMm' mkBtDbvtAabbMm* #}+{#fun btDbvtAabbMm_free    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#446>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_SignedExpand as btDbvtAabbMm_SignedExpand    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ e+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#446>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_SignedExpand as btDbvtAabbMm_SignedExpand'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ e+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Extents as btDbvtAabbMm_Extents    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Center as btDbvtAabbMm_Center    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Lengths as btDbvtAabbMm_Lengths    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Maxs as btDbvtAabbMm_Maxs    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_ProjectMinimum as btDbvtAabbMm_ProjectMinimum    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v+,  `Word32'  -- ^ signs+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_ProjectMinimum as btDbvtAabbMm_ProjectMinimum'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v+,  `Word32'  -- ^ signs+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Classify as btDbvtAabbMm_Classify    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ n+,  `Float'  -- ^ o+,  `Int'  -- ^ s+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Classify as btDbvtAabbMm_Classify'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ n+,  `Float'  -- ^ o+,  `Int'  -- ^ s+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#454>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Contain as btDbvtAabbMm_Contain    `( BtDbvtAabbMmClass bc , BtDbvtAabbMmClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ a+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Mins as btDbvtAabbMm_Mins    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Expand as btDbvtAabbMm_Expand    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ e+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_Expand as btDbvtAabbMm_Expand'    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ e+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_mi_set    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_mi_get    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_mx_set    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtAabbMm_mx_get    `( BtDbvtAabbMmClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btDbvtBroadphase+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_new as btDbvtBroadphase    `( BtOverlappingPairCacheClass p0 )' =>     {  withBt* `p0'  } -> `BtDbvtBroadphase' mkBtDbvtBroadphase* #}+{#fun btDbvtBroadphase_free    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_setVelocityPrediction as btDbvtBroadphase_setVelocityPrediction    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ prediction+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_rayTest as btDbvtBroadphase_rayTest    `( BtDbvtBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_rayTest as btDbvtBroadphase_rayTest'    `( BtDbvtBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_performDeferredRemoval as btDbvtBroadphase_performDeferredRemoval    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_setAabb as btDbvtBroadphase_setAabb    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_setAabb as btDbvtBroadphase_setAabb'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getBroadphaseAabb as btDbvtBroadphase_getBroadphaseAabb    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getBroadphaseAabb as btDbvtBroadphase_getBroadphaseAabb'    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getVelocityPrediction as btDbvtBroadphase_getVelocityPrediction    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_benchmark as btDbvtBroadphase_benchmark    `(  BtBroadphaseInterfaceClass p0 )' =>     {  withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_collide as btDbvtBroadphase_collide    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_resetPool as btDbvtBroadphase_resetPool    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_optimize as btDbvtBroadphase_optimize    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_calculateOverlappingPairs as btDbvtBroadphase_calculateOverlappingPairs    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_setAabbForceUpdate as btDbvtBroadphase_setAabbForceUpdate    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ absproxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ arg3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_setAabbForceUpdate as btDbvtBroadphase_setAabbForceUpdate'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ absproxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ arg3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_printStats as btDbvtBroadphase_printStats    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getAabb as btDbvtBroadphase_getAabb    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getAabb as btDbvtBroadphase_getAabb'    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_aabbTest as btDbvtBroadphase_aabbTest    `( BtDbvtBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_aabbTest as btDbvtBroadphase_aabbTest'    `( BtDbvtBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_createProxy as btDbvtBroadphase_createProxy    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_createProxy as btDbvtBroadphase_createProxy'    `( BtDbvtBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getOverlappingPairCache0 as btDbvtBroadphase_getOverlappingPairCache    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getOverlappingPairCache0 as btDbvtBroadphase_getOverlappingPairCache0    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_getOverlappingPairCache1 as btDbvtBroadphase_getOverlappingPairCache1    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_destroyProxy as btDbvtBroadphase_destroyProxy    `( BtDbvtBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_cid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_cid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_cupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_cupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_deferedcollide_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_deferedcollide_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_dupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_dupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_fixedleft_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_fixedleft_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_fupdates_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_fupdates_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_gid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_gid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_needcleanup_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_needcleanup_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_newpairs_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_newpairs_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_paircache_set    `( BtDbvtBroadphaseClass bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_paircache_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_pid_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_pid_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_prediction_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_prediction_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_releasepaircache_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_releasepaircache_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_stageCurrent_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_stageCurrent_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_call_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_call_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_done_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_done_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_ratio_set    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtBroadphase_m_updates_ratio_get    `( BtDbvtBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btDbvtNode+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#174>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_new as btDbvtNode    {  } -> `BtDbvtNode' mkBtDbvtNode* #}+{#fun btDbvtNode_free    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_isinternal as btDbvtNode_isinternal    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#177>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_isleaf as btDbvtNode_isleaf    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_parent_set    `( BtDbvtNodeClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_parent_get    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_volume_set    `( BtDbvtNodeClass bc , BtDbvtAabbMmClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvtNode_volume_get    `( BtDbvtNodeClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtAabbMm'  mkBtDbvtAabbMm* #}+-- * btDbvtProxy+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtProxy_new as btDbvtProxy    {  withVec3* `Vec3' , withVec3* `Vec3' , withVoidPtr* `VoidPtr' ,  `Int' ,  `Int'  } -> `BtDbvtProxy' mkBtDbvtProxy* #}+{#fun btDbvtProxy_free    `( BtDbvtProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtProxy_leaf_set    `( BtDbvtProxyClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtProxy_leaf_get    `( BtDbvtProxyClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtProxy_stage_set    `( BtDbvtProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp?r=2223>+-}+{#fun btDbvtProxy_stage_get    `( BtDbvtProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btDispatcher+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_allocateCollisionAlgorithm as btDispatcher_allocateCollisionAlgorithm    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_releaseManifold as btDispatcher_releaseManifold    `( BtDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_getNumManifolds as btDispatcher_getNumManifolds    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_clearManifold as btDispatcher_clearManifold    `( BtDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_freeCollisionAlgorithm as btDispatcher_freeCollisionAlgorithm    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_findAlgorithm as btDispatcher_findAlgorithm    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtPersistentManifoldClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ sharedManifold+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_needsResponse as btDispatcher_needsResponse    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_getNewManifold as btDispatcher_getNewManifold    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ body0+, withVoidPtr* `VoidPtr'  -- ^ body1+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_dispatchAllCollisionPairs as btDispatcher_dispatchAllCollisionPairs    `( BtDispatcherClass bc , BtOverlappingPairCacheClass p0 , BtDispatcherInfoClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pairCache+, withBt* `p1'  -- ^ dispatchInfo+, withBt* `p2'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_needsCollision as btDispatcher_needsCollision    `( BtDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcher_getManifoldByIndexInternal as btDispatcher_getManifoldByIndexInternal    `( BtDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+-- * btDispatcherInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_new as btDispatcherInfo    {  } -> `BtDispatcherInfo' mkBtDispatcherInfo* #}+{#fun btDispatcherInfo_free    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_allowedCcdPenetration_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_allowedCcdPenetration_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_convexConservativeDistanceThreshold_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_convexConservativeDistanceThreshold_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_debugDraw_set    `( BtDispatcherInfoClass bc , BtIDebugDrawClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_debugDraw_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `BtIDebugDraw'  mkBtIDebugDraw* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_dispatchFunc_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_dispatchFunc_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_enableSPU_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_enableSPU_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_enableSatConvex_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_enableSatConvex_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_stackAllocator_set    `( BtDispatcherInfoClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_stackAllocator_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `BtStackAlloc'  mkBtStackAlloc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_stepCount_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_stepCount_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_timeOfImpact_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_timeOfImpact_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_timeStep_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_timeStep_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useContinuous_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useContinuous_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useConvexConservativeDistanceUtil_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useConvexConservativeDistanceUtil_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useEpa_set    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDispatcher.cpp?r=2223>+-}+{#fun btDispatcherInfo_m_useEpa_get    `( BtDispatcherInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btHashedOverlappingPairCache+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_new as btHashedOverlappingPairCache    {  } -> `BtHashedOverlappingPairCache' mkBtHashedOverlappingPairCache* #}+{#fun btHashedOverlappingPairCache_free    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_sortOverlappingPairs as btHashedOverlappingPairCache_sortOverlappingPairs    `( BtHashedOverlappingPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_equalsPair as btHashedOverlappingPairCache_equalsPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pair+,  `Int'  -- ^ proxyId1+,  `Int'  -- ^ proxyId2+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_internalFindPair as btHashedOverlappingPairCache_internalFindPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+,  `Int'  -- ^ hash+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArray0 as btHashedOverlappingPairCache_getOverlappingPairArray    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArray0 as btHashedOverlappingPairCache_getOverlappingPairArray0    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArray1 as btHashedOverlappingPairCache_getOverlappingPairArray1    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_processAllOverlappingPairs as btHashedOverlappingPairCache_processAllOverlappingPairs    `( BtHashedOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_hasDeferredRemoval as btHashedOverlappingPairCache_hasDeferredRemoval    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_cleanProxyFromPairs as btHashedOverlappingPairCache_cleanProxyFromPairs    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getNumOverlappingPairs as btHashedOverlappingPairCache_getNumOverlappingPairs    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_cleanOverlappingPair as btHashedOverlappingPairCache_cleanOverlappingPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pair+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#173>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_setOverlapFilterCallback as btHashedOverlappingPairCache_setOverlapFilterCallback    `( BtHashedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#260>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_setInternalGhostPairCallback as btHashedOverlappingPairCache_setInternalGhostPairCallback    `( BtHashedOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ghostPairCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_addOverlappingPair as btHashedOverlappingPairCache_addOverlappingPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_needsBroadphaseCollision as btHashedOverlappingPairCache_needsBroadphaseCollision    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_findPair as btHashedOverlappingPairCache_findPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr0 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr0 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlappingPairArrayPtr1 as btHashedOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getOverlapFilterCallback as btHashedOverlappingPairCache_getOverlapFilterCallback    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlapFilterCallback'  mkBtOverlapFilterCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy as btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#184>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_internalAddPair as btHashedOverlappingPairCache_internalAddPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_growTables as btHashedOverlappingPairCache_growTables    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_removeOverlappingPair as btHashedOverlappingPairCache_removeOverlappingPair    `( BtHashedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+, withBt* `p2'  -- ^ dispatcher+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_GetCount as btHashedOverlappingPairCache_GetCount    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_getHash as btHashedOverlappingPairCache_getHash    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ proxyId1+,  `Word32'  -- ^ proxyId2+ } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_overlappingPairArray_set    `( BtHashedOverlappingPairCacheClass bc , BtAlignedObjectArray_btBroadphasePair_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_overlappingPairArray_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_overlapFilterCallback_set    `( BtHashedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_overlapFilterCallback_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtOverlapFilterCallback'  mkBtOverlapFilterCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_blockedForChanges_set    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_blockedForChanges_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_hashTable_set    `( BtHashedOverlappingPairCacheClass bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_hashTable_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_next_set    `( BtHashedOverlappingPairCacheClass bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_next_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_ghostPairCallback_set    `( BtHashedOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btHashedOverlappingPairCache_m_ghostPairCallback_get    `( BtHashedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+-- * btMultiSapBroadphase+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_addToChildBroadphase as btMultiSapBroadphase_addToChildBroadphase    `( BtMultiSapBroadphaseClass bc , BtMultiSapBroadphase_btMultiSapProxyClass p0 , BtBroadphaseProxyClass p1 , BtBroadphaseInterfaceClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ parentMultiSapProxy+, withBt* `p1'  -- ^ childProxy+, withBt* `p2'  -- ^ childBroadphase+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_rayTest as btMultiSapBroadphase_rayTest    `( BtMultiSapBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_rayTest as btMultiSapBroadphase_rayTest'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_setAabb as btMultiSapBroadphase_setAabb    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_setAabb as btMultiSapBroadphase_setAabb'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getOverlappingPairCache0 as btMultiSapBroadphase_getOverlappingPairCache    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getOverlappingPairCache0 as btMultiSapBroadphase_getOverlappingPairCache0    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getOverlappingPairCache1 as btMultiSapBroadphase_getOverlappingPairCache1    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_buildTree as btMultiSapBroadphase_buildTree    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMin+, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_buildTree as btMultiSapBroadphase_buildTree'    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_resetPool as btMultiSapBroadphase_resetPool    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_calculateOverlappingPairs as btMultiSapBroadphase_calculateOverlappingPairs    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_testAabbOverlap as btMultiSapBroadphase_testAabbOverlap    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getAabb as btMultiSapBroadphase_getAabb    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getAabb as btMultiSapBroadphase_getAabb'    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getBroadphaseArray0 as btMultiSapBroadphase_getBroadphaseArray    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphaseInterface_ptr_'  mkBtAlignedObjectArray_btBroadphaseInterface_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getBroadphaseArray0 as btMultiSapBroadphase_getBroadphaseArray0    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphaseInterface_ptr_'  mkBtAlignedObjectArray_btBroadphaseInterface_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getBroadphaseArray1 as btMultiSapBroadphase_getBroadphaseArray1    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphaseInterface_ptr_'  mkBtAlignedObjectArray_btBroadphaseInterface_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_createProxy as btMultiSapBroadphase_createProxy    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_createProxy as btMultiSapBroadphase_createProxy'    `( BtMultiSapBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_printStats as btMultiSapBroadphase_printStats    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getBroadphaseAabb as btMultiSapBroadphase_getBroadphaseAabb    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_getBroadphaseAabb as btMultiSapBroadphase_getBroadphaseAabb'    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_destroyProxy as btMultiSapBroadphase_destroyProxy    `( BtMultiSapBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_sapBroadphases_set    `( BtMultiSapBroadphaseClass bc , BtAlignedObjectArray_btBroadphaseInterface_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_sapBroadphases_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btBroadphaseInterface_ptr_'  mkBtAlignedObjectArray_btBroadphaseInterface_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_simpleBroadphase_set    `( BtMultiSapBroadphaseClass bc , BtSimpleBroadphaseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_simpleBroadphase_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtSimpleBroadphase'  mkBtSimpleBroadphase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_overlappingPairs_set    `( BtMultiSapBroadphaseClass bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_overlappingPairs_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_optimizedAabbTree_set    `( BtMultiSapBroadphaseClass bc , BtQuantizedBvhClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_optimizedAabbTree_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvh'  mkBtQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_ownsPairCache_set    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_ownsPairCache_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_filterCallback_set    `( BtMultiSapBroadphaseClass bc , BtOverlapFilterCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_filterCallback_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtOverlapFilterCallback'  mkBtOverlapFilterCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_invalidPair_set    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_invalidPair_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_multiSapProxies_set    `( BtMultiSapBroadphaseClass bc , BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_m_multiSapProxies_get    `( BtMultiSapBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_'  mkBtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_* #}+-- * btMultiSapProxy+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_new as btMultiSapBroadphase_btMultiSapProxy    {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Int' , withVoidPtr* `VoidPtr' ,  `Int' ,  `Int'  } -> `BtMultiSapBroadphase_btMultiSapProxy' mkBtMultiSapBroadphase_btMultiSapProxy* #}+{#fun btMultiSapBroadphase_btMultiSapProxy_free    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_bridgeProxies_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc , BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_bridgeProxies_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_'  mkBtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_shapeType_set    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp?r=2223>+-}+{#fun btMultiSapBroadphase_btMultiSapProxy_m_shapeType_get    `( BtMultiSapBroadphase_btMultiSapProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btNodeOverlapCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btNodeOverlapCallback_processNode as btNodeOverlapCallback_processNode    `( BtNodeOverlapCallbackClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ subPart+,  `Int'  -- ^ triangleIndex+ } ->  `()'   #}+-- * btNullPairCache+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#387>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_new as btNullPairCache    {  } -> `BtNullPairCache' mkBtNullPairCache* #}+{#fun btNullPairCache_free    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_sortOverlappingPairs as btNullPairCache_sortOverlappingPairs    `( BtNullPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#439>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_setInternalGhostPairCallback as btNullPairCache_setInternalGhostPairCallback    `( BtNullPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#444>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_addOverlappingPair as btNullPairCache_addOverlappingPair    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#454>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_removeOverlappingPairsContainingProxy as btNullPairCache_removeOverlappingPairsContainingProxy    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#434>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_hasDeferredRemoval as btNullPairCache_hasDeferredRemoval    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#401>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_getOverlappingPairArray as btNullPairCache_getOverlappingPairArray    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#429>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_findPair as btNullPairCache_findPair    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#416>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_cleanProxyFromPairs as btNullPairCache_cleanProxyFromPairs    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#406>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_cleanOverlappingPair as btNullPairCache_cleanOverlappingPair    `( BtNullPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#411>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_getNumOverlappingPairs as btNullPairCache_getNumOverlappingPairs    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#449>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_removeOverlappingPair as btNullPairCache_removeOverlappingPair    `( BtNullPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+, withBt* `p2'  -- ^ arg2+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#421>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_setOverlapFilterCallback as btNullPairCache_setOverlapFilterCallback    `( BtNullPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#393>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_getOverlappingPairArrayPtr0 as btNullPairCache_getOverlappingPairArrayPtr    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#393>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_getOverlappingPairArrayPtr0 as btNullPairCache_getOverlappingPairArrayPtr0    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#397>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_getOverlappingPairArrayPtr1 as btNullPairCache_getOverlappingPairArrayPtr1    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#425>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_processAllOverlappingPairs as btNullPairCache_processAllOverlappingPairs    `( BtNullPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#389>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_m_overlappingPairArray_set    `( BtNullPairCacheClass bc , BtAlignedObjectArray_btBroadphasePair_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#389>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btNullPairCache_m_overlappingPairArray_get    `( BtNullPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+-- * btOptimizedBvhNode+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_new as btOptimizedBvhNode    {  } -> `BtOptimizedBvhNode' mkBtOptimizedBvhNode* #}+{#fun btOptimizedBvhNode_free    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_aabbMaxOrg_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_aabbMaxOrg_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_aabbMinOrg_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_aabbMinOrg_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_escapeIndex_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_escapeIndex_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_subPart_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_subPart_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_triangleIndex_set    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNode_m_triangleIndex_get    `( BtOptimizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btOptimizedBvhNodeDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#520>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_new as btOptimizedBvhNodeDoubleData    {  } -> `BtOptimizedBvhNodeDoubleData' mkBtOptimizedBvhNodeDoubleData* #}+{#fun btOptimizedBvhNodeDoubleData_free    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#521>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_aabbMinOrg_set    `( BtOptimizedBvhNodeDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#521>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_aabbMinOrg_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#522>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_aabbMaxOrg_set    `( BtOptimizedBvhNodeDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#522>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_aabbMaxOrg_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#523>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_escapeIndex_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#523>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_escapeIndex_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#524>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_subPart_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#524>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_subPart_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#525>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_triangleIndex_set    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#525>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeDoubleData_m_triangleIndex_get    `( BtOptimizedBvhNodeDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btOptimizedBvhNodeFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#510>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_new as btOptimizedBvhNodeFloatData    {  } -> `BtOptimizedBvhNodeFloatData' mkBtOptimizedBvhNodeFloatData* #}+{#fun btOptimizedBvhNodeFloatData_free    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#511>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_aabbMinOrg_set    `( BtOptimizedBvhNodeFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#511>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_aabbMinOrg_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_aabbMaxOrg_set    `( BtOptimizedBvhNodeFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_aabbMaxOrg_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#513>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_escapeIndex_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#513>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_escapeIndex_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#514>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_subPart_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#514>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_subPart_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#515>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_triangleIndex_set    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#515>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btOptimizedBvhNodeFloatData_m_triangleIndex_get    `( BtOptimizedBvhNodeFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btOverlapCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlapCallback_processOverlap as btOverlapCallback_processOverlap    `( BtOverlapCallbackClass bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pair+ } ->  `Bool'   #}+-- * btOverlapFilterCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlapFilterCallback_needBroadphaseCollision as btOverlapFilterCallback_needBroadphaseCollision    `( BtOverlapFilterCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+-- * btOverlappingPairCache+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_sortOverlappingPairs as btOverlappingPairCache_sortOverlappingPairs    `( BtOverlappingPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_setInternalGhostPairCallback as btOverlappingPairCache_setInternalGhostPairCallback    `( BtOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ghostPairCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_setOverlapFilterCallback as btOverlappingPairCache_setOverlapFilterCallback    `( BtOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_getOverlappingPairArray as btOverlappingPairCache_getOverlappingPairArray    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_findPair as btOverlappingPairCache_findPair    `( BtOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_cleanProxyFromPairs as btOverlappingPairCache_cleanProxyFromPairs    `( BtOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_cleanOverlappingPair as btOverlappingPairCache_cleanOverlappingPair    `( BtOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pair+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_getNumOverlappingPairs as btOverlappingPairCache_getNumOverlappingPairs    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_processAllOverlappingPairs as btOverlappingPairCache_processAllOverlappingPairs    `( BtOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_getOverlappingPairArrayPtr0 as btOverlappingPairCache_getOverlappingPairArrayPtr    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_getOverlappingPairArrayPtr0 as btOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_getOverlappingPairArrayPtr1 as btOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btOverlappingPairCache_hasDeferredRemoval as btOverlappingPairCache_hasDeferredRemoval    `( BtOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+-- * btOverlappingPairCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.cpp?r=2223>+-}+{#fun btOverlappingPairCallback_addOverlappingPair as btOverlappingPairCallback_addOverlappingPair    `( BtOverlappingPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.cpp?r=2223>+-}+{#fun btOverlappingPairCallback_removeOverlappingPair as btOverlappingPairCallback_removeOverlappingPair    `( BtOverlappingPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+, withBt* `p2'  -- ^ dispatcher+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.cpp?r=2223>+-}+{#fun btOverlappingPairCallback_removeOverlappingPairsContainingProxy as btOverlappingPairCallback_removeOverlappingPairsContainingProxy    `( BtOverlappingPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+-- * btQuantizedBvh+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#334>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_new0 as btQuantizedBvh0    {  } -> `BtQuantizedBvh' mkBtQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#495>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_new1 as btQuantizedBvh1    `( BtQuantizedBvhClass p0 )' =>     {  withBt* `p0' ,  `Bool'  } -> `BtQuantizedBvh' mkBtQuantizedBvh* #}+{#fun btQuantizedBvh_free    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_calcSplittingAxis as btQuantizedBvh_calcSplittingAxis    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_buildInternal as btQuantizedBvh_buildInternal    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_serialize0 as btQuantizedBvh_serialize    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ o_alignedDataBuffer+,  `Word32'  -- ^ i_dataBufferSize+,  `Bool'  -- ^ i_swapEndian+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_serialize0 as btQuantizedBvh_serialize0    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ o_alignedDataBuffer+,  `Word32'  -- ^ i_dataBufferSize+,  `Bool'  -- ^ i_swapEndian+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_serialize1 as btQuantizedBvh_serialize1    `( BtQuantizedBvhClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#481>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_deSerializeDouble as btQuantizedBvh_deSerializeDouble    `( BtQuantizedBvhClass bc , BtQuantizedBvhDoubleDataClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ quantizedBvhDoubleData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setQuantizationValues as btQuantizedBvh_setQuantizationValues    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMin+, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMax+,  `Float'  -- ^ quantizationMargin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setQuantizationValues as btQuantizedBvh_setQuantizationValues'    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMax+,  `Float'  -- ^ quantizationMargin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#479>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_deSerializeFloat as btQuantizedBvh_deSerializeFloat    `( BtQuantizedBvhClass bc , BtQuantizedBvhFloatDataClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ quantizedBvhFloatData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#214>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setInternalNodeAabbMin as btQuantizedBvh_setInternalNodeAabbMin    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#214>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setInternalNodeAabbMin as btQuantizedBvh_setInternalNodeAabbMin'    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#486>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_isQuantized as btQuantizedBvh_isQuantized    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#470>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getAlignmentSerializationPadding as btQuantizedBvh_getAlignmentSerializationPadding    `( )' =>     {  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_calculateSerializeBufferSize as btQuantizedBvh_calculateSerializeBufferSize    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_sortAndCalcSplittingIndex as btQuantizedBvh_sortAndCalcSplittingIndex    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+,  `Int'  -- ^ splitAxis+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#346>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportAabbOverlappingNodex as btQuantizedBvh_reportAabbOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#346>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportAabbOverlappingNodex as btQuantizedBvh_reportAabbOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#296>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_swapLeafNodes as btQuantizedBvh_swapLeafNodes    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ firstIndex+,  `Int'  -- ^ secondIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#448>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getQuantizedNodeArray as btQuantizedBvh_getQuantizedNodeArray    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btQuantizedBvhNode_'  mkBtAlignedObjectArray_btQuantizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_buildTree as btQuantizedBvh_buildTree    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#347>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportRayOverlappingNodex as btQuantizedBvh_reportRayOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ raySource+, withVec3* `Vec3'  peekVec3* -- ^ rayTarget+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#347>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportRayOverlappingNodex as btQuantizedBvh_reportRayOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ raySource+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTarget+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessTree as btQuantizedBvh_walkStacklessTree    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessTree as btQuantizedBvh_walkStacklessTree'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessQuantizedTreeAgainstRay as btQuantizedBvh_walkStacklessQuantizedTreeAgainstRay    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ raySource+, withVec3* `Vec3'  peekVec3* -- ^ rayTarget+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ startNodeIndex+,  `Int'  -- ^ endNodeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessQuantizedTreeAgainstRay as btQuantizedBvh_walkStacklessQuantizedTreeAgainstRay'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ raySource+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTarget+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ startNodeIndex+,  `Int'  -- ^ endNodeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#328>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_updateSubtreeHeaders as btQuantizedBvh_updateSubtreeHeaders    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ leftChildNodexIndex+,  `Int'  -- ^ rightChildNodexIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#468>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_deSerializeInPlace as btQuantizedBvh_deSerializeInPlace    `( )' =>     {  withVoidPtr* `VoidPtr'  -- ^ i_alignedDataBuffer+,  `Word32'  -- ^ i_dataBufferSize+,  `Bool'  -- ^ i_swapEndian+ } ->  `BtQuantizedBvh'  mkBtQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_mergeInternalNodeAabb as btQuantizedBvh_mergeInternalNodeAabb    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, withVec3* `Vec3'  peekVec3* -- ^ newAabbMin+, withVec3* `Vec3'  peekVec3* -- ^ newAabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_mergeInternalNodeAabb as btQuantizedBvh_mergeInternalNodeAabb'    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, allocaVec3-  `Vec3'  peekVec3* -- ^ newAabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ newAabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getAabbMin as btQuantizedBvh_getAabbMin    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessTreeAgainstRay as btQuantizedBvh_walkStacklessTreeAgainstRay    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ raySource+, withVec3* `Vec3'  peekVec3* -- ^ rayTarget+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ startNodeIndex+,  `Int'  -- ^ endNodeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_walkStacklessTreeAgainstRay as btQuantizedBvh_walkStacklessTreeAgainstRay'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ raySource+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTarget+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ startNodeIndex+,  `Int'  -- ^ endNodeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getLeafNodeArray as btQuantizedBvh_getLeafNodeArray    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btQuantizedBvhNode_'  mkBtAlignedObjectArray_btQuantizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#572>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_calculateSerializeBufferSizeNew as btQuantizedBvh_calculateSerializeBufferSizeNew    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setInternalNodeEscapeIndex as btQuantizedBvh_setInternalNodeEscapeIndex    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+,  `Int'  -- ^ escapeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getAabbMax as btQuantizedBvh_getAabbMax    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#454>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_getSubtreeInfoArray as btQuantizedBvh_getSubtreeInfoArray    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBvhSubtreeInfo_'  mkBtAlignedObjectArray_btBvhSubtreeInfo_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setInternalNodeAabbMax as btQuantizedBvh_setInternalNodeAabbMax    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_setInternalNodeAabbMax as btQuantizedBvh_setInternalNodeAabbMax'    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeIndex+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportBoxCastOverlappingNodex as btQuantizedBvh_reportBoxCastOverlappingNodex    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, withVec3* `Vec3'  peekVec3* -- ^ raySource+, withVec3* `Vec3'  peekVec3* -- ^ rayTarget+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_reportBoxCastOverlappingNodex as btQuantizedBvh_reportBoxCastOverlappingNodex'    `( BtQuantizedBvhClass bc , BtNodeOverlapCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ nodeCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ raySource+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTarget+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_assignInternalNodeFromLeafNode as btQuantizedBvh_assignInternalNodeFromLeafNode    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ internalNode+,  `Int'  -- ^ leafNodeIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_SubtreeHeaders_set    `( BtQuantizedBvhClass bc , BtAlignedObjectArray_btBvhSubtreeInfo_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_SubtreeHeaders_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btBvhSubtreeInfo_'  mkBtAlignedObjectArray_btBvhSubtreeInfo_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bulletVersion_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bulletVersion_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhAabbMax_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhAabbMax_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhAabbMin_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhAabbMin_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhQuantization_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_bvhQuantization_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_contiguousNodes_set    `( BtQuantizedBvhClass bc , BtAlignedObjectArray_btOptimizedBvhNode_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_contiguousNodes_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btOptimizedBvhNode_'  mkBtAlignedObjectArray_btOptimizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#191>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_curNodeIndex_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#191>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_curNodeIndex_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_leafNodes_set    `( BtQuantizedBvhClass bc , BtAlignedObjectArray_btOptimizedBvhNode_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_leafNodes_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btOptimizedBvhNode_'  mkBtAlignedObjectArray_btOptimizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_quantizedContiguousNodes_set    `( BtQuantizedBvhClass bc , BtAlignedObjectArray_btQuantizedBvhNode_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_quantizedContiguousNodes_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btQuantizedBvhNode_'  mkBtAlignedObjectArray_btQuantizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_quantizedLeafNodes_set    `( BtQuantizedBvhClass bc , BtAlignedObjectArray_btQuantizedBvhNode_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_quantizedLeafNodes_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btQuantizedBvhNode_'  mkBtAlignedObjectArray_btQuantizedBvhNode_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_subtreeHeaderCount_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_subtreeHeaderCount_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_useQuantization_set    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvh_m_useQuantization_get    `( BtQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btQuantizedBvhDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#555>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_new as btQuantizedBvhDoubleData    {  } -> `BtQuantizedBvhDoubleData' mkBtQuantizedBvhDoubleData* #}+{#fun btQuantizedBvhDoubleData_free    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#557>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhAabbMax_set    `( BtQuantizedBvhDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#557>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhAabbMax_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#556>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhAabbMin_set    `( BtQuantizedBvhDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#556>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhAabbMin_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#558>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhQuantization_set    `( BtQuantizedBvhDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#558>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_bvhQuantization_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#563>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_contiguousNodesPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtOptimizedBvhNodeDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#563>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_contiguousNodesPtr_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtOptimizedBvhNodeDoubleData'  mkBtOptimizedBvhNodeDoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#559>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_curNodeIndex_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#559>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_curNodeIndex_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numContiguousLeafNodes_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numContiguousLeafNodes_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#562>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#562>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numSubtreeHeaders_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_numSubtreeHeaders_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#564>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtQuantizedBvhNodeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#564>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhNodeData'  mkBtQuantizedBvhNodeData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#568>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_subTreeInfoPtr_set    `( BtQuantizedBvhDoubleDataClass bc , BtBvhSubtreeInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#568>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_subTreeInfoPtr_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtBvhSubtreeInfoData'  mkBtBvhSubtreeInfoData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_traversalMode_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_traversalMode_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#560>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_useQuantization_set    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#560>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhDoubleData_m_useQuantization_get    `( BtQuantizedBvhDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btQuantizedBvhFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#538>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_new as btQuantizedBvhFloatData    {  } -> `BtQuantizedBvhFloatData' mkBtQuantizedBvhFloatData* #}+{#fun btQuantizedBvhFloatData_free    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#540>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhAabbMax_set    `( BtQuantizedBvhFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#540>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhAabbMax_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhAabbMin_set    `( BtQuantizedBvhFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhAabbMin_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhQuantization_set    `( BtQuantizedBvhFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_bvhQuantization_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#546>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_contiguousNodesPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtOptimizedBvhNodeFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#546>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_contiguousNodesPtr_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtOptimizedBvhNodeFloatData'  mkBtOptimizedBvhNodeFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_curNodeIndex_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_curNodeIndex_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#544>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numContiguousLeafNodes_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#544>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numContiguousLeafNodes_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#545>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#545>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#550>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numSubtreeHeaders_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#550>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_numSubtreeHeaders_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#547>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtQuantizedBvhNodeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#547>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhNodeData'  mkBtQuantizedBvhNodeData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#548>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_subTreeInfoPtr_set    `( BtQuantizedBvhFloatDataClass bc , BtBvhSubtreeInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#548>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_subTreeInfoPtr_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtBvhSubtreeInfoData'  mkBtBvhSubtreeInfoData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#549>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_traversalMode_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#549>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_traversalMode_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#543>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_useQuantization_set    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#543>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhFloatData_m_useQuantization_get    `( BtQuantizedBvhFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btQuantizedBvhNode+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_new as btQuantizedBvhNode    {  } -> `BtQuantizedBvhNode' mkBtQuantizedBvhNode* #}+{#fun btQuantizedBvhNode_free    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_getEscapeIndex as btQuantizedBvhNode_getEscapeIndex    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_getTriangleIndex as btQuantizedBvhNode_getTriangleIndex    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_getPartId as btQuantizedBvhNode_getPartId    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_isLeafNode as btQuantizedBvhNode_isLeafNode    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_set    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_get    `( BtQuantizedBvhNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btQuantizedBvhNodeData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#531>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNodeData_new as btQuantizedBvhNodeData    {  } -> `BtQuantizedBvhNodeData' mkBtQuantizedBvhNodeData* #}+{#fun btQuantizedBvhNodeData_free    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#534>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_set    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.h?r=2223#534>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_get    `( BtQuantizedBvhNodeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btSimpleBroadphase+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_new as btSimpleBroadphase    `( BtOverlappingPairCacheClass p1 )' =>     {   `Int' , withBt* `p1'  } -> `BtSimpleBroadphase' mkBtSimpleBroadphase* #}+{#fun btSimpleBroadphase_free    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getOverlappingPairCache0 as btSimpleBroadphase_getOverlappingPairCache    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getOverlappingPairCache0 as btSimpleBroadphase_getOverlappingPairCache0    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getOverlappingPairCache1 as btSimpleBroadphase_getOverlappingPairCache1    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_rayTest as btSimpleBroadphase_rayTest    `( BtSimpleBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_rayTest as btSimpleBroadphase_rayTest'    `( BtSimpleBroadphaseClass bc , BtBroadphaseRayCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ rayCallback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_setAabb as btSimpleBroadphase_setAabb    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_setAabb as btSimpleBroadphase_setAabb'    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p3'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_allocHandle as btSimpleBroadphase_allocHandle    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_resetPool as btSimpleBroadphase_resetPool    `( BtSimpleBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_testAabbOverlap as btSimpleBroadphase_testAabbOverlap    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_calculateOverlappingPairs as btSimpleBroadphase_calculateOverlappingPairs    `( BtSimpleBroadphaseClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_freeHandle as btSimpleBroadphase_freeHandle    `( BtSimpleBroadphaseClass bc , BtSimpleBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#161>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_printStats as btSimpleBroadphase_printStats    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getAabb as btSimpleBroadphase_getAabb    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getAabb as btSimpleBroadphase_getAabb'    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_aabbTest as btSimpleBroadphase_aabbTest    `( BtSimpleBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_aabbTest as btSimpleBroadphase_aabbTest'    `( BtSimpleBroadphaseClass bc , BtBroadphaseAabbCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+, withBt* `p2'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_createProxy as btSimpleBroadphase_createProxy    `( BtSimpleBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_createProxy as btSimpleBroadphase_createProxy'    `( BtSimpleBroadphaseClass bc , BtDispatcherClass p6 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Int'  -- ^ shapeType+, withVoidPtr* `VoidPtr'  -- ^ userPtr+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+, withBt* `p6'  -- ^ dispatcher+, withVoidPtr* `VoidPtr'  -- ^ multiSapProxy+ } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getSimpleProxyFromProxy0 as btSimpleBroadphase_getSimpleProxyFromProxy    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+ } ->  `BtSimpleBroadphaseProxy'  mkBtSimpleBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getSimpleProxyFromProxy0 as btSimpleBroadphase_getSimpleProxyFromProxy0    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+ } ->  `BtSimpleBroadphaseProxy'  mkBtSimpleBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getSimpleProxyFromProxy1 as btSimpleBroadphase_getSimpleProxyFromProxy1    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+ } ->  `BtSimpleBroadphaseProxy'  mkBtSimpleBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_validate as btSimpleBroadphase_validate    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_aabbOverlap as btSimpleBroadphase_aabbOverlap    `(  BtSimpleBroadphaseProxyClass p0 , BtSimpleBroadphaseProxyClass p1 )' =>     {  withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getBroadphaseAabb as btSimpleBroadphase_getBroadphaseAabb    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_getBroadphaseAabb as btSimpleBroadphase_getBroadphaseAabb'    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_destroyProxy as btSimpleBroadphase_destroyProxy    `( BtSimpleBroadphaseClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_LastHandleIndex_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_LastHandleIndex_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_firstFreeHandle_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_firstFreeHandle_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_invalidPair_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_invalidPair_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_maxHandles_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_maxHandles_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_numHandles_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_numHandles_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_ownsPairCache_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_ownsPairCache_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pHandles_set    `( BtSimpleBroadphaseClass bc , BtSimpleBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pHandles_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtSimpleBroadphaseProxy'  mkBtSimpleBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pHandlesRawPtr_set    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pHandlesRawPtr_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pairCache_set    `( BtSimpleBroadphaseClass bc , BtOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphase_m_pairCache_get    `( BtSimpleBroadphaseClass bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+-- * btSimpleBroadphaseProxy+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_new0 as btSimpleBroadphaseProxy0    {  } -> `BtSimpleBroadphaseProxy' mkBtSimpleBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_new1 as btSimpleBroadphaseProxy1    {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Int' , withVoidPtr* `VoidPtr' ,  `Int' ,  `Int' , withVoidPtr* `VoidPtr'  } -> `BtSimpleBroadphaseProxy' mkBtSimpleBroadphaseProxy* #}+{#fun btSimpleBroadphaseProxy_free    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_GetNextFree as btSimpleBroadphaseProxy_GetNextFree    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_SetNextFree as btSimpleBroadphaseProxy_SetNextFree    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ next+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_m_nextFree_set    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp?r=2223>+-}+{#fun btSimpleBroadphaseProxy_m_nextFree_get    `( BtSimpleBroadphaseProxyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btSortedOverlappingPairCache+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#300>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_new as btSortedOverlappingPairCache    {  } -> `BtSortedOverlappingPairCache' mkBtSortedOverlappingPairCache* #}+{#fun btSortedOverlappingPairCache_free    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#378>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_sortOverlappingPairs as btSortedOverlappingPairCache_sortOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc , BtDispatcherClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#373>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_setInternalGhostPairCallback as btSortedOverlappingPairCache_setInternalGhostPairCallback    `( BtSortedOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ghostPairCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#358>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlapFilterCallback as btSortedOverlappingPairCache_getOverlapFilterCallback    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlapFilterCallback'  mkBtOverlapFilterCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_addOverlappingPair as btSortedOverlappingPairCache_addOverlappingPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#316>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy as btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_needsBroadphaseCollision as btSortedOverlappingPairCache_needsBroadphaseCollision    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#368>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_hasDeferredRemoval as btSortedOverlappingPairCache_hasDeferredRemoval    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArray0 as btSortedOverlappingPairCache_getOverlappingPairArray    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArray0 as btSortedOverlappingPairCache_getOverlappingPairArray0    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArray1 as btSortedOverlappingPairCache_getOverlappingPairArray1    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_findPair as btSortedOverlappingPairCache_findPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_cleanProxyFromPairs as btSortedOverlappingPairCache_cleanProxyFromPairs    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_cleanOverlappingPair as btSortedOverlappingPairCache_cleanOverlappingPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphasePairClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pair+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#353>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getNumOverlappingPairs as btSortedOverlappingPairCache_getNumOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_removeOverlappingPair as btSortedOverlappingPairCache_removeOverlappingPair    `( BtSortedOverlappingPairCacheClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+, withBt* `p2'  -- ^ dispatcher+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_processAllOverlappingPairs as btSortedOverlappingPairCache_processAllOverlappingPairs    `( BtSortedOverlappingPairCacheClass bc , BtOverlapCallbackClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr0 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr0 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr0    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_getOverlappingPairArrayPtr1 as btSortedOverlappingPairCache_getOverlappingPairArrayPtr1    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#363>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_setOverlapFilterCallback as btSortedOverlappingPairCache_setOverlapFilterCallback    `( BtSortedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_overlappingPairArray_set    `( BtSortedOverlappingPairCacheClass bc , BtAlignedObjectArray_btBroadphasePair_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_overlappingPairArray_get    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btBroadphasePair_'  mkBtAlignedObjectArray_btBroadphasePair_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_blockedForChanges_set    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_blockedForChanges_get    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_hasDeferredRemoval_set    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_hasDeferredRemoval_get    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_overlapFilterCallback_set    `( BtSortedOverlappingPairCacheClass bc , BtOverlapFilterCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_overlapFilterCallback_get    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtOverlapFilterCallback'  mkBtOverlapFilterCallback* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#296>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_ghostPairCallback_set    `( BtSortedOverlappingPairCacheClass bc , BtOverlappingPairCallbackClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h?r=2223#296>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp?r=2223>+-}+{#fun btSortedOverlappingPairCache_m_ghostPairCallback_get    `( BtSortedOverlappingPairCacheClass bc )' =>     { withBt* `bc'  } ->  `BtOverlappingPairCallback'  mkBtOverlappingPairCallback* #}+-- * sStkCLN+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#218>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkCLN_new as btDbvt_sStkCLN    `( BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtDbvt_sStkCLN' mkBtDbvt_sStkCLN* #}+{#fun btDbvt_sStkCLN_free    `( BtDbvt_sStkCLNClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkCLN_node_set    `( BtDbvt_sStkCLNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkCLN_node_get    `( BtDbvt_sStkCLNClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkCLN_parent_set    `( BtDbvt_sStkCLNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkCLN_parent_get    `( BtDbvt_sStkCLNClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+-- * sStkNN+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_new0 as btDbvt_sStkNN0    {  } -> `BtDbvt_sStkNN' mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_new1 as btDbvt_sStkNN1    `( BtDbvtNodeClass p0 , BtDbvtNodeClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtDbvt_sStkNN' mkBtDbvt_sStkNN* #}+{#fun btDbvt_sStkNN_free    `( BtDbvt_sStkNNClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_a_set    `( BtDbvt_sStkNNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_a_get    `( BtDbvt_sStkNNClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#196>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_b_set    `( BtDbvt_sStkNNClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#196>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNN_b_get    `( BtDbvt_sStkNNClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+-- * sStkNP+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#204>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNP_new as btDbvt_sStkNP    `( BtDbvtNodeClass p0 )' =>     {  withBt* `p0' ,  `Word32'  } -> `BtDbvt_sStkNP' mkBtDbvt_sStkNP* #}+{#fun btDbvt_sStkNP_free    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNP_mask_set    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNP_mask_get    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNP_node_set    `( BtDbvt_sStkNPClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNP_node_get    `( BtDbvt_sStkNPClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+-- * sStkNPS+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_new0 as btDbvt_sStkNPS0    {  } -> `BtDbvt_sStkNPS' mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#212>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_new1 as btDbvt_sStkNPS1    `( BtDbvtNodeClass p0 )' =>     {  withBt* `p0' ,  `Word32' ,  `Float'  } -> `BtDbvt_sStkNPS' mkBtDbvt_sStkNPS* #}+{#fun btDbvt_sStkNPS_free    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_mask_set    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_mask_get    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_node_set    `( BtDbvt_sStkNPSClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223>+-}+{#fun btDbvt_sStkNPS_node_get    `( BtDbvt_sStkNPSClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.h?r=2223#210>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/BroadphaseCollision/btDbvt.cpp?r=2223> -}
Physics/Bullet/Raw/BulletCollision/CollisionDispatch.chs view
@@ -14,1637 +14,2650 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#269>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223> -}-{#fun btCollisionWorld_AllHitsRayResultCallback_new as btCollisionWorld_AllHitsRayResultCallback    {  withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtCollisionWorld_AllHitsRayResultCallback' mkBtCollisionWorld_AllHitsRayResultCallback* #}-{#fun btCollisionWorld_AllHitsRayResultCallback_free    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#284>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_AllHitsRayResultCallback_addSingleResult as btCollisionWorld_AllHitsRayResultCallback_addSingleResult    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ rayResult-,  `Bool'  -- ^ normalInWorldSpace- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#278>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#278>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * ClosestConvexResultCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#367>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_new as btCollisionWorld_ClosestConvexResultCallback    {  withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtCollisionWorld_ClosestConvexResultCallback' mkBtCollisionWorld_ClosestConvexResultCallback* #}-{#fun btCollisionWorld_ClosestConvexResultCallback_free    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#381>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_addSingleResult as btCollisionWorld_ClosestConvexResultCallback_addSingleResult    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc , BtCollisionWorld_LocalConvexResultClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ convexResult-,  `Bool'  -- ^ normalInWorldSpace- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#374>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#374>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#379>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#378>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#378>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * ClosestRayResultCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_new as btCollisionWorld_ClosestRayResultCallback    {  withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtCollisionWorld_ClosestRayResultCallback' mkBtCollisionWorld_ClosestRayResultCallback* #}-{#fun btCollisionWorld_ClosestRayResultCallback_free    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#247>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_addSingleResult as btCollisionWorld_ClosestRayResultCallback_addSingleResult    `( BtCollisionWorld_ClosestRayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ rayResult-,  `Bool'  -- ^ normalInWorldSpace- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#245>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#245>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#242>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#242>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * ContactResultCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#424>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_addSingleResult as btCollisionWorld_ContactResultCallback_addSingleResult    `( BtCollisionWorld_ContactResultCallbackClass bc , BtManifoldPointClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p4 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ cp-, withBt* `p1'  -- ^ colObj0-,  `Int'  -- ^ partId0-,  `Int'  -- ^ index0-, withBt* `p4'  -- ^ colObj1-,  `Int'  -- ^ partId1-,  `Int'  -- ^ index1- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#417>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_needsCollision as btCollisionWorld_ContactResultCallback_needsCollision    `( BtCollisionWorld_ContactResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#404>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#404>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#405>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#405>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * ConvexResultCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#362>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_addSingleResult as btCollisionWorld_ConvexResultCallback_addSingleResult    `( BtCollisionWorld_ConvexResultCallbackClass bc , BtCollisionWorld_LocalConvexResultClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ convexResult-,  `Bool'  -- ^ normalInWorldSpace- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#355>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_needsCollision as btCollisionWorld_ConvexResultCallback_needsCollision    `( BtCollisionWorld_ConvexResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#348>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_hasHit as btCollisionWorld_ConvexResultCallback_hasHit    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_closestHitFraction_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_closestHitFraction_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#334>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#334>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * CreateFunc-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_CreateFunc_new as btSphereSphereCollisionAlgorithm_CreateFunc    {  } -> `BtSphereSphereCollisionAlgorithm_CreateFunc' mkBtSphereSphereCollisionAlgorithm_CreateFunc* #}-{#fun btSphereSphereCollisionAlgorithm_CreateFunc_free    `( BtSphereSphereCollisionAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm as btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtSphereSphereCollisionAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ci-, withBt* `p1'  -- ^ body0-, withBt* `p2'  -- ^ body1- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}--- * CreateFunc-{#fun btConvexConvexAlgorithm_CreateFunc_free    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#99>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm as btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtConvexConvexAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ci-, withBt* `p1'  -- ^ body0-, withBt* `p2'  -- ^ body1- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#91>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc , BtVoronoiSimplexSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_get    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#93>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#93>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_get    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * LocalConvexResult-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#314>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_new as btCollisionWorld_LocalConvexResult    `( BtCollisionObjectClass p0 , BtCollisionWorld_LocalShapeInfoClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Float'  } -> `BtCollisionWorld_LocalConvexResult' mkBtCollisionWorld_LocalConvexResult* #}-{#fun btCollisionWorld_LocalConvexResult_free    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#323>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitCollisionObject_set    `( BtCollisionWorld_LocalConvexResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitFraction_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitFraction_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#325>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitNormalLocal_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#325>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitNormalLocal_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#326>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitPointLocal_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#326>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_hitPointLocal_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#324>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalConvexResult_m_localShapeInfo_set    `( BtCollisionWorld_LocalConvexResultClass bc , BtCollisionWorld_LocalShapeInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * LocalRayResult-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#179>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_new as btCollisionWorld_LocalRayResult    `( BtCollisionObjectClass p0 , BtCollisionWorld_LocalShapeInfoClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' ,  `Float'  } -> `BtCollisionWorld_LocalRayResult' mkBtCollisionWorld_LocalRayResult* #}-{#fun btCollisionWorld_LocalRayResult_free    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#187>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_collisionObject_set    `( BtCollisionWorld_LocalRayResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_hitFraction_set    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_hitFraction_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_hitNormalLocal_set    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_hitNormalLocal_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#188>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalRayResult_m_localShapeInfo_set    `( BtCollisionWorld_LocalRayResultClass bc , BtCollisionWorld_LocalShapeInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * LocalShapeInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalShapeInfo_new as btCollisionWorld_LocalShapeInfo    {  } -> `BtCollisionWorld_LocalShapeInfo' mkBtCollisionWorld_LocalShapeInfo* #}-{#fun btCollisionWorld_LocalShapeInfo_free    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#167>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalShapeInfo_m_shapePart_set    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#167>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalShapeInfo_m_shapePart_get    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalShapeInfo_m_triangleIndex_set    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_LocalShapeInfo_m_triangleIndex_get    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * RayResultCallback-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_addSingleResult as btCollisionWorld_RayResultCallback_addSingleResult    `( BtCollisionWorld_RayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ rayResult-,  `Bool'  -- ^ normalInWorldSpace- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_needsCollision as btCollisionWorld_RayResultCallback_needsCollision    `( BtCollisionWorld_RayResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ proxy0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#207>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_hasHit as btCollisionWorld_RayResultCallback_hasHit    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#197>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_closestHitFraction_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#197>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_closestHitFraction_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#198>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_collisionObject_set    `( BtCollisionWorld_RayResultCallbackClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#202>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_flags_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#202>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_RayResultCallback_m_flags_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}--- * btActivatingCollisionAlgorithm--- * btCollisionAlgorithmCreateFunc-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#30>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>--}-{#fun btCollisionAlgorithmCreateFunc_new as btCollisionAlgorithmCreateFunc    {  } -> `BtCollisionAlgorithmCreateFunc' mkBtCollisionAlgorithmCreateFunc* #}-{#fun btCollisionAlgorithmCreateFunc_free    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>--}-{#fun btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm as btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm    `( BtCollisionAlgorithmCreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ body0-, withBt* `p2'  -- ^ body1- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>--}-{#fun btCollisionAlgorithmCreateFunc_m_swapped_set    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>--}-{#fun btCollisionAlgorithmCreateFunc_m_swapped_get    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * btCollisionConfiguration-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.cpp?r=2223>--}-{#fun btCollisionConfiguration_getStackAllocator as btCollisionConfiguration_getStackAllocator    `( BtCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStackAlloc' mkBtStackAlloc*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.cpp?r=2223>--}-{#fun btCollisionConfiguration_getCollisionAlgorithmCreateFunc as btCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ proxyType0-,  `Int'  -- ^ proxyType1- } ->  `BtCollisionAlgorithmCreateFunc' mkBtCollisionAlgorithmCreateFunc*  #}--- * btCollisionDispatcher-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_new as btCollisionDispatcher    `( BtCollisionConfigurationClass p0 )' =>     {  withBt* `p0'  } -> `BtCollisionDispatcher' mkBtCollisionDispatcher* #}-{#fun btCollisionDispatcher_free    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getDispatcherFlags as btCollisionDispatcher_getDispatcherFlags    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getCollisionConfiguration0 as btCollisionDispatcher_getCollisionConfiguration    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionConfiguration' mkBtCollisionConfiguration*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getCollisionConfiguration0 as btCollisionDispatcher_getCollisionConfiguration0    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionConfiguration' mkBtCollisionConfiguration*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getCollisionConfiguration1 as btCollisionDispatcher_getCollisionConfiguration1    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionConfiguration' mkBtCollisionConfiguration*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_setDispatcherFlags as btCollisionDispatcher_setDispatcherFlags    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ flags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_releaseManifold as btCollisionDispatcher_releaseManifold    `( BtCollisionDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ manifold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#154>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_setCollisionConfiguration as btCollisionDispatcher_setCollisionConfiguration    `( BtCollisionDispatcherClass bc , BtCollisionConfigurationClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ config- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getNumManifolds as btCollisionDispatcher_getNumManifolds    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_clearManifold as btCollisionDispatcher_clearManifold    `( BtCollisionDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ manifold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_registerCollisionCreateFunc as btCollisionDispatcher_registerCollisionCreateFunc    `( BtCollisionDispatcherClass bc , BtCollisionAlgorithmCreateFuncClass p2 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ proxyType0-,  `Int'  -- ^ proxyType1-, withBt* `p2'  -- ^ createFunc- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_defaultNearCallback as btCollisionDispatcher_defaultNearCallback    `(  BtBroadphasePairClass p0 , BtCollisionDispatcherClass p1 , BtDispatcherInfoClass p2 )' =>     {  withBt* `p0'  -- ^ collisionPair-, withBt* `p1'  -- ^ dispatcher-, withBt* `p2'  -- ^ dispatchInfo- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_findAlgorithm as btCollisionDispatcher_findAlgorithm    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtPersistentManifoldClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ sharedManifold- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_needsResponse as btCollisionDispatcher_needsResponse    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#125>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_dispatchAllCollisionPairs as btCollisionDispatcher_dispatchAllCollisionPairs    `( BtCollisionDispatcherClass bc , BtOverlappingPairCacheClass p0 , BtDispatcherInfoClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pairCache-, withBt* `p1'  -- ^ dispatchInfo-, withBt* `p2'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_needsCollision as btCollisionDispatcher_needsCollision    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getManifoldByIndexInternal0 as btCollisionDispatcher_getManifoldByIndexInternal    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getManifoldByIndexInternal0 as btCollisionDispatcher_getManifoldByIndexInternal0    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>--}-{#fun btCollisionDispatcher_getManifoldByIndexInternal1 as btCollisionDispatcher_getManifoldByIndexInternal1    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}--- * btCollisionObject-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_new as btCollisionObject    {  } -> `BtCollisionObject' mkBtCollisionObject* #}-{#fun btCollisionObject_free    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCcdSquareMotionThreshold as btCollisionObject_getCcdSquareMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_activate as btCollisionObject_activate    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ forceActivation- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationLinearVelocity as btCollisionObject_setInterpolationLinearVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linvel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationLinearVelocity as btCollisionObject_setInterpolationLinearVelocity'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linvel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getFriction as btCollisionObject_getFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#367>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setCompanionId as btCollisionObject_setCompanionId    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ id- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationAngularVelocity as btCollisionObject_setInterpolationAngularVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angvel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationAngularVelocity as btCollisionObject_setInterpolationAngularVelocity'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angvel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setWorldTransform as btCollisionObject_setWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setWorldTransform as btCollisionObject_setWorldTransform'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#362>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCompanionId as btCollisionObject_getCompanionId    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setContactProcessingThreshold as btCollisionObject_setContactProcessingThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ contactProcessingThreshold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationWorldTransform as btCollisionObject_setInterpolationWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setInterpolationWorldTransform as btCollisionObject_setInterpolationWorldTransform'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#342>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInterpolationLinearVelocity as btCollisionObject_getInterpolationLinearVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_mergesSimulationIslands as btCollisionObject_mergesSimulationIslands    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setCollisionShape as btCollisionObject_setCollisionShape    `( BtCollisionObjectClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionShape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#418>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setCcdMotionThreshold as btCollisionObject_setCcdMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ ccdMotionThreshold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#352>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getIslandTag as btCollisionObject_getIslandTag    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#517>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_calculateSerializeBufferSize as btCollisionObject_calculateSerializeBufferSize    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#405>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCcdMotionThreshold as btCollisionObject_getCcdMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#436>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_checkCollideWith as btCollisionObject_checkCollideWith    `( BtCollisionObjectClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ co- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getAnisotropicFriction as btCollisionObject_getAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#347>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInterpolationAngularVelocity as btCollisionObject_getInterpolationAngularVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#253>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_forceActivationState as btCollisionObject_forceActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ newState- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#171>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_isStaticObject as btCollisionObject_isStaticObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#270>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setFriction as btCollisionObject_setFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ frict- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInterpolationWorldTransform0 as btCollisionObject_getInterpolationWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInterpolationWorldTransform0 as btCollisionObject_getInterpolationWorldTransform0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInterpolationWorldTransform1 as btCollisionObject_getInterpolationWorldTransform1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#357>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setIslandTag as btCollisionObject_setIslandTag    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ tag- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setHitFraction as btCollisionObject_setHitFraction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ hitFraction- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#449>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_serializeSingleObject as btCollisionObject_serializeSingleObject    `( BtCollisionObjectClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#383>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCollisionFlags as btCollisionObject_getCollisionFlags    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getDeactivationTime as btCollisionObject_getDeactivationTime    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCollisionShape0 as btCollisionObject_getCollisionShape    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCollisionShape0 as btCollisionObject_getCollisionShape0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCollisionShape1 as btCollisionObject_getCollisionShape1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setAnisotropicFriction as btCollisionObject_setAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ anisotropicFriction- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setAnisotropicFriction as btCollisionObject_setAnisotropicFriction'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ anisotropicFriction- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#301>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getBroadphaseHandle0 as btCollisionObject_getBroadphaseHandle    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#301>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getBroadphaseHandle0 as btCollisionObject_getBroadphaseHandle0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#306>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getBroadphaseHandle1 as btCollisionObject_getBroadphaseHandle1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#400>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setCcdSweptSphereRadius as btCollisionObject_setCcdSweptSphereRadius    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getWorldTransform0 as btCollisionObject_getWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getWorldTransform0 as btCollisionObject_getWorldTransform0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#290>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getWorldTransform1 as btCollisionObject_getWorldTransform1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#388>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setCollisionFlags as btCollisionObject_setCollisionFlags    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ flags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_internalSetTemporaryCollisionShape as btCollisionObject_internalSetTemporaryCollisionShape    `( BtCollisionObjectClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionShape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#372>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getHitFraction as btCollisionObject_getHitFraction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#257>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_isActive as btCollisionObject_isActive    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#242>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setActivationState as btCollisionObject_setActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ newState- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getInternalType as btCollisionObject_getInternalType    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#240>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getActivationState as btCollisionObject_getActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#185>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_hasContactResponse as btCollisionObject_hasContactResponse    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#210>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getRootCollisionShape0 as btCollisionObject_getRootCollisionShape    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#210>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getRootCollisionShape0 as btCollisionObject_getRootCollisionShape0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#215>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getRootCollisionShape1 as btCollisionObject_getRootCollisionShape1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getRestitution as btCollisionObject_getRestitution    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#394>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getCcdSweptSphereRadius as btCollisionObject_getCcdSweptSphereRadius    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_getContactProcessingThreshold as btCollisionObject_getContactProcessingThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setDeactivationTime as btCollisionObject_setDeactivationTime    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ time- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#180>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_isStaticOrKinematicObject as btCollisionObject_isStaticOrKinematicObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setRestitution as btCollisionObject_setRestitution    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ rest- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#155>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_hasAnisotropicFriction as btCollisionObject_hasAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#311>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_setBroadphaseHandle as btCollisionObject_setBroadphaseHandle    `( BtCollisionObjectClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ handle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#175>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObject_isKinematicObject as btCollisionObject_isKinematicObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}--- * btCollisionObjectDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#455>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_new as btCollisionObjectDoubleData    {  } -> `BtCollisionObjectDoubleData' mkBtCollisionObjectDoubleData* #}-{#fun btCollisionObjectDoubleData_free    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#478>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_activationState1_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#478>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_activationState1_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#472>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_ccdMotionThreshold_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#472>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_ccdMotionThreshold_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_ccdSweptSphereRadius_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_ccdSweptSphereRadius_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#480>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_checkCollideWith_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#480>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_checkCollideWith_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#475>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_collisionFlags_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#475>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_collisionFlags_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_companionId_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_companionId_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#466>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_contactProcessingThreshold_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#466>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_contactProcessingThreshold_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#467>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_deactivationTime_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#467>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_deactivationTime_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#468>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_friction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#468>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_friction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#474>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_hasAnisotropicFriction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#474>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_hasAnisotropicFriction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#470>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_hitFraction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#470>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_hitFraction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#479>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_internalType_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#479>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_internalType_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#476>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_islandTag1_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#476>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_islandTag1_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#459>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_name_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#459>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_name_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#469>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_restitution_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#469>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_restitution_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectDoubleData_m_rootCollisionShape_set    `( BtCollisionObjectDoubleDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btCollisionObjectFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#487>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_new as btCollisionObjectFloatData    {  } -> `BtCollisionObjectFloatData' mkBtCollisionObjectFloatData* #}-{#fun btCollisionObjectFloatData_free    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#510>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_activationState1_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#510>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_activationState1_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_ccdMotionThreshold_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_ccdMotionThreshold_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#503>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_ccdSweptSphereRadius_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#503>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_ccdSweptSphereRadius_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#512>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_checkCollideWith_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#512>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_checkCollideWith_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#507>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_collisionFlags_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#507>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_collisionFlags_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#509>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_companionId_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#509>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_companionId_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_contactProcessingThreshold_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_contactProcessingThreshold_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#499>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_deactivationTime_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#499>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_deactivationTime_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_friction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_friction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#506>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_hasAnisotropicFriction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#506>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_hasAnisotropicFriction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#502>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_hitFraction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#502>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_hitFraction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#511>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_internalType_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#511>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_internalType_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#508>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_islandTag1_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#508>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_islandTag1_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#491>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_name_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#491>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_name_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#501>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_restitution_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#501>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_restitution_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#490>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>--}-{#fun btCollisionObjectFloatData_m_rootCollisionShape_set    `( BtCollisionObjectFloatDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btCollisionWorld-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_new as btCollisionWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtCollisionConfigurationClass p2 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2'  } -> `BtCollisionWorld' mkBtCollisionWorld* #}-{#fun btCollisionWorld_free    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_setBroadphase as btCollisionWorld_setBroadphase    `( BtCollisionWorldClass bc , BtBroadphaseInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pairCache- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_serialize as btCollisionWorld_serialize    `( BtCollisionWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatcher0 as btCollisionWorld_getDispatcher    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcher' mkBtDispatcher*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatcher0 as btCollisionWorld_getDispatcher0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcher' mkBtDispatcher*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatcher1 as btCollisionWorld_getDispatcher1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcher' mkBtDispatcher*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#484>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatchInfo0 as btCollisionWorld_getDispatchInfo    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcherInfo' mkBtDispatcherInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#484>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatchInfo0 as btCollisionWorld_getDispatchInfo0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcherInfo' mkBtDispatcherInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#489>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDispatchInfo1 as btCollisionWorld_getDispatchInfo1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDispatcherInfo' mkBtDispatcherInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#153>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getDebugDrawer as btCollisionWorld_getDebugDrawer    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtIDebugDraw' mkBtIDebugDraw*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#482>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_performDiscreteCollisionDetection as btCollisionWorld_performDiscreteCollisionDetection    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_debugDrawObject as btCollisionWorld_debugDrawObject    `( BtCollisionWorldClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ worldTransform-, withBt* `p1'  -- ^ shape-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_debugDrawObject as btCollisionWorld_debugDrawObject'    `( BtCollisionWorldClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ worldTransform-, withBt* `p1'  -- ^ shape-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#436>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_rayTest as btCollisionWorld_rayTest    `( BtCollisionWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFromWorld-, withVector3* `Vector3'  peekVector3* -- ^ rayToWorld-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#436>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_rayTest as btCollisionWorld_rayTest'    `( BtCollisionWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFromWorld-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayToWorld-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#467>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_addCollisionObject as btCollisionWorld_addCollisionObject    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject-,  `Int'  -- ^ collisionFilterGroup-,  `Int'  -- ^ collisionFilterMask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_setForceUpdateAllAabbs as btCollisionWorld_setForceUpdateAllAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ forceUpdateAllAabbs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#444>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_contactTest as btCollisionWorld_contactTest    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 , BtCollisionWorld_ContactResultCallbackClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ colObj-, withBt* `p1'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#494>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getForceUpdateAllAabbs as btCollisionWorld_getForceUpdateAllAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_updateAabbs as btCollisionWorld_updateAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_setDebugDrawer as btCollisionWorld_setDebugDrawer    `( BtCollisionWorldClass bc , BtIDebugDrawClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ debugDrawer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#158>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_debugDrawWorld as btCollisionWorld_debugDrawWorld    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#440>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_convexSweepTest as btCollisionWorld_convexSweepTest    `( BtCollisionWorldClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ castShape-, withTransform* `Transform'  peekTransform* -- ^ from-, withTransform* `Transform'  peekTransform* -- ^ to-, withBt* `p3'  -- ^ resultCallback-,  `Float'  -- ^ allowedCcdPenetration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#440>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_convexSweepTest as btCollisionWorld_convexSweepTest'    `( BtCollisionWorldClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ castShape-, allocaTransform-  `Transform'  peekTransform* -- ^ from-, allocaTransform-  `Transform'  peekTransform* -- ^ to-, withBt* `p3'  -- ^ resultCallback-,  `Float'  -- ^ allowedCcdPenetration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#429>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getNumCollisionObjects as btCollisionWorld_getNumCollisionObjects    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#448>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_contactPairTest as btCollisionWorld_contactPairTest    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtCollisionWorld_ContactResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ colObjA-, withBt* `p1'  -- ^ colObjB-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getBroadphase0 as btCollisionWorld_getBroadphase    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseInterface' mkBtBroadphaseInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getBroadphase0 as btCollisionWorld_getBroadphase0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseInterface' mkBtBroadphaseInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getBroadphase1 as btCollisionWorld_getBroadphase1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseInterface' mkBtBroadphaseInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_rayTestSingle as btCollisionWorld_rayTestSingle    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  withTransform* `Transform'  peekTransform* -- ^ rayFromTrans-, withTransform* `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p2'  -- ^ collisionObject-, withBt* `p3'  -- ^ collisionShape-, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p5'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_rayTestSingle as btCollisionWorld_rayTestSingle'    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans-, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p2'  -- ^ collisionObject-, withBt* `p3'  -- ^ collisionShape-, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p5'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_objectQuerySingle as btCollisionWorld_objectQuerySingle    `(  BtConvexShapeClass p0 , BtCollisionObjectClass p3 , BtCollisionShapeClass p4 , BtCollisionWorld_ConvexResultCallbackClass p6 )' =>     {  withBt* `p0'  -- ^ castShape-, withTransform* `Transform'  peekTransform* -- ^ rayFromTrans-, withTransform* `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p3'  -- ^ collisionObject-, withBt* `p4'  -- ^ collisionShape-, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p6'  -- ^ resultCallback-,  `Float'  -- ^ allowedPenetration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_objectQuerySingle as btCollisionWorld_objectQuerySingle'    `(  BtConvexShapeClass p0 , BtCollisionObjectClass p3 , BtCollisionShapeClass p4 , BtCollisionWorld_ConvexResultCallbackClass p6 )' =>     {  withBt* `p0'  -- ^ castShape-, allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans-, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p3'  -- ^ collisionObject-, withBt* `p4'  -- ^ collisionShape-, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p6'  -- ^ resultCallback-,  `Float'  -- ^ allowedPenetration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_updateSingleAabb as btCollisionWorld_updateSingleAabb    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ colObj- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_getPairCache as btCollisionWorld_getPairCache    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOverlappingPairCache' mkBtOverlappingPairCache*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#480>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>--}-{#fun btCollisionWorld_removeCollisionObject as btCollisionWorld_removeCollisionObject    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject- } ->  `()'  #}--- * btConvexConvexAlgorithm-{#fun btConvexConvexAlgorithm_free    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#69>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_calculateTimeOfImpact as btConvexConvexAlgorithm_calculateTimeOfImpact    `( BtConvexConvexAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_setLowLevelOfDetail as btConvexConvexAlgorithm_setLowLevelOfDetail    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ useLowLevel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_processCollision as btConvexConvexAlgorithm_processCollision    `( BtConvexConvexAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>--}-{#fun btConvexConvexAlgorithm_getManifold as btConvexConvexAlgorithm_getManifold    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}--- * btDefaultCollisionConfiguration-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#95>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConfiguration_new as btDefaultCollisionConfiguration    `( BtDefaultCollisionConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtDefaultCollisionConfiguration' mkBtDefaultCollisionConfiguration* #}-{#fun btDefaultCollisionConfiguration_free    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConfiguration_getStackAllocator as btDefaultCollisionConfiguration_getStackAllocator    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStackAlloc' mkBtStackAlloc*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConfiguration_getSimplexSolver as btDefaultCollisionConfiguration_getSimplexSolver    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtVoronoiSimplexSolver' mkBtVoronoiSimplexSolver*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConfiguration_setConvexConvexMultipointIterations as btDefaultCollisionConfiguration_setConvexConvexMultipointIterations    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numPerturbationIterations-,  `Int'  -- ^ minimumPointsPerturbationThreshold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc as btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ proxyType0-,  `Int'  -- ^ proxyType1- } ->  `BtCollisionAlgorithmCreateFunc' mkBtCollisionAlgorithmCreateFunc*  #}--- * btDefaultCollisionConstructionInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_new as btDefaultCollisionConstructionInfo    {  } -> `BtDefaultCollisionConstructionInfo' mkBtDefaultCollisionConstructionInfo* #}-{#fun btDefaultCollisionConstructionInfo_free    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#30>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#30>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#29>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#29>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#31>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#31>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#25>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_stackAlloc_set    `( BtDefaultCollisionConstructionInfoClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>--}-{#fun btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btManifoldResult-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_new0 as btManifoldResult0    {  } -> `BtManifoldResult' mkBtManifoldResult* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_new1 as btManifoldResult1    `( BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtManifoldResult' mkBtManifoldResult* #}-{#fun btManifoldResult_free    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_getPersistentManifold0 as btManifoldResult_getPersistentManifold    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_getPersistentManifold0 as btManifoldResult_getPersistentManifold0    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_getPersistentManifold1 as btManifoldResult_getPersistentManifold1    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_getBody0Internal as btManifoldResult_getBody0Internal    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionObject' mkBtCollisionObject*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_addContactPoint as btManifoldResult_addContactPoint    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ normalOnBInWorld-, withVector3* `Vector3'  peekVector3* -- ^ pointInWorld-,  `Float'  -- ^ depth- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_addContactPoint as btManifoldResult_addContactPoint'    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ normalOnBInWorld-, allocaVector3-  `Vector3'  peekVector3* -- ^ pointInWorld-,  `Float'  -- ^ depth- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_getBody1Internal as btManifoldResult_getBody1Internal    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionObject' mkBtCollisionObject*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_setShapeIdentifiersB as btManifoldResult_setShapeIdentifiersB    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ partId1-,  `Int'  -- ^ index1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_setShapeIdentifiersA as btManifoldResult_setShapeIdentifiersA    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ partId0-,  `Int'  -- ^ index0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#99>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_refreshContactPoints as btManifoldResult_refreshContactPoints    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#70>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>--}-{#fun btManifoldResult_setPersistentManifold as btManifoldResult_setPersistentManifold    `( BtManifoldResultClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ manifoldPtr- } ->  `()'  #}--- * btSphereSphereCollisionAlgorithm-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#35>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_new0 as btSphereSphereCollisionAlgorithm0    `( BtPersistentManifoldClass p0 , BtCollisionAlgorithmConstructionInfoClass p1 , BtCollisionObjectClass p2 , BtCollisionObjectClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtSphereSphereCollisionAlgorithm' mkBtSphereSphereCollisionAlgorithm* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#37>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_new1 as btSphereSphereCollisionAlgorithm1    `( BtCollisionAlgorithmConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSphereSphereCollisionAlgorithm' mkBtSphereSphereCollisionAlgorithm* #}-{#fun btSphereSphereCollisionAlgorithm_free    `( BtSphereSphereCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_calculateTimeOfImpact as btSphereSphereCollisionAlgorithm_calculateTimeOfImpact    `( BtSphereSphereCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>--}-{#fun btSphereSphereCollisionAlgorithm_processCollision as btSphereSphereCollisionAlgorithm_processCollision    `( BtSphereSphereCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `()'  #}+{#fun btCollisionWorld_AllHitsRayResultCallback_new as btCollisionWorld_AllHitsRayResultCallback    {  withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtCollisionWorld_AllHitsRayResultCallback' mkBtCollisionWorld_AllHitsRayResultCallback* #}+{#fun btCollisionWorld_AllHitsRayResultCallback_free    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#284>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_addSingleResult as btCollisionWorld_AllHitsRayResultCallback_addSingleResult    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ rayResult+,  `Bool'  -- ^ normalInWorldSpace+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_collisionObjects_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtAlignedObjectArray_btCollisionObject_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_collisionObjects_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitFractions_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitFractions_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitNormalWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitNormalWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#281>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitPointWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#281>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_hitPointWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_set    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_get    `( BtCollisionWorld_AllHitsRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * ClosestConvexResultCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#367>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_new as btCollisionWorld_ClosestConvexResultCallback    {  withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtCollisionWorld_ClosestConvexResultCallback' mkBtCollisionWorld_ClosestConvexResultCallback* #}+{#fun btCollisionWorld_ClosestConvexResultCallback_free    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#381>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_addSingleResult as btCollisionWorld_ClosestConvexResultCallback_addSingleResult    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc , BtCollisionWorld_LocalConvexResultClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ convexResult+,  `Bool'  -- ^ normalInWorldSpace+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#374>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#374>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#378>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_set    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#378>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_get    `( BtCollisionWorld_ClosestConvexResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * ClosestRayResultCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_new as btCollisionWorld_ClosestRayResultCallback    {  withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtCollisionWorld_ClosestRayResultCallback' mkBtCollisionWorld_ClosestRayResultCallback* #}+{#fun btCollisionWorld_ClosestRayResultCallback_free    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_addSingleResult as btCollisionWorld_ClosestRayResultCallback_addSingleResult    `( BtCollisionWorld_ClosestRayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ rayResult+,  `Bool'  -- ^ normalInWorldSpace+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#245>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#245>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#242>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_set    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#242>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_get    `( BtCollisionWorld_ClosestRayResultCallbackClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * ContactResultCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#424>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_addSingleResult as btCollisionWorld_ContactResultCallback_addSingleResult    `( BtCollisionWorld_ContactResultCallbackClass bc , BtManifoldPointClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p4 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ cp+, withBt* `p1'  -- ^ colObj0+,  `Int'  -- ^ partId0+,  `Int'  -- ^ index0+, withBt* `p4'  -- ^ colObj1+,  `Int'  -- ^ partId1+,  `Int'  -- ^ index1+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#417>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_needsCollision as btCollisionWorld_ContactResultCallback_needsCollision    `( BtCollisionWorld_ContactResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#404>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#404>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#405>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#405>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ContactResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_ContactResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * ConvexResultCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#362>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_addSingleResult as btCollisionWorld_ConvexResultCallback_addSingleResult    `( BtCollisionWorld_ConvexResultCallbackClass bc , BtCollisionWorld_LocalConvexResultClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ convexResult+,  `Bool'  -- ^ normalInWorldSpace+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#355>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_needsCollision as btCollisionWorld_ConvexResultCallback_needsCollision    `( BtCollisionWorld_ConvexResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_hasHit as btCollisionWorld_ConvexResultCallback_hasHit    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_closestHitFraction_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_closestHitFraction_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#334>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#334>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_ConvexResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * CreateFunc+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_CreateFunc_new as btSphereSphereCollisionAlgorithm_CreateFunc    {  } -> `BtSphereSphereCollisionAlgorithm_CreateFunc' mkBtSphereSphereCollisionAlgorithm_CreateFunc* #}+{#fun btSphereSphereCollisionAlgorithm_CreateFunc_free    `( BtSphereSphereCollisionAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm as btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtSphereSphereCollisionAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ci+, withBt* `p1'  -- ^ body0+, withBt* `p2'  -- ^ body1+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+-- * CreateFunc+{#fun btConvexConvexAlgorithm_CreateFunc_free    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm as btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtConvexConvexAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ci+, withBt* `p1'  -- ^ body0+, withBt* `p2'  -- ^ body1+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc , BtVoronoiSimplexSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_get    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } ->  `BtVoronoiSimplexSolver'  mkBtVoronoiSimplexSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_get    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_set    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_get    `( BtConvexConvexAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * LocalConvexResult+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_new as btCollisionWorld_LocalConvexResult    `( BtCollisionObjectClass p0 , BtCollisionWorld_LocalShapeInfoClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Float'  } -> `BtCollisionWorld_LocalConvexResult' mkBtCollisionWorld_LocalConvexResult* #}+{#fun btCollisionWorld_LocalConvexResult_free    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitCollisionObject_set    `( BtCollisionWorld_LocalConvexResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitCollisionObject_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitFraction_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitFraction_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitNormalLocal_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitNormalLocal_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitPointLocal_set    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_hitPointLocal_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_localShapeInfo_set    `( BtCollisionWorld_LocalConvexResultClass bc , BtCollisionWorld_LocalShapeInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalConvexResult_m_localShapeInfo_get    `( BtCollisionWorld_LocalConvexResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionWorld_LocalShapeInfo'  mkBtCollisionWorld_LocalShapeInfo* #}+-- * LocalRayResult+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#179>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_new as btCollisionWorld_LocalRayResult    `( BtCollisionObjectClass p0 , BtCollisionWorld_LocalShapeInfoClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' ,  `Float'  } -> `BtCollisionWorld_LocalRayResult' mkBtCollisionWorld_LocalRayResult* #}+{#fun btCollisionWorld_LocalRayResult_free    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_collisionObject_set    `( BtCollisionWorld_LocalRayResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_collisionObject_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#190>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_hitFraction_set    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#190>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_hitFraction_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_hitNormalLocal_set    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_hitNormalLocal_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_localShapeInfo_set    `( BtCollisionWorld_LocalRayResultClass bc , BtCollisionWorld_LocalShapeInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalRayResult_m_localShapeInfo_get    `( BtCollisionWorld_LocalRayResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionWorld_LocalShapeInfo'  mkBtCollisionWorld_LocalShapeInfo* #}+-- * LocalShapeInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalShapeInfo_new as btCollisionWorld_LocalShapeInfo    {  } -> `BtCollisionWorld_LocalShapeInfo' mkBtCollisionWorld_LocalShapeInfo* #}+{#fun btCollisionWorld_LocalShapeInfo_free    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#167>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalShapeInfo_m_shapePart_set    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#167>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalShapeInfo_m_shapePart_get    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalShapeInfo_m_triangleIndex_set    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_LocalShapeInfo_m_triangleIndex_get    `( BtCollisionWorld_LocalShapeInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * RayResultCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_addSingleResult as btCollisionWorld_RayResultCallback_addSingleResult    `( BtCollisionWorld_RayResultCallbackClass bc , BtCollisionWorld_LocalRayResultClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ rayResult+,  `Bool'  -- ^ normalInWorldSpace+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_needsCollision as btCollisionWorld_RayResultCallback_needsCollision    `( BtCollisionWorld_RayResultCallbackClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_hasHit as btCollisionWorld_RayResultCallback_hasHit    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_closestHitFraction_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_closestHitFraction_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionFilterGroup_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionFilterGroup_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionFilterMask_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionFilterMask_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionObject_set    `( BtCollisionWorld_RayResultCallbackClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_collisionObject_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_flags_set    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_RayResultCallback_m_flags_get    `( BtCollisionWorld_RayResultCallbackClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+-- * btActivatingCollisionAlgorithm+-- * btCollisionAlgorithmCreateFunc+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>+-}+{#fun btCollisionAlgorithmCreateFunc_new as btCollisionAlgorithmCreateFunc    {  } -> `BtCollisionAlgorithmCreateFunc' mkBtCollisionAlgorithmCreateFunc* #}+{#fun btCollisionAlgorithmCreateFunc_free    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>+-}+{#fun btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm as btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm    `( BtCollisionAlgorithmCreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ body0+, withBt* `p2'  -- ^ body1+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>+-}+{#fun btCollisionAlgorithmCreateFunc_m_swapped_set    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionCreateFunc.cpp?r=2223>+-}+{#fun btCollisionAlgorithmCreateFunc_m_swapped_get    `( BtCollisionAlgorithmCreateFuncClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btCollisionConfiguration+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.cpp?r=2223>+-}+{#fun btCollisionConfiguration_getStackAllocator as btCollisionConfiguration_getStackAllocator    `( BtCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStackAlloc'  mkBtStackAlloc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionConfiguration.cpp?r=2223>+-}+{#fun btCollisionConfiguration_getCollisionAlgorithmCreateFunc as btCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ proxyType0+,  `Int'  -- ^ proxyType1+ } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+-- * btCollisionDispatcher+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_new as btCollisionDispatcher    `( BtCollisionConfigurationClass p0 )' =>     {  withBt* `p0'  } -> `BtCollisionDispatcher' mkBtCollisionDispatcher* #}+{#fun btCollisionDispatcher_free    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_allocateCollisionAlgorithm as btCollisionDispatcher_allocateCollisionAlgorithm    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getDispatcherFlags as btCollisionDispatcher_getDispatcherFlags    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getCollisionConfiguration0 as btCollisionDispatcher_getCollisionConfiguration    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionConfiguration'  mkBtCollisionConfiguration* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getCollisionConfiguration0 as btCollisionDispatcher_getCollisionConfiguration0    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionConfiguration'  mkBtCollisionConfiguration* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getCollisionConfiguration1 as btCollisionDispatcher_getCollisionConfiguration1    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionConfiguration'  mkBtCollisionConfiguration* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_setDispatcherFlags as btCollisionDispatcher_setDispatcherFlags    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ flags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_releaseManifold as btCollisionDispatcher_releaseManifold    `( BtCollisionDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_setCollisionConfiguration as btCollisionDispatcher_setCollisionConfiguration    `( BtCollisionDispatcherClass bc , BtCollisionConfigurationClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ config+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getNumManifolds as btCollisionDispatcher_getNumManifolds    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_clearManifold as btCollisionDispatcher_clearManifold    `( BtCollisionDispatcherClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_freeCollisionAlgorithm as btCollisionDispatcher_freeCollisionAlgorithm    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_registerCollisionCreateFunc as btCollisionDispatcher_registerCollisionCreateFunc    `( BtCollisionDispatcherClass bc , BtCollisionAlgorithmCreateFuncClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ proxyType0+,  `Int'  -- ^ proxyType1+, withBt* `p2'  -- ^ createFunc+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_defaultNearCallback as btCollisionDispatcher_defaultNearCallback    `(  BtBroadphasePairClass p0 , BtCollisionDispatcherClass p1 , BtDispatcherInfoClass p2 )' =>     {  withBt* `p0'  -- ^ collisionPair+, withBt* `p1'  -- ^ dispatcher+, withBt* `p2'  -- ^ dispatchInfo+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_findAlgorithm as btCollisionDispatcher_findAlgorithm    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtPersistentManifoldClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ sharedManifold+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_needsResponse as btCollisionDispatcher_needsResponse    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getNewManifold as btCollisionDispatcher_getNewManifold    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ b0+, withVoidPtr* `VoidPtr'  -- ^ b1+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#125>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_dispatchAllCollisionPairs as btCollisionDispatcher_dispatchAllCollisionPairs    `( BtCollisionDispatcherClass bc , BtOverlappingPairCacheClass p0 , BtDispatcherInfoClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pairCache+, withBt* `p1'  -- ^ dispatchInfo+, withBt* `p2'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_needsCollision as btCollisionDispatcher_needsCollision    `( BtCollisionDispatcherClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getManifoldByIndexInternal0 as btCollisionDispatcher_getManifoldByIndexInternal    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getManifoldByIndexInternal0 as btCollisionDispatcher_getManifoldByIndexInternal0    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_getManifoldByIndexInternal1 as btCollisionDispatcher_getManifoldByIndexInternal1    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_collisionConfiguration_set    `( BtCollisionDispatcherClass bc , BtCollisionConfigurationClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_collisionConfiguration_get    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionConfiguration'  mkBtCollisionConfiguration* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_defaultManifoldResult_set    `( BtCollisionDispatcherClass bc , BtManifoldResultClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_defaultManifoldResult_get    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } ->  `BtManifoldResult'  mkBtManifoldResult* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_dispatcherFlags_set    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_dispatcherFlags_get    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_manifoldsPtr_set    `( BtCollisionDispatcherClass bc , BtAlignedObjectArray_btPersistentManifold_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp?r=2223>+-}+{#fun btCollisionDispatcher_m_manifoldsPtr_get    `( BtCollisionDispatcherClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btPersistentManifold_ptr_'  mkBtAlignedObjectArray_btPersistentManifold_ptr_* #}+-- * btCollisionObject+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#190>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_new as btCollisionObject    {  } -> `BtCollisionObject' mkBtCollisionObject* #}+{#fun btCollisionObject_free    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCcdSquareMotionThreshold as btCollisionObject_getCcdSquareMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_activate as btCollisionObject_activate    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ forceActivation+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationLinearVelocity as btCollisionObject_setInterpolationLinearVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linvel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationLinearVelocity as btCollisionObject_setInterpolationLinearVelocity'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linvel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getFriction as btCollisionObject_getFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#367>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setCompanionId as btCollisionObject_setCompanionId    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ id+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationAngularVelocity as btCollisionObject_setInterpolationAngularVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angvel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationAngularVelocity as btCollisionObject_setInterpolationAngularVelocity'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angvel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#447>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_serialize as btCollisionObject_serialize    `( BtCollisionObjectClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setWorldTransform as btCollisionObject_setWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setWorldTransform as btCollisionObject_setWorldTransform'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#362>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCompanionId as btCollisionObject_getCompanionId    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_internalSetExtensionPointer as btCollisionObject_internalSetExtensionPointer    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ pointer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setContactProcessingThreshold as btCollisionObject_setContactProcessingThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ contactProcessingThreshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationWorldTransform as btCollisionObject_setInterpolationWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setInterpolationWorldTransform as btCollisionObject_setInterpolationWorldTransform'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#342>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInterpolationLinearVelocity as btCollisionObject_getInterpolationLinearVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_mergesSimulationIslands as btCollisionObject_mergesSimulationIslands    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setCollisionShape as btCollisionObject_setCollisionShape    `( BtCollisionObjectClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionShape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#418>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setCcdMotionThreshold as btCollisionObject_setCcdMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ ccdMotionThreshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getIslandTag as btCollisionObject_getIslandTag    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#517>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_calculateSerializeBufferSize as btCollisionObject_calculateSerializeBufferSize    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#405>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCcdMotionThreshold as btCollisionObject_getCcdMotionThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#430>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setUserPointer as btCollisionObject_setUserPointer    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ userPointer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_checkCollideWith as btCollisionObject_checkCollideWith    `( BtCollisionObjectClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ co+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getAnisotropicFriction as btCollisionObject_getAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#347>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInterpolationAngularVelocity as btCollisionObject_getInterpolationAngularVelocity    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#253>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_forceActivationState as btCollisionObject_forceActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newState+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_isStaticObject as btCollisionObject_isStaticObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setFriction as btCollisionObject_setFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ frict+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInterpolationWorldTransform0 as btCollisionObject_getInterpolationWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInterpolationWorldTransform0 as btCollisionObject_getInterpolationWorldTransform0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInterpolationWorldTransform1 as btCollisionObject_getInterpolationWorldTransform1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#357>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setIslandTag as btCollisionObject_setIslandTag    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ tag+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setHitFraction as btCollisionObject_setHitFraction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ hitFraction+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#449>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_serializeSingleObject as btCollisionObject_serializeSingleObject    `( BtCollisionObjectClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#383>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCollisionFlags as btCollisionObject_getCollisionFlags    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getDeactivationTime as btCollisionObject_getDeactivationTime    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCollisionShape0 as btCollisionObject_getCollisionShape    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCollisionShape0 as btCollisionObject_getCollisionShape0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCollisionShape1 as btCollisionObject_getCollisionShape1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setAnisotropicFriction as btCollisionObject_setAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ anisotropicFriction+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setAnisotropicFriction as btCollisionObject_setAnisotropicFriction'    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ anisotropicFriction+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_checkCollideWithOverride as btCollisionObject_checkCollideWithOverride    `( BtCollisionObjectClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#301>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getBroadphaseHandle0 as btCollisionObject_getBroadphaseHandle    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#301>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getBroadphaseHandle0 as btCollisionObject_getBroadphaseHandle0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getBroadphaseHandle1 as btCollisionObject_getBroadphaseHandle1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#424>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getUserPointer as btCollisionObject_getUserPointer    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#400>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setCcdSweptSphereRadius as btCollisionObject_setCcdSweptSphereRadius    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getWorldTransform0 as btCollisionObject_getWorldTransform    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getWorldTransform0 as btCollisionObject_getWorldTransform0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#290>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getWorldTransform1 as btCollisionObject_getWorldTransform1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#388>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setCollisionFlags as btCollisionObject_setCollisionFlags    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ flags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_internalSetTemporaryCollisionShape as btCollisionObject_internalSetTemporaryCollisionShape    `( BtCollisionObjectClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionShape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#372>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getHitFraction as btCollisionObject_getHitFraction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_isActive as btCollisionObject_isActive    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#242>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setActivationState as btCollisionObject_setActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newState+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getInternalType as btCollisionObject_getInternalType    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getActivationState as btCollisionObject_getActivationState    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_hasContactResponse as btCollisionObject_hasContactResponse    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getRootCollisionShape0 as btCollisionObject_getRootCollisionShape    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getRootCollisionShape0 as btCollisionObject_getRootCollisionShape0    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getRootCollisionShape1 as btCollisionObject_getRootCollisionShape1    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getRestitution as btCollisionObject_getRestitution    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#394>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getCcdSweptSphereRadius as btCollisionObject_getCcdSweptSphereRadius    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_getContactProcessingThreshold as btCollisionObject_getContactProcessingThreshold    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setDeactivationTime as btCollisionObject_setDeactivationTime    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ time+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_internalGetExtensionPointer as btCollisionObject_internalGetExtensionPointer    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_isStaticOrKinematicObject as btCollisionObject_isStaticOrKinematicObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#262>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setRestitution as btCollisionObject_setRestitution    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ rest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_hasAnisotropicFriction as btCollisionObject_hasAnisotropicFriction    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_setBroadphaseHandle as btCollisionObject_setBroadphaseHandle    `( BtCollisionObjectClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ handle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_isKinematicObject as btCollisionObject_isKinematicObject    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_activationState1_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_activationState1_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_anisotropicFriction_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_anisotropicFriction_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_broadphaseHandle_set    `( BtCollisionObjectClass bc , BtBroadphaseProxyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_broadphaseHandle_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_ccdMotionThreshold_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_ccdMotionThreshold_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_ccdSweptSphereRadius_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_ccdSweptSphereRadius_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_checkCollideWith_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_checkCollideWith_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_collisionFlags_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_collisionFlags_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_collisionShape_set    `( BtCollisionObjectClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_collisionShape_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_companionId_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_companionId_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_contactProcessingThreshold_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_contactProcessingThreshold_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_deactivationTime_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_deactivationTime_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_extensionPointer_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_extensionPointer_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_friction_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_friction_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_hasAnisotropicFriction_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_hasAnisotropicFriction_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_hitFraction_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_hitFraction_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_internalType_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_internalType_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationAngularVelocity_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationAngularVelocity_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationLinearVelocity_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationLinearVelocity_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationWorldTransform_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_interpolationWorldTransform_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_islandTag1_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_islandTag1_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_restitution_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_restitution_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_rootCollisionShape_set    `( BtCollisionObjectClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_rootCollisionShape_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_userObjectPointer_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_userObjectPointer_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_worldTransform_set    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObject_m_worldTransform_get    `( BtCollisionObjectClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+-- * btCollisionObjectDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#455>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_new as btCollisionObjectDoubleData    {  } -> `BtCollisionObjectDoubleData' mkBtCollisionObjectDoubleData* #}+{#fun btCollisionObjectDoubleData_free    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#478>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_activationState1_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#478>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_activationState1_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_anisotropicFriction_set    `( BtCollisionObjectDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_anisotropicFriction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#456>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_broadphaseHandle_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#456>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_broadphaseHandle_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#472>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_ccdMotionThreshold_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#472>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_ccdMotionThreshold_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#471>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_ccdSweptSphereRadius_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#471>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_ccdSweptSphereRadius_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#480>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_checkCollideWith_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#480>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_checkCollideWith_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#475>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_collisionFlags_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#475>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_collisionFlags_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#457>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_collisionShape_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#457>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_collisionShape_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_companionId_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_companionId_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#466>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_contactProcessingThreshold_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#466>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_contactProcessingThreshold_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#467>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_deactivationTime_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#467>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_deactivationTime_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#468>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_friction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#468>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_friction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_hasAnisotropicFriction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_hasAnisotropicFriction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#470>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_hitFraction_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#470>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_hitFraction_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#479>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_internalType_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#479>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_internalType_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationAngularVelocity_set    `( BtCollisionObjectDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationAngularVelocity_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#463>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationLinearVelocity_set    `( BtCollisionObjectDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#463>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationLinearVelocity_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationWorldTransform_set    `( BtCollisionObjectDoubleDataClass bc , BtTransformDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_interpolationWorldTransform_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformDoubleData'  mkBtTransformDoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#476>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_islandTag1_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#476>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_islandTag1_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#459>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_name_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#459>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_name_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#469>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_restitution_set    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#469>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_restitution_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_rootCollisionShape_set    `( BtCollisionObjectDoubleDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_rootCollisionShape_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#461>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_worldTransform_set    `( BtCollisionObjectDoubleDataClass bc , BtTransformDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#461>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectDoubleData_m_worldTransform_get    `( BtCollisionObjectDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformDoubleData'  mkBtTransformDoubleData* #}+-- * btCollisionObjectFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#487>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_new as btCollisionObjectFloatData    {  } -> `BtCollisionObjectFloatData' mkBtCollisionObjectFloatData* #}+{#fun btCollisionObjectFloatData_free    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#510>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_activationState1_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#510>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_activationState1_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#497>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_anisotropicFriction_set    `( BtCollisionObjectFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#497>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_anisotropicFriction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#488>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_broadphaseHandle_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#488>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_broadphaseHandle_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#504>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_ccdMotionThreshold_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#504>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_ccdMotionThreshold_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_ccdSweptSphereRadius_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_ccdSweptSphereRadius_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_checkCollideWith_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_checkCollideWith_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_collisionFlags_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_collisionFlags_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#489>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_collisionShape_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#489>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_collisionShape_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#509>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_companionId_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#509>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_companionId_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_contactProcessingThreshold_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_contactProcessingThreshold_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#499>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_deactivationTime_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#499>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_deactivationTime_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_friction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_friction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#506>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_hasAnisotropicFriction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#506>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_hasAnisotropicFriction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_hitFraction_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_hitFraction_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#511>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_internalType_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#511>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_internalType_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#496>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationAngularVelocity_set    `( BtCollisionObjectFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#496>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationAngularVelocity_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#495>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationLinearVelocity_set    `( BtCollisionObjectFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#495>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationLinearVelocity_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#494>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationWorldTransform_set    `( BtCollisionObjectFloatDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#494>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_interpolationWorldTransform_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#508>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_islandTag1_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#508>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_islandTag1_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#491>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_name_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#491>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_name_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#501>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_restitution_set    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#501>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_restitution_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#490>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_rootCollisionShape_set    `( BtCollisionObjectFloatDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#490>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_rootCollisionShape_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_worldTransform_set    `( BtCollisionObjectFloatDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionObject.cpp?r=2223>+-}+{#fun btCollisionObjectFloatData_m_worldTransform_get    `( BtCollisionObjectFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+-- * btCollisionWorld+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_new as btCollisionWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtCollisionConfigurationClass p2 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2'  } -> `BtCollisionWorld' mkBtCollisionWorld* #}+{#fun btCollisionWorld_free    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_setBroadphase as btCollisionWorld_setBroadphase    `( BtCollisionWorldClass bc , BtBroadphaseInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pairCache+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#504>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_serialize as btCollisionWorld_serialize    `( BtCollisionWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatcher0 as btCollisionWorld_getDispatcher    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatcher0 as btCollisionWorld_getDispatcher0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatcher1 as btCollisionWorld_getDispatcher1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#484>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatchInfo0 as btCollisionWorld_getDispatchInfo    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcherInfo'  mkBtDispatcherInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#484>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatchInfo0 as btCollisionWorld_getDispatchInfo0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcherInfo'  mkBtDispatcherInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#489>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDispatchInfo1 as btCollisionWorld_getDispatchInfo1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDispatcherInfo'  mkBtDispatcherInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getDebugDrawer as btCollisionWorld_getDebugDrawer    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtIDebugDraw'  mkBtIDebugDraw* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#482>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_performDiscreteCollisionDetection as btCollisionWorld_performDiscreteCollisionDetection    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#469>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getCollisionObjectArray0 as btCollisionWorld_getCollisionObjectArray    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#469>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getCollisionObjectArray0 as btCollisionWorld_getCollisionObjectArray0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getCollisionObjectArray1 as btCollisionWorld_getCollisionObjectArray1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_debugDrawObject as btCollisionWorld_debugDrawObject    `( BtCollisionWorldClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ worldTransform+, withBt* `p1'  -- ^ shape+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_debugDrawObject as btCollisionWorld_debugDrawObject'    `( BtCollisionWorldClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ worldTransform+, withBt* `p1'  -- ^ shape+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_rayTest as btCollisionWorld_rayTest    `( BtCollisionWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFromWorld+, withVec3* `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_rayTest as btCollisionWorld_rayTest'    `( BtCollisionWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFromWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#467>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_addCollisionObject as btCollisionWorld_addCollisionObject    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_setForceUpdateAllAabbs as btCollisionWorld_setForceUpdateAllAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ forceUpdateAllAabbs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#444>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_contactTest as btCollisionWorld_contactTest    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 , BtCollisionWorld_ContactResultCallbackClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ colObj+, withBt* `p1'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#494>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getForceUpdateAllAabbs as btCollisionWorld_getForceUpdateAllAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_updateAabbs as btCollisionWorld_updateAabbs    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_setDebugDrawer as btCollisionWorld_setDebugDrawer    `( BtCollisionWorldClass bc , BtIDebugDrawClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ debugDrawer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#158>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_debugDrawWorld as btCollisionWorld_debugDrawWorld    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_convexSweepTest as btCollisionWorld_convexSweepTest    `( BtCollisionWorldClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ castShape+, withTransform* `Transform'  peekTransform* -- ^ from+, withTransform* `Transform'  peekTransform* -- ^ to+, withBt* `p3'  -- ^ resultCallback+,  `Float'  -- ^ allowedCcdPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_convexSweepTest as btCollisionWorld_convexSweepTest'    `( BtCollisionWorldClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ castShape+, allocaTransform-  `Transform'  peekTransform* -- ^ from+, allocaTransform-  `Transform'  peekTransform* -- ^ to+, withBt* `p3'  -- ^ resultCallback+,  `Float'  -- ^ allowedCcdPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#429>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getNumCollisionObjects as btCollisionWorld_getNumCollisionObjects    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#448>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_contactPairTest as btCollisionWorld_contactPairTest    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtCollisionWorld_ContactResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ colObjA+, withBt* `p1'  -- ^ colObjB+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getBroadphase0 as btCollisionWorld_getBroadphase    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getBroadphase0 as btCollisionWorld_getBroadphase0    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getBroadphase1 as btCollisionWorld_getBroadphase1    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_rayTestSingle as btCollisionWorld_rayTestSingle    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  withTransform* `Transform'  peekTransform* -- ^ rayFromTrans+, withTransform* `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p2'  -- ^ collisionObject+, withBt* `p3'  -- ^ collisionShape+, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p5'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_rayTestSingle as btCollisionWorld_rayTestSingle'    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans+, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p2'  -- ^ collisionObject+, withBt* `p3'  -- ^ collisionShape+, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p5'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_objectQuerySingle as btCollisionWorld_objectQuerySingle    `(  BtConvexShapeClass p0 , BtCollisionObjectClass p3 , BtCollisionShapeClass p4 , BtCollisionWorld_ConvexResultCallbackClass p6 )' =>     {  withBt* `p0'  -- ^ castShape+, withTransform* `Transform'  peekTransform* -- ^ rayFromTrans+, withTransform* `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p3'  -- ^ collisionObject+, withBt* `p4'  -- ^ collisionShape+, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p6'  -- ^ resultCallback+,  `Float'  -- ^ allowedPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_objectQuerySingle as btCollisionWorld_objectQuerySingle'    `(  BtConvexShapeClass p0 , BtCollisionObjectClass p3 , BtCollisionShapeClass p4 , BtCollisionWorld_ConvexResultCallbackClass p6 )' =>     {  withBt* `p0'  -- ^ castShape+, allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans+, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p3'  -- ^ collisionObject+, withBt* `p4'  -- ^ collisionShape+, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p6'  -- ^ resultCallback+,  `Float'  -- ^ allowedPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_updateSingleAabb as btCollisionWorld_updateSingleAabb    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ colObj+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_serializeCollisionObjects as btCollisionWorld_serializeCollisionObjects    `( BtCollisionWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_getPairCache as btCollisionWorld_getPairCache    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOverlappingPairCache'  mkBtOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#480>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_removeCollisionObject as btCollisionWorld_removeCollisionObject    `( BtCollisionWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_broadphasePairCache_set    `( BtCollisionWorldClass bc , BtBroadphaseInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_broadphasePairCache_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_collisionObjects_set    `( BtCollisionWorldClass bc , BtAlignedObjectArray_btCollisionObject_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_collisionObjects_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_debugDrawer_set    `( BtCollisionWorldClass bc , BtIDebugDrawClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_debugDrawer_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtIDebugDraw'  mkBtIDebugDraw* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_dispatchInfo_set    `( BtCollisionWorldClass bc , BtDispatcherInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_dispatchInfo_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcherInfo'  mkBtDispatcherInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_dispatcher1_set    `( BtCollisionWorldClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_dispatcher1_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_forceUpdateAllAabbs_set    `( BtCollisionWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_forceUpdateAllAabbs_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_stackAlloc_set    `( BtCollisionWorldClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp?r=2223>+-}+{#fun btCollisionWorld_m_stackAlloc_get    `( BtCollisionWorldClass bc )' =>     { withBt* `bc'  } ->  `BtStackAlloc'  mkBtStackAlloc* #}+-- * btConvexConvexAlgorithm+{#fun btConvexConvexAlgorithm_free    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_getAllContactManifolds as btConvexConvexAlgorithm_getAllContactManifolds    `( BtConvexConvexAlgorithmClass bc , BtAlignedObjectArray_btPersistentManifold_ptr_Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifoldArray+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_calculateTimeOfImpact as btConvexConvexAlgorithm_calculateTimeOfImpact    `( BtConvexConvexAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_setLowLevelOfDetail as btConvexConvexAlgorithm_setLowLevelOfDetail    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ useLowLevel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_processCollision as btConvexConvexAlgorithm_processCollision    `( BtConvexConvexAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_getManifold as btConvexConvexAlgorithm_getManifold    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_simplexSolver_set    `( BtConvexConvexAlgorithmClass bc , BtVoronoiSimplexSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_simplexSolver_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtVoronoiSimplexSolver'  mkBtVoronoiSimplexSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_ownManifold_set    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_ownManifold_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_manifoldPtr_set    `( BtConvexConvexAlgorithmClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_manifoldPtr_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_lowLevelOfDetail_set    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_lowLevelOfDetail_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_numPerturbationIterations_set    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_numPerturbationIterations_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_minimumPointsPerturbationThreshold_set    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp?r=2223>+-}+{#fun btConvexConvexAlgorithm_m_minimumPointsPerturbationThreshold_get    `( BtConvexConvexAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btDefaultCollisionConfiguration+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_new as btDefaultCollisionConfiguration    `( BtDefaultCollisionConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtDefaultCollisionConfiguration' mkBtDefaultCollisionConfiguration* #}+{#fun btDefaultCollisionConfiguration_free    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_getStackAllocator as btDefaultCollisionConfiguration_getStackAllocator    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStackAlloc'  mkBtStackAlloc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_setPlaneConvexMultipointIterations as btDefaultCollisionConfiguration_setPlaneConvexMultipointIterations    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numPerturbationIterations+,  `Int'  -- ^ minimumPointsPerturbationThreshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_getSimplexSolver as btDefaultCollisionConfiguration_getSimplexSolver    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtVoronoiSimplexSolver'  mkBtVoronoiSimplexSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_setConvexConvexMultipointIterations as btDefaultCollisionConfiguration_setConvexConvexMultipointIterations    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numPerturbationIterations+,  `Int'  -- ^ minimumPointsPerturbationThreshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc as btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ proxyType0+,  `Int'  -- ^ proxyType1+ } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_persistentManifoldPoolSize_set    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_persistentManifoldPoolSize_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_stackAlloc_set    `( BtDefaultCollisionConfigurationClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_stackAlloc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtStackAlloc'  mkBtStackAlloc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsStackAllocator_set    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsStackAllocator_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsPersistentManifoldPool_set    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsPersistentManifoldPool_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsCollisionAlgorithmPool_set    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_ownsCollisionAlgorithmPool_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_simplexSolver_set    `( BtDefaultCollisionConfigurationClass bc , BtVoronoiSimplexSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_simplexSolver_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtVoronoiSimplexSolver'  mkBtVoronoiSimplexSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexConvexCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexConvexCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexConcaveCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexConcaveCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_swappedConvexConcaveCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_swappedConvexConcaveCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_compoundCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_compoundCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_swappedCompoundCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_swappedCompoundCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_emptyCreateFunc_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_emptyCreateFunc_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_sphereSphereCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_sphereSphereCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_boxBoxCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_boxBoxCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_sphereTriangleCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_sphereTriangleCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_triangleSphereCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_triangleSphereCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_planeConvexCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_planeConvexCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexPlaneCF_set    `( BtDefaultCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConfiguration_m_convexPlaneCF_get    `( BtDefaultCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+-- * btDefaultCollisionConstructionInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_new as btDefaultCollisionConstructionInfo    {  } -> `BtDefaultCollisionConstructionInfo' mkBtDefaultCollisionConstructionInfo* #}+{#fun btDefaultCollisionConstructionInfo_free    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_stackAlloc_set    `( BtDefaultCollisionConstructionInfoClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_stackAlloc_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `BtStackAlloc'  mkBtStackAlloc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_set    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp?r=2223>+-}+{#fun btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_get    `( BtDefaultCollisionConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btGhostObject+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_new as btGhostObject    {  } -> `BtGhostObject' mkBtGhostObject* #}+{#fun btGhostObject_free    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_convexSweepTest as btGhostObject_convexSweepTest    `( BtGhostObjectClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ castShape+, withTransform* `Transform'  peekTransform* -- ^ convexFromWorld+, withTransform* `Transform'  peekTransform* -- ^ convexToWorld+, withBt* `p3'  -- ^ resultCallback+,  `Float'  -- ^ allowedCcdPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_convexSweepTest as btGhostObject_convexSweepTest'    `( BtGhostObjectClass bc , BtConvexShapeClass p0 , BtCollisionWorld_ConvexResultCallbackClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ castShape+, allocaTransform-  `Transform'  peekTransform* -- ^ convexFromWorld+, allocaTransform-  `Transform'  peekTransform* -- ^ convexToWorld+, withBt* `p3'  -- ^ resultCallback+,  `Float'  -- ^ allowedCcdPenetration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_removeOverlappingObjectInternal as btGhostObject_removeOverlappingObjectInternal    `( BtGhostObjectClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 , BtBroadphaseProxyClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ otherProxy+, withBt* `p1'  -- ^ dispatcher+, withBt* `p2'  -- ^ thisProxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getNumOverlappingObjects as btGhostObject_getNumOverlappingObjects    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_addOverlappingObjectInternal as btGhostObject_addOverlappingObjectInternal    `( BtGhostObjectClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ otherProxy+, withBt* `p1'  -- ^ thisProxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_rayTest as btGhostObject_rayTest    `( BtGhostObjectClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFromWorld+, withVec3* `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_rayTest as btGhostObject_rayTest'    `( BtGhostObjectClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFromWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getOverlappingPairs0 as btGhostObject_getOverlappingPairs    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getOverlappingPairs0 as btGhostObject_getOverlappingPairs0    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_upcast0 as btGhostObject_upcast    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtGhostObject'  mkBtGhostObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_upcast0 as btGhostObject_upcast0    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtGhostObject'  mkBtGhostObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_upcast1 as btGhostObject_upcast1    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtGhostObject'  mkBtGhostObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getOverlappingObject0 as btGhostObject_getOverlappingObject    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getOverlappingObject0 as btGhostObject_getOverlappingObject0    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_getOverlappingObject1 as btGhostObject_getOverlappingObject1    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_m_overlappingObjects_set    `( BtGhostObjectClass bc , BtAlignedObjectArray_btCollisionObject_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostObject_m_overlappingObjects_get    `( BtGhostObjectClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+-- * btGhostPairCallback+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostPairCallback_new as btGhostPairCallback    {  } -> `BtGhostPairCallback' mkBtGhostPairCallback* #}+{#fun btGhostPairCallback_free    `( BtGhostPairCallbackClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostPairCallback_addOverlappingPair as btGhostPairCallback_addOverlappingPair    `( BtGhostPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostPairCallback_removeOverlappingPair as btGhostPairCallback_removeOverlappingPair    `( BtGhostPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 , BtDispatcherClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ proxy0+, withBt* `p1'  -- ^ proxy1+, withBt* `p2'  -- ^ dispatcher+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btGhostPairCallback_removeOverlappingPairsContainingProxy as btGhostPairCallback_removeOverlappingPairsContainingProxy    `( BtGhostPairCallbackClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+ } ->  `()'   #}+-- * btManifoldResult+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_new0 as btManifoldResult0    {  } -> `BtManifoldResult' mkBtManifoldResult* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_new1 as btManifoldResult1    `( BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     {  withBt* `p0' , withBt* `p1'  } -> `BtManifoldResult' mkBtManifoldResult* #}+{#fun btManifoldResult_free    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_getPersistentManifold0 as btManifoldResult_getPersistentManifold    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_getPersistentManifold0 as btManifoldResult_getPersistentManifold0    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_getPersistentManifold1 as btManifoldResult_getPersistentManifold1    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_getBody0Internal as btManifoldResult_getBody0Internal    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_addContactPoint as btManifoldResult_addContactPoint    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ normalOnBInWorld+, withVec3* `Vec3'  peekVec3* -- ^ pointInWorld+,  `Float'  -- ^ depth+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_addContactPoint as btManifoldResult_addContactPoint'    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ normalOnBInWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ pointInWorld+,  `Float'  -- ^ depth+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_getBody1Internal as btManifoldResult_getBody1Internal    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_setShapeIdentifiersB as btManifoldResult_setShapeIdentifiersB    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ partId1+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_setShapeIdentifiersA as btManifoldResult_setShapeIdentifiersA    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ partId0+,  `Int'  -- ^ index0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_refreshContactPoints as btManifoldResult_refreshContactPoints    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_setPersistentManifold as btManifoldResult_setPersistentManifold    `( BtManifoldResultClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifoldPtr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_body0_set    `( BtManifoldResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_body0_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_body1_set    `( BtManifoldResultClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_body1_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_index0_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_index0_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_index1_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_index1_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_manifoldPtr_set    `( BtManifoldResultClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_manifoldPtr_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_partId0_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_partId0_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_partId1_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_partId1_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_rootTransA_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_rootTransA_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_rootTransB_set    `( BtManifoldResultClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btManifoldResult.cpp?r=2223>+-}+{#fun btManifoldResult_m_rootTransB_get    `( BtManifoldResultClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+-- * btPairCachingGhostObject+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_new as btPairCachingGhostObject    {  } -> `BtPairCachingGhostObject' mkBtPairCachingGhostObject* #}+{#fun btPairCachingGhostObject_free    `( BtPairCachingGhostObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_removeOverlappingObjectInternal as btPairCachingGhostObject_removeOverlappingObjectInternal    `( BtPairCachingGhostObjectClass bc , BtBroadphaseProxyClass p0 , BtDispatcherClass p1 , BtBroadphaseProxyClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ otherProxy+, withBt* `p1'  -- ^ dispatcher+, withBt* `p2'  -- ^ thisProxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_getOverlappingPairCache as btPairCachingGhostObject_getOverlappingPairCache    `( BtPairCachingGhostObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtHashedOverlappingPairCache'  mkBtHashedOverlappingPairCache* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_addOverlappingObjectInternal as btPairCachingGhostObject_addOverlappingObjectInternal    `( BtPairCachingGhostObjectClass bc , BtBroadphaseProxyClass p0 , BtBroadphaseProxyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ otherProxy+, withBt* `p1'  -- ^ thisProxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_m_hashPairCache_set    `( BtPairCachingGhostObjectClass bc , BtHashedOverlappingPairCacheClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btGhostObject.cpp?r=2223>+-}+{#fun btPairCachingGhostObject_m_hashPairCache_get    `( BtPairCachingGhostObjectClass bc )' =>     { withBt* `bc'  } ->  `BtHashedOverlappingPairCache'  mkBtHashedOverlappingPairCache* #}+-- * btSphereSphereCollisionAlgorithm+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_new0 as btSphereSphereCollisionAlgorithm0    `( BtPersistentManifoldClass p0 , BtCollisionAlgorithmConstructionInfoClass p1 , BtCollisionObjectClass p2 , BtCollisionObjectClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtSphereSphereCollisionAlgorithm' mkBtSphereSphereCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_new1 as btSphereSphereCollisionAlgorithm1    `( BtCollisionAlgorithmConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSphereSphereCollisionAlgorithm' mkBtSphereSphereCollisionAlgorithm* #}+{#fun btSphereSphereCollisionAlgorithm_free    `( BtSphereSphereCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_getAllContactManifolds as btSphereSphereCollisionAlgorithm_getAllContactManifolds    `( BtSphereSphereCollisionAlgorithmClass bc , BtAlignedObjectArray_btPersistentManifold_ptr_Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifoldArray+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_calculateTimeOfImpact as btSphereSphereCollisionAlgorithm_calculateTimeOfImpact    `( BtSphereSphereCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_processCollision as btSphereSphereCollisionAlgorithm_processCollision    `( BtSphereSphereCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_m_ownManifold_set    `( BtSphereSphereCollisionAlgorithmClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_m_ownManifold_get    `( BtSphereSphereCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_m_manifoldPtr_set    `( BtSphereSphereCollisionAlgorithmClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp?r=2223>+-}+{#fun btSphereSphereCollisionAlgorithm_m_manifoldPtr_get    `( BtSphereSphereCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}
Physics/Bullet/Raw/BulletCollision/CollisionShapes.chs view
@@ -18,3900 +18,4791 @@ {- | <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> -}-{#fun btBU_Simplex1to4_new1 as btBU_Simplex1to41    {  withVector3* `Vector3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}-{- | <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>--}-{#fun btBU_Simplex1to4_new2 as btBU_Simplex1to42    {  withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}-{- | <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>--}-{#fun btBU_Simplex1to4_new3 as btBU_Simplex1to43    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}-{- | <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>--}-{#fun btBU_Simplex1to4_new4 as btBU_Simplex1to44    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}-{#fun btBU_Simplex1to4_free    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btBU_Simplex1to4_reset as btBU_Simplex1to4_reset    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getNumPlanes as btBU_Simplex1to4_getNumPlanes    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getIndex as btBU_Simplex1to4_getIndex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i- } ->  `Int'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getNumEdges as btBU_Simplex1to4_getNumEdges    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getName as btBU_Simplex1to4_getName    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getVertex as btBU_Simplex1to4_getVertex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getVertex as btBU_Simplex1to4_getVertex'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getEdge as btBU_Simplex1to4_getEdge    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getEdge as btBU_Simplex1to4_getEdge'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_addVertex as btBU_Simplex1to4_addVertex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_addVertex as btBU_Simplex1to4_addVertex'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_isInside as btBU_Simplex1to4_isInside    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_isInside as btBU_Simplex1to4_isInside'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getPlane as btBU_Simplex1to4_getPlane    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getPlane as btBU_Simplex1to4_getPlane'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getAabb as btBU_Simplex1to4_getAabb    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getAabb as btBU_Simplex1to4_getAabb'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBU_Simplex1to4_getNumVertices as btBU_Simplex1to4_getNumVertices    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * 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>--}-{#fun btBoxShape_new as btBoxShape    {  withVector3* `Vector3'  } -> `BtBoxShape' mkBtBoxShape* #}-{#fun btBoxShape_free    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_calculateLocalInertia as btBoxShape_calculateLocalInertia    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_calculateLocalInertia as btBoxShape_calculateLocalInertia'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getNumPlanes as btBoxShape_getNumPlanes    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBoxShape_localGetSupportingVertex as btBoxShape_localGetSupportingVertex    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btBoxShape_localGetSupportingVertex as btBoxShape_localGetSupportingVertex'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_setLocalScaling as btBoxShape_setLocalScaling    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_setLocalScaling as btBoxShape_setLocalScaling'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPlaneEquation as btBoxShape_getPlaneEquation    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector4* `Vector4'  peekVector4* -- ^ plane-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPlaneEquation as btBoxShape_getPlaneEquation'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector4-  `Vector4'  peekVector4* -- ^ plane-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPreferredPenetrationDirection as btBoxShape_getPreferredPenetrationDirection    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPreferredPenetrationDirection as btBoxShape_getPreferredPenetrationDirection'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btBoxShape_getNumEdges as btBoxShape_getNumEdges    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getName as btBoxShape_getName    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getVertex as btBoxShape_getVertex    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getVertex as btBoxShape_getVertex'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#187>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getEdge as btBoxShape_getEdge    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#187>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getEdge as btBoxShape_getEdge'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_isInside as btBoxShape_isInside    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_isInside as btBoxShape_isInside'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPlane as btBoxShape_getPlane    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getPlane as btBoxShape_getPlane'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btBoxShape_getHalfExtentsWithoutMargin as btBoxShape_getHalfExtentsWithoutMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#281>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getNumPreferredPenetrationDirections as btBoxShape_getNumPreferredPenetrationDirections    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBoxShape_getAabb as btBoxShape_getAabb    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBoxShape_getAabb as btBoxShape_getAabb'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#91>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_setMargin as btBoxShape_setMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ collisionMargin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btBoxShape.cpp?r=2223>--}-{#fun btBoxShape_getNumVertices as btBoxShape_getNumVertices    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBoxShape_getHalfExtentsWithMargin as btBoxShape_getHalfExtentsWithMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btBoxShape_localGetSupportingVertexWithoutMargin as btBoxShape_localGetSupportingVertexWithoutMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btBoxShape_localGetSupportingVertexWithoutMargin as btBoxShape_localGetSupportingVertexWithoutMargin'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btBvhTriangleMeshShape_new0 as btBvhTriangleMeshShape0    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool' ,  `Bool'  } -> `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape* #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_new1 as btBvhTriangleMeshShape1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Bool'  } -> `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape* #}-{#fun btBvhTriangleMeshShape_free    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_calculateSerializeBufferSize as btBvhTriangleMeshShape_calculateSerializeBufferSize    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_buildOptimizedBvh as btBvhTriangleMeshShape_buildOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_setLocalScaling as btBvhTriangleMeshShape_setLocalScaling    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_setLocalScaling as btBvhTriangleMeshShape_setLocalScaling'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_performRaycast as btBvhTriangleMeshShape_performRaycast    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ raySource-, withVector3* `Vector3'  peekVector3* -- ^ rayTarget- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_performRaycast as btBvhTriangleMeshShape_performRaycast'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ raySource-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTarget- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_setTriangleInfoMap as btBvhTriangleMeshShape_setTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc , BtTriangleInfoMapClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangleInfoMap- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_usesQuantizedAabbCompression as btBvhTriangleMeshShape_usesQuantizedAabbCompression    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getName as btBvhTriangleMeshShape_getName    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getTriangleInfoMap0 as btBvhTriangleMeshShape_getTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtTriangleInfoMap' mkBtTriangleInfoMap*  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getTriangleInfoMap0 as btBvhTriangleMeshShape_getTriangleInfoMap0    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtTriangleInfoMap' mkBtTriangleInfoMap*  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getTriangleInfoMap1 as btBvhTriangleMeshShape_getTriangleInfoMap1    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtTriangleInfoMap' mkBtTriangleInfoMap*  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_serializeSingleTriangleInfoMap as btBvhTriangleMeshShape_serializeSingleTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getOwnsBvh as btBvhTriangleMeshShape_getOwnsBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_partialRefitTree as btBvhTriangleMeshShape_partialRefitTree    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_partialRefitTree as btBvhTriangleMeshShape_partialRefitTree'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_getOptimizedBvh as btBvhTriangleMeshShape_getOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtOptimizedBvh' mkBtOptimizedBvh*  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_processAllTriangles as btBvhTriangleMeshShape_processAllTriangles    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_processAllTriangles as btBvhTriangleMeshShape_processAllTriangles'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_refitTree as btBvhTriangleMeshShape_refitTree    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_refitTree as btBvhTriangleMeshShape_refitTree'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_performConvexcast as btBvhTriangleMeshShape_performConvexcast    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ boxSource-, withVector3* `Vector3'  peekVector3* -- ^ boxTarget-, withVector3* `Vector3'  peekVector3* -- ^ boxMin-, withVector3* `Vector3'  peekVector3* -- ^ boxMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_performConvexcast as btBvhTriangleMeshShape_performConvexcast'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ boxSource-, allocaVector3-  `Vector3'  peekVector3* -- ^ boxTarget-, allocaVector3-  `Vector3'  peekVector3* -- ^ boxMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ boxMax- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_serializeSingleBvh as btBvhTriangleMeshShape_serializeSingleBvh    `( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_setOptimizedBvh as btBvhTriangleMeshShape_setOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ bvh-, withVector3* `Vector3'  peekVector3* -- ^ localScaling- } ->  `()'  #}-{- | <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>--}-{#fun btBvhTriangleMeshShape_setOptimizedBvh as btBvhTriangleMeshShape_setOptimizedBvh'    `( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ bvh-, allocaVector3-  `Vector3'  peekVector3* -- ^ localScaling- } ->  `()'  #}--- * btCapsuleShape-{- | <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>--}-{#fun btCapsuleShape_new as btCapsuleShape    {   `Float' ,  `Float'  } -> `BtCapsuleShape' mkBtCapsuleShape* #}-{#fun btCapsuleShape_free    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCapsuleShape_calculateLocalInertia as btCapsuleShape_calculateLocalInertia    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_calculateLocalInertia as btCapsuleShape_calculateLocalInertia'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_calculateSerializeBufferSize as btCapsuleShape_calculateSerializeBufferSize    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCapsuleShape_setLocalScaling as btCapsuleShape_setLocalScaling    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_setLocalScaling as btCapsuleShape_setLocalScaling'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_getUpAxis as btCapsuleShape_getUpAxis    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCapsuleShape_getName as btCapsuleShape_getName    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCapsuleShape_getHalfHeight as btCapsuleShape_getHalfHeight    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btCapsuleShape_setMargin as btCapsuleShape_setMargin    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ collisionMargin- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_getAabb as btCapsuleShape_getAabb    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_getAabb as btCapsuleShape_getAabb'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCapsuleShape_localGetSupportingVertexWithoutMargin as btCapsuleShape_localGetSupportingVertexWithoutMargin    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCapsuleShape_localGetSupportingVertexWithoutMargin as btCapsuleShape_localGetSupportingVertexWithoutMargin'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCapsuleShape_getRadius as btCapsuleShape_getRadius    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btCapsuleShapeData_new as btCapsuleShapeData    {  } -> `BtCapsuleShapeData' mkBtCapsuleShapeData* #}-{#fun btCapsuleShapeData_free    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCapsuleShapeData_m_upAxis_set    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCapsuleShapeData_m_upAxis_get    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btCapsuleShapeX_new as btCapsuleShapeX    {   `Float' ,  `Float'  } -> `BtCapsuleShapeX' mkBtCapsuleShapeX* #}-{#fun btCapsuleShapeX_free    `( BtCapsuleShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCapsuleShapeX_getName as btCapsuleShapeX_getName    `( BtCapsuleShapeXClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}--- * 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>--}-{#fun btCapsuleShapeZ_new as btCapsuleShapeZ    {   `Float' ,  `Float'  } -> `BtCapsuleShapeZ' mkBtCapsuleShapeZ* #}-{#fun btCapsuleShapeZ_free    `( BtCapsuleShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCapsuleShapeZ_getName as btCapsuleShapeZ_getName    `( BtCapsuleShapeZClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}--- * 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>--}-{#fun btCharIndexTripletData_new as btCharIndexTripletData    {  } -> `BtCharIndexTripletData' mkBtCharIndexTripletData* #}-{#fun btCharIndexTripletData_free    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCharIndexTripletData_m_pad_set    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc' , castCharToCChar `Char'  } -> `()' #}-{- | <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>--}-{#fun btCharIndexTripletData_m_pad_get    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc'  } ->  `Char'  castCCharToChar #}--- * 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>--}-{#fun btCollisionShape_calculateLocalInertia as btCollisionShape_calculateLocalInertia    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_calculateLocalInertia as btCollisionShape_calculateLocalInertia'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_getLocalScaling as btCollisionShape_getLocalScaling    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCollisionShape_calculateSerializeBufferSize as btCollisionShape_calculateSerializeBufferSize    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCollisionShape_getName as btCollisionShape_getName    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCollisionShape_isCompound as btCollisionShape_isCompound    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_isPolyhedral as btCollisionShape_isPolyhedral    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_setLocalScaling as btCollisionShape_setLocalScaling    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_setLocalScaling as btCollisionShape_setLocalScaling'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_getAabb as btCollisionShape_getAabb    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_getAabb as btCollisionShape_getAabb'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_getContactBreakingThreshold as btCollisionShape_getContactBreakingThreshold    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ defaultContactThresholdFactor- } ->  `Float'  #}-{- | <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>--}-{#fun btCollisionShape_isConvex as btCollisionShape_isConvex    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_isInfinite as btCollisionShape_isInfinite    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_isNonMoving as btCollisionShape_isNonMoving    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_getMargin as btCollisionShape_getMargin    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btCollisionShape_setMargin as btCollisionShape_setMargin    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_isConvex2d as btCollisionShape_isConvex2d    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_isSoftBody as btCollisionShape_isSoftBody    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_calculateTemporalAabb as btCollisionShape_calculateTemporalAabb    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ curTrans-, withVector3* `Vector3'  peekVector3* -- ^ linvel-, withVector3* `Vector3'  peekVector3* -- ^ angvel-,  `Float'  -- ^ timeStep-, withVector3* `Vector3'  peekVector3* -- ^ temporalAabbMin-, withVector3* `Vector3'  peekVector3* -- ^ temporalAabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_calculateTemporalAabb as btCollisionShape_calculateTemporalAabb'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ curTrans-, allocaVector3-  `Vector3'  peekVector3* -- ^ linvel-, allocaVector3-  `Vector3'  peekVector3* -- ^ angvel-,  `Float'  -- ^ timeStep-, allocaVector3-  `Vector3'  peekVector3* -- ^ temporalAabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ temporalAabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_isConcave as btCollisionShape_isConcave    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btCollisionShape_getAngularMotionDisc as btCollisionShape_getAngularMotionDisc    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btCollisionShape_serializeSingleShape as btCollisionShape_serializeSingleShape    `( BtCollisionShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <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>--}-{#fun btCollisionShape_getShapeType as btCollisionShape_getShapeType    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * 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>--}-{#fun btCollisionShapeData_new as btCollisionShapeData    {  } -> `BtCollisionShapeData' mkBtCollisionShapeData* #}-{#fun btCollisionShapeData_free    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCollisionShapeData_m_name_set    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <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>--}-{#fun btCollisionShapeData_m_name_get    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}-{- | <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>--}-{#fun btCollisionShapeData_m_shapeType_set    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCollisionShapeData_m_shapeType_get    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btCompoundShape_new as btCompoundShape    {   `Bool'  } -> `BtCompoundShape' mkBtCompoundShape* #}-{#fun btCompoundShape_free    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShape_calculateLocalInertia as btCompoundShape_calculateLocalInertia    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_calculateLocalInertia as btCompoundShape_calculateLocalInertia'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getDynamicAabbTree0 as btCompoundShape_getDynamicAabbTree    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDbvt' mkBtDbvt*  #}-{- | <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>--}-{#fun btCompoundShape_getDynamicAabbTree0 as btCompoundShape_getDynamicAabbTree0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDbvt' mkBtDbvt*  #}-{- | <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>--}-{#fun btCompoundShape_getDynamicAabbTree1 as btCompoundShape_getDynamicAabbTree1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtDbvt' mkBtDbvt*  #}-{- | <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>--}-{#fun btCompoundShape_getUpdateRevision as btCompoundShape_getUpdateRevision    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCompoundShape_getLocalScaling as btCompoundShape_getLocalScaling    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCompoundShape_createAabbTreeFromChildren as btCompoundShape_createAabbTreeFromChildren    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_calculateSerializeBufferSize as btCompoundShape_calculateSerializeBufferSize    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCompoundShape_getName as btCompoundShape_getName    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCompoundShape_setLocalScaling as btCompoundShape_setLocalScaling    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_setLocalScaling as btCompoundShape_setLocalScaling'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getAabb as btCompoundShape_getAabb    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getAabb as btCompoundShape_getAabb'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getChildShape0 as btCompoundShape_getChildShape    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <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>--}-{#fun btCompoundShape_getChildShape0 as btCompoundShape_getChildShape0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <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>--}-{#fun btCompoundShape_getChildShape1 as btCompoundShape_getChildShape1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <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>--}-{#fun btCompoundShape_addChildShape as btCompoundShape_addChildShape    `( BtCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_addChildShape as btCompoundShape_addChildShape'    `( BtCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getChildTransform0 as btCompoundShape_getChildTransform    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCompoundShape_getChildTransform0 as btCompoundShape_getChildTransform0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCompoundShape_getChildTransform1 as btCompoundShape_getChildTransform1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCompoundShape_getChildList as btCompoundShape_getChildList    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCompoundShapeChild' mkBtCompoundShapeChild*  #}-{- | <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>--}-{#fun btCompoundShape_getMargin as btCompoundShape_getMargin    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btCompoundShape_setMargin as btCompoundShape_setMargin    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_getNumChildShapes as btCompoundShape_getNumChildShapes    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCompoundShape_removeChildShapeByIndex as btCompoundShape_removeChildShapeByIndex    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ childShapeindex- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_recalculateLocalAabb as btCompoundShape_recalculateLocalAabb    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_updateChildTransform as btCompoundShape_updateChildTransform    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ childIndex-, withTransform* `Transform'  peekTransform* -- ^ newChildTransform-,  `Bool'  -- ^ shouldRecalculateLocalAabb- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_updateChildTransform as btCompoundShape_updateChildTransform'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ childIndex-, allocaTransform-  `Transform'  peekTransform* -- ^ newChildTransform-,  `Bool'  -- ^ shouldRecalculateLocalAabb- } ->  `()'  #}-{- | <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>--}-{#fun btCompoundShape_removeChildShape as btCompoundShape_removeChildShape    `( BtCompoundShapeClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ shape- } ->  `()'  #}--- * 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>--}-{#fun btCompoundShapeChild_new as btCompoundShapeChild    {  } -> `BtCompoundShapeChild' mkBtCompoundShapeChild* #}-{#fun btCompoundShapeChild_free    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_childMargin_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_childMargin_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btCompoundShapeChild_m_childShape_set    `( BtCompoundShapeChildClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_childShapeType_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_childShapeType_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btCompoundShapeChild_m_node_set    `( BtCompoundShapeChildClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_transform_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChild_m_transform_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}--- * 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>--}-{#fun btCompoundShapeChildData_new as btCompoundShapeChildData    {  } -> `BtCompoundShapeChildData' mkBtCompoundShapeChildData* #}-{#fun btCompoundShapeChildData_free    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChildData_m_childShape_set    `( BtCompoundShapeChildDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChildData_m_childShapeType_set    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChildData_m_childShapeType_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btCompoundShapeChildData_m_childMargin_set    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeChildData_m_childMargin_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btCompoundShapeData_new as btCompoundShapeData    {  } -> `BtCompoundShapeData' mkBtCompoundShapeData* #}-{#fun btCompoundShapeData_free    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeData_m_childShapePtr_set    `( BtCompoundShapeDataClass bc , BtCompoundShapeChildDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeData_m_numChildShapes_set    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeData_m_numChildShapes_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btCompoundShapeData_m_collisionMargin_set    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btCompoundShapeData_m_collisionMargin_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btConcaveShape_processAllTriangles as btConcaveShape_processAllTriangles    `( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConcaveShape_processAllTriangles as btConcaveShape_processAllTriangles'    `( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConcaveShape_setMargin as btConcaveShape_setMargin    `( BtConcaveShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ collisionMargin- } ->  `()'  #}-{- | <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>--}-{#fun btConcaveShape_getMargin as btConcaveShape_getMargin    `( BtConcaveShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btConeShape_new as btConeShape    {   `Float' ,  `Float'  } -> `BtConeShape' mkBtConeShape* #}-{#fun btConeShape_free    `( BtConeShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btConeShape_calculateLocalInertia as btConeShape_calculateLocalInertia    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btConeShape_calculateLocalInertia as btConeShape_calculateLocalInertia'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btConeShape_localGetSupportingVertex as btConeShape_localGetSupportingVertex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConeShape_localGetSupportingVertex as btConeShape_localGetSupportingVertex'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConeShape_getConeUpIndex as btConeShape_getConeUpIndex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConeShape_getName as btConeShape_getName    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btConeShape_getHeight as btConeShape_getHeight    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btConeShape_setConeUpIndex as btConeShape_setConeUpIndex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ upIndex- } ->  `()'  #}-{- | <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>--}-{#fun btConeShape_setLocalScaling as btConeShape_setLocalScaling    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConeShape_setLocalScaling as btConeShape_setLocalScaling'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConeShape_localGetSupportingVertexWithoutMargin as btConeShape_localGetSupportingVertexWithoutMargin    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConeShape_localGetSupportingVertexWithoutMargin as btConeShape_localGetSupportingVertexWithoutMargin'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConeShape_getRadius as btConeShape_getRadius    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btConeShapeX_new as btConeShapeX    {   `Float' ,  `Float'  } -> `BtConeShapeX' mkBtConeShapeX* #}-{#fun btConeShapeX_free    `( BtConeShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * 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>--}-{#fun btConeShapeZ_new as btConeShapeZ    {   `Float' ,  `Float'  } -> `BtConeShapeZ' mkBtConeShapeZ* #}-{#fun btConeShapeZ_free    `( BtConeShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btConvexHullShape-{#fun btConvexHullShape_free    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btConvexHullShape_addPoint as btConvexHullShape_addPoint    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ point- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_addPoint as btConvexHullShape_addPoint'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ point- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_localGetSupportingVertex as btConvexHullShape_localGetSupportingVertex    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexHullShape_localGetSupportingVertex as btConvexHullShape_localGetSupportingVertex'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_calculateSerializeBufferSize as btConvexHullShape_calculateSerializeBufferSize    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexHullShape_getScaledPoint as btConvexHullShape_getScaledPoint    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexHullShape_getNumPlanes as btConvexHullShape_getNumPlanes    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_getNumEdges as btConvexHullShape_getNumEdges    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_getName as btConvexHullShape_getName    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btConvexHullShape_getVertex as btConvexHullShape_getVertex    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_getVertex as btConvexHullShape_getVertex'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_getEdge as btConvexHullShape_getEdge    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_getEdge as btConvexHullShape_getEdge'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_localGetSupportingVertexWithoutMargin as btConvexHullShape_localGetSupportingVertexWithoutMargin    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexHullShape_localGetSupportingVertexWithoutMargin as btConvexHullShape_localGetSupportingVertexWithoutMargin'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexHullShape_isInside as btConvexHullShape_isInside    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btConvexHullShape_isInside as btConvexHullShape_isInside'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btConvexHullShape_getPlane as btConvexHullShape_getPlane    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btConvexHullShape_getPlane as btConvexHullShape_getPlane'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_setLocalScaling as btConvexHullShape_setLocalScaling    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_setLocalScaling as btConvexHullShape_setLocalScaling'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShape_getNumVertices as btConvexHullShape_getNumVertices    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexHullShape_getNumPoints as btConvexHullShape_getNumPoints    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * btConvexHullShapeData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShapeData_new as btConvexHullShapeData    {  } -> `BtConvexHullShapeData' mkBtConvexHullShapeData* #}-{#fun btConvexHullShapeData_free    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btConvexHullShapeData_m_unscaledPointsFloatPtr_set    `( BtConvexHullShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexHullShape.cpp?r=2223>--}-{#fun btConvexHullShapeData_m_unscaledPointsDoublePtr_set    `( BtConvexHullShapeDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btConvexHullShapeData_m_numUnscaledPoints_set    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btConvexHullShapeData_m_numUnscaledPoints_get    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btConvexInternalAabbCachingShape-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#198>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalAabbCachingShape_recalcLocalAabb as btConvexInternalAabbCachingShape_recalcLocalAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalAabbCachingShape_setLocalScaling as btConvexInternalAabbCachingShape_setLocalScaling    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalAabbCachingShape_setLocalScaling as btConvexInternalAabbCachingShape_setLocalScaling'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#196>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalAabbCachingShape_getAabb as btConvexInternalAabbCachingShape_getAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#196>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalAabbCachingShape_getAabb as btConvexInternalAabbCachingShape_getAabb'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * btConvexInternalShape-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_localGetSupportingVertex as btConvexInternalShape_localGetSupportingVertex    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_localGetSupportingVertex as btConvexInternalShape_localGetSupportingVertex'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_calculateSerializeBufferSize as btConvexInternalShape_calculateSerializeBufferSize    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getImplicitShapeDimensions as btConvexInternalShape_getImplicitShapeDimensions    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getLocalScalingNV as btConvexInternalShape_getLocalScalingNV    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getAabbSlow as btConvexInternalShape_getAabbSlow    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getAabbSlow as btConvexInternalShape_getAabbSlow'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getLocalScaling as btConvexInternalShape_getLocalScaling    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#106>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getPreferredPenetrationDirection as btConvexInternalShape_getPreferredPenetrationDirection    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#106>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getPreferredPenetrationDirection as btConvexInternalShape_getPreferredPenetrationDirection'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_setLocalScaling as btConvexInternalShape_setLocalScaling    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_setLocalScaling as btConvexInternalShape_setLocalScaling'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getNumPreferredPenetrationDirections as btConvexInternalShape_getNumPreferredPenetrationDirections    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getAabb as btConvexInternalShape_getAabb    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getAabb as btConvexInternalShape_getAabb'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_setMargin as btConvexInternalShape_setMargin    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getMarginNV as btConvexInternalShape_getMarginNV    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#91>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_getMargin as btConvexInternalShape_getMargin    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#60>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_setImplicitShapeDimensions as btConvexInternalShape_setImplicitShapeDimensions    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ dimensions- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#60>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShape_setImplicitShapeDimensions as btConvexInternalShape_setImplicitShapeDimensions'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ dimensions- } ->  `()'  #}--- * btConvexInternalShapeData-{- | <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>--}-{#fun btConvexInternalShapeData_new as btConvexInternalShapeData    {  } -> `BtConvexInternalShapeData' mkBtConvexInternalShapeData* #}-{#fun btConvexInternalShapeData_free    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShapeData_m_collisionMargin_set    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShapeData_m_collisionMargin_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShapeData_m_padding_set    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp?r=2223>--}-{#fun btConvexInternalShapeData_m_padding_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btConvexShape_getAabbNonVirtual as btConvexShape_getAabbNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_getAabbNonVirtual as btConvexShape_getAabbNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_localGetSupportingVertex as btConvexShape_localGetSupportingVertex    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_localGetSupportingVertex as btConvexShape_localGetSupportingVertex'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_getMargin as btConvexShape_getMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btConvexShape_localGetSupportVertexWithoutMarginNonVirtual as btConvexShape_localGetSupportVertexWithoutMarginNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_localGetSupportVertexWithoutMarginNonVirtual as btConvexShape_localGetSupportVertexWithoutMarginNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>--}-{#fun btConvexShape_getLocalScaling as btConvexShape_getLocalScaling    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_getPreferredPenetrationDirection as btConvexShape_getPreferredPenetrationDirection    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_getPreferredPenetrationDirection as btConvexShape_getPreferredPenetrationDirection'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_setLocalScaling as btConvexShape_setLocalScaling    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_setLocalScaling as btConvexShape_setLocalScaling'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_getAabbSlow as btConvexShape_getAabbSlow    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_getAabbSlow as btConvexShape_getAabbSlow'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#60>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>--}-{#fun btConvexShape_getAabb as btConvexShape_getAabb    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.h?r=2223#60>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/CollisionShapes/btConvexShape.cpp?r=2223>--}-{#fun btConvexShape_getAabb as btConvexShape_getAabb'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_setMargin as btConvexShape_setMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btConvexShape_getNumPreferredPenetrationDirections as btConvexShape_getNumPreferredPenetrationDirections    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexShape_localGetSupportVertexNonVirtual as btConvexShape_localGetSupportVertexNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_localGetSupportVertexNonVirtual as btConvexShape_localGetSupportVertexNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_localGetSupportingVertexWithoutMargin as btConvexShape_localGetSupportingVertexWithoutMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_localGetSupportingVertexWithoutMargin as btConvexShape_localGetSupportingVertexWithoutMargin'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexShape_getMarginNonVirtual as btConvexShape_getMarginNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btConvexTriangleMeshShape_new as btConvexTriangleMeshShape    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool'  } -> `BtConvexTriangleMeshShape' mkBtConvexTriangleMeshShape* #}-{#fun btConvexTriangleMeshShape_free    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getNumPlanes as btConvexTriangleMeshShape_getNumPlanes    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_localGetSupportingVertex as btConvexTriangleMeshShape_localGetSupportingVertex    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_localGetSupportingVertex as btConvexTriangleMeshShape_localGetSupportingVertex'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getNumEdges as btConvexTriangleMeshShape_getNumEdges    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getName as btConvexTriangleMeshShape_getName    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getVertex as btConvexTriangleMeshShape_getVertex    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getVertex as btConvexTriangleMeshShape_getVertex'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getEdge as btConvexTriangleMeshShape_getEdge    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getEdge as btConvexTriangleMeshShape_getEdge'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getLocalScaling as btConvexTriangleMeshShape_getLocalScaling    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_isInside as btConvexTriangleMeshShape_isInside    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_isInside as btConvexTriangleMeshShape_isInside'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getPlane as btConvexTriangleMeshShape_getPlane    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getPlane as btConvexTriangleMeshShape_getPlane'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_setLocalScaling as btConvexTriangleMeshShape_setLocalScaling    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_setLocalScaling as btConvexTriangleMeshShape_setLocalScaling'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getMeshInterface0 as btConvexTriangleMeshShape_getMeshInterface    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getMeshInterface0 as btConvexTriangleMeshShape_getMeshInterface0    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getMeshInterface1 as btConvexTriangleMeshShape_getMeshInterface1    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_getNumVertices as btConvexTriangleMeshShape_getNumVertices    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin as btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin as btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btCylinderShape_new as btCylinderShape    {  withVector3* `Vector3'  } -> `BtCylinderShape' mkBtCylinderShape* #}-{#fun btCylinderShape_free    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_calculateLocalInertia as btCylinderShape_calculateLocalInertia    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_calculateLocalInertia as btCylinderShape_calculateLocalInertia'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_localGetSupportingVertex as btCylinderShape_localGetSupportingVertex    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_localGetSupportingVertex as btCylinderShape_localGetSupportingVertex'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_calculateSerializeBufferSize as btCylinderShape_calculateSerializeBufferSize    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCylinderShape_setLocalScaling as btCylinderShape_setLocalScaling    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_setLocalScaling as btCylinderShape_setLocalScaling'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_getUpAxis as btCylinderShape_getUpAxis    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btCylinderShape_getName as btCylinderShape_getName    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCylinderShape_getHalfExtentsWithoutMargin as btCylinderShape_getHalfExtentsWithoutMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_getAabb as btCylinderShape_getAabb    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_getAabb as btCylinderShape_getAabb'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_setMargin as btCylinderShape_setMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ collisionMargin- } ->  `()'  #}-{- | <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>--}-{#fun btCylinderShape_getHalfExtentsWithMargin as btCylinderShape_getHalfExtentsWithMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_localGetSupportingVertexWithoutMargin as btCylinderShape_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_localGetSupportingVertexWithoutMargin as btCylinderShape_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShape_getRadius as btCylinderShape_getRadius    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btCylinderShapeData_new as btCylinderShapeData    {  } -> `BtCylinderShapeData' mkBtCylinderShapeData* #}-{#fun btCylinderShapeData_free    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeData_m_upAxis_set    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeData_m_upAxis_get    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btCylinderShapeX_new as btCylinderShapeX    {  withVector3* `Vector3'  } -> `BtCylinderShapeX' mkBtCylinderShapeX* #}-{#fun btCylinderShapeX_free    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeX_getName as btCylinderShapeX_getName    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCylinderShapeX_localGetSupportingVertexWithoutMargin as btCylinderShapeX_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeX_localGetSupportingVertexWithoutMargin as btCylinderShapeX_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeX_getRadius as btCylinderShapeX_getRadius    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btCylinderShapeZ_new as btCylinderShapeZ    {  withVector3* `Vector3'  } -> `BtCylinderShapeZ' mkBtCylinderShapeZ* #}-{#fun btCylinderShapeZ_free    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeZ_getName as btCylinderShapeZ_getName    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btCylinderShapeZ_localGetSupportingVertexWithoutMargin as btCylinderShapeZ_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeZ_localGetSupportingVertexWithoutMargin as btCylinderShapeZ_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btCylinderShapeZ_getRadius as btCylinderShapeZ_getRadius    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btEmptyShape_new as btEmptyShape    {  } -> `BtEmptyShape' mkBtEmptyShape* #}-{#fun btEmptyShape_free    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btEmptyShape_calculateLocalInertia as btEmptyShape_calculateLocalInertia    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_calculateLocalInertia as btEmptyShape_calculateLocalInertia'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_getName as btEmptyShape_getName    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btEmptyShape_getLocalScaling as btEmptyShape_getLocalScaling    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btEmptyShape_setLocalScaling as btEmptyShape_setLocalScaling    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_setLocalScaling as btEmptyShape_setLocalScaling'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_getAabb as btEmptyShape_getAabb    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_getAabb as btEmptyShape_getAabb'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_processAllTriangles as btEmptyShape_processAllTriangles    `( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withVector3* `Vector3'  peekVector3* -- ^ arg1-, withVector3* `Vector3'  peekVector3* -- ^ arg2- } ->  `()'  #}-{- | <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>--}-{#fun btEmptyShape_processAllTriangles as btEmptyShape_processAllTriangles'    `( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg1-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg2- } ->  `()'  #}--- * 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>--}-{#fun btIndexedMesh_new as btIndexedMesh    {  } -> `BtIndexedMesh' mkBtIndexedMesh* #}-{#fun btIndexedMesh_free    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btIndexedMesh_m_numTriangles_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btIndexedMesh_m_numTriangles_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btIndexedMesh_m_triangleIndexStride_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btIndexedMesh_m_triangleIndexStride_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btIndexedMesh_m_numVertices_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btIndexedMesh_m_numVertices_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btIndexedMesh_m_vertexStride_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btIndexedMesh_m_vertexStride_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btIntIndexData_new as btIntIndexData    {  } -> `BtIntIndexData' mkBtIntIndexData* #}-{#fun btIntIndexData_free    `( BtIntIndexDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btIntIndexData_m_value_set    `( BtIntIndexDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btIntIndexData_m_value_get    `( BtIntIndexDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btMeshPartData_new as btMeshPartData    {  } -> `BtMeshPartData' mkBtMeshPartData* #}-{#fun btMeshPartData_free    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_vertices3f_set    `( BtMeshPartDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_vertices3d_set    `( BtMeshPartDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_indices32_set    `( BtMeshPartDataClass bc , BtIntIndexDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_3indices16_set    `( BtMeshPartDataClass bc , BtShortIntIndexTripletDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_3indices8_set    `( BtMeshPartDataClass bc , BtCharIndexTripletDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_indices16_set    `( BtMeshPartDataClass bc , BtShortIntIndexDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_numTriangles_set    `( BtMeshPartDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_numTriangles_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btMeshPartData_m_numVertices_set    `( BtMeshPartDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btMeshPartData_m_numVertices_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btMultiSphereShape-{#fun btMultiSphereShape_free    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShape_calculateLocalInertia as btMultiSphereShape_calculateLocalInertia    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btMultiSphereShape_calculateLocalInertia as btMultiSphereShape_calculateLocalInertia'    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btMultiSphereShape_calculateSerializeBufferSize as btMultiSphereShape_calculateSerializeBufferSize    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btMultiSphereShape_getSphereCount as btMultiSphereShape_getSphereCount    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btMultiSphereShape_getName as btMultiSphereShape_getName    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btMultiSphereShape_getSpherePosition as btMultiSphereShape_getSpherePosition    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShape_getSphereRadius as btMultiSphereShape_getSphereRadius    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `Float'  #}-{- | <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>--}-{#fun btMultiSphereShape_localGetSupportingVertexWithoutMargin as btMultiSphereShape_localGetSupportingVertexWithoutMargin    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShape_localGetSupportingVertexWithoutMargin as btMultiSphereShape_localGetSupportingVertexWithoutMargin'    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btMultiSphereShapeData_new as btMultiSphereShapeData    {  } -> `BtMultiSphereShapeData' mkBtMultiSphereShapeData* #}-{#fun btMultiSphereShapeData_free    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShapeData_m_localPositionArrayPtr_set    `( BtMultiSphereShapeDataClass bc , BtPositionAndRadiusClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShapeData_m_localPositionArraySize_set    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btMultiSphereShapeData_m_localPositionArraySize_get    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btOptimizedBvh_new as btOptimizedBvh    {  } -> `BtOptimizedBvh' mkBtOptimizedBvh* #}-{#fun btOptimizedBvh_free    `( BtOptimizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btOptimizedBvh_updateBvhNodes as btOptimizedBvh_updateBvhNodes    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ meshInterface-,  `Int'  -- ^ firstNode-,  `Int'  -- ^ endNode-,  `Int'  -- ^ index- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_refit as btOptimizedBvh_refit    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_refit as btOptimizedBvh_refit'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_build as btOptimizedBvh_build    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-,  `Bool'  -- ^ useQuantizedAabbCompression-, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMin-, withVector3* `Vector3'  peekVector3* -- ^ bvhAabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_build as btOptimizedBvh_build'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-,  `Bool'  -- ^ useQuantizedAabbCompression-, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bvhAabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_refitPartial as btOptimizedBvh_refitPartial    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btOptimizedBvh_refitPartial as btOptimizedBvh_refitPartial'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ triangles-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * btPolyhedralConvexAabbCachingShape-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_recalcLocalAabb as btPolyhedralConvexAabbCachingShape_recalcLocalAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_setLocalScaling as btPolyhedralConvexAabbCachingShape_setLocalScaling    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_setLocalScaling as btPolyhedralConvexAabbCachingShape_setLocalScaling'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_getNonvirtualAabb as btPolyhedralConvexAabbCachingShape_getNonvirtualAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ trans-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax-,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_getNonvirtualAabb as btPolyhedralConvexAabbCachingShape_getNonvirtualAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trans-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax-,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_getAabb as btPolyhedralConvexAabbCachingShape_getAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexAabbCachingShape_getAabb as btPolyhedralConvexAabbCachingShape_getAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * 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>--}-{#fun btPolyhedralConvexShape_calculateLocalInertia as btPolyhedralConvexShape_calculateLocalInertia    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_calculateLocalInertia as btPolyhedralConvexShape_calculateLocalInertia'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getNumPlanes as btPolyhedralConvexShape_getNumPlanes    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getNumEdges as btPolyhedralConvexShape_getNumEdges    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getVertex as btPolyhedralConvexShape_getVertex    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getVertex as btPolyhedralConvexShape_getVertex'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ vtx- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getEdge as btPolyhedralConvexShape_getEdge    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getEdge as btPolyhedralConvexShape_getEdge'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_isInside as btPolyhedralConvexShape_isInside    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_isInside as btPolyhedralConvexShape_isInside'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getPlane as btPolyhedralConvexShape_getPlane    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getPlane as btPolyhedralConvexShape_getPlane'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_initializePolyhedralFeatures as btPolyhedralConvexShape_initializePolyhedralFeatures    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_getNumVertices as btPolyhedralConvexShape_getNumVertices    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin as btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin as btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btPositionAndRadius_new as btPositionAndRadius    {  } -> `BtPositionAndRadius' mkBtPositionAndRadius* #}-{#fun btPositionAndRadius_free    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btPositionAndRadius_m_radius_set    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btPositionAndRadius_m_radius_get    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btScaledBvhTriangleMeshShape_new as btScaledBvhTriangleMeshShape    `( BtBvhTriangleMeshShapeClass p0 )' =>     {  withBt* `p0' , withVector3* `Vector3'  } -> `BtScaledBvhTriangleMeshShape' mkBtScaledBvhTriangleMeshShape* #}-{#fun btScaledBvhTriangleMeshShape_free    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_calculateLocalInertia as btScaledBvhTriangleMeshShape_calculateLocalInertia    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_calculateLocalInertia as btScaledBvhTriangleMeshShape_calculateLocalInertia'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getChildShape0 as btScaledBvhTriangleMeshShape_getChildShape    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape*  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getChildShape0 as btScaledBvhTriangleMeshShape_getChildShape0    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape*  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getChildShape1 as btScaledBvhTriangleMeshShape_getChildShape1    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape*  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_calculateSerializeBufferSize as btScaledBvhTriangleMeshShape_calculateSerializeBufferSize    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getName as btScaledBvhTriangleMeshShape_getName    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getLocalScaling as btScaledBvhTriangleMeshShape_getLocalScaling    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_setLocalScaling as btScaledBvhTriangleMeshShape_setLocalScaling    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_setLocalScaling as btScaledBvhTriangleMeshShape_setLocalScaling'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getAabb as btScaledBvhTriangleMeshShape_getAabb    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_getAabb as btScaledBvhTriangleMeshShape_getAabb'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_processAllTriangles as btScaledBvhTriangleMeshShape_processAllTriangles    `( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btScaledBvhTriangleMeshShape_processAllTriangles as btScaledBvhTriangleMeshShape_processAllTriangles'    `( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * 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>--}-{#fun btScaledTriangleMeshShapeData_new as btScaledTriangleMeshShapeData    {  } -> `BtScaledTriangleMeshShapeData' mkBtScaledTriangleMeshShapeData* #}-{#fun btScaledTriangleMeshShapeData_free    `( BtScaledTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * 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>--}-{#fun btShortIntIndexData_new as btShortIntIndexData    {  } -> `BtShortIntIndexData' mkBtShortIntIndexData* #}-{#fun btShortIntIndexData_free    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btShortIntIndexData_m_value_set    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btShortIntIndexData_m_value_get    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btShortIntIndexTripletData_new as btShortIntIndexTripletData    {  } -> `BtShortIntIndexTripletData' mkBtShortIntIndexTripletData* #}-{#fun btShortIntIndexTripletData_free    `( BtShortIntIndexTripletDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * 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>--}-{#fun btSphereShape_new as btSphereShape    {   `Float'  } -> `BtSphereShape' mkBtSphereShape* #}-{#fun btSphereShape_free    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btSphereShape_calculateLocalInertia as btSphereShape_calculateLocalInertia    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_calculateLocalInertia as btSphereShape_calculateLocalInertia'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_localGetSupportingVertex as btSphereShape_localGetSupportingVertex    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btSphereShape_localGetSupportingVertex as btSphereShape_localGetSupportingVertex'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btSphereShape_getName as btSphereShape_getName    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btSphereShape_getMargin as btSphereShape_getMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btSphereShape_setMargin as btSphereShape_setMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_getAabb as btSphereShape_getAabb    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_getAabb as btSphereShape_getAabb'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_setUnscaledRadius as btSphereShape_setUnscaledRadius    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius- } ->  `()'  #}-{- | <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>--}-{#fun btSphereShape_localGetSupportingVertexWithoutMargin as btSphereShape_localGetSupportingVertexWithoutMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btSphereShape_localGetSupportingVertexWithoutMargin as btSphereShape_localGetSupportingVertexWithoutMargin'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btSphereShape_getRadius as btSphereShape_getRadius    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * 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>--}-{#fun btStaticPlaneShape_new as btStaticPlaneShape    {  withVector3* `Vector3' ,  `Float'  } -> `BtStaticPlaneShape' mkBtStaticPlaneShape* #}-{#fun btStaticPlaneShape_free    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btStaticPlaneShape_calculateLocalInertia as btStaticPlaneShape_calculateLocalInertia    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_calculateLocalInertia as btStaticPlaneShape_calculateLocalInertia'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_calculateSerializeBufferSize as btStaticPlaneShape_calculateSerializeBufferSize    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btStaticPlaneShape_getName as btStaticPlaneShape_getName    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btStaticPlaneShape_getLocalScaling as btStaticPlaneShape_getLocalScaling    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btStaticPlaneShape_getPlaneNormal as btStaticPlaneShape_getPlaneNormal    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btStaticPlaneShape_getPlaneConstant as btStaticPlaneShape_getPlaneConstant    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btStaticPlaneShape_setLocalScaling as btStaticPlaneShape_setLocalScaling    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_setLocalScaling as btStaticPlaneShape_setLocalScaling'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_getAabb as btStaticPlaneShape_getAabb    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_getAabb as btStaticPlaneShape_getAabb'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_processAllTriangles as btStaticPlaneShape_processAllTriangles    `( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStaticPlaneShape_processAllTriangles as btStaticPlaneShape_processAllTriangles'    `( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * 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>--}-{#fun btStaticPlaneShapeData_new as btStaticPlaneShapeData    {  } -> `BtStaticPlaneShapeData' mkBtStaticPlaneShapeData* #}-{#fun btStaticPlaneShapeData_free    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btStaticPlaneShapeData_m_planeConstant_set    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btStaticPlaneShapeData_m_planeConstant_get    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btStridingMeshInterface_calculateSerializeBufferSize as btStridingMeshInterface_calculateSerializeBufferSize    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btStridingMeshInterface_calculateAabbBruteForce as btStridingMeshInterface_calculateAabbBruteForce    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_calculateAabbBruteForce as btStridingMeshInterface_calculateAabbBruteForce'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_preallocateVertices as btStridingMeshInterface_preallocateVertices    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numverts- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_unLockVertexBase as btStridingMeshInterface_unLockVertexBase    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ subpart- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_getScaling as btStridingMeshInterface_getScaling    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btStridingMeshInterface_preallocateIndices as btStridingMeshInterface_preallocateIndices    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numindices- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_setPremadeAabb as btStridingMeshInterface_setPremadeAabb    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_setPremadeAabb as btStridingMeshInterface_setPremadeAabb'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_InternalProcessAllTriangles as btStridingMeshInterface_InternalProcessAllTriangles    `( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_InternalProcessAllTriangles as btStridingMeshInterface_InternalProcessAllTriangles'    `( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_getNumSubParts as btStridingMeshInterface_getNumSubParts    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btStridingMeshInterface_hasPremadeAabb as btStridingMeshInterface_hasPremadeAabb    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btStridingMeshInterface_setScaling as btStridingMeshInterface_setScaling    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_setScaling as btStridingMeshInterface_setScaling'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btStridingMeshInterface_unLockReadOnlyVertexBase as btStridingMeshInterface_unLockReadOnlyVertexBase    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ subpart- } ->  `()'  #}--- * 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>--}-{#fun btStridingMeshInterfaceData_new as btStridingMeshInterfaceData    {  } -> `BtStridingMeshInterfaceData' mkBtStridingMeshInterfaceData* #}-{#fun btStridingMeshInterfaceData_free    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btStridingMeshInterfaceData_m_meshPartsPtr_set    `( BtStridingMeshInterfaceDataClass bc , BtMeshPartDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btStridingMeshInterfaceData_m_numMeshParts_set    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btStridingMeshInterfaceData_m_numMeshParts_get    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * 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>--}-{#fun btTriangleIndexVertexArray_new0 as btTriangleIndexVertexArray0    {  } -> `BtTriangleIndexVertexArray' mkBtTriangleIndexVertexArray* #}-{#fun btTriangleIndexVertexArray_free    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_preallocateIndices as btTriangleIndexVertexArray_preallocateIndices    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numindices- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_preallocateVertices as btTriangleIndexVertexArray_preallocateVertices    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numverts- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_setPremadeAabb as btTriangleIndexVertexArray_setPremadeAabb    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_setPremadeAabb as btTriangleIndexVertexArray_setPremadeAabb'    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_getNumSubParts as btTriangleIndexVertexArray_getNumSubParts    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_hasPremadeAabb as btTriangleIndexVertexArray_hasPremadeAabb    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_unLockVertexBase as btTriangleIndexVertexArray_unLockVertexBase    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ subpart- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleIndexVertexArray_unLockReadOnlyVertexBase as btTriangleIndexVertexArray_unLockReadOnlyVertexBase    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ subpart- } ->  `()'  #}--- * 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>--}-{#fun btTriangleInfo_new as btTriangleInfo    {  } -> `BtTriangleInfo' mkBtTriangleInfo* #}-{#fun btTriangleInfo_free    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfo_m_flags_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfo_m_flags_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV0V1Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV0V1Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV1V2Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV1V2Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV2V0Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfo_m_edgeV2V0Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btTriangleInfoData_new as btTriangleInfoData    {  } -> `BtTriangleInfoData' mkBtTriangleInfoData* #}-{#fun btTriangleInfoData_free    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoData_m_flags_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoData_m_flags_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV0V1Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV0V1Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV1V2Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV1V2Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV2V0Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoData_m_edgeV2V0Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btTriangleInfoMap_new as btTriangleInfoMap    {  } -> `BtTriangleInfoMap' mkBtTriangleInfoMap* #}-{#fun btTriangleInfoMap_free    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_calculateSerializeBufferSize as btTriangleInfoMap_calculateSerializeBufferSize    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleInfoMap_deSerialize as btTriangleInfoMap_deSerialize    `( BtTriangleInfoMapClass bc , BtTriangleInfoMapDataClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ tmapData- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleInfoMap_m_convexEpsilon_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_convexEpsilon_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMap_m_edgeDistanceThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_edgeDistanceThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMap_m_equalVertexThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_equalVertexThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMap_m_maxEdgeAngleThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_maxEdgeAngleThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMap_m_planarEpsilon_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_planarEpsilon_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMap_m_zeroAreaThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMap_m_zeroAreaThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btTriangleInfoMapData_new as btTriangleInfoMapData    {  } -> `BtTriangleInfoMapData' mkBtTriangleInfoMapData* #}-{#fun btTriangleInfoMapData_free    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_convexEpsilon_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_convexEpsilon_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_edgeDistanceThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_edgeDistanceThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_equalVertexThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_equalVertexThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_hashTableSize_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_hashTableSize_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_nextSize_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_nextSize_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_numKeys_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_numKeys_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_numValues_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_numValues_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_planarEpsilon_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_planarEpsilon_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_valueArrayPtr_set    `( BtTriangleInfoMapDataClass bc , BtTriangleInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_zeroAreaThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleInfoMapData_m_zeroAreaThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * 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>--}-{#fun btTriangleMesh_new as btTriangleMesh    {   `Bool' ,  `Bool'  } -> `BtTriangleMesh' mkBtTriangleMesh* #}-{#fun btTriangleMesh_free    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMesh_preallocateIndices as btTriangleMesh_preallocateIndices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numindices- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMesh_getNumTriangles as btTriangleMesh_getNumTriangles    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleMesh_getUse32bitIndices as btTriangleMesh_getUse32bitIndices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btTriangleMesh_addIndex as btTriangleMesh_addIndex    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMesh_preallocateVertices as btTriangleMesh_preallocateVertices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numverts- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMesh_findOrAddVertex as btTriangleMesh_findOrAddVertex    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vertex-,  `Bool'  -- ^ removeDuplicateVertices- } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleMesh_findOrAddVertex as btTriangleMesh_findOrAddVertex'    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex-,  `Bool'  -- ^ removeDuplicateVertices- } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleMesh_getUse4componentVertices as btTriangleMesh_getUse4componentVertices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <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>--}-{#fun btTriangleMesh_addTriangle as btTriangleMesh_addTriangle    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vertex0-, withVector3* `Vector3'  peekVector3* -- ^ vertex1-, withVector3* `Vector3'  peekVector3* -- ^ vertex2-,  `Bool'  -- ^ removeDuplicateVertices- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMesh_addTriangle as btTriangleMesh_addTriangle'    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex0-, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex1-, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex2-,  `Bool'  -- ^ removeDuplicateVertices- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMesh_m_weldingThreshold_set    `( BtTriangleMeshClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMesh_m_weldingThreshold_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btTriangleMeshShape-{#fun btTriangleMeshShape_free    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_calculateLocalInertia as btTriangleMeshShape_calculateLocalInertia    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_calculateLocalInertia as btTriangleMeshShape_calculateLocalInertia'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_getLocalAabbMax as btTriangleMeshShape_getLocalAabbMax    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_localGetSupportingVertex as btTriangleMeshShape_localGetSupportingVertex    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_localGetSupportingVertex as btTriangleMeshShape_localGetSupportingVertex'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_getName as btTriangleMeshShape_getName    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btTriangleMeshShape_getLocalScaling as btTriangleMeshShape_getLocalScaling    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_recalcLocalAabb as btTriangleMeshShape_recalcLocalAabb    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_setLocalScaling as btTriangleMeshShape_setLocalScaling    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_setLocalScaling as btTriangleMeshShape_setLocalScaling'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_getMeshInterface0 as btTriangleMeshShape_getMeshInterface    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btTriangleMeshShape_getMeshInterface0 as btTriangleMeshShape_getMeshInterface0    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btTriangleMeshShape_getMeshInterface1 as btTriangleMeshShape_getMeshInterface1    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <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>--}-{#fun btTriangleMeshShape_getAabb as btTriangleMeshShape_getAabb    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_getAabb as btTriangleMeshShape_getAabb'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_processAllTriangles as btTriangleMeshShape_processAllTriangles    `( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_processAllTriangles as btTriangleMeshShape_processAllTriangles'    `( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleMeshShape_localGetSupportingVertexWithoutMargin as btTriangleMeshShape_localGetSupportingVertexWithoutMargin    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_localGetSupportingVertexWithoutMargin as btTriangleMeshShape_localGetSupportingVertexWithoutMargin'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShape_getLocalAabbMin as btTriangleMeshShape_getLocalAabbMin    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btTriangleMeshShapeData_new as btTriangleMeshShapeData    {  } -> `BtTriangleMeshShapeData' mkBtTriangleMeshShapeData* #}-{#fun btTriangleMeshShapeData_free    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShapeData_m_collisionMargin_set    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShapeData_m_collisionMargin_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <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>--}-{#fun btTriangleMeshShapeData_m_quantizedDoubleBvh_set    `( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShapeData_m_quantizedFloatBvh_set    `( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <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>--}-{#fun btTriangleMeshShapeData_m_triangleInfoMap_set    `( BtTriangleMeshShapeDataClass bc , BtTriangleInfoMapDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * 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>--}-{#fun btTriangleShape_new0 as btTriangleShape0    {  } -> `BtTriangleShape' mkBtTriangleShape* #}-{- | <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>--}-{#fun btTriangleShape_new1 as btTriangleShape1    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtTriangleShape' mkBtTriangleShape* #}-{#fun btTriangleShape_free    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btTriangleShape_getVertexPtr0 as btTriangleShape_getVertexPtr    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleShape_getVertexPtr0 as btTriangleShape_getVertexPtr0    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleShape_getVertexPtr1 as btTriangleShape_getVertexPtr1    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleShape_getNumPlanes as btTriangleShape_getNumPlanes    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleShape_getPreferredPenetrationDirection as btTriangleShape_getPreferredPenetrationDirection    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getPreferredPenetrationDirection as btTriangleShape_getPreferredPenetrationDirection'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getNumEdges as btTriangleShape_getNumEdges    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleShape_getName as btTriangleShape_getName    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btTriangleShape_getNumVertices as btTriangleShape_getNumVertices    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleShape_getEdge as btTriangleShape_getEdge    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ pa-, withVector3* `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getEdge as btTriangleShape_getEdge'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ pa-, allocaVector3-  `Vector3'  peekVector3* -- ^ pb- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_isInside as btTriangleShape_isInside    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btTriangleShape_isInside as btTriangleShape_isInside'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pt-,  `Float'  -- ^ tolerance- } ->  `Bool'  #}-{- | <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>--}-{#fun btTriangleShape_getPlane as btTriangleShape_getPlane    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getPlane as btTriangleShape_getPlane'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport-,  `Int'  -- ^ i- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getNumPreferredPenetrationDirections as btTriangleShape_getNumPreferredPenetrationDirections    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btTriangleShape_getAabb as btTriangleShape_getAabb    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getAabb as btTriangleShape_getAabb'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getVertex as btTriangleShape_getVertex    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ vert- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getVertex as btTriangleShape_getVertex'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ vert- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_calcNormal as btTriangleShape_calcNormal    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ normal- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_calcNormal as btTriangleShape_calcNormal'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ normal- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_calculateLocalInertia as btTriangleShape_calculateLocalInertia    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_calculateLocalInertia as btTriangleShape_calculateLocalInertia'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getPlaneEquation as btTriangleShape_getPlaneEquation    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-, withVector3* `Vector3'  peekVector3* -- ^ planeSupport- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_getPlaneEquation as btTriangleShape_getPlaneEquation'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ i-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-, allocaVector3-  `Vector3'  peekVector3* -- ^ planeSupport- } ->  `()'  #}-{- | <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>--}-{#fun btTriangleShape_localGetSupportingVertexWithoutMargin as btTriangleShape_localGetSupportingVertexWithoutMargin    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ dir-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btTriangleShape_localGetSupportingVertexWithoutMargin as btTriangleShape_localGetSupportingVertexWithoutMargin'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ dir-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}--- * 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>--}-{#fun btUniformScalingShape_new as btUniformScalingShape    `( BtConvexShapeClass p0 )' =>     {  withBt* `p0' ,  `Float'  } -> `BtUniformScalingShape' mkBtUniformScalingShape* #}-{#fun btUniformScalingShape_free    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <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>--}-{#fun btUniformScalingShape_calculateLocalInertia as btUniformScalingShape_calculateLocalInertia    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_calculateLocalInertia as btUniformScalingShape_calculateLocalInertia'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getUniformScalingFactor as btUniformScalingShape_getUniformScalingFactor    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btUniformScalingShape_localGetSupportingVertex as btUniformScalingShape_localGetSupportingVertex    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btUniformScalingShape_localGetSupportingVertex as btUniformScalingShape_localGetSupportingVertex'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btUniformScalingShape_getName as btUniformScalingShape_getName    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <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>--}-{#fun btUniformScalingShape_getAabbSlow as btUniformScalingShape_getAabbSlow    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getAabbSlow as btUniformScalingShape_getAabbSlow'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getLocalScaling as btUniformScalingShape_getLocalScaling    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btUniformScalingShape_getChildShape0 as btUniformScalingShape_getChildShape    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConvexShape' mkBtConvexShape*  #}-{- | <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>--}-{#fun btUniformScalingShape_getChildShape0 as btUniformScalingShape_getChildShape0    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConvexShape' mkBtConvexShape*  #}-{- | <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>--}-{#fun btUniformScalingShape_getChildShape1 as btUniformScalingShape_getChildShape1    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConvexShape' mkBtConvexShape*  #}-{- | <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>--}-{#fun btUniformScalingShape_getPreferredPenetrationDirection as btUniformScalingShape_getPreferredPenetrationDirection    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withVector3* `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getPreferredPenetrationDirection as btUniformScalingShape_getPreferredPenetrationDirection'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaVector3-  `Vector3'  peekVector3* -- ^ penetrationVector- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_setLocalScaling as btUniformScalingShape_setLocalScaling    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_setLocalScaling as btUniformScalingShape_setLocalScaling'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getNumPreferredPenetrationDirections as btUniformScalingShape_getNumPreferredPenetrationDirections    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <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>--}-{#fun btUniformScalingShape_getAabb as btUniformScalingShape_getAabb    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getAabb as btUniformScalingShape_getAabb'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_setMargin as btUniformScalingShape_setMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <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>--}-{#fun btUniformScalingShape_getMargin as btUniformScalingShape_getMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <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>--}-{#fun btUniformScalingShape_localGetSupportingVertexWithoutMargin as btUniformScalingShape_localGetSupportingVertexWithoutMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <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>--}-{#fun btUniformScalingShape_localGetSupportingVertexWithoutMargin as btUniformScalingShape_localGetSupportingVertexWithoutMargin'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vec-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}+{#fun btBU_Simplex1to4_new1 as btBU_Simplex1to41    {  withVec3* `Vec3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}+{- | <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>+-}+{#fun btBU_Simplex1to4_new2 as btBU_Simplex1to42    {  withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}+{- | <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>+-}+{#fun btBU_Simplex1to4_new3 as btBU_Simplex1to43    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}+{- | <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>+-}+{#fun btBU_Simplex1to4_new4 as btBU_Simplex1to44    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtBU_Simplex1to4' mkBtBU_Simplex1to4* #}+{#fun btBU_Simplex1to4_free    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btBU_Simplex1to4_reset as btBU_Simplex1to4_reset    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getNumPlanes as btBU_Simplex1to4_getNumPlanes    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getIndex as btBU_Simplex1to4_getIndex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+ } ->  `Int'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getNumEdges as btBU_Simplex1to4_getNumEdges    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getName as btBU_Simplex1to4_getName    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getVertex as btBU_Simplex1to4_getVertex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getVertex as btBU_Simplex1to4_getVertex'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getEdge as btBU_Simplex1to4_getEdge    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getEdge as btBU_Simplex1to4_getEdge'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_addVertex as btBU_Simplex1to4_addVertex    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_addVertex as btBU_Simplex1to4_addVertex'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_isInside as btBU_Simplex1to4_isInside    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_isInside as btBU_Simplex1to4_isInside'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getPlane as btBU_Simplex1to4_getPlane    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getPlane as btBU_Simplex1to4_getPlane'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getAabb as btBU_Simplex1to4_getAabb    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getAabb as btBU_Simplex1to4_getAabb'    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_getNumVertices as btBU_Simplex1to4_getNumVertices    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBU_Simplex1to4_m_numVertices_set    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btBU_Simplex1to4_m_numVertices_get    `( BtBU_Simplex1to4Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btBoxShape_new as btBoxShape    {  withVec3* `Vec3'  } -> `BtBoxShape' mkBtBoxShape* #}+{#fun btBoxShape_free    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_calculateLocalInertia as btBoxShape_calculateLocalInertia    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_calculateLocalInertia as btBoxShape_calculateLocalInertia'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getNumPlanes as btBoxShape_getNumPlanes    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBoxShape_localGetSupportingVertex as btBoxShape_localGetSupportingVertex    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_localGetSupportingVertex as btBoxShape_localGetSupportingVertex'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_setLocalScaling as btBoxShape_setLocalScaling    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_setLocalScaling as btBoxShape_setLocalScaling'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getPlaneEquation as btBoxShape_getPlaneEquation    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec4* `Vec4'  peekVec4* -- ^ plane+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getPlaneEquation as btBoxShape_getPlaneEquation'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec4-  `Vec4'  peekVec4* -- ^ plane+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getPreferredPenetrationDirection as btBoxShape_getPreferredPenetrationDirection    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getPreferredPenetrationDirection as btBoxShape_getPreferredPenetrationDirection'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getNumEdges as btBoxShape_getNumEdges    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBoxShape_getName as btBoxShape_getName    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btBoxShape_getVertex as btBoxShape_getVertex    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getVertex as btBoxShape_getVertex'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getEdge as btBoxShape_getEdge    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getEdge as btBoxShape_getEdge'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_isInside as btBoxShape_isInside    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btBoxShape_isInside as btBoxShape_isInside'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btBoxShape_getPlane as btBoxShape_getPlane    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getPlane as btBoxShape_getPlane'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getHalfExtentsWithoutMargin as btBoxShape_getHalfExtentsWithoutMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_getNumPreferredPenetrationDirections as btBoxShape_getNumPreferredPenetrationDirections    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBoxShape_getAabb as btBoxShape_getAabb    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getAabb as btBoxShape_getAabb'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_setMargin as btBoxShape_setMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ collisionMargin+ } ->  `()'   #}+{- | <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>+-}+{#fun btBoxShape_getNumVertices as btBoxShape_getNumVertices    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBoxShape_getHalfExtentsWithMargin as btBoxShape_getHalfExtentsWithMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_localGetSupportingVertexWithoutMargin as btBoxShape_localGetSupportingVertexWithoutMargin    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btBoxShape_localGetSupportingVertexWithoutMargin as btBoxShape_localGetSupportingVertexWithoutMargin'    `( BtBoxShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+-- * 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>+-}+{#fun btBvhTriangleMeshShape_new0 as btBvhTriangleMeshShape0    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool' ,  `Bool'  } -> `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_new1 as btBvhTriangleMeshShape1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Bool'  } -> `BtBvhTriangleMeshShape' mkBtBvhTriangleMeshShape* #}+{#fun btBvhTriangleMeshShape_free    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_calculateSerializeBufferSize as btBvhTriangleMeshShape_calculateSerializeBufferSize    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_buildOptimizedBvh as btBvhTriangleMeshShape_buildOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_setLocalScaling as btBvhTriangleMeshShape_setLocalScaling    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_setLocalScaling as btBvhTriangleMeshShape_setLocalScaling'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_performRaycast as btBvhTriangleMeshShape_performRaycast    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ raySource+, withVec3* `Vec3'  peekVec3* -- ^ rayTarget+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_performRaycast as btBvhTriangleMeshShape_performRaycast'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ raySource+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTarget+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_setTriangleInfoMap as btBvhTriangleMeshShape_setTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc , BtTriangleInfoMapClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangleInfoMap+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_usesQuantizedAabbCompression as btBvhTriangleMeshShape_usesQuantizedAabbCompression    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getName as btBvhTriangleMeshShape_getName    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_serialize as btBvhTriangleMeshShape_serialize    `( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getTriangleInfoMap0 as btBvhTriangleMeshShape_getTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTriangleInfoMap'  mkBtTriangleInfoMap* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getTriangleInfoMap0 as btBvhTriangleMeshShape_getTriangleInfoMap0    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTriangleInfoMap'  mkBtTriangleInfoMap* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getTriangleInfoMap1 as btBvhTriangleMeshShape_getTriangleInfoMap1    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTriangleInfoMap'  mkBtTriangleInfoMap* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_serializeSingleTriangleInfoMap as btBvhTriangleMeshShape_serializeSingleTriangleInfoMap    `( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getOwnsBvh as btBvhTriangleMeshShape_getOwnsBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_partialRefitTree as btBvhTriangleMeshShape_partialRefitTree    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_partialRefitTree as btBvhTriangleMeshShape_partialRefitTree'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_getOptimizedBvh as btBvhTriangleMeshShape_getOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOptimizedBvh'  mkBtOptimizedBvh* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_processAllTriangles as btBvhTriangleMeshShape_processAllTriangles    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_processAllTriangles as btBvhTriangleMeshShape_processAllTriangles'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_refitTree as btBvhTriangleMeshShape_refitTree    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_refitTree as btBvhTriangleMeshShape_refitTree'    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_performConvexcast as btBvhTriangleMeshShape_performConvexcast    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ boxSource+, withVec3* `Vec3'  peekVec3* -- ^ boxTarget+, withVec3* `Vec3'  peekVec3* -- ^ boxMin+, withVec3* `Vec3'  peekVec3* -- ^ boxMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_performConvexcast as btBvhTriangleMeshShape_performConvexcast'    `( BtBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxSource+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxTarget+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ boxMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_serializeSingleBvh as btBvhTriangleMeshShape_serializeSingleBvh    `( BtBvhTriangleMeshShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_setOptimizedBvh as btBvhTriangleMeshShape_setOptimizedBvh    `( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ bvh+, withVec3* `Vec3'  peekVec3* -- ^ localScaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_setOptimizedBvh as btBvhTriangleMeshShape_setOptimizedBvh'    `( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ bvh+, allocaVec3-  `Vec3'  peekVec3* -- ^ localScaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_bvh_set    `( BtBvhTriangleMeshShapeClass bc , BtOptimizedBvhClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_bvh_get    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtOptimizedBvh'  mkBtOptimizedBvh* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_triangleInfoMap_set    `( BtBvhTriangleMeshShapeClass bc , BtTriangleInfoMapClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_triangleInfoMap_get    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtTriangleInfoMap'  mkBtTriangleInfoMap* #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_ownsBvh_set    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btBvhTriangleMeshShape_m_ownsBvh_get    `( BtBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * 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>+-}+{#fun btCapsuleShape_new0 as btCapsuleShape0    {  } -> `BtCapsuleShape' mkBtCapsuleShape* #}+{- | <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>+-}+{#fun btCapsuleShape_new1 as btCapsuleShape1    {   `Float' ,  `Float'  } -> `BtCapsuleShape' mkBtCapsuleShape* #}+{#fun btCapsuleShape_free    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShape_calculateLocalInertia as btCapsuleShape_calculateLocalInertia    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_calculateLocalInertia as btCapsuleShape_calculateLocalInertia'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_calculateSerializeBufferSize as btCapsuleShape_calculateSerializeBufferSize    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCapsuleShape_setLocalScaling as btCapsuleShape_setLocalScaling    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_setLocalScaling as btCapsuleShape_setLocalScaling'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_getUpAxis as btCapsuleShape_getUpAxis    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCapsuleShape_getName as btCapsuleShape_getName    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCapsuleShape_getHalfHeight as btCapsuleShape_getHalfHeight    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCapsuleShape_setMargin as btCapsuleShape_setMargin    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ collisionMargin+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_getAabb as btCapsuleShape_getAabb    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_getAabb as btCapsuleShape_getAabb'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCapsuleShape_serialize as btCapsuleShape_serialize    `( BtCapsuleShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btCapsuleShape_localGetSupportingVertexWithoutMargin as btCapsuleShape_localGetSupportingVertexWithoutMargin    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShape_localGetSupportingVertexWithoutMargin as btCapsuleShape_localGetSupportingVertexWithoutMargin'    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShape_getRadius as btCapsuleShape_getRadius    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCapsuleShape_m_upAxis_set    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShape_m_upAxis_get    `( BtCapsuleShapeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btCapsuleShapeData_new as btCapsuleShapeData    {  } -> `BtCapsuleShapeData' mkBtCapsuleShapeData* #}+{#fun btCapsuleShapeData_free    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShapeData_m_convexInternalShapeData_set    `( BtCapsuleShapeDataClass bc , BtConvexInternalShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShapeData_m_convexInternalShapeData_get    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtConvexInternalShapeData'  mkBtConvexInternalShapeData* #}+{- | <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>+-}+{#fun btCapsuleShapeData_m_upAxis_set    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShapeData_m_upAxis_get    `( BtCapsuleShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btCapsuleShapeX_new as btCapsuleShapeX    {   `Float' ,  `Float'  } -> `BtCapsuleShapeX' mkBtCapsuleShapeX* #}+{#fun btCapsuleShapeX_free    `( BtCapsuleShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShapeX_getName as btCapsuleShapeX_getName    `( BtCapsuleShapeXClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+-- * 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>+-}+{#fun btCapsuleShapeZ_new as btCapsuleShapeZ    {   `Float' ,  `Float'  } -> `BtCapsuleShapeZ' mkBtCapsuleShapeZ* #}+{#fun btCapsuleShapeZ_free    `( BtCapsuleShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCapsuleShapeZ_getName as btCapsuleShapeZ_getName    `( BtCapsuleShapeZClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+-- * 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>+-}+{#fun btCharIndexTripletData_new as btCharIndexTripletData    {  } -> `BtCharIndexTripletData' mkBtCharIndexTripletData* #}+{#fun btCharIndexTripletData_free    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCharIndexTripletData_m_pad_set    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc' , castCharToCChar `Char'  } -> `()' #}+{- | <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>+-}+{#fun btCharIndexTripletData_m_pad_get    `( BtCharIndexTripletDataClass bc )' =>     { withBt* `bc'  } ->  `Char'  castCCharToChar #}+-- * 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>+-}+{#fun btCollisionShape_calculateLocalInertia as btCollisionShape_calculateLocalInertia    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_calculateLocalInertia as btCollisionShape_calculateLocalInertia'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_setUserPointer as btCollisionShape_setUserPointer    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ userPtr+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_serialize as btCollisionShape_serialize    `( BtCollisionShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btCollisionShape_getLocalScaling as btCollisionShape_getLocalScaling    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCollisionShape_calculateSerializeBufferSize as btCollisionShape_calculateSerializeBufferSize    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCollisionShape_getName as btCollisionShape_getName    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCollisionShape_isCompound as btCollisionShape_isCompound    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_isPolyhedral as btCollisionShape_isPolyhedral    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_setLocalScaling as btCollisionShape_setLocalScaling    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_setLocalScaling as btCollisionShape_setLocalScaling'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_getAabb as btCollisionShape_getAabb    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_getAabb as btCollisionShape_getAabb'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_getContactBreakingThreshold as btCollisionShape_getContactBreakingThreshold    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ defaultContactThresholdFactor+ } ->  `Float'   #}+{- | <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>+-}+{#fun btCollisionShape_isConvex as btCollisionShape_isConvex    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_isInfinite as btCollisionShape_isInfinite    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_getUserPointer as btCollisionShape_getUserPointer    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <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>+-}+{#fun btCollisionShape_isNonMoving as btCollisionShape_isNonMoving    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_getMargin as btCollisionShape_getMargin    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCollisionShape_setMargin as btCollisionShape_setMargin    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_isConvex2d as btCollisionShape_isConvex2d    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_isSoftBody as btCollisionShape_isSoftBody    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_calculateTemporalAabb as btCollisionShape_calculateTemporalAabb    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ curTrans+, withVec3* `Vec3'  peekVec3* -- ^ linvel+, withVec3* `Vec3'  peekVec3* -- ^ angvel+,  `Float'  -- ^ timeStep+, withVec3* `Vec3'  peekVec3* -- ^ temporalAabbMin+, withVec3* `Vec3'  peekVec3* -- ^ temporalAabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_calculateTemporalAabb as btCollisionShape_calculateTemporalAabb'    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ curTrans+, allocaVec3-  `Vec3'  peekVec3* -- ^ linvel+, allocaVec3-  `Vec3'  peekVec3* -- ^ angvel+,  `Float'  -- ^ timeStep+, allocaVec3-  `Vec3'  peekVec3* -- ^ temporalAabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ temporalAabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_isConcave as btCollisionShape_isConcave    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btCollisionShape_getAngularMotionDisc as btCollisionShape_getAngularMotionDisc    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCollisionShape_serializeSingleShape as btCollisionShape_serializeSingleShape    `( BtCollisionShapeClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <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>+-}+{#fun btCollisionShape_getShapeType as btCollisionShape_getShapeType    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCollisionShape_m_shapeType_set    `( BtCollisionShapeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCollisionShape_m_shapeType_get    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btCollisionShape_m_userPointer_set    `( BtCollisionShapeClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <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>+-}+{#fun btCollisionShape_m_userPointer_get    `( BtCollisionShapeClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+-- * 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>+-}+{#fun btCollisionShapeData_new as btCollisionShapeData    {  } -> `BtCollisionShapeData' mkBtCollisionShapeData* #}+{#fun btCollisionShapeData_free    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCollisionShapeData_m_name_set    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <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>+-}+{#fun btCollisionShapeData_m_name_get    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <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>+-}+{#fun btCollisionShapeData_m_shapeType_set    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCollisionShapeData_m_shapeType_get    `( BtCollisionShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btCompoundShape_new as btCompoundShape    {   `Bool'  } -> `BtCompoundShape' mkBtCompoundShape* #}+{#fun btCompoundShape_free    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_calculateLocalInertia as btCompoundShape_calculateLocalInertia    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_calculateLocalInertia as btCompoundShape_calculateLocalInertia'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getDynamicAabbTree0 as btCompoundShape_getDynamicAabbTree    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt'  mkBtDbvt* #}+{- | <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>+-}+{#fun btCompoundShape_getDynamicAabbTree0 as btCompoundShape_getDynamicAabbTree0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt'  mkBtDbvt* #}+{- | <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>+-}+{#fun btCompoundShape_getDynamicAabbTree1 as btCompoundShape_getDynamicAabbTree1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt'  mkBtDbvt* #}+{- | <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>+-}+{#fun btCompoundShape_getUpdateRevision as btCompoundShape_getUpdateRevision    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShape_serialize as btCompoundShape_serialize    `( BtCompoundShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btCompoundShape_getLocalScaling as btCompoundShape_getLocalScaling    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_createAabbTreeFromChildren as btCompoundShape_createAabbTreeFromChildren    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_calculateSerializeBufferSize as btCompoundShape_calculateSerializeBufferSize    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShape_getName as btCompoundShape_getName    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCompoundShape_setLocalScaling as btCompoundShape_setLocalScaling    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_setLocalScaling as btCompoundShape_setLocalScaling'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getAabb as btCompoundShape_getAabb    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getAabb as btCompoundShape_getAabb'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getChildShape0 as btCompoundShape_getChildShape    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <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>+-}+{#fun btCompoundShape_getChildShape0 as btCompoundShape_getChildShape0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <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>+-}+{#fun btCompoundShape_getChildShape1 as btCompoundShape_getChildShape1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <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>+-}+{#fun btCompoundShape_addChildShape as btCompoundShape_addChildShape    `( BtCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_addChildShape as btCompoundShape_addChildShape'    `( BtCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getChildTransform0 as btCompoundShape_getChildTransform    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_getChildTransform0 as btCompoundShape_getChildTransform0    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_getChildTransform1 as btCompoundShape_getChildTransform1    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_getChildList as btCompoundShape_getChildList    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <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>+-}+{#fun btCompoundShape_getMargin as btCompoundShape_getMargin    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCompoundShape_setMargin as btCompoundShape_setMargin    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_getNumChildShapes as btCompoundShape_getNumChildShapes    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShape_removeChildShapeByIndex as btCompoundShape_removeChildShapeByIndex    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ childShapeindex+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_recalculateLocalAabb as btCompoundShape_recalculateLocalAabb    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_updateChildTransform as btCompoundShape_updateChildTransform    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ childIndex+, withTransform* `Transform'  peekTransform* -- ^ newChildTransform+,  `Bool'  -- ^ shouldRecalculateLocalAabb+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_updateChildTransform as btCompoundShape_updateChildTransform'    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ childIndex+, allocaTransform-  `Transform'  peekTransform* -- ^ newChildTransform+,  `Bool'  -- ^ shouldRecalculateLocalAabb+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_removeChildShape as btCompoundShape_removeChildShape    `( BtCompoundShapeClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ shape+ } ->  `()'   #}+{- | <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>+-}+{#fun btCompoundShape_m_children_set    `( BtCompoundShapeClass bc , BtAlignedObjectArray_btCompoundShapeChild_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_children_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCompoundShapeChild_'  mkBtAlignedObjectArray_btCompoundShapeChild_* #}+{- | <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>+-}+{#fun btCompoundShape_m_localAabbMin_set    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_localAabbMin_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_localAabbMax_set    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_localAabbMax_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_dynamicAabbTree_set    `( BtCompoundShapeClass bc , BtDbvtClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_dynamicAabbTree_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `BtDbvt'  mkBtDbvt* #}+{- | <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>+-}+{#fun btCompoundShape_m_updateRevision_set    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_updateRevision_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShape_m_collisionMargin_set    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_collisionMargin_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btCompoundShape_m_localScaling_set    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShape_m_localScaling_get    `( BtCompoundShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * 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>+-}+{#fun btCompoundShapeChild_new as btCompoundShapeChild    {  } -> `BtCompoundShapeChild' mkBtCompoundShapeChild* #}+{#fun btCompoundShapeChild_free    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childMargin_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childMargin_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childShape_set    `( BtCompoundShapeChildClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childShape_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childShapeType_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_childShapeType_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_node_set    `( BtCompoundShapeChildClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_node_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_transform_set    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChild_m_transform_get    `( BtCompoundShapeChildClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+-- * 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>+-}+{#fun btCompoundShapeChildData_new as btCompoundShapeChildData    {  } -> `BtCompoundShapeChildData' mkBtCompoundShapeChildData* #}+{#fun btCompoundShapeChildData_free    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_transform_set    `( BtCompoundShapeChildDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_transform_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childShape_set    `( BtCompoundShapeChildDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childShape_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childShapeType_set    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childShapeType_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childMargin_set    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeChildData_m_childMargin_get    `( BtCompoundShapeChildDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btCompoundShapeData_new as btCompoundShapeData    {  } -> `BtCompoundShapeData' mkBtCompoundShapeData* #}+{#fun btCompoundShapeData_free    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeData_m_collisionShapeData_set    `( BtCompoundShapeDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeData_m_collisionShapeData_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <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>+-}+{#fun btCompoundShapeData_m_childShapePtr_set    `( BtCompoundShapeDataClass bc , BtCompoundShapeChildDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeData_m_childShapePtr_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCompoundShapeChildData'  mkBtCompoundShapeChildData* #}+{- | <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>+-}+{#fun btCompoundShapeData_m_numChildShapes_set    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeData_m_numChildShapes_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btCompoundShapeData_m_collisionMargin_set    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btCompoundShapeData_m_collisionMargin_get    `( BtCompoundShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btConcaveShape_processAllTriangles as btConcaveShape_processAllTriangles    `( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConcaveShape_processAllTriangles as btConcaveShape_processAllTriangles'    `( BtConcaveShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConcaveShape_setMargin as btConcaveShape_setMargin    `( BtConcaveShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ collisionMargin+ } ->  `()'   #}+{- | <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>+-}+{#fun btConcaveShape_getMargin as btConcaveShape_getMargin    `( BtConcaveShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btConcaveShape_m_collisionMargin_set    `( BtConcaveShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btConcaveShape_m_collisionMargin_get    `( BtConcaveShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btConeShape_new as btConeShape    {   `Float' ,  `Float'  } -> `BtConeShape' mkBtConeShape* #}+{#fun btConeShape_free    `( BtConeShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btConeShape_calculateLocalInertia as btConeShape_calculateLocalInertia    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btConeShape_calculateLocalInertia as btConeShape_calculateLocalInertia'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btConeShape_localGetSupportingVertex as btConeShape_localGetSupportingVertex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConeShape_localGetSupportingVertex as btConeShape_localGetSupportingVertex'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConeShape_getConeUpIndex as btConeShape_getConeUpIndex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConeShape_getName as btConeShape_getName    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btConeShape_getHeight as btConeShape_getHeight    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btConeShape_setConeUpIndex as btConeShape_setConeUpIndex    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ upIndex+ } ->  `()'   #}+{- | <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>+-}+{#fun btConeShape_setLocalScaling as btConeShape_setLocalScaling    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConeShape_setLocalScaling as btConeShape_setLocalScaling'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConeShape_localGetSupportingVertexWithoutMargin as btConeShape_localGetSupportingVertexWithoutMargin    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConeShape_localGetSupportingVertexWithoutMargin as btConeShape_localGetSupportingVertexWithoutMargin'    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConeShape_getRadius as btConeShape_getRadius    `( BtConeShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+-- * 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>+-}+{#fun btConeShapeX_new as btConeShapeX    {   `Float' ,  `Float'  } -> `BtConeShapeX' mkBtConeShapeX* #}+{#fun btConeShapeX_free    `( BtConeShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * 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>+-}+{#fun btConeShapeZ_new as btConeShapeZ    {   `Float' ,  `Float'  } -> `BtConeShapeZ' mkBtConeShapeZ* #}+{#fun btConeShapeZ_free    `( BtConeShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btConvexHullShape+{#fun btConvexHullShape_free    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_addPoint as btConvexHullShape_addPoint    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ point+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_addPoint as btConvexHullShape_addPoint'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ point+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_localGetSupportingVertex as btConvexHullShape_localGetSupportingVertex    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_localGetSupportingVertex as btConvexHullShape_localGetSupportingVertex'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_calculateSerializeBufferSize as btConvexHullShape_calculateSerializeBufferSize    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexHullShape_getScaledPoint as btConvexHullShape_getScaledPoint    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_getNumPlanes as btConvexHullShape_getNumPlanes    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexHullShape_getNumEdges as btConvexHullShape_getNumEdges    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexHullShape_getName as btConvexHullShape_getName    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btConvexHullShape_getVertex as btConvexHullShape_getVertex    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_getVertex as btConvexHullShape_getVertex'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_getEdge as btConvexHullShape_getEdge    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_getEdge as btConvexHullShape_getEdge'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_localGetSupportingVertexWithoutMargin as btConvexHullShape_localGetSupportingVertexWithoutMargin    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_localGetSupportingVertexWithoutMargin as btConvexHullShape_localGetSupportingVertexWithoutMargin'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_isInside as btConvexHullShape_isInside    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btConvexHullShape_isInside as btConvexHullShape_isInside'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btConvexHullShape_getPlane as btConvexHullShape_getPlane    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_getPlane as btConvexHullShape_getPlane'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_setLocalScaling as btConvexHullShape_setLocalScaling    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_setLocalScaling as btConvexHullShape_setLocalScaling'    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexHullShape_getNumVertices as btConvexHullShape_getNumVertices    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexHullShape_serialize as btConvexHullShape_serialize    `( BtConvexHullShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btConvexHullShape_getNumPoints as btConvexHullShape_getNumPoints    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexHullShape_m_unscaledPoints_set    `( BtConvexHullShapeClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShape_m_unscaledPoints_get    `( BtConvexHullShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+-- * 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>+-}+{#fun btConvexHullShapeData_new as btConvexHullShapeData    {  } -> `BtConvexHullShapeData' mkBtConvexHullShapeData* #}+{#fun btConvexHullShapeData_free    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_convexInternalShapeData_set    `( BtConvexHullShapeDataClass bc , BtConvexInternalShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_convexInternalShapeData_get    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtConvexInternalShapeData'  mkBtConvexInternalShapeData* #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_unscaledPointsFloatPtr_set    `( BtConvexHullShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_unscaledPointsFloatPtr_get    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_unscaledPointsDoublePtr_set    `( BtConvexHullShapeDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_unscaledPointsDoublePtr_get    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_numUnscaledPoints_set    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btConvexHullShapeData_m_numUnscaledPoints_get    `( BtConvexHullShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btConvexInternalAabbCachingShape_setCachedLocalAabb as btConvexInternalAabbCachingShape_setCachedLocalAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_setCachedLocalAabb as btConvexInternalAabbCachingShape_setCachedLocalAabb'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_recalcLocalAabb as btConvexInternalAabbCachingShape_recalcLocalAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_setLocalScaling as btConvexInternalAabbCachingShape_setLocalScaling    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_setLocalScaling as btConvexInternalAabbCachingShape_setLocalScaling'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getNonvirtualAabb as btConvexInternalAabbCachingShape_getNonvirtualAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getNonvirtualAabb as btConvexInternalAabbCachingShape_getNonvirtualAabb'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getCachedLocalAabb as btConvexInternalAabbCachingShape_getCachedLocalAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getCachedLocalAabb as btConvexInternalAabbCachingShape_getCachedLocalAabb'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getAabb as btConvexInternalAabbCachingShape_getAabb    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_getAabb as btConvexInternalAabbCachingShape_getAabb'    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_localAabbMin_set    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_localAabbMin_get    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_localAabbMax_set    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_localAabbMax_get    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_isLocalAabbValid_set    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalAabbCachingShape_m_isLocalAabbValid_get    `( BtConvexInternalAabbCachingShapeClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * 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>+-}+{#fun btConvexInternalShape_localGetSupportingVertex as btConvexInternalShape_localGetSupportingVertex    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_localGetSupportingVertex as btConvexInternalShape_localGetSupportingVertex'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_calculateSerializeBufferSize as btConvexInternalShape_calculateSerializeBufferSize    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getImplicitShapeDimensions as btConvexInternalShape_getImplicitShapeDimensions    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_serialize as btConvexInternalShape_serialize    `( BtConvexInternalShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getLocalScalingNV as btConvexInternalShape_getLocalScalingNV    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_getAabbSlow as btConvexInternalShape_getAabbSlow    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getAabbSlow as btConvexInternalShape_getAabbSlow'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getLocalScaling as btConvexInternalShape_getLocalScaling    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_getPreferredPenetrationDirection as btConvexInternalShape_getPreferredPenetrationDirection    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getPreferredPenetrationDirection as btConvexInternalShape_getPreferredPenetrationDirection'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setLocalScaling as btConvexInternalShape_setLocalScaling    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setLocalScaling as btConvexInternalShape_setLocalScaling'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getNumPreferredPenetrationDirections as btConvexInternalShape_getNumPreferredPenetrationDirections    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getAabb as btConvexInternalShape_getAabb    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getAabb as btConvexInternalShape_getAabb'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setMargin as btConvexInternalShape_setMargin    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getMarginNV as btConvexInternalShape_getMarginNV    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btConvexInternalShape_getMargin as btConvexInternalShape_getMargin    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setSafeMargin0 as btConvexInternalShape_setSafeMargin    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ minDimension+,  `Float'  -- ^ defaultMarginMultiplier+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setSafeMargin0 as btConvexInternalShape_setSafeMargin0    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ minDimension+,  `Float'  -- ^ defaultMarginMultiplier+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setSafeMargin1 as btConvexInternalShape_setSafeMargin1    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ halfExtents+,  `Float'  -- ^ defaultMarginMultiplier+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setSafeMargin1 as btConvexInternalShape_setSafeMargin1'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ halfExtents+,  `Float'  -- ^ defaultMarginMultiplier+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setImplicitShapeDimensions as btConvexInternalShape_setImplicitShapeDimensions    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ dimensions+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_setImplicitShapeDimensions as btConvexInternalShape_setImplicitShapeDimensions'    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ dimensions+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexInternalShape_m_localScaling_set    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_localScaling_get    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_implicitShapeDimensions_set    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_implicitShapeDimensions_get    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_collisionMargin_set    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_collisionMargin_get    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btConvexInternalShape_m_padding_set    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShape_m_padding_get    `( BtConvexInternalShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btConvexInternalShapeData_new as btConvexInternalShapeData    {  } -> `BtConvexInternalShapeData' mkBtConvexInternalShapeData* #}+{#fun btConvexInternalShapeData_free    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_collisionMargin_set    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_collisionMargin_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_collisionShapeData_set    `( BtConvexInternalShapeDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_collisionShapeData_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_implicitShapeDimensions_set    `( BtConvexInternalShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_implicitShapeDimensions_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_localScaling_set    `( BtConvexInternalShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_localScaling_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_padding_set    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btConvexInternalShapeData_m_padding_get    `( BtConvexInternalShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btConvexShape_getAabbNonVirtual as btConvexShape_getAabbNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getAabbNonVirtual as btConvexShape_getAabbNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportingVertex as btConvexShape_localGetSupportingVertex    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportingVertex as btConvexShape_localGetSupportingVertex'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_getMargin as btConvexShape_getMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportVertexWithoutMarginNonVirtual as btConvexShape_localGetSupportVertexWithoutMarginNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportVertexWithoutMarginNonVirtual as btConvexShape_localGetSupportVertexWithoutMarginNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_getLocalScaling as btConvexShape_getLocalScaling    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_getPreferredPenetrationDirection as btConvexShape_getPreferredPenetrationDirection    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getPreferredPenetrationDirection as btConvexShape_getPreferredPenetrationDirection'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_setLocalScaling as btConvexShape_setLocalScaling    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_setLocalScaling as btConvexShape_setLocalScaling'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getAabbSlow as btConvexShape_getAabbSlow    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getAabbSlow as btConvexShape_getAabbSlow'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getAabb as btConvexShape_getAabb    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getAabb as btConvexShape_getAabb'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_setMargin as btConvexShape_setMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexShape_getNumPreferredPenetrationDirections as btConvexShape_getNumPreferredPenetrationDirections    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportVertexNonVirtual as btConvexShape_localGetSupportVertexNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportVertexNonVirtual as btConvexShape_localGetSupportVertexNonVirtual'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportingVertexWithoutMargin as btConvexShape_localGetSupportingVertexWithoutMargin    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_localGetSupportingVertexWithoutMargin as btConvexShape_localGetSupportingVertexWithoutMargin'    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexShape_getMarginNonVirtual as btConvexShape_getMarginNonVirtual    `( BtConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+-- * 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>+-}+{#fun btConvexTriangleMeshShape_new as btConvexTriangleMeshShape    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Bool'  } -> `BtConvexTriangleMeshShape' mkBtConvexTriangleMeshShape* #}+{#fun btConvexTriangleMeshShape_free    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getNumPlanes as btConvexTriangleMeshShape_getNumPlanes    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_localGetSupportingVertex as btConvexTriangleMeshShape_localGetSupportingVertex    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_localGetSupportingVertex as btConvexTriangleMeshShape_localGetSupportingVertex'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getNumEdges as btConvexTriangleMeshShape_getNumEdges    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getName as btConvexTriangleMeshShape_getName    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getVertex as btConvexTriangleMeshShape_getVertex    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getVertex as btConvexTriangleMeshShape_getVertex'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getEdge as btConvexTriangleMeshShape_getEdge    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getEdge as btConvexTriangleMeshShape_getEdge'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getLocalScaling as btConvexTriangleMeshShape_getLocalScaling    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_isInside as btConvexTriangleMeshShape_isInside    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_isInside as btConvexTriangleMeshShape_isInside'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getPlane as btConvexTriangleMeshShape_getPlane    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getPlane as btConvexTriangleMeshShape_getPlane'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_setLocalScaling as btConvexTriangleMeshShape_setLocalScaling    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_setLocalScaling as btConvexTriangleMeshShape_setLocalScaling'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getMeshInterface0 as btConvexTriangleMeshShape_getMeshInterface    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getMeshInterface0 as btConvexTriangleMeshShape_getMeshInterface0    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getMeshInterface1 as btConvexTriangleMeshShape_getMeshInterface1    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_getNumVertices as btConvexTriangleMeshShape_getNumVertices    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin as btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin as btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin'    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_m_stridingMesh_set    `( BtConvexTriangleMeshShapeClass bc , BtStridingMeshInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btConvexTriangleMeshShape_m_stridingMesh_get    `( BtConvexTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+-- * 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>+-}+{#fun btCylinderShape_new as btCylinderShape    {  withVec3* `Vec3'  } -> `BtCylinderShape' mkBtCylinderShape* #}+{#fun btCylinderShape_free    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_calculateLocalInertia as btCylinderShape_calculateLocalInertia    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_calculateLocalInertia as btCylinderShape_calculateLocalInertia'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_localGetSupportingVertex as btCylinderShape_localGetSupportingVertex    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_localGetSupportingVertex as btCylinderShape_localGetSupportingVertex'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_calculateSerializeBufferSize as btCylinderShape_calculateSerializeBufferSize    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCylinderShape_setLocalScaling as btCylinderShape_setLocalScaling    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_setLocalScaling as btCylinderShape_setLocalScaling'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_getUpAxis as btCylinderShape_getUpAxis    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btCylinderShape_getName as btCylinderShape_getName    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCylinderShape_serialize as btCylinderShape_serialize    `( BtCylinderShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btCylinderShape_getHalfExtentsWithoutMargin as btCylinderShape_getHalfExtentsWithoutMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_getAabb as btCylinderShape_getAabb    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_getAabb as btCylinderShape_getAabb'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_setMargin as btCylinderShape_setMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ collisionMargin+ } ->  `()'   #}+{- | <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>+-}+{#fun btCylinderShape_getHalfExtentsWithMargin as btCylinderShape_getHalfExtentsWithMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_localGetSupportingVertexWithoutMargin as btCylinderShape_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_localGetSupportingVertexWithoutMargin as btCylinderShape_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_getRadius as btCylinderShape_getRadius    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btCylinderShape_m_upAxis_set    `( BtCylinderShapeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShape_m_upAxis_get    `( BtCylinderShapeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btCylinderShapeData_new as btCylinderShapeData    {  } -> `BtCylinderShapeData' mkBtCylinderShapeData* #}+{#fun btCylinderShapeData_free    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeData_m_convexInternalShapeData_set    `( BtCylinderShapeDataClass bc , BtConvexInternalShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeData_m_convexInternalShapeData_get    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtConvexInternalShapeData'  mkBtConvexInternalShapeData* #}+{- | <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>+-}+{#fun btCylinderShapeData_m_upAxis_set    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeData_m_upAxis_get    `( BtCylinderShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btCylinderShapeX_new as btCylinderShapeX    {  withVec3* `Vec3'  } -> `BtCylinderShapeX' mkBtCylinderShapeX* #}+{#fun btCylinderShapeX_free    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeX_getName as btCylinderShapeX_getName    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCylinderShapeX_localGetSupportingVertexWithoutMargin as btCylinderShapeX_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeX_localGetSupportingVertexWithoutMargin as btCylinderShapeX_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeX_getRadius as btCylinderShapeX_getRadius    `( BtCylinderShapeXClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+-- * 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>+-}+{#fun btCylinderShapeZ_new as btCylinderShapeZ    {  withVec3* `Vec3'  } -> `BtCylinderShapeZ' mkBtCylinderShapeZ* #}+{#fun btCylinderShapeZ_free    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeZ_getName as btCylinderShapeZ_getName    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btCylinderShapeZ_localGetSupportingVertexWithoutMargin as btCylinderShapeZ_localGetSupportingVertexWithoutMargin    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeZ_localGetSupportingVertexWithoutMargin as btCylinderShapeZ_localGetSupportingVertexWithoutMargin'    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btCylinderShapeZ_getRadius as btCylinderShapeZ_getRadius    `( BtCylinderShapeZClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+-- * 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>+-}+{#fun btEmptyShape_new as btEmptyShape    {  } -> `BtEmptyShape' mkBtEmptyShape* #}+{#fun btEmptyShape_free    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btEmptyShape_calculateLocalInertia as btEmptyShape_calculateLocalInertia    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_calculateLocalInertia as btEmptyShape_calculateLocalInertia'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_getName as btEmptyShape_getName    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btEmptyShape_getLocalScaling as btEmptyShape_getLocalScaling    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btEmptyShape_setLocalScaling as btEmptyShape_setLocalScaling    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_setLocalScaling as btEmptyShape_setLocalScaling'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_getAabb as btEmptyShape_getAabb    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_getAabb as btEmptyShape_getAabb'    `( BtEmptyShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_processAllTriangles as btEmptyShape_processAllTriangles    `( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withVec3* `Vec3'  peekVec3* -- ^ arg1+, withVec3* `Vec3'  peekVec3* -- ^ arg2+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_processAllTriangles as btEmptyShape_processAllTriangles'    `( BtEmptyShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg1+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg2+ } ->  `()'   #}+{- | <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>+-}+{#fun btEmptyShape_m_localScaling_set    `( BtEmptyShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btEmptyShape_m_localScaling_get    `( BtEmptyShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * 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>+-}+{#fun btIndexedMesh_new as btIndexedMesh    {  } -> `BtIndexedMesh' mkBtIndexedMesh* #}+{#fun btIndexedMesh_free    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btIndexedMesh_m_numTriangles_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btIndexedMesh_m_numTriangles_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btIndexedMesh_m_numVertices_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btIndexedMesh_m_numVertices_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btIndexedMesh_m_triangleIndexStride_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btIndexedMesh_m_triangleIndexStride_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btIndexedMesh_m_vertexStride_set    `( BtIndexedMeshClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btIndexedMesh_m_vertexStride_get    `( BtIndexedMeshClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btIntIndexData_new as btIntIndexData    {  } -> `BtIntIndexData' mkBtIntIndexData* #}+{#fun btIntIndexData_free    `( BtIntIndexDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btIntIndexData_m_value_set    `( BtIntIndexDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btIntIndexData_m_value_get    `( BtIntIndexDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btMeshPartData_new as btMeshPartData    {  } -> `BtMeshPartData' mkBtMeshPartData* #}+{#fun btMeshPartData_free    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_vertices3f_set    `( BtMeshPartDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_vertices3f_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btMeshPartData_m_vertices3d_set    `( BtMeshPartDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_vertices3d_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <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>+-}+{#fun btMeshPartData_m_indices32_set    `( BtMeshPartDataClass bc , BtIntIndexDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_indices32_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtIntIndexData'  mkBtIntIndexData* #}+{- | <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>+-}+{#fun btMeshPartData_m_3indices16_set    `( BtMeshPartDataClass bc , BtShortIntIndexTripletDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_3indices16_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtShortIntIndexTripletData'  mkBtShortIntIndexTripletData* #}+{- | <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>+-}+{#fun btMeshPartData_m_3indices8_set    `( BtMeshPartDataClass bc , BtCharIndexTripletDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_3indices8_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtCharIndexTripletData'  mkBtCharIndexTripletData* #}+{- | <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>+-}+{#fun btMeshPartData_m_indices16_set    `( BtMeshPartDataClass bc , BtShortIntIndexDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_indices16_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `BtShortIntIndexData'  mkBtShortIntIndexData* #}+{- | <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>+-}+{#fun btMeshPartData_m_numTriangles_set    `( BtMeshPartDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_numTriangles_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btMeshPartData_m_numVertices_set    `( BtMeshPartDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btMeshPartData_m_numVertices_get    `( BtMeshPartDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btMultiSphereShape+{#fun btMultiSphereShape_free    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_calculateLocalInertia as btMultiSphereShape_calculateLocalInertia    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btMultiSphereShape_calculateLocalInertia as btMultiSphereShape_calculateLocalInertia'    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btMultiSphereShape_calculateSerializeBufferSize as btMultiSphereShape_calculateSerializeBufferSize    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btMultiSphereShape_getSphereCount as btMultiSphereShape_getSphereCount    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btMultiSphereShape_getName as btMultiSphereShape_getName    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btMultiSphereShape_serialize as btMultiSphereShape_serialize    `( BtMultiSphereShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btMultiSphereShape_getSpherePosition as btMultiSphereShape_getSpherePosition    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_getSphereRadius as btMultiSphereShape_getSphereRadius    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `Float'   #}+{- | <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>+-}+{#fun btMultiSphereShape_localGetSupportingVertexWithoutMargin as btMultiSphereShape_localGetSupportingVertexWithoutMargin    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_localGetSupportingVertexWithoutMargin as btMultiSphereShape_localGetSupportingVertexWithoutMargin'    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_m_localPositionArray_set    `( BtMultiSphereShapeClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_m_localPositionArray_get    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <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>+-}+{#fun btMultiSphereShape_m_radiArray_set    `( BtMultiSphereShapeClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShape_m_radiArray_get    `( BtMultiSphereShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+-- * 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>+-}+{#fun btMultiSphereShapeData_new as btMultiSphereShapeData    {  } -> `BtMultiSphereShapeData' mkBtMultiSphereShapeData* #}+{#fun btMultiSphereShapeData_free    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_convexInternalShapeData_set    `( BtMultiSphereShapeDataClass bc , BtConvexInternalShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_convexInternalShapeData_get    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtConvexInternalShapeData'  mkBtConvexInternalShapeData* #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_localPositionArrayPtr_set    `( BtMultiSphereShapeDataClass bc , BtPositionAndRadiusClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_localPositionArrayPtr_get    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtPositionAndRadius'  mkBtPositionAndRadius* #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_localPositionArraySize_set    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btMultiSphereShapeData_m_localPositionArraySize_get    `( BtMultiSphereShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btOptimizedBvh_new as btOptimizedBvh    {  } -> `BtOptimizedBvh' mkBtOptimizedBvh* #}+{#fun btOptimizedBvh_free    `( BtOptimizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btOptimizedBvh_updateBvhNodes as btOptimizedBvh_updateBvhNodes    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ meshInterface+,  `Int'  -- ^ firstNode+,  `Int'  -- ^ endNode+,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_serializeInPlace as btOptimizedBvh_serializeInPlace    `( BtOptimizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ o_alignedDataBuffer+,  `Word32'  -- ^ i_dataBufferSize+,  `Bool'  -- ^ i_swapEndian+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btOptimizedBvh_refit as btOptimizedBvh_refit    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_refit as btOptimizedBvh_refit'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_build as btOptimizedBvh_build    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+,  `Bool'  -- ^ useQuantizedAabbCompression+, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMin+, withVec3* `Vec3'  peekVec3* -- ^ bvhAabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_build as btOptimizedBvh_build'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+,  `Bool'  -- ^ useQuantizedAabbCompression+, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bvhAabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_refitPartial as btOptimizedBvh_refitPartial    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_refitPartial as btOptimizedBvh_refitPartial'    `( BtOptimizedBvhClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ triangles+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btOptimizedBvh_deSerializeInPlace as btOptimizedBvh_deSerializeInPlace    `( )' =>     {  withVoidPtr* `VoidPtr'  -- ^ i_alignedDataBuffer+,  `Word32'  -- ^ i_dataBufferSize+,  `Bool'  -- ^ i_swapEndian+ } ->  `BtOptimizedBvh'  mkBtOptimizedBvh* #}+-- * 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>+-}+{#fun btPolyhedralConvexAabbCachingShape_setCachedLocalAabb as btPolyhedralConvexAabbCachingShape_setCachedLocalAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_setCachedLocalAabb as btPolyhedralConvexAabbCachingShape_setCachedLocalAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_recalcLocalAabb as btPolyhedralConvexAabbCachingShape_recalcLocalAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_setLocalScaling as btPolyhedralConvexAabbCachingShape_setLocalScaling    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_setLocalScaling as btPolyhedralConvexAabbCachingShape_setLocalScaling'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getNonvirtualAabb as btPolyhedralConvexAabbCachingShape_getNonvirtualAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getNonvirtualAabb as btPolyhedralConvexAabbCachingShape_getNonvirtualAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getCachedLocalAabb as btPolyhedralConvexAabbCachingShape_getCachedLocalAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getCachedLocalAabb as btPolyhedralConvexAabbCachingShape_getCachedLocalAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getAabb as btPolyhedralConvexAabbCachingShape_getAabb    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_getAabb as btPolyhedralConvexAabbCachingShape_getAabb'    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_localAabbMin_set    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_localAabbMin_get    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_localAabbMax_set    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_localAabbMax_get    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get    `( BtPolyhedralConvexAabbCachingShapeClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * 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>+-}+{#fun btPolyhedralConvexShape_calculateLocalInertia as btPolyhedralConvexShape_calculateLocalInertia    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_calculateLocalInertia as btPolyhedralConvexShape_calculateLocalInertia'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getNumPlanes as btPolyhedralConvexShape_getNumPlanes    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getNumEdges as btPolyhedralConvexShape_getNumEdges    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getVertex as btPolyhedralConvexShape_getVertex    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getVertex as btPolyhedralConvexShape_getVertex'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ vtx+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getEdge as btPolyhedralConvexShape_getEdge    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getEdge as btPolyhedralConvexShape_getEdge'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_isInside as btPolyhedralConvexShape_isInside    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_isInside as btPolyhedralConvexShape_isInside'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getPlane as btPolyhedralConvexShape_getPlane    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getPlane as btPolyhedralConvexShape_getPlane'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_initializePolyhedralFeatures as btPolyhedralConvexShape_initializePolyhedralFeatures    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_getNumVertices as btPolyhedralConvexShape_getNumVertices    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin as btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin as btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin'    `( BtPolyhedralConvexShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+-- * 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>+-}+{#fun btPositionAndRadius_new as btPositionAndRadius    {  } -> `BtPositionAndRadius' mkBtPositionAndRadius* #}+{#fun btPositionAndRadius_free    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btPositionAndRadius_m_pos_set    `( BtPositionAndRadiusClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btPositionAndRadius_m_pos_get    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btPositionAndRadius_m_radius_set    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btPositionAndRadius_m_radius_get    `( BtPositionAndRadiusClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btScaledBvhTriangleMeshShape_new as btScaledBvhTriangleMeshShape    `( BtBvhTriangleMeshShapeClass p0 )' =>     {  withBt* `p0' , withVec3* `Vec3'  } -> `BtScaledBvhTriangleMeshShape' mkBtScaledBvhTriangleMeshShape* #}+{#fun btScaledBvhTriangleMeshShape_free    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_calculateLocalInertia as btScaledBvhTriangleMeshShape_calculateLocalInertia    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_calculateLocalInertia as btScaledBvhTriangleMeshShape_calculateLocalInertia'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getChildShape0 as btScaledBvhTriangleMeshShape_getChildShape    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBvhTriangleMeshShape'  mkBtBvhTriangleMeshShape* #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getChildShape0 as btScaledBvhTriangleMeshShape_getChildShape0    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBvhTriangleMeshShape'  mkBtBvhTriangleMeshShape* #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getChildShape1 as btScaledBvhTriangleMeshShape_getChildShape1    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBvhTriangleMeshShape'  mkBtBvhTriangleMeshShape* #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_calculateSerializeBufferSize as btScaledBvhTriangleMeshShape_calculateSerializeBufferSize    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getName as btScaledBvhTriangleMeshShape_getName    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_serialize as btScaledBvhTriangleMeshShape_serialize    `( BtScaledBvhTriangleMeshShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getLocalScaling as btScaledBvhTriangleMeshShape_getLocalScaling    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_setLocalScaling as btScaledBvhTriangleMeshShape_setLocalScaling    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_setLocalScaling as btScaledBvhTriangleMeshShape_setLocalScaling'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getAabb as btScaledBvhTriangleMeshShape_getAabb    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_getAabb as btScaledBvhTriangleMeshShape_getAabb'    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_processAllTriangles as btScaledBvhTriangleMeshShape_processAllTriangles    `( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_processAllTriangles as btScaledBvhTriangleMeshShape_processAllTriangles'    `( BtScaledBvhTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_m_localScaling_set    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_m_localScaling_get    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set    `( BtScaledBvhTriangleMeshShapeClass bc , BtBvhTriangleMeshShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get    `( BtScaledBvhTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtBvhTriangleMeshShape'  mkBtBvhTriangleMeshShape* #}+-- * 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>+-}+{#fun btScaledTriangleMeshShapeData_new as btScaledTriangleMeshShapeData    {  } -> `BtScaledTriangleMeshShapeData' mkBtScaledTriangleMeshShapeData* #}+{#fun btScaledTriangleMeshShapeData_free    `( BtScaledTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btScaledTriangleMeshShapeData_m_trimeshShapeData_set    `( BtScaledTriangleMeshShapeDataClass bc , BtTriangleMeshShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btScaledTriangleMeshShapeData_m_trimeshShapeData_get    `( BtScaledTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtTriangleMeshShapeData'  mkBtTriangleMeshShapeData* #}+{- | <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>+-}+{#fun btScaledTriangleMeshShapeData_m_localScaling_set    `( BtScaledTriangleMeshShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btScaledTriangleMeshShapeData_m_localScaling_get    `( BtScaledTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+-- * 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>+-}+{#fun btShortIntIndexData_new as btShortIntIndexData    {  } -> `BtShortIntIndexData' mkBtShortIntIndexData* #}+{#fun btShortIntIndexData_free    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btShortIntIndexData_m_value_set    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btShortIntIndexData_m_value_get    `( BtShortIntIndexDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btShortIntIndexTripletData_new as btShortIntIndexTripletData    {  } -> `BtShortIntIndexTripletData' mkBtShortIntIndexTripletData* #}+{#fun btShortIntIndexTripletData_free    `( BtShortIntIndexTripletDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * 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>+-}+{#fun btSphereShape_new as btSphereShape    {   `Float'  } -> `BtSphereShape' mkBtSphereShape* #}+{#fun btSphereShape_free    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btSphereShape_calculateLocalInertia as btSphereShape_calculateLocalInertia    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_calculateLocalInertia as btSphereShape_calculateLocalInertia'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_localGetSupportingVertex as btSphereShape_localGetSupportingVertex    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btSphereShape_localGetSupportingVertex as btSphereShape_localGetSupportingVertex'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btSphereShape_getName as btSphereShape_getName    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btSphereShape_getMargin as btSphereShape_getMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btSphereShape_setMargin as btSphereShape_setMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_getAabb as btSphereShape_getAabb    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_getAabb as btSphereShape_getAabb'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_setUnscaledRadius as btSphereShape_setUnscaledRadius    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+ } ->  `()'   #}+{- | <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>+-}+{#fun btSphereShape_localGetSupportingVertexWithoutMargin as btSphereShape_localGetSupportingVertexWithoutMargin    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btSphereShape_localGetSupportingVertexWithoutMargin as btSphereShape_localGetSupportingVertexWithoutMargin'    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btSphereShape_getRadius as btSphereShape_getRadius    `( BtSphereShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+-- * 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>+-}+{#fun btStaticPlaneShape_new as btStaticPlaneShape    {  withVec3* `Vec3' ,  `Float'  } -> `BtStaticPlaneShape' mkBtStaticPlaneShape* #}+{#fun btStaticPlaneShape_free    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_calculateLocalInertia as btStaticPlaneShape_calculateLocalInertia    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_calculateLocalInertia as btStaticPlaneShape_calculateLocalInertia'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_calculateSerializeBufferSize as btStaticPlaneShape_calculateSerializeBufferSize    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_getName as btStaticPlaneShape_getName    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_serialize as btStaticPlaneShape_serialize    `( BtStaticPlaneShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_getLocalScaling as btStaticPlaneShape_getLocalScaling    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_getPlaneNormal as btStaticPlaneShape_getPlaneNormal    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_getPlaneConstant as btStaticPlaneShape_getPlaneConstant    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_setLocalScaling as btStaticPlaneShape_setLocalScaling    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_setLocalScaling as btStaticPlaneShape_setLocalScaling'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_getAabb as btStaticPlaneShape_getAabb    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_getAabb as btStaticPlaneShape_getAabb'    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_processAllTriangles as btStaticPlaneShape_processAllTriangles    `( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_processAllTriangles as btStaticPlaneShape_processAllTriangles'    `( BtStaticPlaneShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localAabbMin_set    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localAabbMin_get    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localAabbMax_set    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localAabbMax_get    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_planeNormal_set    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_planeNormal_get    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_planeConstant_set    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_planeConstant_get    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localScaling_set    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShape_m_localScaling_get    `( BtStaticPlaneShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * 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>+-}+{#fun btStaticPlaneShapeData_new as btStaticPlaneShapeData    {  } -> `BtStaticPlaneShapeData' mkBtStaticPlaneShapeData* #}+{#fun btStaticPlaneShapeData_free    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_collisionShapeData_set    `( BtStaticPlaneShapeDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_collisionShapeData_get    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_localScaling_set    `( BtStaticPlaneShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_localScaling_get    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_planeNormal_set    `( BtStaticPlaneShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_planeNormal_get    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_planeConstant_set    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btStaticPlaneShapeData_m_planeConstant_get    `( BtStaticPlaneShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btStridingMeshInterface_calculateSerializeBufferSize as btStridingMeshInterface_calculateSerializeBufferSize    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_calculateAabbBruteForce as btStridingMeshInterface_calculateAabbBruteForce    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_calculateAabbBruteForce as btStridingMeshInterface_calculateAabbBruteForce'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_serialize as btStridingMeshInterface_serialize    `( BtStridingMeshInterfaceClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_preallocateVertices as btStridingMeshInterface_preallocateVertices    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numverts+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_unLockVertexBase as btStridingMeshInterface_unLockVertexBase    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ subpart+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_getScaling as btStridingMeshInterface_getScaling    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterface_preallocateIndices as btStridingMeshInterface_preallocateIndices    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numindices+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_setPremadeAabb as btStridingMeshInterface_setPremadeAabb    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_setPremadeAabb as btStridingMeshInterface_setPremadeAabb'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_InternalProcessAllTriangles as btStridingMeshInterface_InternalProcessAllTriangles    `( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_InternalProcessAllTriangles as btStridingMeshInterface_InternalProcessAllTriangles'    `( BtStridingMeshInterfaceClass bc , BtInternalTriangleIndexCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_getNumSubParts as btStridingMeshInterface_getNumSubParts    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_hasPremadeAabb as btStridingMeshInterface_hasPremadeAabb    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_setScaling as btStridingMeshInterface_setScaling    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_setScaling as btStridingMeshInterface_setScaling'    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_unLockReadOnlyVertexBase as btStridingMeshInterface_unLockReadOnlyVertexBase    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ subpart+ } ->  `()'   #}+{- | <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>+-}+{#fun btStridingMeshInterface_m_scaling_set    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterface_m_scaling_get    `( BtStridingMeshInterfaceClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * 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>+-}+{#fun btStridingMeshInterfaceData_new as btStridingMeshInterfaceData    {  } -> `BtStridingMeshInterfaceData' mkBtStridingMeshInterfaceData* #}+{#fun btStridingMeshInterfaceData_free    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_meshPartsPtr_set    `( BtStridingMeshInterfaceDataClass bc , BtMeshPartDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_meshPartsPtr_get    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } ->  `BtMeshPartData'  mkBtMeshPartData* #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_scaling_set    `( BtStridingMeshInterfaceDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_scaling_get    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_numMeshParts_set    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btStridingMeshInterfaceData_m_numMeshParts_get    `( BtStridingMeshInterfaceDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btTriangleIndexVertexArray_new0 as btTriangleIndexVertexArray0    {  } -> `BtTriangleIndexVertexArray' mkBtTriangleIndexVertexArray* #}+{#fun btTriangleIndexVertexArray_free    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_preallocateIndices as btTriangleIndexVertexArray_preallocateIndices    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numindices+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_preallocateVertices as btTriangleIndexVertexArray_preallocateVertices    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numverts+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_getIndexedMeshArray0 as btTriangleIndexVertexArray_getIndexedMeshArray    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btIndexedMesh_'  mkBtAlignedObjectArray_btIndexedMesh_* #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_getIndexedMeshArray0 as btTriangleIndexVertexArray_getIndexedMeshArray0    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btIndexedMesh_'  mkBtAlignedObjectArray_btIndexedMesh_* #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_getIndexedMeshArray1 as btTriangleIndexVertexArray_getIndexedMeshArray1    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btIndexedMesh_'  mkBtAlignedObjectArray_btIndexedMesh_* #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_setPremadeAabb as btTriangleIndexVertexArray_setPremadeAabb    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_setPremadeAabb as btTriangleIndexVertexArray_setPremadeAabb'    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_getNumSubParts as btTriangleIndexVertexArray_getNumSubParts    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_hasPremadeAabb as btTriangleIndexVertexArray_hasPremadeAabb    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_unLockVertexBase as btTriangleIndexVertexArray_unLockVertexBase    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ subpart+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_unLockReadOnlyVertexBase as btTriangleIndexVertexArray_unLockReadOnlyVertexBase    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ subpart+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_indexedMeshes_set    `( BtTriangleIndexVertexArrayClass bc , BtAlignedObjectArray_btIndexedMesh_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_indexedMeshes_get    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btIndexedMesh_'  mkBtAlignedObjectArray_btIndexedMesh_* #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_hasAabb_set    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_hasAabb_get    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_aabbMin_set    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_aabbMin_get    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_aabbMax_set    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleIndexVertexArray_m_aabbMax_get    `( BtTriangleIndexVertexArrayClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * 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>+-}+{#fun btTriangleInfo_new as btTriangleInfo    {  } -> `BtTriangleInfo' mkBtTriangleInfo* #}+{#fun btTriangleInfo_free    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV0V1Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV0V1Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV1V2Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV1V2Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV2V0Angle_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfo_m_edgeV2V0Angle_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfo_m_flags_set    `( BtTriangleInfoClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfo_m_flags_get    `( BtTriangleInfoClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * 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>+-}+{#fun btTriangleInfoData_new as btTriangleInfoData    {  } -> `BtTriangleInfoData' mkBtTriangleInfoData* #}+{#fun btTriangleInfoData_free    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoData_m_flags_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoData_m_flags_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV0V1Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV0V1Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV1V2Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV1V2Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV2V0Angle_set    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoData_m_edgeV2V0Angle_get    `( BtTriangleInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btTriangleInfoMap_new as btTriangleInfoMap    {  } -> `BtTriangleInfoMap' mkBtTriangleInfoMap* #}+{#fun btTriangleInfoMap_free    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_serialize as btTriangleInfoMap_serialize    `( BtTriangleInfoMapClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_calculateSerializeBufferSize as btTriangleInfoMap_calculateSerializeBufferSize    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_deSerialize as btTriangleInfoMap_deSerialize    `( BtTriangleInfoMapClass bc , BtTriangleInfoMapDataClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ tmapData+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_convexEpsilon_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_convexEpsilon_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_edgeDistanceThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_edgeDistanceThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_equalVertexThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_equalVertexThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_maxEdgeAngleThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_maxEdgeAngleThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_planarEpsilon_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_planarEpsilon_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_zeroAreaThreshold_set    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMap_m_zeroAreaThreshold_get    `( BtTriangleInfoMapClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btTriangleInfoMapData_new as btTriangleInfoMapData    {  } -> `BtTriangleInfoMapData' mkBtTriangleInfoMapData* #}+{#fun btTriangleInfoMapData_free    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_convexEpsilon_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_convexEpsilon_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_edgeDistanceThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_edgeDistanceThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_equalVertexThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_equalVertexThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_hashTableSize_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_hashTableSize_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_nextSize_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_nextSize_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_numKeys_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_numKeys_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_numValues_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_numValues_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_planarEpsilon_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_planarEpsilon_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_valueArrayPtr_set    `( BtTriangleInfoMapDataClass bc , BtTriangleInfoDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_valueArrayPtr_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `BtTriangleInfoData'  mkBtTriangleInfoData* #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_zeroAreaThreshold_set    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleInfoMapData_m_zeroAreaThreshold_get    `( BtTriangleInfoMapDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btTriangleMesh_new as btTriangleMesh    {   `Bool' ,  `Bool'  } -> `BtTriangleMesh' mkBtTriangleMesh* #}+{#fun btTriangleMesh_free    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_preallocateIndices as btTriangleMesh_preallocateIndices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numindices+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMesh_getNumTriangles as btTriangleMesh_getNumTriangles    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleMesh_getUse32bitIndices as btTriangleMesh_getUse32bitIndices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleMesh_addIndex as btTriangleMesh_addIndex    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMesh_preallocateVertices as btTriangleMesh_preallocateVertices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numverts+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMesh_findOrAddVertex as btTriangleMesh_findOrAddVertex    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vertex+,  `Bool'  -- ^ removeDuplicateVertices+ } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleMesh_findOrAddVertex as btTriangleMesh_findOrAddVertex'    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex+,  `Bool'  -- ^ removeDuplicateVertices+ } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleMesh_getUse4componentVertices as btTriangleMesh_getUse4componentVertices    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleMesh_addTriangle as btTriangleMesh_addTriangle    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vertex0+, withVec3* `Vec3'  peekVec3* -- ^ vertex1+, withVec3* `Vec3'  peekVec3* -- ^ vertex2+,  `Bool'  -- ^ removeDuplicateVertices+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMesh_addTriangle as btTriangleMesh_addTriangle'    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex0+, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex1+, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex2+,  `Bool'  -- ^ removeDuplicateVertices+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMesh_m_4componentVertices_set    `( BtTriangleMeshClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_4componentVertices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <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>+-}+{#fun btTriangleMesh_m_3componentVertices_set    `( BtTriangleMeshClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_3componentVertices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <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>+-}+{#fun btTriangleMesh_m_32bitIndices_set    `( BtTriangleMeshClass bc , BtAlignedObjectArray_unsignedint_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_32bitIndices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_unsignedint_'  mkBtAlignedObjectArray_unsignedint_* #}+{- | <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>+-}+{#fun btTriangleMesh_m_16bitIndices_set    `( BtTriangleMeshClass bc , BtAlignedObjectArray_unsignedshort_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_16bitIndices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_unsignedshort_'  mkBtAlignedObjectArray_unsignedshort_* #}+{- | <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>+-}+{#fun btTriangleMesh_m_use32bitIndices_set    `( BtTriangleMeshClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_use32bitIndices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleMesh_m_use4componentVertices_set    `( BtTriangleMeshClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_use4componentVertices_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleMesh_m_weldingThreshold_set    `( BtTriangleMeshClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMesh_m_weldingThreshold_get    `( BtTriangleMeshClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * 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>+-}+{#fun btTriangleMeshShape_new as btTriangleMeshShape    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0'  } -> `BtTriangleMeshShape' mkBtTriangleMeshShape* #}+{#fun btTriangleMeshShape_free    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_calculateLocalInertia as btTriangleMeshShape_calculateLocalInertia    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_calculateLocalInertia as btTriangleMeshShape_calculateLocalInertia'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_getLocalAabbMax as btTriangleMeshShape_getLocalAabbMax    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_localGetSupportingVertex as btTriangleMeshShape_localGetSupportingVertex    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_localGetSupportingVertex as btTriangleMeshShape_localGetSupportingVertex'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_getName as btTriangleMeshShape_getName    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_getLocalScaling as btTriangleMeshShape_getLocalScaling    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_recalcLocalAabb as btTriangleMeshShape_recalcLocalAabb    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_setLocalScaling as btTriangleMeshShape_setLocalScaling    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_setLocalScaling as btTriangleMeshShape_setLocalScaling'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_getMeshInterface0 as btTriangleMeshShape_getMeshInterface    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btTriangleMeshShape_getMeshInterface0 as btTriangleMeshShape_getMeshInterface0    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btTriangleMeshShape_getMeshInterface1 as btTriangleMeshShape_getMeshInterface1    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <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>+-}+{#fun btTriangleMeshShape_getAabb as btTriangleMeshShape_getAabb    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_getAabb as btTriangleMeshShape_getAabb'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_processAllTriangles as btTriangleMeshShape_processAllTriangles    `( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_processAllTriangles as btTriangleMeshShape_processAllTriangles'    `( BtTriangleMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleMeshShape_localGetSupportingVertexWithoutMargin as btTriangleMeshShape_localGetSupportingVertexWithoutMargin    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_localGetSupportingVertexWithoutMargin as btTriangleMeshShape_localGetSupportingVertexWithoutMargin'    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_getLocalAabbMin as btTriangleMeshShape_getLocalAabbMin    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_localAabbMin_set    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_localAabbMin_get    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_localAabbMax_set    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_localAabbMax_get    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_meshInterface_set    `( BtTriangleMeshShapeClass bc , BtStridingMeshInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShape_m_meshInterface_get    `( BtTriangleMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+-- * 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>+-}+{#fun btTriangleMeshShapeData_new as btTriangleMeshShapeData    {  } -> `BtTriangleMeshShapeData' mkBtTriangleMeshShapeData* #}+{#fun btTriangleMeshShapeData_free    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_collisionMargin_set    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_collisionMargin_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_collisionShapeData_set    `( BtTriangleMeshShapeDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_collisionShapeData_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_meshInterface_set    `( BtTriangleMeshShapeDataClass bc , BtStridingMeshInterfaceDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_meshInterface_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterfaceData'  mkBtStridingMeshInterfaceData* #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_quantizedDoubleBvh_set    `( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_quantizedDoubleBvh_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhDoubleData'  mkBtQuantizedBvhDoubleData* #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_quantizedFloatBvh_set    `( BtTriangleMeshShapeDataClass bc , BtQuantizedBvhFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_quantizedFloatBvh_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhFloatData'  mkBtQuantizedBvhFloatData* #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_triangleInfoMap_set    `( BtTriangleMeshShapeDataClass bc , BtTriangleInfoMapDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleMeshShapeData_m_triangleInfoMap_get    `( BtTriangleMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtTriangleInfoMapData'  mkBtTriangleInfoMapData* #}+-- * 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>+-}+{#fun btTriangleShape_new0 as btTriangleShape0    {  } -> `BtTriangleShape' mkBtTriangleShape* #}+{- | <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>+-}+{#fun btTriangleShape_new1 as btTriangleShape1    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtTriangleShape' mkBtTriangleShape* #}+{#fun btTriangleShape_free    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btTriangleShape_getVertexPtr0 as btTriangleShape_getVertexPtr    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleShape_getVertexPtr0 as btTriangleShape_getVertexPtr0    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleShape_getVertexPtr1 as btTriangleShape_getVertexPtr1    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleShape_getNumPlanes as btTriangleShape_getNumPlanes    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleShape_getPreferredPenetrationDirection as btTriangleShape_getPreferredPenetrationDirection    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getPreferredPenetrationDirection as btTriangleShape_getPreferredPenetrationDirection'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getNumEdges as btTriangleShape_getNumEdges    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleShape_getName as btTriangleShape_getName    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btTriangleShape_getNumVertices as btTriangleShape_getNumVertices    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleShape_getEdge as btTriangleShape_getEdge    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ pa+, withVec3* `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getEdge as btTriangleShape_getEdge'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ pa+, allocaVec3-  `Vec3'  peekVec3* -- ^ pb+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_isInside as btTriangleShape_isInside    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleShape_isInside as btTriangleShape_isInside'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pt+,  `Float'  -- ^ tolerance+ } ->  `Bool'   #}+{- | <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>+-}+{#fun btTriangleShape_getPlane as btTriangleShape_getPlane    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getPlane as btTriangleShape_getPlane'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+,  `Int'  -- ^ i+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getNumPreferredPenetrationDirections as btTriangleShape_getNumPreferredPenetrationDirections    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btTriangleShape_getAabb as btTriangleShape_getAabb    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getAabb as btTriangleShape_getAabb'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getVertex as btTriangleShape_getVertex    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ vert+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getVertex as btTriangleShape_getVertex'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ vert+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_calcNormal as btTriangleShape_calcNormal    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ normal+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_calcNormal as btTriangleShape_calcNormal'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ normal+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_calculateLocalInertia as btTriangleShape_calculateLocalInertia    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_calculateLocalInertia as btTriangleShape_calculateLocalInertia'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getPlaneEquation as btTriangleShape_getPlaneEquation    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withVec3* `Vec3'  peekVec3* -- ^ planeSupport+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_getPlaneEquation as btTriangleShape_getPlaneEquation'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ i+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, allocaVec3-  `Vec3'  peekVec3* -- ^ planeSupport+ } ->  `()'   #}+{- | <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>+-}+{#fun btTriangleShape_localGetSupportingVertexWithoutMargin as btTriangleShape_localGetSupportingVertexWithoutMargin    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ dir+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btTriangleShape_localGetSupportingVertexWithoutMargin as btTriangleShape_localGetSupportingVertexWithoutMargin'    `( BtTriangleShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ dir+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+-- * 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>+-}+{#fun btUniformScalingShape_new as btUniformScalingShape    `( BtConvexShapeClass p0 )' =>     {  withBt* `p0' ,  `Float'  } -> `BtUniformScalingShape' mkBtUniformScalingShape* #}+{#fun btUniformScalingShape_free    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_calculateLocalInertia as btUniformScalingShape_calculateLocalInertia    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_calculateLocalInertia as btUniformScalingShape_calculateLocalInertia'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getUniformScalingFactor as btUniformScalingShape_getUniformScalingFactor    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btUniformScalingShape_localGetSupportingVertex as btUniformScalingShape_localGetSupportingVertex    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_localGetSupportingVertex as btUniformScalingShape_localGetSupportingVertex'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_getName as btUniformScalingShape_getName    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getAabbSlow as btUniformScalingShape_getAabbSlow    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getAabbSlow as btUniformScalingShape_getAabbSlow'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getLocalScaling as btUniformScalingShape_getLocalScaling    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_getChildShape0 as btUniformScalingShape_getChildShape    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <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>+-}+{#fun btUniformScalingShape_getChildShape0 as btUniformScalingShape_getChildShape0    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <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>+-}+{#fun btUniformScalingShape_getChildShape1 as btUniformScalingShape_getChildShape1    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <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>+-}+{#fun btUniformScalingShape_getPreferredPenetrationDirection as btUniformScalingShape_getPreferredPenetrationDirection    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withVec3* `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getPreferredPenetrationDirection as btUniformScalingShape_getPreferredPenetrationDirection'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaVec3-  `Vec3'  peekVec3* -- ^ penetrationVector+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_setLocalScaling as btUniformScalingShape_setLocalScaling    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_setLocalScaling as btUniformScalingShape_setLocalScaling'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getNumPreferredPenetrationDirections as btUniformScalingShape_getNumPreferredPenetrationDirections    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getAabb as btUniformScalingShape_getAabb    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getAabb as btUniformScalingShape_getAabb'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_setMargin as btUniformScalingShape_setMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <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>+-}+{#fun btUniformScalingShape_getMargin as btUniformScalingShape_getMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <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>+-}+{#fun btUniformScalingShape_localGetSupportingVertexWithoutMargin as btUniformScalingShape_localGetSupportingVertexWithoutMargin    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_localGetSupportingVertexWithoutMargin as btUniformScalingShape_localGetSupportingVertexWithoutMargin'    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vec+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_m_childConvexShape_set    `( BtUniformScalingShapeClass bc , BtConvexShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_m_childConvexShape_get    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <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>+-}+{#fun btUniformScalingShape_m_uniformScalingFactor_set    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <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>+-}+{#fun btUniformScalingShape_m_uniformScalingFactor_get    `( BtUniformScalingShapeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}
Physics/Bullet/Raw/BulletCollision/Gimpact.chs view
@@ -22,2135 +22,2725 @@ {#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^  , withTransform* `Transform'  peekTransform* -- ^ trans0 , withTransform* `Transform'  peekTransform* -- ^ trans1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#208>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trans0-, allocaTransform-  `Transform'  peekTransform* -- ^ trans1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ trans0-, withTransform* `Transform'  peekTransform* -- ^ trans1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trans0-, allocaTransform-  `Transform'  peekTransform* -- ^ trans1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#219>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_transform as bT_BOX_BOX_TRANSFORM_CACHE_transform    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ point-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#219>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_transform as bT_BOX_BOX_TRANSFORM_CACHE_transform'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ point-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix as bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#165>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#165>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_AR_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_AR_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}--- * BT_QUANTIZED_BVH_NODE-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_new as bT_QUANTIZED_BVH_NODE    {  } -> `BT_QUANTIZED_BVH_NODE' mkBT_QUANTIZED_BVH_NODE* #}-{#fun bT_QUANTIZED_BVH_NODE_free    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_getEscapeIndex as bT_QUANTIZED_BVH_NODE_getEscapeIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_getDataIndex as bT_QUANTIZED_BVH_NODE_getDataIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_setEscapeIndex as bT_QUANTIZED_BVH_NODE_setEscapeIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_setDataIndex as bT_QUANTIZED_BVH_NODE_setDataIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_isLeafNode as bT_QUANTIZED_BVH_NODE_isLeafNode    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_set    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_get    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * CompoundPrimitiveManager-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_new0 as btGImpactCompoundShape_CompoundPrimitiveManager0    `( BtGImpactCompoundShapeClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactCompoundShape_CompoundPrimitiveManager' mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_new1 as btGImpactCompoundShape_CompoundPrimitiveManager1    {  } -> `BtGImpactCompoundShape_CompoundPrimitiveManager' mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_free    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#352>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ primbox- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh as btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#308>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_set    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtGImpactCompoundShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * CreateFunc-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#215>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_CreateFunc_new as btGImpactCollisionAlgorithm_CreateFunc    {  } -> `BtGImpactCollisionAlgorithm_CreateFunc' mkBtGImpactCollisionAlgorithm_CreateFunc* #}-{#fun btGImpactCollisionAlgorithm_CreateFunc_free    `( BtGImpactCollisionAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm as btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtGImpactCollisionAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ci-, withBt* `p1'  -- ^ body0-, withBt* `p2'  -- ^ body1- } ->  `BtCollisionAlgorithm' mkBtCollisionAlgorithm*  #}--- * GIM_BVH_DATA-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_DATA_new as gIM_BVH_DATA    {  } -> `GIM_BVH_DATA' mkGIM_BVH_DATA* #}-{#fun gIM_BVH_DATA_free    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_DATA_m_data_set    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_DATA_m_data_get    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * GIM_BVH_DATA_ARRAY-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_DATA_ARRAY_new as gIM_BVH_DATA_ARRAY    {  } -> `GIM_BVH_DATA_ARRAY' mkGIM_BVH_DATA_ARRAY* #}-{#fun gIM_BVH_DATA_ARRAY_free    `( GIM_BVH_DATA_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * GIM_BVH_TREE_NODE-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#93>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_new as gIM_BVH_TREE_NODE    {  } -> `GIM_BVH_TREE_NODE' mkGIM_BVH_TREE_NODE* #}-{#fun gIM_BVH_TREE_NODE_free    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_setDataIndex as gIM_BVH_TREE_NODE_setDataIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_getEscapeIndex as gIM_BVH_TREE_NODE_getEscapeIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_getDataIndex as gIM_BVH_TREE_NODE_getDataIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_setEscapeIndex as gIM_BVH_TREE_NODE_setEscapeIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#98>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_isLeafNode as gIM_BVH_TREE_NODE_isLeafNode    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}--- * GIM_BVH_TREE_NODE_ARRAY-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_BVH_TREE_NODE_ARRAY_new as gIM_BVH_TREE_NODE_ARRAY    {  } -> `GIM_BVH_TREE_NODE_ARRAY' mkGIM_BVH_TREE_NODE_ARRAY* #}-{#fun gIM_BVH_TREE_NODE_ARRAY_free    `( GIM_BVH_TREE_NODE_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * GIM_PAIR-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_new0 as gIM_PAIR0    {  } -> `GIM_PAIR' mkGIM_PAIR* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_new1 as gIM_PAIR1    {   `Int' ,  `Int'  } -> `GIM_PAIR' mkGIM_PAIR* #}-{#fun gIM_PAIR_free    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_m_index1_set    `( GIM_PAIRClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_m_index1_get    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_m_index2_set    `( GIM_PAIRClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun gIM_PAIR_m_index2_get    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * GIM_QUANTIZED_BVH_NODE_ARRAY-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#98>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun gIM_QUANTIZED_BVH_NODE_ARRAY_new as gIM_QUANTIZED_BVH_NODE_ARRAY    {  } -> `GIM_QUANTIZED_BVH_NODE_ARRAY' mkGIM_QUANTIZED_BVH_NODE_ARRAY* #}-{#fun gIM_QUANTIZED_BVH_NODE_ARRAY_free    `( GIM_QUANTIZED_BVH_NODE_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * GIM_TRIANGLE_CONTACT-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_new as gIM_TRIANGLE_CONTACT    {  } -> `GIM_TRIANGLE_CONTACT' mkGIM_TRIANGLE_CONTACT* #}-{#fun gIM_TRIANGLE_CONTACT_free    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_copy_from as gIM_TRIANGLE_CONTACT_copy_from    `( GIM_TRIANGLE_CONTACTClass bc , GIM_TRIANGLE_CONTACTClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_penetration_depth_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_penetration_depth_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_point_count_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_point_count_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_separating_normal_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' , withVector4* `Vector4'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun gIM_TRIANGLE_CONTACT_m_separating_normal_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' , allocaVector4-  `Vector4'  peekVector4* } -> `()' #}--- * TrimeshPrimitiveManager-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#545>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_new0 as btGImpactMeshShapePart_TrimeshPrimitiveManager0    {  } -> `BtGImpactMeshShapePart_TrimeshPrimitiveManager' mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#578>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_new1 as btGImpactMeshShapePart_TrimeshPrimitiveManager1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtGImpactMeshShapePart_TrimeshPrimitiveManager' mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_free    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#633>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#656>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ vertex_index-, withVector3* `Vector3'  peekVector3* -- ^ vertex- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#656>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex'    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ vertex_index-, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#623>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh as btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#596>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_lock as btGImpactMeshShapePart_TrimeshPrimitiveManager_lock    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#674>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ primbox- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#683>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#610>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock as btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#693>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#628>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#531>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#531>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#532>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtStridingMeshInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#533>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#533>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#534>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#534>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#535>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#535>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#537>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#537>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#539>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#539>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#541>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#541>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#542>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#542>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btAABB-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_new0 as btAABB0    {  } -> `BtAABB' mkBtAABB* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#243>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_new1 as btAABB1    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtAABB' mkBtAABB* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#257>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_new2 as btAABB2    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Float'  } -> `BtAABB' mkBtAABB* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_new3 as btAABB3    `( BtAABBClass p0 )' =>     {  withBt* `p0' ,  `Float'  } -> `BtAABB' mkBtAABB* #}-{#fun btAABB_free    `( BtAABBClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#507>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_overlapping_trans_conservative as btAABB_overlapping_trans_conservative    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ box-, withTransform* `Transform'  peekTransform* -- ^ trans1_to_0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#507>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_overlapping_trans_conservative as btAABB_overlapping_trans_conservative'    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ box-, allocaTransform-  `Transform'  peekTransform* -- ^ trans1_to_0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_appy_transform as btAABB_appy_transform    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_appy_transform as btAABB_appy_transform'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#425>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_find_intersection as btAABB_find_intersection    `( BtAABBClass bc , BtAABBClass p0 , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other-, withBt* `p1'  -- ^ intersection- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#456>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_ray as btAABB_collide_ray    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ vorigin-, withVector3* `Vector3'  peekVector3* -- ^ vdir- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#456>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_ray as btAABB_collide_ray'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ vorigin-, allocaVector3-  `Vector3'  peekVector3* -- ^ vdir- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#524>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_overlapping_trans_cache as btAABB_overlapping_trans_cache    `( BtAABBClass bc , BtAABBClass p0 , BT_BOX_BOX_TRANSFORM_CACHEClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ box-, withBt* `p1'  -- ^ transcache-,  `Bool'  -- ^ fulltest- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#418>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_get_center_extend as btAABB_get_center_extend    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ center-, withVector3* `Vector3'  peekVector3* -- ^ extend- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#418>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_get_center_extend as btAABB_get_center_extend'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ center-, allocaVector3-  `Vector3'  peekVector3* -- ^ extend- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#291>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_invalidate as btAABB_invalidate    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#437>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_has_collision as btAABB_has_collision    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_appy_transform_trans_cache as btAABB_appy_transform_trans_cache    `( BtAABBClass bc , BT_BOX_BOX_TRANSFORM_CACHEClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#341>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_calc_from_triangle_margin as btAABB_calc_from_triangle_margin    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ V1-, withVector3* `Vector3'  peekVector3* -- ^ V2-, withVector3* `Vector3'  peekVector3* -- ^ V3-,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#341>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_calc_from_triangle_margin as btAABB_calc_from_triangle_margin'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ V1-, allocaVector3-  `Vector3'  peekVector3* -- ^ V2-, allocaVector3-  `Vector3'  peekVector3* -- ^ V3-,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#301>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_increment_margin as btAABB_increment_margin    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#393>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_merge as btAABB_merge    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ box- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#578>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_plane as btAABB_collide_plane    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withVector4* `Vector4'  peekVector4* -- ^ plane- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#578>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_plane as btAABB_collide_plane'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector4-  `Vector4'  peekVector4* -- ^ plane- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#515>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_overlapping_trans_conservative2 as btAABB_overlapping_trans_conservative2    `( BtAABBClass bc , BtAABBClass p0 , BT_BOX_BOX_TRANSFORM_CACHEClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ box-, withBt* `p1'  -- ^ trans1_to_0- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#311>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_copy_with_margin as btAABB_copy_with_margin    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other-,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#589>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_triangle_exact as btAABB_collide_triangle_exact    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p1-, withVector3* `Vector3'  peekVector3* -- ^ p2-, withVector3* `Vector3'  peekVector3* -- ^ p3-, withVector4* `Vector4'  peekVector4* -- ^ triangle_plane- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#589>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_collide_triangle_exact as btAABB_collide_triangle_exact'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p1-, allocaVector3-  `Vector3'  peekVector3* -- ^ p2-, allocaVector3-  `Vector3'  peekVector3* -- ^ p3-, allocaVector4-  `Vector4'  peekVector4* -- ^ triangle_plane- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_m_max_set    `( BtAABBClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_m_max_get    `( BtAABBClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_m_min_set    `( BtAABBClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>--}-{#fun btAABB_m_min_get    `( BtAABBClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * btBvhTree-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_new as btBvhTree    {  } -> `BtBvhTree' mkBtBvhTree* #}-{#fun btBvhTree_free    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#173>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getNodeCount as btBvhTree_getNodeCount    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_build_tree as btBvhTree_build_tree    `( BtBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ primitive_boxes- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_setNodeBound as btBvhTree_setNodeBound    `( BtBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getLeftNode as btBvhTree_getLeftNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#204>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getRightNode as btBvhTree_getRightNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_clearNodes as btBvhTree_clearNodes    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#210>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getEscapeNodeIndex as btBvhTree_getEscapeNodeIndex    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#179>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_isLeafNode as btBvhTree_isLeafNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#215>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_get_node_pointer as btBvhTree_get_node_pointer    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `GIM_BVH_TREE_NODE' mkGIM_BVH_TREE_NODE*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#184>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getNodeData as btBvhTree_getNodeData    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btBvhTree_getNodeBound as btBvhTree_getNodeBound    `( BtBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}--- * btGImpactBvh-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_new0 as btGImpactBvh0    {  } -> `BtGImpactBvh' mkBtGImpactBvh* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_new1 as btGImpactBvh1    `( BtPrimitiveManagerBaseClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactBvh' mkBtGImpactBvh* #}-{#fun btGImpactBvh_free    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getNodeCount as btGImpactBvh_getNodeCount    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#392>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_find_collision as btGImpactBvh_find_collision    `(  BtGImpactBvhClass p0 , BtGImpactBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1-, withTransform* `Transform'  peekTransform* -- ^ trans1-, withBt* `p2'  -- ^ boxset2-, withTransform* `Transform'  peekTransform* -- ^ trans2-, withBt* `p4'  -- ^ collision_pairs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#392>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_find_collision as btGImpactBvh_find_collision'    `(  BtGImpactBvhClass p0 , BtGImpactBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1-, allocaTransform-  `Transform'  peekTransform* -- ^ trans1-, withBt* `p2'  -- ^ boxset2-, allocaTransform-  `Transform'  peekTransform* -- ^ trans2-, withBt* `p4'  -- ^ collision_pairs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getNodeTriangle as btGImpactBvh_getNodeTriangle    `( BtGImpactBvhClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#321>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_hasHierarchy as btGImpactBvh_hasHierarchy    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getLeftNode as btGImpactBvh_getLeftNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#365>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getRightNode as btGImpactBvh_getRightNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_update as btGImpactBvh_update    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_isTrimesh as btGImpactBvh_isTrimesh    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#354>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_setNodeBound as btGImpactBvh_setNodeBound    `( BtGImpactBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_setPrimitiveManager as btGImpactBvh_setPrimitiveManager    `( BtGImpactBvhClass bc , BtPrimitiveManagerBaseClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ primitive_manager- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#370>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getEscapeNodeIndex as btGImpactBvh_getEscapeNodeIndex    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#339>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_isLeafNode as btGImpactBvh_isLeafNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getPrimitiveManager as btGImpactBvh_getPrimitiveManager    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#301>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_buildSet as btGImpactBvh_buildSet    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#381>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_get_node_pointer as btGImpactBvh_get_node_pointer    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `GIM_BVH_TREE_NODE' mkGIM_BVH_TREE_NODE*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#344>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getNodeData as btGImpactBvh_getNodeData    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#349>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btGImpactBvh_getNodeBound as btGImpactBvh_getNodeBound    `( BtGImpactBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}--- * btGImpactCollisionAlgorithm-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_new as btGImpactCollisionAlgorithm    `( BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2'  } -> `BtGImpactCollisionAlgorithm' mkBtGImpactCollisionAlgorithm* #}-{#fun btGImpactCollisionAlgorithm_free    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#292>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_getPart1 as btGImpactCollisionAlgorithm_getPart1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#284>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_getPart0 as btGImpactCollisionAlgorithm_getPart0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#247>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_gimpact_vs_shape as btGImpactCollisionAlgorithm_gimpact_vs_shape    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtCollisionShapeClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ shape0-, withBt* `p3'  -- ^ shape1-,  `Bool'  -- ^ swapped- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_getFace1 as btGImpactCollisionAlgorithm_getFace1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_gimpact_vs_concave as btGImpactCollisionAlgorithm_gimpact_vs_concave    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtConcaveShapeClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ shape0-, withBt* `p3'  -- ^ shape1-,  `Bool'  -- ^ swapped- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#252>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_gimpact_vs_compoundshape as btGImpactCollisionAlgorithm_gimpact_vs_compoundshape    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtCompoundShapeClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ shape0-, withBt* `p3'  -- ^ shape1-,  `Bool'  -- ^ swapped- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_calculateTimeOfImpact as btGImpactCollisionAlgorithm_calculateTimeOfImpact    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_processCollision as btGImpactCollisionAlgorithm_processCollision    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ dispatchInfo-, withBt* `p3'  -- ^ resultOut- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_setFace1 as btGImpactCollisionAlgorithm_setFace1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ value- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#242>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_gimpact_vs_gimpact as btGImpactCollisionAlgorithm_gimpact_vs_gimpact    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtGImpactShapeInterfaceClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body0-, withBt* `p1'  -- ^ body1-, withBt* `p2'  -- ^ shape0-, withBt* `p3'  -- ^ shape1- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_setFace0 as btGImpactCollisionAlgorithm_setFace0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ value- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#288>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_setPart1 as btGImpactCollisionAlgorithm_setPart1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ value- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_setPart0 as btGImpactCollisionAlgorithm_setPart0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ value- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#224>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_registerAlgorithm as btGImpactCollisionAlgorithm_registerAlgorithm    `(  BtCollisionDispatcherClass p0 )' =>     {  withBt* `p0'  -- ^ dispatcher- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>--}-{#fun btGImpactCollisionAlgorithm_getFace0 as btGImpactCollisionAlgorithm_getFace0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * btGImpactCompoundShape-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#370>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_new as btGImpactCompoundShape    {   `Bool'  } -> `BtGImpactCompoundShape' mkBtGImpactCompoundShape* #}-{#fun btGImpactCompoundShape_free    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_calculateLocalInertia as btGImpactCompoundShape_calculateLocalInertia    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_calculateLocalInertia as btGImpactCompoundShape_calculateLocalInertia'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape'    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape0    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape0'    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform-, withBt* `p1'  -- ^ shape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#418>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_addChildShape1 as btGImpactCompoundShape_addChildShape1    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ shape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#397>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getCompoundPrimitiveManager as btGImpactCompoundShape_getCompoundPrimitiveManager    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtGImpactCompoundShape_CompoundPrimitiveManager' mkBtGImpactCompoundShape_CompoundPrimitiveManager*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#464>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_setChildTransform as btGImpactCompoundShape_setChildTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withTransform* `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#464>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_setChildTransform as btGImpactCompoundShape_setChildTransform'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#454>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildTransform as btGImpactCompoundShape_getChildTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#490>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getBulletTetrahedron as btGImpactCompoundShape_getBulletTetrahedron    `( BtGImpactCompoundShapeClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ tetrahedron- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getName as btGImpactCompoundShape_getName    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#478>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_needsRetrieveTetrahedrons as btGImpactCompoundShape_needsRetrieveTetrahedrons    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#425>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildShape0 as btGImpactCompoundShape_getChildShape    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#425>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildShape0 as btGImpactCompoundShape_getChildShape0    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#431>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildShape1 as btGImpactCompoundShape_getChildShape1    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#484>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getBulletTriangle as btGImpactCompoundShape_getBulletTriangle    `( BtGImpactCompoundShapeClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#472>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_needsRetrieveTriangles as btGImpactCompoundShape_needsRetrieveTriangles    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#383>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_childrenHasTransform as btGImpactCompoundShape_childrenHasTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#403>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getNumChildShapes as btGImpactCompoundShape_getNumChildShapes    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#391>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getPrimitiveManager as btGImpactCompoundShape_getPrimitiveManager    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#439>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildAabb as btGImpactCompoundShape_getChildAabb    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#439>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactCompoundShape_getChildAabb as btGImpactCompoundShape_getChildAabb'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}--- * btGImpactMeshShape-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#927>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_new as btGImpactMeshShape    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactMeshShape' mkBtGImpactMeshShape* #}-{#fun btGImpactMeshShape_free    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1014>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_calculateLocalInertia as btGImpactMeshShape_calculateLocalInertia    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1014>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_calculateLocalInertia as btGImpactMeshShape_calculateLocalInertia'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#973>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_setLocalScaling as btGImpactMeshShape_setLocalScaling    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#973>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_setLocalScaling as btGImpactMeshShape_setLocalScaling'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_setChildTransform as btGImpactMeshShape_setChildTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withTransform* `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_setChildTransform as btGImpactMeshShape_setChildTransform'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#945>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshInterface0 as btGImpactMeshShape_getMeshInterface    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#945>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshInterface0 as btGImpactMeshShape_getMeshInterface0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#950>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshInterface1 as btGImpactMeshShape_getMeshInterface1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtStridingMeshInterface' mkBtStridingMeshInterface*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1018>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getPrimitiveManager as btGImpactMeshShape_getPrimitiveManager    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_processAllTriangles as btGImpactMeshShape_processAllTriangles    `( BtGImpactMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_processAllTriangles as btGImpactMeshShape_processAllTriangles'    `( BtGImpactMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#955>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshPartCount as btGImpactMeshShape_getMeshPartCount    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1165>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_calculateSerializeBufferSize as btGImpactMeshShape_calculateSerializeBufferSize    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_rayTest as btGImpactMeshShape_rayTest    `( BtGImpactMeshShapeClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_rayTest as btGImpactMeshShape_rayTest'    `( BtGImpactMeshShapeClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getName as btGImpactMeshShape_getName    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1054>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getBulletTriangle as btGImpactMeshShape_getBulletTriangle    `( BtGImpactMeshShapeClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#960>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshPart0 as btGImpactMeshShape_getMeshPart    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#960>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshPart0 as btGImpactMeshShape_getMeshPart0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#967>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getMeshPart1 as btGImpactMeshShape_getMeshPart1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1041>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_needsRetrieveTriangles as btGImpactMeshShape_needsRetrieveTriangles    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1034>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_childrenHasTransform as btGImpactMeshShape_childrenHasTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1090>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildShape0 as btGImpactMeshShape_getChildShape    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1090>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildShape0 as btGImpactMeshShape_getChildShape0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1099>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildShape1 as btGImpactMeshShape_getChildShape1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildTransform as btGImpactMeshShape_getChildTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1067>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_lockChildShapes as btGImpactMeshShape_lockChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#987>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_setMargin as btGImpactMeshShape_setMargin    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1026>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getNumChildShapes as btGImpactMeshShape_getNumChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1083>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildAabb as btGImpactMeshShape_getChildAabb    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1083>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getChildAabb as btGImpactMeshShape_getChildAabb'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1060>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_getBulletTetrahedron as btGImpactMeshShape_getBulletTetrahedron    `( BtGImpactMeshShapeClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ tetrahedron- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1048>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_needsRetrieveTetrahedrons as btGImpactMeshShape_needsRetrieveTetrahedrons    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1072>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_unlockChildShapes as btGImpactMeshShape_unlockChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1002>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShape_postUpdate as btGImpactMeshShape_postUpdate    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}--- * btGImpactMeshShapeData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1153>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapeData_new as btGImpactMeshShapeData    {  } -> `BtGImpactMeshShapeData' mkBtGImpactMeshShapeData* #}-{#fun btGImpactMeshShapeData_free    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapeData_m_collisionMargin_set    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapeData_m_collisionMargin_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapeData_m_gimpactSubType_set    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapeData_m_gimpactSubType_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btGImpactMeshShapePart-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#710>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_new0 as btGImpactMeshShapePart0    {  } -> `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#716>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_new1 as btGImpactMeshShapePart1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart* #}-{#fun btGImpactMeshShapePart_free    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#809>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_calculateLocalInertia as btGImpactMeshShapePart_calculateLocalInertia    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#809>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_calculateLocalInertia as btGImpactMeshShapePart_calculateLocalInertia'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#786>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_setChildTransform as btGImpactMeshShapePart_setChildTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withTransform* `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#786>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_setChildTransform as btGImpactMeshShapePart_setChildTransform'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#877>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getLocalScaling as btGImpactMeshShapePart_getLocalScaling    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#855>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getVertex as btGImpactMeshShapePart_getVertex    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ vertex_index-, withVector3* `Vector3'  peekVector3* -- ^ vertex- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#855>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getVertex as btGImpactMeshShapePart_getVertex'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ vertex_index-, allocaVector3-  `Vector3'  peekVector3* -- ^ vertex- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#887>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_processAllTriangles as btGImpactMeshShapePart_processAllTriangles    `( BtGImpactMeshShapePartClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#887>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_processAllTriangles as btGImpactMeshShapePart_processAllTriangles'    `( BtGImpactMeshShapePartClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#814>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getName as btGImpactMeshShapePart_getName    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#836>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getBulletTriangle as btGImpactMeshShapePart_getBulletTriangle    `( BtGImpactMeshShapePartClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#871>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_setLocalScaling as btGImpactMeshShapePart_setLocalScaling    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#871>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_setLocalScaling as btGImpactMeshShapePart_setLocalScaling'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#882>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getPart as btGImpactMeshShapePart_getPart    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#728>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_childrenHasTransform as btGImpactMeshShapePart_childrenHasTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#825>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_needsRetrieveTriangles as btGImpactMeshShapePart_needsRetrieveTriangles    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#757>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getChildShape0 as btGImpactMeshShapePart_getChildShape    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#757>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getChildShape0 as btGImpactMeshShapePart_getChildShape0    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#767>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getChildShape1 as btGImpactMeshShapePart_getChildShape1    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#775>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getChildTransform as btGImpactMeshShapePart_getChildTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#735>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_lockChildShapes as btGImpactMeshShapePart_lockChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#866>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getMargin as btGImpactMeshShapePart_getMargin    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#860>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_setMargin as btGImpactMeshShapePart_setMargin    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#795>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getPrimitiveManager as btGImpactMeshShapePart_getPrimitiveManager    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#750>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getNumChildShapes as btGImpactMeshShapePart_getNumChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#841>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getBulletTetrahedron as btGImpactMeshShapePart_getBulletTetrahedron    `( BtGImpactMeshShapePartClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ tetrahedron- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#800>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getTrimeshPrimitiveManager as btGImpactMeshShapePart_getTrimeshPrimitiveManager    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtGImpactMeshShapePart_TrimeshPrimitiveManager' mkBtGImpactMeshShapePart_TrimeshPrimitiveManager*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#831>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_needsRetrieveTetrahedrons as btGImpactMeshShapePart_needsRetrieveTetrahedrons    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#742>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_unlockChildShapes as btGImpactMeshShapePart_unlockChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#850>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactMeshShapePart_getVertexCount as btGImpactMeshShapePart_getVertexCount    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * btGImpactQuantizedBvh-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_new0 as btGImpactQuantizedBvh0    {  } -> `BtGImpactQuantizedBvh' mkBtGImpactQuantizedBvh* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_new1 as btGImpactQuantizedBvh1    `( BtPrimitiveManagerBaseClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactQuantizedBvh' mkBtGImpactQuantizedBvh* #}-{#fun btGImpactQuantizedBvh_free    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getNodeCount as btGImpactQuantizedBvh_getNodeCount    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#368>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_find_collision as btGImpactQuantizedBvh_find_collision    `(  BtGImpactQuantizedBvhClass p0 , BtGImpactQuantizedBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1-, withTransform* `Transform'  peekTransform* -- ^ trans1-, withBt* `p2'  -- ^ boxset2-, withTransform* `Transform'  peekTransform* -- ^ trans2-, withBt* `p4'  -- ^ collision_pairs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#368>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_find_collision as btGImpactQuantizedBvh_find_collision'    `(  BtGImpactQuantizedBvhClass p0 , BtGImpactQuantizedBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1-, allocaTransform-  `Transform'  peekTransform* -- ^ trans1-, withBt* `p2'  -- ^ boxset2-, allocaTransform-  `Transform'  peekTransform* -- ^ trans2-, withBt* `p4'  -- ^ collision_pairs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#351>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getNodeTriangle as btGImpactQuantizedBvh_getNodeTriangle    `( BtGImpactQuantizedBvhClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_hasHierarchy as btGImpactQuantizedBvh_hasHierarchy    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#336>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getLeftNode as btGImpactQuantizedBvh_getLeftNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#341>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getRightNode as btGImpactQuantizedBvh_getRightNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#271>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_update as btGImpactQuantizedBvh_update    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_isTrimesh as btGImpactQuantizedBvh_isTrimesh    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#330>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_setNodeBound as btGImpactQuantizedBvh_setNodeBound    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#256>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_setPrimitiveManager as btGImpactQuantizedBvh_setPrimitiveManager    `( BtGImpactQuantizedBvhClass bc , BtPrimitiveManagerBaseClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ primitive_manager- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#346>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getEscapeNodeIndex as btGImpactQuantizedBvh_getEscapeNodeIndex    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#315>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_isLeafNode as btGImpactQuantizedBvh_isLeafNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getPrimitiveManager as btGImpactQuantizedBvh_getPrimitiveManager    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_buildSet as btGImpactQuantizedBvh_buildSet    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#357>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_get_node_pointer as btGImpactQuantizedBvh_get_node_pointer    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BT_QUANTIZED_BVH_NODE' mkBT_QUANTIZED_BVH_NODE*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getNodeData as btGImpactQuantizedBvh_getNodeData    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#325>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btGImpactQuantizedBvh_getNodeBound as btGImpactQuantizedBvh_getNodeBound    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}--- * btGImpactShapeInterface-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#239>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getPrimitiveTriangle as btGImpactShapeInterface_getPrimitiveTriangle    `( BtGImpactShapeInterfaceClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#271>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_setChildTransform as btGImpactShapeInterface_setChildTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, withTransform* `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#271>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_setChildTransform as btGImpactShapeInterface_setChildTransform'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ transform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getLocalScaling as btGImpactShapeInterface_getLocalScaling    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getLocalBox as btGImpactShapeInterface_getLocalBox    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtAABB' mkBtAABB*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#208>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getPrimitiveManager as btGImpactShapeInterface_getPrimitiveManager    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPrimitiveManagerBase' mkBtPrimitiveManagerBase*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_processAllTriangles as btGImpactShapeInterface_processAllTriangles    `( BtGImpactShapeInterfaceClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_processAllTriangles as btGImpactShapeInterface_processAllTriangles'    `( BtGImpactShapeInterfaceClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ callback-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#201>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_hasBoxSet as btGImpactShapeInterface_hasBoxSet    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_rayTest as btGImpactShapeInterface_rayTest    `( BtGImpactShapeInterfaceClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_rayTest as btGImpactShapeInterface_rayTest'    `( BtGImpactShapeInterfaceClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#195>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getBoxSet as btGImpactShapeInterface_getBoxSet    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtGImpactQuantizedBvh' mkBtGImpactQuantizedBvh*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#223>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getBulletTriangle as btGImpactShapeInterface_getBulletTriangle    `( BtGImpactShapeInterfaceClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_setLocalScaling as btGImpactShapeInterface_setLocalScaling    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_setLocalScaling as btGImpactShapeInterface_setLocalScaling'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scaling- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_needsRetrieveTriangles as btGImpactShapeInterface_needsRetrieveTriangles    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#215>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_childrenHasTransform as btGImpactShapeInterface_childrenHasTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getAabb as btGImpactShapeInterface_getAabb    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getAabb as btGImpactShapeInterface_getAabb'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildShape0 as btGImpactShapeInterface_getChildShape    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildShape0 as btGImpactShapeInterface_getChildShape0    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildShape1 as btGImpactShapeInterface_getChildShape1    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#265>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildTransform as btGImpactShapeInterface_getChildTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_lockChildShapes as btGImpactShapeInterface_lockChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#174>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_setMargin as btGImpactShapeInterface_setMargin    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ margin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#212>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getNumChildShapes as btGImpactShapeInterface_getNumChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildAabb as btGImpactShapeInterface_getChildAabb    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getChildAabb as btGImpactShapeInterface_getChildAabb'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ child_index-, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#154>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getShapeType as btGImpactShapeInterface_getShapeType    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#225>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_getBulletTetrahedron as btGImpactShapeInterface_getBulletTetrahedron    `( BtGImpactShapeInterfaceClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ tetrahedron- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_needsRetrieveTetrahedrons as btGImpactShapeInterface_needsRetrieveTetrahedrons    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_unlockChildShapes as btGImpactShapeInterface_unlockChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_postUpdate as btGImpactShapeInterface_postUpdate    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btGImpactShapeInterface_updateBound as btGImpactShapeInterface_updateBound    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}--- * btPairSet-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPairSet_new as btPairSet    {  } -> `BtPairSet' mkBtPairSet* #}-{#fun btPairSet_free    `( BtPairSetClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPairSet_push_pair_inv as btPairSet_push_pair_inv    `( BtPairSetClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index1-,  `Int'  -- ^ index2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPairSet_push_pair as btPairSet_push_pair    `( BtPairSetClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index1-,  `Int'  -- ^ index2- } ->  `()'  #}--- * btPrimitiveManagerBase-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#239>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPrimitiveManagerBase_get_primitive_box as btPrimitiveManagerBase_get_primitive_box    `( BtPrimitiveManagerBaseClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ primbox- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPrimitiveManagerBase_get_primitive_triangle as btPrimitiveManagerBase_get_primitive_triangle    `( BtPrimitiveManagerBaseClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ prim_index-, withBt* `p1'  -- ^ triangle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPrimitiveManagerBase_is_trimesh as btPrimitiveManagerBase_is_trimesh    `( BtPrimitiveManagerBaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>--}-{#fun btPrimitiveManagerBase_get_primitive_count as btPrimitiveManagerBase_get_primitive_count    `( BtPrimitiveManagerBaseClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * btPrimitiveTriangle-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_new as btPrimitiveTriangle    {  } -> `BtPrimitiveTriangle' mkBtPrimitiveTriangle* #}-{#fun btPrimitiveTriangle_free    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_get_edge_plane as btPrimitiveTriangle_get_edge_plane    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ edge_index-, withVector4* `Vector4'  peekVector4* -- ^ plane- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_get_edge_plane as btPrimitiveTriangle_get_edge_plane'    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ edge_index-, allocaVector4-  `Vector4'  peekVector4* -- ^ plane- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#95>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_overlap_test_conservative as btPrimitiveTriangle_overlap_test_conservative    `( BtPrimitiveTriangleClass bc , BtPrimitiveTriangleClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#87>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_buildTriPlane as btPrimitiveTriangle_buildTriPlane    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_applyTransform as btPrimitiveTriangle_applyTransform    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_applyTransform as btPrimitiveTriangle_applyTransform'    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_find_triangle_collision_clip_method as btPrimitiveTriangle_find_triangle_collision_clip_method    `( BtPrimitiveTriangleClass bc , BtPrimitiveTriangleClass p0 , GIM_TRIANGLE_CONTACTClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other-, withBt* `p1'  -- ^ contacts- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_dummy_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_dummy_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_margin_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_margin_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_plane_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' , withVector4* `Vector4'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btPrimitiveTriangle_m_plane_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' , allocaVector4-  `Vector4'  peekVector4* } -> `()' #}--- * btQuantizedBvhTree-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_new as btQuantizedBvhTree    {  } -> `BtQuantizedBvhTree' mkBtQuantizedBvhTree* #}-{#fun btQuantizedBvhTree_free    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#153>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getNodeCount as btQuantizedBvhTree_getNodeCount    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_build_tree as btQuantizedBvhTree_build_tree    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ primitive_boxes- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#195>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getLeftNode as btQuantizedBvhTree_getLeftNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#180>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_setNodeBound as btQuantizedBvhTree_setNodeBound    `( BtQuantizedBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getNodeBound as btQuantizedBvhTree_getNodeBound    `( BtQuantizedBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex-, withBt* `p1'  -- ^ bound- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getRightNode as btQuantizedBvhTree_getRightNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_clearNodes as btQuantizedBvhTree_clearNodes    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getEscapeNodeIndex as btQuantizedBvhTree_getEscapeNodeIndex    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_isLeafNode as btQuantizedBvhTree_isLeafNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_get_node_pointer as btQuantizedBvhTree_get_node_pointer    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BT_QUANTIZED_BVH_NODE' mkBT_QUANTIZED_BVH_NODE*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>--}-{#fun btQuantizedBvhTree_getNodeData as btQuantizedBvhTree_getNodeData    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ nodeindex- } ->  `Int'  #}--- * btTetrahedronShapeEx-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btTetrahedronShapeEx_new as btTetrahedronShapeEx    {  } -> `BtTetrahedronShapeEx' mkBtTetrahedronShapeEx* #}-{#fun btTetrahedronShapeEx_free    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btTetrahedronShapeEx_setVertices as btTetrahedronShapeEx_setVertices    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v0-, withVector3* `Vector3'  peekVector3* -- ^ v1-, withVector3* `Vector3'  peekVector3* -- ^ v2-, withVector3* `Vector3'  peekVector3* -- ^ v3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>--}-{#fun btTetrahedronShapeEx_setVertices as btTetrahedronShapeEx_setVertices'    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v0-, allocaVector3-  `Vector3'  peekVector3* -- ^ v1-, allocaVector3-  `Vector3'  peekVector3* -- ^ v2-, allocaVector3-  `Vector3'  peekVector3* -- ^ v3- } ->  `()'  #}--- * btTriangleShapeEx-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_new0 as btTriangleShapeEx0    {  } -> `BtTriangleShapeEx' mkBtTriangleShapeEx* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#143>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_new1 as btTriangleShapeEx1    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtTriangleShapeEx' mkBtTriangleShapeEx* #}-{#fun btTriangleShapeEx_free    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_overlap_test_conservative as btTriangleShapeEx_overlap_test_conservative    `( BtTriangleShapeExClass bc , BtTriangleShapeExClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_buildTriPlane as btTriangleShapeEx_buildTriPlane    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, withVector4* `Vector4'  peekVector4* -- ^ plane- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_buildTriPlane as btTriangleShapeEx_buildTriPlane'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector4-  `Vector4'  peekVector4* -- ^ plane- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_applyTransform as btTriangleShapeEx_applyTransform    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_applyTransform as btTriangleShapeEx_applyTransform'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#151>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_getAabb as btTriangleShapeEx_getAabb    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ t-, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#151>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>--}-{#fun btTriangleShapeEx_getAabb as btTriangleShapeEx_getAabb'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ t-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans0+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans0+, withTransform* `Transform'  peekTransform* -- ^ trans1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic as bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans0+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#219>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_transform as bT_BOX_BOX_TRANSFORM_CACHE_transform    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ point+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#219>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_transform as bT_BOX_BOX_TRANSFORM_CACHE_transform'    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ point+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix as bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_AR_set    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun bT_BOX_BOX_TRANSFORM_CACHE_m_AR_get    `( BT_BOX_BOX_TRANSFORM_CACHEClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+-- * BT_QUANTIZED_BVH_NODE+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_new as bT_QUANTIZED_BVH_NODE    {  } -> `BT_QUANTIZED_BVH_NODE' mkBT_QUANTIZED_BVH_NODE* #}+{#fun bT_QUANTIZED_BVH_NODE_free    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_getEscapeIndex as bT_QUANTIZED_BVH_NODE_getEscapeIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_getDataIndex as bT_QUANTIZED_BVH_NODE_getDataIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_setEscapeIndex as bT_QUANTIZED_BVH_NODE_setEscapeIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_setDataIndex as bT_QUANTIZED_BVH_NODE_setDataIndex    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_isLeafNode as bT_QUANTIZED_BVH_NODE_isLeafNode    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_set    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_get    `( BT_QUANTIZED_BVH_NODEClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * CompoundPrimitiveManager+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_new0 as btGImpactCompoundShape_CompoundPrimitiveManager0    `( BtGImpactCompoundShapeClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactCompoundShape_CompoundPrimitiveManager' mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_new1 as btGImpactCompoundShape_CompoundPrimitiveManager1    {  } -> `BtGImpactCompoundShape_CompoundPrimitiveManager' mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_free    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box as btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ primbox+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh as btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_set    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc , BtGImpactCompoundShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_get    `( BtGImpactCompoundShape_CompoundPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `BtGImpactCompoundShape'  mkBtGImpactCompoundShape* #}+-- * CreateFunc+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_CreateFunc_new as btGImpactCollisionAlgorithm_CreateFunc    {  } -> `BtGImpactCollisionAlgorithm_CreateFunc' mkBtGImpactCollisionAlgorithm_CreateFunc* #}+{#fun btGImpactCollisionAlgorithm_CreateFunc_free    `( BtGImpactCollisionAlgorithm_CreateFuncClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm as btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm    `( BtGImpactCollisionAlgorithm_CreateFuncClass bc , BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ci+, withBt* `p1'  -- ^ body0+, withBt* `p2'  -- ^ body1+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+-- * GIM_BVH_DATA+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_new as gIM_BVH_DATA    {  } -> `GIM_BVH_DATA' mkGIM_BVH_DATA* #}+{#fun gIM_BVH_DATA_free    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_m_bound_set    `( GIM_BVH_DATAClass bc , BtAABBClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_m_bound_get    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc'  } ->  `BtAABB'  mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_m_data_set    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_m_data_get    `( GIM_BVH_DATAClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * GIM_BVH_DATA_ARRAY+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_DATA_ARRAY_new as gIM_BVH_DATA_ARRAY    {  } -> `GIM_BVH_DATA_ARRAY' mkGIM_BVH_DATA_ARRAY* #}+{#fun gIM_BVH_DATA_ARRAY_free    `( GIM_BVH_DATA_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * GIM_BVH_TREE_NODE+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_new as gIM_BVH_TREE_NODE    {  } -> `GIM_BVH_TREE_NODE' mkGIM_BVH_TREE_NODE* #}+{#fun gIM_BVH_TREE_NODE_free    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_setDataIndex as gIM_BVH_TREE_NODE_setDataIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_getEscapeIndex as gIM_BVH_TREE_NODE_getEscapeIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_getDataIndex as gIM_BVH_TREE_NODE_getDataIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_setEscapeIndex as gIM_BVH_TREE_NODE_setEscapeIndex    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_isLeafNode as gIM_BVH_TREE_NODE_isLeafNode    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_m_bound_set    `( GIM_BVH_TREE_NODEClass bc , BtAABBClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_m_bound_get    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  } ->  `BtAABB'  mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_m_escapeIndexOrDataIndex_set    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_m_escapeIndexOrDataIndex_get    `( GIM_BVH_TREE_NODEClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * GIM_BVH_TREE_NODE_ARRAY+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_BVH_TREE_NODE_ARRAY_new as gIM_BVH_TREE_NODE_ARRAY    {  } -> `GIM_BVH_TREE_NODE_ARRAY' mkGIM_BVH_TREE_NODE_ARRAY* #}+{#fun gIM_BVH_TREE_NODE_ARRAY_free    `( GIM_BVH_TREE_NODE_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * GIM_PAIR+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_new0 as gIM_PAIR0    {  } -> `GIM_PAIR' mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_new1 as gIM_PAIR1    {   `Int' ,  `Int'  } -> `GIM_PAIR' mkGIM_PAIR* #}+{#fun gIM_PAIR_free    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_m_index1_set    `( GIM_PAIRClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_m_index1_get    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_m_index2_set    `( GIM_PAIRClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun gIM_PAIR_m_index2_get    `( GIM_PAIRClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * GIM_QUANTIZED_BVH_NODE_ARRAY+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun gIM_QUANTIZED_BVH_NODE_ARRAY_new as gIM_QUANTIZED_BVH_NODE_ARRAY    {  } -> `GIM_QUANTIZED_BVH_NODE_ARRAY' mkGIM_QUANTIZED_BVH_NODE_ARRAY* #}+{#fun gIM_QUANTIZED_BVH_NODE_ARRAY_free    `( GIM_QUANTIZED_BVH_NODE_ARRAYClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * GIM_TRIANGLE_CONTACT+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_new as gIM_TRIANGLE_CONTACT    {  } -> `GIM_TRIANGLE_CONTACT' mkGIM_TRIANGLE_CONTACT* #}+{#fun gIM_TRIANGLE_CONTACT_free    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_copy_from as gIM_TRIANGLE_CONTACT_copy_from    `( GIM_TRIANGLE_CONTACTClass bc , GIM_TRIANGLE_CONTACTClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_penetration_depth_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_penetration_depth_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_point_count_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_point_count_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_separating_normal_set    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' , withVec4* `Vec4'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun gIM_TRIANGLE_CONTACT_m_separating_normal_get    `( GIM_TRIANGLE_CONTACTClass bc )' =>     { withBt* `bc' , allocaVec4-  `Vec4'  peekVec4* } -> `()' #}+-- * TrimeshPrimitiveManager+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#545>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_new0 as btGImpactMeshShapePart_TrimeshPrimitiveManager0    {  } -> `BtGImpactMeshShapePart_TrimeshPrimitiveManager' mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#578>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_new1 as btGImpactMeshShapePart_TrimeshPrimitiveManager1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtGImpactMeshShapePart_TrimeshPrimitiveManager' mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_free    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#633>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ vertex_index+, withVec3* `Vec3'  peekVec3* -- ^ vertex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex'    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ vertex_index+, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#623>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh as btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#596>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_lock as btGImpactMeshShapePart_TrimeshPrimitiveManager_lock    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#674>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ primbox+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#683>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#610>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock as btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#693>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#628>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count as btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#531>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#531>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#532>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc , BtStridingMeshInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#532>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#533>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#533>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#534>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#534>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#535>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#535>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#537>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#537>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_set    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_get    `( BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAABB+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_new0 as btAABB0    {  } -> `BtAABB' mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#243>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_new1 as btAABB1    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtAABB' mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_new2 as btAABB2    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Float'  } -> `BtAABB' mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_new3 as btAABB3    `( BtAABBClass p0 )' =>     {  withBt* `p0' ,  `Float'  } -> `BtAABB' mkBtAABB* #}+{#fun btAABB_free    `( BtAABBClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_overlapping_trans_conservative as btAABB_overlapping_trans_conservative    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withTransform* `Transform'  peekTransform* -- ^ trans1_to_0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_overlapping_trans_conservative as btAABB_overlapping_trans_conservative'    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1_to_0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_appy_transform as btAABB_appy_transform    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_appy_transform as btAABB_appy_transform'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#425>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_find_intersection as btAABB_find_intersection    `( BtAABBClass bc , BtAABBClass p0 , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+, withBt* `p1'  -- ^ intersection+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#456>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_ray as btAABB_collide_ray    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vorigin+, withVec3* `Vec3'  peekVec3* -- ^ vdir+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#456>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_ray as btAABB_collide_ray'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vorigin+, allocaVec3-  `Vec3'  peekVec3* -- ^ vdir+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#524>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_overlapping_trans_cache as btAABB_overlapping_trans_cache    `( BtAABBClass bc , BtAABBClass p0 , BT_BOX_BOX_TRANSFORM_CACHEClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withBt* `p1'  -- ^ transcache+,  `Bool'  -- ^ fulltest+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#418>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_get_center_extend as btAABB_get_center_extend    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ center+, withVec3* `Vec3'  peekVec3* -- ^ extend+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#418>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_get_center_extend as btAABB_get_center_extend'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ center+, allocaVec3-  `Vec3'  peekVec3* -- ^ extend+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_invalidate as btAABB_invalidate    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#437>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_has_collision as btAABB_has_collision    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_appy_transform_trans_cache as btAABB_appy_transform_trans_cache    `( BtAABBClass bc , BT_BOX_BOX_TRANSFORM_CACHEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_calc_from_triangle_margin as btAABB_calc_from_triangle_margin    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ V1+, withVec3* `Vec3'  peekVec3* -- ^ V2+, withVec3* `Vec3'  peekVec3* -- ^ V3+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_calc_from_triangle_margin as btAABB_calc_from_triangle_margin'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ V1+, allocaVec3-  `Vec3'  peekVec3* -- ^ V2+, allocaVec3-  `Vec3'  peekVec3* -- ^ V3+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#301>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_increment_margin as btAABB_increment_margin    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#393>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_merge as btAABB_merge    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#578>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_plane as btAABB_collide_plane    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withVec4* `Vec4'  peekVec4* -- ^ plane+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#578>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_plane as btAABB_collide_plane'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec4-  `Vec4'  peekVec4* -- ^ plane+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#515>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_overlapping_trans_conservative2 as btAABB_overlapping_trans_conservative2    `( BtAABBClass bc , BtAABBClass p0 , BT_BOX_BOX_TRANSFORM_CACHEClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withBt* `p1'  -- ^ trans1_to_0+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_copy_with_margin as btAABB_copy_with_margin    `( BtAABBClass bc , BtAABBClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#589>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_triangle_exact as btAABB_collide_triangle_exact    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ p1+, withVec3* `Vec3'  peekVec3* -- ^ p2+, withVec3* `Vec3'  peekVec3* -- ^ p3+, withVec4* `Vec4'  peekVec4* -- ^ triangle_plane+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#589>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_collide_triangle_exact as btAABB_collide_triangle_exact'    `( BtAABBClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ p1+, allocaVec3-  `Vec3'  peekVec3* -- ^ p2+, allocaVec3-  `Vec3'  peekVec3* -- ^ p3+, allocaVec4-  `Vec4'  peekVec4* -- ^ triangle_plane+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_m_max_set    `( BtAABBClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_m_max_get    `( BtAABBClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_m_min_set    `( BtAABBClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btBoxCollision.cpp?r=2223>+-}+{#fun btAABB_m_min_get    `( BtAABBClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btBvhTree+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_new as btBvhTree    {  } -> `BtBvhTree' mkBtBvhTree* #}+{#fun btBvhTree_free    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#173>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getNodeCount as btBvhTree_getNodeCount    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_build_tree as btBvhTree_build_tree    `( BtBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_setNodeBound as btBvhTree_setNodeBound    `( BtBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getLeftNode as btBvhTree_getLeftNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree__build_sub_tree as btBvhTree__build_sub_tree    `( BtBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_clearNodes as btBvhTree_clearNodes    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree__sort_and_calc_splitting_index as btBvhTree__sort_and_calc_splitting_index    `( BtBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+,  `Int'  -- ^ splitAxis+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getEscapeNodeIndex as btBvhTree_getEscapeNodeIndex    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#179>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_isLeafNode as btBvhTree_isLeafNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_get_node_pointer as btBvhTree_get_node_pointer    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#184>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getNodeData as btBvhTree_getNodeData    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getNodeBound as btBvhTree_getNodeBound    `( BtBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#204>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_getRightNode as btBvhTree_getRightNode    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree__calc_splitting_axis as btBvhTree__calc_splitting_axis    `( BtBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_m_num_nodes_set    `( BtBvhTreeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_m_num_nodes_get    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_m_node_array_set    `( BtBvhTreeClass bc , GIM_BVH_TREE_NODE_ARRAYClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btBvhTree_m_node_array_get    `( BtBvhTreeClass bc )' =>     { withBt* `bc'  } ->  `GIM_BVH_TREE_NODE_ARRAY'  mkGIM_BVH_TREE_NODE_ARRAY* #}+-- * btGImpactBvh+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#262>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_new0 as btGImpactBvh0    {  } -> `BtGImpactBvh' mkBtGImpactBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_new1 as btGImpactBvh1    `( BtPrimitiveManagerBaseClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactBvh' mkBtGImpactBvh* #}+{#fun btGImpactBvh_free    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#354>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_setNodeBound as btGImpactBvh_setNodeBound    `( BtGImpactBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#370>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getEscapeNodeIndex as btGImpactBvh_getEscapeNodeIndex    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#339>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_isLeafNode as btGImpactBvh_isLeafNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getPrimitiveManager as btGImpactBvh_getPrimitiveManager    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#349>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getNodeBound as btGImpactBvh_getNodeBound    `( BtGImpactBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#365>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getRightNode as btGImpactBvh_getRightNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getLeftNode as btGImpactBvh_getLeftNode    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_setPrimitiveManager as btGImpactBvh_setPrimitiveManager    `( BtGImpactBvhClass bc , BtPrimitiveManagerBaseClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_manager+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#301>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_buildSet as btGImpactBvh_buildSet    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getNodeTriangle as btGImpactBvh_getNodeTriangle    `( BtGImpactBvhClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getNodeCount as btGImpactBvh_getNodeCount    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#321>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_hasHierarchy as btGImpactBvh_hasHierarchy    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_rayQuery as btGImpactBvh_rayQuery    `( BtGImpactBvhClass bc , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ ray_dir+, withVec3* `Vec3'  peekVec3* -- ^ ray_origin+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_rayQuery as btGImpactBvh_rayQuery'    `( BtGImpactBvhClass bc , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ ray_dir+, allocaVec3-  `Vec3'  peekVec3* -- ^ ray_origin+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_update as btGImpactBvh_update    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_refit as btGImpactBvh_refit    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_isTrimesh as btGImpactBvh_isTrimesh    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_boxQuery as btGImpactBvh_boxQuery    `( BtGImpactBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withBt* `p1'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#392>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_find_collision as btGImpactBvh_find_collision    `(  BtGImpactBvhClass p0 , BtGImpactBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1+, withTransform* `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ boxset2+, withTransform* `Transform'  peekTransform* -- ^ trans2+, withBt* `p4'  -- ^ collision_pairs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#392>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_find_collision as btGImpactBvh_find_collision'    `(  BtGImpactBvhClass p0 , BtGImpactBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ boxset2+, allocaTransform-  `Transform'  peekTransform* -- ^ trans2+, withBt* `p4'  -- ^ collision_pairs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#381>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_get_node_pointer as btGImpactBvh_get_node_pointer    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_boxQueryTrans as btGImpactBvh_boxQueryTrans    `( BtGImpactBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withTransform* `Transform'  peekTransform* -- ^ transform+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_boxQueryTrans as btGImpactBvh_boxQueryTrans'    `( BtGImpactBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#344>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_getNodeData as btGImpactBvh_getNodeData    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#253>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_m_box_tree_set    `( BtGImpactBvhClass bc , BtBvhTreeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#253>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_m_box_tree_get    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  } ->  `BtBvhTree'  mkBtBvhTree* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_m_primitive_manager_set    `( BtGImpactBvhClass bc , BtPrimitiveManagerBaseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btGImpactBvh_m_primitive_manager_get    `( BtGImpactBvhClass bc )' =>     { withBt* `bc'  } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+-- * btGImpactCollisionAlgorithm+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_new as btGImpactCollisionAlgorithm    `( BtCollisionAlgorithmConstructionInfoClass p0 , BtCollisionObjectClass p1 , BtCollisionObjectClass p2 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2'  } -> `BtGImpactCollisionAlgorithm' mkBtGImpactCollisionAlgorithm* #}+{#fun btGImpactCollisionAlgorithm_free    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getFace1 as btGImpactCollisionAlgorithm_getFace1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getFace0 as btGImpactCollisionAlgorithm_getFace0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#252>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_compoundshape as btGImpactCollisionAlgorithm_gimpact_vs_compoundshape    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtCompoundShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+,  `Bool'  -- ^ swapped+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_shape as btGImpactCollisionAlgorithm_gimpact_vs_shape    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtCollisionShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+,  `Bool'  -- ^ swapped+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#172>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_convex_vs_convex_collision as btGImpactCollisionAlgorithm_convex_vs_convex_collision    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtCollisionShapeClass p2 , BtCollisionShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_setFace0 as btGImpactCollisionAlgorithm_setFace0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_setFace1 as btGImpactCollisionAlgorithm_setFace1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_checkManifold as btGImpactCollisionAlgorithm_checkManifold    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_newContactManifold as btGImpactCollisionAlgorithm_newContactManifold    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_addContactPoint as btGImpactCollisionAlgorithm_addContactPoint    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withVec3* `Vec3'  peekVec3* -- ^ point+, withVec3* `Vec3'  peekVec3* -- ^ normal+,  `Float'  -- ^ distance+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_addContactPoint as btGImpactCollisionAlgorithm_addContactPoint'    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, allocaVec3-  `Vec3'  peekVec3* -- ^ point+, allocaVec3-  `Vec3'  peekVec3* -- ^ normal+,  `Float'  -- ^ distance+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpacttrimeshpart_vs_plane_collision as btGImpactCollisionAlgorithm_gimpacttrimeshpart_vs_plane_collision    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactMeshShapePartClass p2 , BtStaticPlaneShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+,  `Bool'  -- ^ swapped+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_registerAlgorithm as btGImpactCollisionAlgorithm_registerAlgorithm    `(  BtCollisionDispatcherClass p0 )' =>     {  withBt* `p0'  -- ^ dispatcher+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_processCollision as btGImpactCollisionAlgorithm_processCollision    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_destroyContactManifolds as btGImpactCollisionAlgorithm_destroyContactManifolds    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_gimpact_find_pairs as btGImpactCollisionAlgorithm_gimpact_vs_gimpact_find_pairs    `( BtGImpactCollisionAlgorithmClass bc , BtGImpactShapeInterfaceClass p2 , BtGImpactShapeInterfaceClass p3 , BtPairSetClass p4 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans0+, withTransform* `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+, withBt* `p4'  -- ^ pairset+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_gimpact_find_pairs as btGImpactCollisionAlgorithm_gimpact_vs_gimpact_find_pairs'    `( BtGImpactCollisionAlgorithmClass bc , BtGImpactShapeInterfaceClass p2 , BtGImpactShapeInterfaceClass p3 , BtPairSetClass p4 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans0+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+, withBt* `p4'  -- ^ pairset+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getLastManifold as btGImpactCollisionAlgorithm_getLastManifold    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_shape_find_pairs as btGImpactCollisionAlgorithm_gimpact_vs_shape_find_pairs    `( BtGImpactCollisionAlgorithmClass bc , BtGImpactShapeInterfaceClass p2 , BtCollisionShapeClass p3 , BtAlignedObjectArray_int_Class p4 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trans0+, withTransform* `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+, withBt* `p4'  -- ^ collided_primitives+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_shape_find_pairs as btGImpactCollisionAlgorithm_gimpact_vs_shape_find_pairs'    `( BtGImpactCollisionAlgorithmClass bc , BtGImpactShapeInterfaceClass p2 , BtCollisionShapeClass p3 , BtAlignedObjectArray_int_Class p4 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trans0+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+, withBt* `p4'  -- ^ collided_primitives+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_destroyConvexAlgorithm as btGImpactCollisionAlgorithm_destroyConvexAlgorithm    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_checkConvexAlgorithm as btGImpactCollisionAlgorithm_checkConvexAlgorithm    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_newAlgorithm as btGImpactCollisionAlgorithm_newAlgorithm    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+ } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#167>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_shape_vs_shape_collision as btGImpactCollisionAlgorithm_shape_vs_shape_collision    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtCollisionShapeClass p2 , BtCollisionShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_setPart1 as btGImpactCollisionAlgorithm_setPart1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_setPart0 as btGImpactCollisionAlgorithm_setPart0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_clearCache as btGImpactCollisionAlgorithm_clearCache    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#292>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getPart1 as btGImpactCollisionAlgorithm_getPart1    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#284>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getPart0 as btGImpactCollisionAlgorithm_getPart0    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_concave as btGImpactCollisionAlgorithm_gimpact_vs_concave    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtConcaveShapeClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+,  `Bool'  -- ^ swapped+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_calculateTimeOfImpact as btGImpactCollisionAlgorithm_calculateTimeOfImpact    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtDispatcherInfoClass p2 , BtManifoldResultClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ dispatchInfo+, withBt* `p3'  -- ^ resultOut+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#242>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_gimpact_vs_gimpact as btGImpactCollisionAlgorithm_gimpact_vs_gimpact    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionObjectClass p0 , BtCollisionObjectClass p1 , BtGImpactShapeInterfaceClass p2 , BtGImpactShapeInterfaceClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body0+, withBt* `p1'  -- ^ body1+, withBt* `p2'  -- ^ shape0+, withBt* `p3'  -- ^ shape1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_getAllContactManifolds as btGImpactCollisionAlgorithm_getAllContactManifolds    `( BtGImpactCollisionAlgorithmClass bc , BtAlignedObjectArray_btPersistentManifold_ptr_Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifoldArray+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_convex_algorithm_set    `( BtGImpactCollisionAlgorithmClass bc , BtCollisionAlgorithmClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_convex_algorithm_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithm'  mkBtCollisionAlgorithm* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_manifoldPtr_set    `( BtGImpactCollisionAlgorithmClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_manifoldPtr_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_resultOut_set    `( BtGImpactCollisionAlgorithmClass bc , BtManifoldResultClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_resultOut_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtManifoldResult'  mkBtManifoldResult* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_dispatchInfo_set    `( BtGImpactCollisionAlgorithmClass bc , BtDispatcherInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_dispatchInfo_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcherInfo'  mkBtDispatcherInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_triface0_set    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_triface0_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_part0_set    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_part0_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_triface1_set    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_triface1_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_part1_set    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp?r=2223>+-}+{#fun btGImpactCollisionAlgorithm_m_part1_get    `( BtGImpactCollisionAlgorithmClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btGImpactCompoundShape+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#370>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_new as btGImpactCompoundShape    {   `Bool'  } -> `BtGImpactCompoundShape' mkBtGImpactCompoundShape* #}+{#fun btGImpactCompoundShape_free    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_calculateLocalInertia as btGImpactCompoundShape_calculateLocalInertia    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_calculateLocalInertia as btGImpactCompoundShape_calculateLocalInertia'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape'    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape0    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_addChildShape0 as btGImpactCompoundShape_addChildShape0'    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ localTransform+, withBt* `p1'  -- ^ shape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#418>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_addChildShape1 as btGImpactCompoundShape_addChildShape1    `( BtGImpactCompoundShapeClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ shape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#397>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getCompoundPrimitiveManager as btGImpactCompoundShape_getCompoundPrimitiveManager    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtGImpactCompoundShape_CompoundPrimitiveManager'  mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_setChildTransform as btGImpactCompoundShape_setChildTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withTransform* `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_setChildTransform as btGImpactCompoundShape_setChildTransform'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#454>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildTransform as btGImpactCompoundShape_getChildTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#490>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getBulletTetrahedron as btGImpactCompoundShape_getBulletTetrahedron    `( BtGImpactCompoundShapeClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ tetrahedron+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getName as btGImpactCompoundShape_getName    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#478>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_needsRetrieveTetrahedrons as btGImpactCompoundShape_needsRetrieveTetrahedrons    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#425>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildShape0 as btGImpactCompoundShape_getChildShape    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#425>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildShape0 as btGImpactCompoundShape_getChildShape0    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#431>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildShape1 as btGImpactCompoundShape_getChildShape1    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#484>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getBulletTriangle as btGImpactCompoundShape_getBulletTriangle    `( BtGImpactCompoundShapeClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#472>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_needsRetrieveTriangles as btGImpactCompoundShape_needsRetrieveTriangles    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#383>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_childrenHasTransform as btGImpactCompoundShape_childrenHasTransform    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#403>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getNumChildShapes as btGImpactCompoundShape_getNumChildShapes    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#391>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getPrimitiveManager as btGImpactCompoundShape_getPrimitiveManager    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#439>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildAabb as btGImpactCompoundShape_getChildAabb    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#439>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_getChildAabb as btGImpactCompoundShape_getChildAabb'    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#365>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_childShapes_set    `( BtGImpactCompoundShapeClass bc , BtAlignedObjectArray_btCollisionShape_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#365>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_childShapes_get    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCollisionShape_ptr_'  mkBtAlignedObjectArray_btCollisionShape_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#364>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_childTransforms_set    `( BtGImpactCompoundShapeClass bc , BtAlignedObjectArray_btTransform_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#364>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_childTransforms_get    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btTransform_'  mkBtAlignedObjectArray_btTransform_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#363>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_primitive_manager_set    `( BtGImpactCompoundShapeClass bc , BtGImpactCompoundShape_CompoundPrimitiveManagerClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#363>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactCompoundShape_m_primitive_manager_get    `( BtGImpactCompoundShapeClass bc )' =>     { withBt* `bc'  } ->  `BtGImpactCompoundShape_CompoundPrimitiveManager'  mkBtGImpactCompoundShape_CompoundPrimitiveManager* #}+-- * btGImpactMeshShape+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#927>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_new as btGImpactMeshShape    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactMeshShape' mkBtGImpactMeshShape* #}+{#fun btGImpactMeshShape_free    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1014>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_calculateLocalInertia as btGImpactMeshShape_calculateLocalInertia    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1014>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_calculateLocalInertia as btGImpactMeshShape_calculateLocalInertia'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_setChildTransform as btGImpactMeshShape_setChildTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withTransform* `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_setChildTransform as btGImpactMeshShape_setChildTransform'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#945>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshInterface0 as btGImpactMeshShape_getMeshInterface    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#945>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshInterface0 as btGImpactMeshShape_getMeshInterface0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#950>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshInterface1 as btGImpactMeshShape_getMeshInterface1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1018>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getPrimitiveManager as btGImpactMeshShape_getPrimitiveManager    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_processAllTriangles as btGImpactMeshShape_processAllTriangles    `( BtGImpactMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_processAllTriangles as btGImpactMeshShape_processAllTriangles'    `( BtGImpactMeshShapeClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#955>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshPartCount as btGImpactMeshShape_getMeshPartCount    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_calculateSerializeBufferSize as btGImpactMeshShape_calculateSerializeBufferSize    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_rayTest as btGImpactMeshShape_rayTest    `( BtGImpactMeshShapeClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_rayTest as btGImpactMeshShape_rayTest'    `( BtGImpactMeshShapeClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#905>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_buildMeshParts as btGImpactMeshShape_buildMeshParts    `( BtGImpactMeshShapeClass bc , BtStridingMeshInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ meshInterface+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getName as btGImpactMeshShape_getName    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1054>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getBulletTriangle as btGImpactMeshShape_getBulletTriangle    `( BtGImpactMeshShapeClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#973>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_setLocalScaling as btGImpactMeshShape_setLocalScaling    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#973>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_setLocalScaling as btGImpactMeshShape_setLocalScaling'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1041>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_needsRetrieveTriangles as btGImpactMeshShape_needsRetrieveTriangles    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1034>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_childrenHasTransform as btGImpactMeshShape_childrenHasTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1090>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildShape0 as btGImpactMeshShape_getChildShape    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1090>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildShape0 as btGImpactMeshShape_getChildShape0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1099>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildShape1 as btGImpactMeshShape_getChildShape1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#915>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_calcLocalAABB as btGImpactMeshShape_calcLocalAABB    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildTransform as btGImpactMeshShape_getChildTransform    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_serialize as btGImpactMeshShape_serialize    `( BtGImpactMeshShapeClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1067>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_lockChildShapes as btGImpactMeshShape_lockChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#987>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_setMargin as btGImpactMeshShape_setMargin    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1026>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getNumChildShapes as btGImpactMeshShape_getNumChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1083>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildAabb as btGImpactMeshShape_getChildAabb    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1083>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getChildAabb as btGImpactMeshShape_getChildAabb'    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1060>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getBulletTetrahedron as btGImpactMeshShape_getBulletTetrahedron    `( BtGImpactMeshShapeClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ tetrahedron+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1048>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_needsRetrieveTetrahedrons as btGImpactMeshShape_needsRetrieveTetrahedrons    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1072>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_unlockChildShapes as btGImpactMeshShape_unlockChildShapes    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#960>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshPart0 as btGImpactMeshShape_getMeshPart    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#960>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshPart0 as btGImpactMeshShape_getMeshPart0    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#967>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_getMeshPart1 as btGImpactMeshShape_getMeshPart1    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1002>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_postUpdate as btGImpactMeshShape_postUpdate    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#901>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_m_meshInterface_set    `( BtGImpactMeshShapeClass bc , BtStridingMeshInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#901>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_m_meshInterface_get    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterface'  mkBtStridingMeshInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#904>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_m_mesh_parts_set    `( BtGImpactMeshShapeClass bc , BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#904>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShape_m_mesh_parts_get    `( BtGImpactMeshShapeClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btGImpactMeshShapePart_ptr_'  mkBtAlignedObjectArray_btGImpactMeshShapePart_ptr_* #}+-- * btGImpactMeshShapeData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_new as btGImpactMeshShapeData    {  } -> `BtGImpactMeshShapeData' mkBtGImpactMeshShapeData* #}+{#fun btGImpactMeshShapeData_free    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_collisionShapeData_set    `( BtGImpactMeshShapeDataClass bc , BtCollisionShapeDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_collisionShapeData_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShapeData'  mkBtCollisionShapeData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_meshInterface_set    `( BtGImpactMeshShapeDataClass bc , BtStridingMeshInterfaceDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_meshInterface_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtStridingMeshInterfaceData'  mkBtStridingMeshInterfaceData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1158>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_localScaling_set    `( BtGImpactMeshShapeDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1158>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_localScaling_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_collisionMargin_set    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_collisionMargin_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_gimpactSubType_set    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#1162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapeData_m_gimpactSubType_get    `( BtGImpactMeshShapeDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btGImpactMeshShapePart+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#710>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_new0 as btGImpactMeshShapePart0    {  } -> `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#716>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_new1 as btGImpactMeshShapePart1    `( BtStridingMeshInterfaceClass p0 )' =>     {  withBt* `p0' ,  `Int'  } -> `BtGImpactMeshShapePart' mkBtGImpactMeshShapePart* #}+{#fun btGImpactMeshShapePart_free    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#809>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_calculateLocalInertia as btGImpactMeshShapePart_calculateLocalInertia    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#809>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_calculateLocalInertia as btGImpactMeshShapePart_calculateLocalInertia'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#786>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_setChildTransform as btGImpactMeshShapePart_setChildTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withTransform* `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#786>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_setChildTransform as btGImpactMeshShapePart_setChildTransform'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#877>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getLocalScaling as btGImpactMeshShapePart_getLocalScaling    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#855>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getVertex as btGImpactMeshShapePart_getVertex    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ vertex_index+, withVec3* `Vec3'  peekVec3* -- ^ vertex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#855>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getVertex as btGImpactMeshShapePart_getVertex'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ vertex_index+, allocaVec3-  `Vec3'  peekVec3* -- ^ vertex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#887>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_processAllTriangles as btGImpactMeshShapePart_processAllTriangles    `( BtGImpactMeshShapePartClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#887>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_processAllTriangles as btGImpactMeshShapePart_processAllTriangles'    `( BtGImpactMeshShapePartClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#814>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getName as btGImpactMeshShapePart_getName    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#836>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getBulletTriangle as btGImpactMeshShapePart_getBulletTriangle    `( BtGImpactMeshShapePartClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#871>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_setLocalScaling as btGImpactMeshShapePart_setLocalScaling    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#871>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_setLocalScaling as btGImpactMeshShapePart_setLocalScaling'    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#882>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getPart as btGImpactMeshShapePart_getPart    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#728>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_childrenHasTransform as btGImpactMeshShapePart_childrenHasTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#825>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_needsRetrieveTriangles as btGImpactMeshShapePart_needsRetrieveTriangles    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#757>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getChildShape0 as btGImpactMeshShapePart_getChildShape    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#757>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getChildShape0 as btGImpactMeshShapePart_getChildShape0    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#767>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getChildShape1 as btGImpactMeshShapePart_getChildShape1    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#775>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getChildTransform as btGImpactMeshShapePart_getChildTransform    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#735>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_lockChildShapes as btGImpactMeshShapePart_lockChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#866>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getMargin as btGImpactMeshShapePart_getMargin    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#860>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_setMargin as btGImpactMeshShapePart_setMargin    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#795>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getPrimitiveManager as btGImpactMeshShapePart_getPrimitiveManager    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#750>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getNumChildShapes as btGImpactMeshShapePart_getNumChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#841>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getBulletTetrahedron as btGImpactMeshShapePart_getBulletTetrahedron    `( BtGImpactMeshShapePartClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ tetrahedron+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#800>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getTrimeshPrimitiveManager as btGImpactMeshShapePart_getTrimeshPrimitiveManager    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtGImpactMeshShapePart_TrimeshPrimitiveManager'  mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#831>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_needsRetrieveTetrahedrons as btGImpactMeshShapePart_needsRetrieveTetrahedrons    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#742>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_unlockChildShapes as btGImpactMeshShapePart_unlockChildShapes    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#850>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_getVertexCount as btGImpactMeshShapePart_getVertexCount    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#707>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_m_primitive_manager_set    `( BtGImpactMeshShapePartClass bc , BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#707>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactMeshShapePart_m_primitive_manager_get    `( BtGImpactMeshShapePartClass bc )' =>     { withBt* `bc'  } ->  `BtGImpactMeshShapePart_TrimeshPrimitiveManager'  mkBtGImpactMeshShapePart_TrimeshPrimitiveManager* #}+-- * btGImpactQuantizedBvh+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_new0 as btGImpactQuantizedBvh0    {  } -> `BtGImpactQuantizedBvh' mkBtGImpactQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_new1 as btGImpactQuantizedBvh1    `( BtPrimitiveManagerBaseClass p0 )' =>     {  withBt* `p0'  } -> `BtGImpactQuantizedBvh' mkBtGImpactQuantizedBvh* #}+{#fun btGImpactQuantizedBvh_free    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_setNodeBound as btGImpactQuantizedBvh_setNodeBound    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#346>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getEscapeNodeIndex as btGImpactQuantizedBvh_getEscapeNodeIndex    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_isLeafNode as btGImpactQuantizedBvh_isLeafNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getPrimitiveManager as btGImpactQuantizedBvh_getPrimitiveManager    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getNodeBound as btGImpactQuantizedBvh_getNodeBound    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getRightNode as btGImpactQuantizedBvh_getRightNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#336>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getLeftNode as btGImpactQuantizedBvh_getLeftNode    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#256>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_setPrimitiveManager as btGImpactQuantizedBvh_setPrimitiveManager    `( BtGImpactQuantizedBvhClass bc , BtPrimitiveManagerBaseClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_manager+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_buildSet as btGImpactQuantizedBvh_buildSet    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#351>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getNodeTriangle as btGImpactQuantizedBvh_getNodeTriangle    `( BtGImpactQuantizedBvhClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getNodeCount as btGImpactQuantizedBvh_getNodeCount    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_hasHierarchy as btGImpactQuantizedBvh_hasHierarchy    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_rayQuery as btGImpactQuantizedBvh_rayQuery    `( BtGImpactQuantizedBvhClass bc , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ ray_dir+, withVec3* `Vec3'  peekVec3* -- ^ ray_origin+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_rayQuery as btGImpactQuantizedBvh_rayQuery'    `( BtGImpactQuantizedBvhClass bc , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ ray_dir+, allocaVec3-  `Vec3'  peekVec3* -- ^ ray_origin+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_update as btGImpactQuantizedBvh_update    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_refit as btGImpactQuantizedBvh_refit    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_isTrimesh as btGImpactQuantizedBvh_isTrimesh    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_boxQuery as btGImpactQuantizedBvh_boxQuery    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withBt* `p1'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#368>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_find_collision as btGImpactQuantizedBvh_find_collision    `(  BtGImpactQuantizedBvhClass p0 , BtGImpactQuantizedBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1+, withTransform* `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ boxset2+, withTransform* `Transform'  peekTransform* -- ^ trans2+, withBt* `p4'  -- ^ collision_pairs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#368>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_find_collision as btGImpactQuantizedBvh_find_collision'    `(  BtGImpactQuantizedBvhClass p0 , BtGImpactQuantizedBvhClass p2 , BtPairSetClass p4 )' =>     {  withBt* `p0'  -- ^ boxset1+, allocaTransform-  `Transform'  peekTransform* -- ^ trans1+, withBt* `p2'  -- ^ boxset2+, allocaTransform-  `Transform'  peekTransform* -- ^ trans2+, withBt* `p4'  -- ^ collision_pairs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#357>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_get_node_pointer as btGImpactQuantizedBvh_get_node_pointer    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#284>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_boxQueryTrans as btGImpactQuantizedBvh_boxQueryTrans    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, withTransform* `Transform'  peekTransform* -- ^ transform+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#284>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_boxQueryTrans as btGImpactQuantizedBvh_boxQueryTrans'    `( BtGImpactQuantizedBvhClass bc , BtAABBClass p0 , BtAlignedObjectArray_int_Class p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ box+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, withBt* `p2'  -- ^ collided_results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_getNodeData as btGImpactQuantizedBvh_getNodeData    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_m_box_tree_set    `( BtGImpactQuantizedBvhClass bc , BtQuantizedBvhTreeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_m_box_tree_get    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhTree'  mkBtQuantizedBvhTree* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_m_primitive_manager_set    `( BtGImpactQuantizedBvhClass bc , BtPrimitiveManagerBaseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btGImpactQuantizedBvh_m_primitive_manager_get    `( BtGImpactQuantizedBvhClass bc )' =>     { withBt* `bc'  } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+-- * btGImpactShapeInterface+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getPrimitiveTriangle as btGImpactShapeInterface_getPrimitiveTriangle    `( BtGImpactShapeInterfaceClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_setChildTransform as btGImpactShapeInterface_setChildTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, withTransform* `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#271>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_setChildTransform as btGImpactShapeInterface_setChildTransform'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getLocalScaling as btGImpactShapeInterface_getLocalScaling    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getLocalBox as btGImpactShapeInterface_getLocalBox    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAABB'  mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getPrimitiveManager as btGImpactShapeInterface_getPrimitiveManager    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPrimitiveManagerBase'  mkBtPrimitiveManagerBase* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_processAllTriangles as btGImpactShapeInterface_processAllTriangles    `( BtGImpactShapeInterfaceClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_processAllTriangles as btGImpactShapeInterface_processAllTriangles'    `( BtGImpactShapeInterfaceClass bc , BtTriangleCallbackClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ callback+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#201>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_hasBoxSet as btGImpactShapeInterface_hasBoxSet    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_rayTest as btGImpactShapeInterface_rayTest    `( BtGImpactShapeInterfaceClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_rayTest as btGImpactShapeInterface_rayTest'    `( BtGImpactShapeInterfaceClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getBoxSet as btGImpactShapeInterface_getBoxSet    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtGImpactQuantizedBvh'  mkBtGImpactQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getBulletTriangle as btGImpactShapeInterface_getBulletTriangle    `( BtGImpactShapeInterfaceClass bc , BtTriangleShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_setLocalScaling as btGImpactShapeInterface_setLocalScaling    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_setLocalScaling as btGImpactShapeInterface_setLocalScaling'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scaling+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#218>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_needsRetrieveTriangles as btGImpactShapeInterface_needsRetrieveTriangles    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_childrenHasTransform as btGImpactShapeInterface_childrenHasTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getAabb as btGImpactShapeInterface_getAabb    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getAabb as btGImpactShapeInterface_getAabb'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildShape0 as btGImpactShapeInterface_getChildShape    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildShape0 as btGImpactShapeInterface_getChildShape0    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#262>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildShape1 as btGImpactShapeInterface_getChildShape1    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_calcLocalAABB as btGImpactShapeInterface_calcLocalAABB    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildTransform as btGImpactShapeInterface_getChildTransform    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_lockChildShapes as btGImpactShapeInterface_lockChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#174>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_setMargin as btGImpactShapeInterface_setMargin    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ margin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#212>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getNumChildShapes as btGImpactShapeInterface_getNumChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildAabb as btGImpactShapeInterface_getChildAabb    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getChildAabb as btGImpactShapeInterface_getChildAabb'    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ child_index+, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getShapeType as btGImpactShapeInterface_getShapeType    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_getBulletTetrahedron as btGImpactShapeInterface_getBulletTetrahedron    `( BtGImpactShapeInterfaceClass bc , BtTetrahedronShapeExClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ tetrahedron+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_needsRetrieveTetrahedrons as btGImpactShapeInterface_needsRetrieveTetrahedrons    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_unlockChildShapes as btGImpactShapeInterface_unlockChildShapes    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_postUpdate as btGImpactShapeInterface_postUpdate    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_updateBound as btGImpactShapeInterface_updateBound    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_localScaling_set    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_localScaling_get    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_box_set_set    `( BtGImpactShapeInterfaceClass bc , BtGImpactQuantizedBvhClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_box_set_get    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  } ->  `BtGImpactQuantizedBvh'  mkBtGImpactQuantizedBvh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_localAABB_set    `( BtGImpactShapeInterfaceClass bc , BtAABBClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_localAABB_get    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  } ->  `BtAABB'  mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_needs_update_set    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btGImpactShapeInterface_m_needs_update_get    `( BtGImpactShapeInterfaceClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btPairSet+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPairSet_new as btPairSet    {  } -> `BtPairSet' mkBtPairSet* #}+{#fun btPairSet_free    `( BtPairSetClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPairSet_push_pair_inv as btPairSet_push_pair_inv    `( BtPairSetClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index1+,  `Int'  -- ^ index2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPairSet_push_pair as btPairSet_push_pair    `( BtPairSetClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index1+,  `Int'  -- ^ index2+ } ->  `()'   #}+-- * btPrimitiveManagerBase+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPrimitiveManagerBase_get_primitive_box as btPrimitiveManagerBase_get_primitive_box    `( BtPrimitiveManagerBaseClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ primbox+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPrimitiveManagerBase_get_primitive_triangle as btPrimitiveManagerBase_get_primitive_triangle    `( BtPrimitiveManagerBaseClass bc , BtPrimitiveTriangleClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ prim_index+, withBt* `p1'  -- ^ triangle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPrimitiveManagerBase_is_trimesh as btPrimitiveManagerBase_is_trimesh    `( BtPrimitiveManagerBaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactBvh.cpp?r=2223>+-}+{#fun btPrimitiveManagerBase_get_primitive_count as btPrimitiveManagerBase_get_primitive_count    `( BtPrimitiveManagerBaseClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+-- * btPrimitiveTriangle+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_new as btPrimitiveTriangle    {  } -> `BtPrimitiveTriangle' mkBtPrimitiveTriangle* #}+{#fun btPrimitiveTriangle_free    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_get_edge_plane as btPrimitiveTriangle_get_edge_plane    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ edge_index+, withVec4* `Vec4'  peekVec4* -- ^ plane+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_get_edge_plane as btPrimitiveTriangle_get_edge_plane'    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ edge_index+, allocaVec4-  `Vec4'  peekVec4* -- ^ plane+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_overlap_test_conservative as btPrimitiveTriangle_overlap_test_conservative    `( BtPrimitiveTriangleClass bc , BtPrimitiveTriangleClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_buildTriPlane as btPrimitiveTriangle_buildTriPlane    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_applyTransform as btPrimitiveTriangle_applyTransform    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_applyTransform as btPrimitiveTriangle_applyTransform'    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_find_triangle_collision_clip_method as btPrimitiveTriangle_find_triangle_collision_clip_method    `( BtPrimitiveTriangleClass bc , BtPrimitiveTriangleClass p0 , GIM_TRIANGLE_CONTACTClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+, withBt* `p1'  -- ^ contacts+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_dummy_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_dummy_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_margin_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_margin_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_plane_set    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' , withVec4* `Vec4'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btPrimitiveTriangle_m_plane_get    `( BtPrimitiveTriangleClass bc )' =>     { withBt* `bc' , allocaVec4-  `Vec4'  peekVec4* } -> `()' #}+-- * btQuantizedBvhTree+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_new as btQuantizedBvhTree    {  } -> `BtQuantizedBvhTree' mkBtQuantizedBvhTree* #}+{#fun btQuantizedBvhTree_free    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getNodeCount as btQuantizedBvhTree_getNodeCount    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_calc_quantization as btQuantizedBvhTree_calc_quantization    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Float'  -- ^ boundMargin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_build_tree as btQuantizedBvhTree_build_tree    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_setNodeBound as btQuantizedBvhTree_setNodeBound    `( BtQuantizedBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getLeftNode as btQuantizedBvhTree_getLeftNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree__build_sub_tree as btQuantizedBvhTree__build_sub_tree    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_clearNodes as btQuantizedBvhTree_clearNodes    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree__sort_and_calc_splitting_index as btQuantizedBvhTree__sort_and_calc_splitting_index    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+,  `Int'  -- ^ splitAxis+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getEscapeNodeIndex as btQuantizedBvhTree_getEscapeNodeIndex    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_isLeafNode as btQuantizedBvhTree_isLeafNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_get_node_pointer as btQuantizedBvhTree_get_node_pointer    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getNodeData as btQuantizedBvhTree_getNodeData    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getNodeBound as btQuantizedBvhTree_getNodeBound    `( BtQuantizedBvhTreeClass bc , BtAABBClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+, withBt* `p1'  -- ^ bound+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_getRightNode as btQuantizedBvhTree_getRightNode    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ nodeindex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree__calc_splitting_axis as btQuantizedBvhTree__calc_splitting_axis    `( BtQuantizedBvhTreeClass bc , GIM_BVH_DATA_ARRAYClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ primitive_boxes+,  `Int'  -- ^ startIndex+,  `Int'  -- ^ endIndex+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_bvhQuantization_set    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_bvhQuantization_get    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_global_bound_set    `( BtQuantizedBvhTreeClass bc , BtAABBClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_global_bound_get    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  } ->  `BtAABB'  mkBtAABB* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_node_array_set    `( BtQuantizedBvhTreeClass bc , GIM_QUANTIZED_BVH_NODE_ARRAYClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_node_array_get    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  } ->  `GIM_QUANTIZED_BVH_NODE_ARRAY'  mkGIM_QUANTIZED_BVH_NODE_ARRAY* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_num_nodes_set    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp?r=2223>+-}+{#fun btQuantizedBvhTree_m_num_nodes_get    `( BtQuantizedBvhTreeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btTetrahedronShapeEx+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btTetrahedronShapeEx_new as btTetrahedronShapeEx    {  } -> `BtTetrahedronShapeEx' mkBtTetrahedronShapeEx* #}+{#fun btTetrahedronShapeEx_free    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btTetrahedronShapeEx_setVertices as btTetrahedronShapeEx_setVertices    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v0+, withVec3* `Vec3'  peekVec3* -- ^ v1+, withVec3* `Vec3'  peekVec3* -- ^ v2+, withVec3* `Vec3'  peekVec3* -- ^ v3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btGImpactShape.cpp?r=2223>+-}+{#fun btTetrahedronShapeEx_setVertices as btTetrahedronShapeEx_setVertices'    `( BtTetrahedronShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v0+, allocaVec3-  `Vec3'  peekVec3* -- ^ v1+, allocaVec3-  `Vec3'  peekVec3* -- ^ v2+, allocaVec3-  `Vec3'  peekVec3* -- ^ v3+ } ->  `()'   #}+-- * btTriangleShapeEx+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_new0 as btTriangleShapeEx0    {  } -> `BtTriangleShapeEx' mkBtTriangleShapeEx* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_new1 as btTriangleShapeEx1    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtTriangleShapeEx' mkBtTriangleShapeEx* #}+{#fun btTriangleShapeEx_free    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_overlap_test_conservative as btTriangleShapeEx_overlap_test_conservative    `( BtTriangleShapeExClass bc , BtTriangleShapeExClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_buildTriPlane as btTriangleShapeEx_buildTriPlane    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, withVec4* `Vec4'  peekVec4* -- ^ plane+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_buildTriPlane as btTriangleShapeEx_buildTriPlane'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec4-  `Vec4'  peekVec4* -- ^ plane+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_applyTransform as btTriangleShapeEx_applyTransform    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_applyTransform as btTriangleShapeEx_applyTransform'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_getAabb as btTriangleShapeEx_getAabb    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ t+, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/Gimpact/btTriangleShapeEx.cpp?r=2223>+-}+{#fun btTriangleShapeEx_getAabb as btTriangleShapeEx_getAabb'    `( BtTriangleShapeExClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ t+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}
Physics/Bullet/Raw/BulletCollision/NarrowPhaseCollision.chs view
@@ -44,6 +44,10 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btDiscreteCollisionDetectorInterface_ClosestPointInput_m_stackAlloc_set    `( BtDiscreteCollisionDetectorInterface_ClosestPointInputClass bc , BtStackAllocClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223>+-}+{#fun btDiscreteCollisionDetectorInterface_ClosestPointInput_m_stackAlloc_get    `( BtDiscreteCollisionDetectorInterface_ClosestPointInputClass bc )' =>     { withBt* `bc'  } ->  `BtStackAlloc'  mkBtStackAlloc* #} -- * Result {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#39>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223>@@ -51,30 +55,30 @@ {#fun btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersB as btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersB    `( BtDiscreteCollisionDetectorInterface_ResultClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ partId1 ,  `Int'  -- ^ index1- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#38>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersA as btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersA    `( BtDiscreteCollisionDetectorInterface_ResultClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ partId0 ,  `Int'  -- ^ index0- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#40>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btDiscreteCollisionDetectorInterface_Result_addContactPoint as btDiscreteCollisionDetectorInterface_Result_addContactPoint    `( BtDiscreteCollisionDetectorInterface_ResultClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ normalOnBInWorld-, withVector3* `Vector3'  peekVector3* -- ^ pointInWorld+, withVec3* `Vec3'  peekVec3* -- ^ normalOnBInWorld+, withVec3* `Vec3'  peekVec3* -- ^ pointInWorld ,  `Float'  -- ^ depth- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#40>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btDiscreteCollisionDetectorInterface_Result_addContactPoint as btDiscreteCollisionDetectorInterface_Result_addContactPoint'    `( BtDiscreteCollisionDetectorInterface_ResultClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ normalOnBInWorld-, allocaVector3-  `Vector3'  peekVector3* -- ^ pointInWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalOnBInWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ pointInWorld ,  `Float'  -- ^ depth- } ->  `()'  #}+ } ->  `()'   #} -- * btConstraintRow {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#27>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223>@@ -130,7 +134,7 @@ , withBt* `p1'  -- ^ output , withBt* `p2'  -- ^ debugDraw ,  `Bool'  -- ^ swapResults- } ->  `()'  #}+ } ->  `()'   #} -- * btGjkEpaSolver2 {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#32>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223>@@ -140,7 +144,7 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#47>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_StackSizeRequirement as btGjkEpaSolver2_StackSizeRequirement    `( )' =>     {  } ->  `Int'  #}+{#fun btGjkEpaSolver2_StackSizeRequirement as btGjkEpaSolver2_StackSizeRequirement    `( )' =>     {  } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#52>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -148,9 +152,9 @@ , withTransform* `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , withTransform* `Transform'  peekTransform* -- ^ wtrs1-, withVector3* `Vector3'  peekVector3* -- ^ guess+, withVec3* `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#52>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -158,9 +162,9 @@ , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs1-, allocaVector3-  `Vector3'  peekVector3* -- ^ guess+, allocaVec3-  `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -168,10 +172,10 @@ , withTransform* `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , withTransform* `Transform'  peekTransform* -- ^ wtrs1-, withVector3* `Vector3'  peekVector3* -- ^ guess+, withVec3* `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results ,  `Bool'  -- ^ usemargins- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -179,46 +183,46 @@ , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs1-, allocaVector3-  `Vector3'  peekVector3* -- ^ guess+, allocaVec3-  `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results ,  `Bool'  -- ^ usemargins- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#64>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  withVector3* `Vector3'  peekVector3* -- ^ position+{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  withVec3* `Vec3'  peekVec3* -- ^ position ,  `Float'  -- ^ margin , withBt* `p2'  -- ^ shape , withTransform* `Transform'  peekTransform* -- ^ wtrs , withBt* `p4'  -- ^ results- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#64>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance'    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  allocaVector3-  `Vector3'  peekVector3* -- ^ position+{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance'    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  allocaVec3-  `Vec3'  peekVec3* -- ^ position ,  `Float'  -- ^ margin , withBt* `p2'  -- ^ shape , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs , withBt* `p4'  -- ^ results- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#64>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance0    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  withVector3* `Vector3'  peekVector3* -- ^ position+{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance0    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  withVec3* `Vec3'  peekVec3* -- ^ position ,  `Float'  -- ^ margin , withBt* `p2'  -- ^ shape , withTransform* `Transform'  peekTransform* -- ^ wtrs , withBt* `p4'  -- ^ results- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#64>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance0'    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  allocaVector3-  `Vector3'  peekVector3* -- ^ position+{#fun btGjkEpaSolver2_SignedDistance0 as btGjkEpaSolver2_SignedDistance0'    `(  BtConvexShapeClass p2 , BtGjkEpaSolver2_sResultsClass p4 )' =>     {  allocaVec3-  `Vec3'  peekVec3* -- ^ position ,  `Float'  -- ^ margin , withBt* `p2'  -- ^ shape , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs , withBt* `p4'  -- ^ results- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#69>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -226,9 +230,9 @@ , withTransform* `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , withTransform* `Transform'  peekTransform* -- ^ wtrs1-, withVector3* `Vector3'  peekVector3* -- ^ guess+, withVec3* `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#69>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}@@ -236,28 +240,28 @@ , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs0 , withBt* `p2'  -- ^ shape1 , allocaTransform-  `Transform'  peekTransform* -- ^ wtrs1-, allocaVector3-  `Vector3'  peekVector3* -- ^ guess+, allocaVec3-  `Vec3'  peekVec3* -- ^ guess , withBt* `p5'  -- ^ results- } ->  `Bool'  #}+ } ->  `Bool'   #} -- * btGjkPairDetector {#fun btGjkPairDetector_free    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#75>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_setCachedSeperatingAxis as btGjkPairDetector_setCachedSeperatingAxis    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ seperatingAxis- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ seperatingAxis+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#75>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_setCachedSeperatingAxis as btGjkPairDetector_setCachedSeperatingAxis'    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ seperatingAxis- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ seperatingAxis+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#80>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_getCachedSeparatingAxis as btGjkPairDetector_getCachedSeparatingAxis    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^   } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#61>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>@@ -267,25 +271,25 @@ , withBt* `p1'  -- ^ output , withBt* `p2'  -- ^ debugDraw ,  `Bool'  -- ^ swapResults- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#66>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_setMinkowskiA as btGjkPairDetector_setMinkowskiA    `( BtGjkPairDetectorClass bc , BtConvexShapeClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ minkA- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#71>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_setMinkowskiB as btGjkPairDetector_setMinkowskiB    `( BtGjkPairDetectorClass bc , BtConvexShapeClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ minkB- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#95>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_setIgnoreMargin as btGjkPairDetector_setIgnoreMargin    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  -- ^  ,  `Bool'  -- ^ ignoreMargin- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#63>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -}@@ -293,12 +297,92 @@ , withBt* `p0'  -- ^ input , withBt* `p1'  -- ^ output , withBt* `p2'  -- ^ debugDraw- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#84>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -} {#fun btGjkPairDetector_getCachedSeparatingDistance as btGjkPairDetector_getCachedSeparatingDistance    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_cachedSeparatingAxis_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_cachedSeparatingAxis_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_simplexSolver_set    `( BtGjkPairDetectorClass bc , BtVoronoiSimplexSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_simplexSolver_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `BtVoronoiSimplexSolver'  mkBtVoronoiSimplexSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_minkowskiA_set    `( BtGjkPairDetectorClass bc , BtConvexShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_minkowskiA_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_minkowskiB_set    `( BtGjkPairDetectorClass bc , BtConvexShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_minkowskiB_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `BtConvexShape'  mkBtConvexShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_shapeTypeA_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_shapeTypeA_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_shapeTypeB_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_shapeTypeB_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_marginA_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_marginA_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_marginB_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_marginB_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_ignoreMargin_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_ignoreMargin_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_cachedSeparatingDistance_set    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223>+-}+{#fun btGjkPairDetector_m_cachedSeparatingDistance_get    `( BtGjkPairDetectorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h?r=2223#51>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp?r=2223> -}@@ -339,121 +423,121 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#61>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_new1 as btManifoldPoint1    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Float'  } -> `BtManifoldPoint' mkBtManifoldPoint* #}+{#fun btManifoldPoint_new1 as btManifoldPoint1    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Float'  } -> `BtManifoldPoint' mkBtManifoldPoint* #} {#fun btManifoldPoint_free    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#143>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_setDistance as btManifoldPoint_setDistance    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ dist- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#128>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_getLifeTime as btManifoldPoint_getLifeTime    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#124>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_getDistance as btManifoldPoint_getDistance    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223>--}-{#fun btManifoldPoint_getAppliedImpulse as btManifoldPoint_getAppliedImpulse    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#138>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_getPositionWorldOnB as btManifoldPoint_getPositionWorldOnB    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^   } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223>+-}+{#fun btManifoldPoint_getAppliedImpulse as btManifoldPoint_getAppliedImpulse    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#133>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_getPositionWorldOnA as btManifoldPoint_getPositionWorldOnA    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^   } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#86>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#104>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_localPointA_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#86>+{#fun btManifoldPoint_m_appliedImpulse_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#104>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_localPointA_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#87>+{#fun btManifoldPoint_m_appliedImpulse_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#107>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_localPointB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#87>+{#fun btManifoldPoint_m_appliedImpulseLateral1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#107>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_localPointB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#88>+{#fun btManifoldPoint_m_appliedImpulseLateral1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#108>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_positionWorldOnB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#88>+{#fun btManifoldPoint_m_appliedImpulseLateral2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#108>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_positionWorldOnB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#90>+{#fun btManifoldPoint_m_appliedImpulseLateral2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#94>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_positionWorldOnA_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#90>+{#fun btManifoldPoint_m_combinedFriction_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#94>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_positionWorldOnA_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#91>+{#fun btManifoldPoint_m_combinedFriction_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#95>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_normalWorldOnB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#91>+{#fun btManifoldPoint_m_combinedRestitution_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#95>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_normalWorldOnB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#93>+{#fun btManifoldPoint_m_combinedRestitution_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#111>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_distance1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#93>+{#fun btManifoldPoint_m_contactCFM1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#111>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_distance1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#94>+{#fun btManifoldPoint_m_contactCFM1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#112>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_combinedFriction_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#94>+{#fun btManifoldPoint_m_contactCFM2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#112>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_combinedFriction_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#95>+{#fun btManifoldPoint_m_contactCFM2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#109>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_combinedRestitution_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#95>+{#fun btManifoldPoint_m_contactMotion1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#109>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_combinedRestitution_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#98>+{#fun btManifoldPoint_m_contactMotion1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#110>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_partId0_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#98>+{#fun btManifoldPoint_m_contactMotion2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#110>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_partId0_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#99>+{#fun btManifoldPoint_m_contactMotion2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#93>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_partId1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#99>+{#fun btManifoldPoint_m_distance1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#93>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_partId1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{#fun btManifoldPoint_m_distance1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#100>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}@@ -470,14 +554,22 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_m_index1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#104>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#116>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulse_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#104>+{#fun btManifoldPoint_m_lateralFrictionDir1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#116>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulse_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{#fun btManifoldPoint_m_lateralFrictionDir1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223>+-}+{#fun btManifoldPoint_m_lateralFrictionDir2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223>+-}+{#fun btManifoldPoint_m_lateralFrictionDir2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#106>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}@@ -486,173 +578,204 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -} {#fun btManifoldPoint_m_lateralFrictionInitialized_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#107>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#114>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulseLateral1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#107>+{#fun btManifoldPoint_m_lifeTime_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#114>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulseLateral1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#108>+{#fun btManifoldPoint_m_lifeTime_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#86>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulseLateral2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#108>+{#fun btManifoldPoint_m_localPointA_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#86>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_appliedImpulseLateral2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#109>+{#fun btManifoldPoint_m_localPointA_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#87>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactMotion1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#109>+{#fun btManifoldPoint_m_localPointB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#87>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactMotion1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#110>+{#fun btManifoldPoint_m_localPointB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#91>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactMotion2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#110>+{#fun btManifoldPoint_m_normalWorldOnB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#91>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactMotion2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#111>+{#fun btManifoldPoint_m_normalWorldOnB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#98>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactCFM1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#111>+{#fun btManifoldPoint_m_partId0_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#98>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactCFM1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#112>+{#fun btManifoldPoint_m_partId0_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#99>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactCFM2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#112>+{#fun btManifoldPoint_m_partId1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#99>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_contactCFM2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#114>+{#fun btManifoldPoint_m_partId1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#90>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lifeTime_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#114>+{#fun btManifoldPoint_m_positionWorldOnA_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#90>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lifeTime_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#116>+{#fun btManifoldPoint_m_positionWorldOnA_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#88>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lateralFrictionDir1_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#116>+{#fun btManifoldPoint_m_positionWorldOnB_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#88>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lateralFrictionDir1_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#117>+{#fun btManifoldPoint_m_positionWorldOnB_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#103>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lateralFrictionDir2_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#117>+{#fun btManifoldPoint_m_userPersistentData_set    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h?r=2223#103>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btManifoldPoint.cpp?r=2223> -}-{#fun btManifoldPoint_m_lateralFrictionDir2_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btManifoldPoint_m_userPersistentData_get    `( BtManifoldPointClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #} -- * btPersistentManifold {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#84>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_new0 as btPersistentManifold0    {  } -> `BtPersistentManifold' mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_new1 as btPersistentManifold1    {  withVoidPtr* `VoidPtr' , withVoidPtr* `VoidPtr' ,  `Int' ,  `Float' ,  `Float'  } -> `BtPersistentManifold' mkBtPersistentManifold* #} {#fun btPersistentManifold_free    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_setBodies as btPersistentManifold_setBodies    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ body0+, withVoidPtr* `VoidPtr'  -- ^ body1+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#163>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_replaceContactPoint as btPersistentManifold_replaceContactPoint    `( BtPersistentManifoldClass bc , BtManifoldPointClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ newPoint ,  `Int'  -- ^ insertIndex- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#106>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_clearUserCache as btPersistentManifold_clearUserCache    `( BtPersistentManifoldClass bc , BtManifoldPointClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ pt- } ->  `()'  #}+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_getBody10 as btPersistentManifold_getBody1    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_getBody10 as btPersistentManifold_getBody10    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#129>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getContactProcessingThreshold as btPersistentManifold_getContactProcessingThreshold    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#213>+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#209>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_clearManifold as btPersistentManifold_clearManifold    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#112>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getNumContacts as btPersistentManifold_getNumContacts    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_getBody00 as btPersistentManifold_getBody0    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223>+-}+{#fun btPersistentManifold_getBody00 as btPersistentManifold_getBody00    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#136>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_addManifoldPoint as btPersistentManifold_addManifoldPoint    `( BtPersistentManifoldClass bc , BtManifoldPointClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ newPoint- } ->  `Int'  #}+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#134>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getCacheEntry as btPersistentManifold_getCacheEntry    `( BtPersistentManifoldClass bc , BtManifoldPointClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ newPoint- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#200>+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#201>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_validContactDistance as btPersistentManifold_validContactDistance    `( BtPersistentManifoldClass bc , BtManifoldPointClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ pt- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#138>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_removeContactPoint as btPersistentManifold_removeContactPoint    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#114>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getContactPoint0 as btPersistentManifold_getContactPoint    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtManifoldPoint' mkBtManifoldPoint*  #}+ } ->  `BtManifoldPoint'  mkBtManifoldPoint* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#114>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getContactPoint0 as btPersistentManifold_getContactPoint0    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtManifoldPoint' mkBtManifoldPoint*  #}+ } ->  `BtManifoldPoint'  mkBtManifoldPoint* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#120>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getContactPoint1 as btPersistentManifold_getContactPoint1    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtManifoldPoint' mkBtManifoldPoint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#210>+ } ->  `BtManifoldPoint'  mkBtManifoldPoint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#206>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_refreshContactPoints as btPersistentManifold_refreshContactPoints    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  , withTransform* `Transform'  peekTransform* -- ^ trA , withTransform* `Transform'  peekTransform* -- ^ trB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#210>+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#206>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_refreshContactPoints as btPersistentManifold_refreshContactPoints'    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^  , allocaTransform-  `Transform'  peekTransform* -- ^ trA , allocaTransform-  `Transform'  peekTransform* -- ^ trB- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#127>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -} {#fun btPersistentManifold_getContactBreakingThreshold as btPersistentManifold_getContactBreakingThreshold    `( BtPersistentManifoldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h?r=2223#79>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp?r=2223> -}@@ -682,34 +805,34 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btStorageResult_addContactPoint as btStorageResult_addContactPoint    `( BtStorageResultClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ normalOnBInWorld-, withVector3* `Vector3'  peekVector3* -- ^ pointInWorld+, withVec3* `Vec3'  peekVec3* -- ^ normalOnBInWorld+, withVec3* `Vec3'  peekVec3* -- ^ pointInWorld ,  `Float'  -- ^ depth- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#79>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -} {#fun btStorageResult_addContactPoint as btStorageResult_addContactPoint'    `( BtStorageResultClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ normalOnBInWorld-, allocaVector3-  `Vector3'  peekVector3* -- ^ pointInWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalOnBInWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ pointInWorld ,  `Float'  -- ^ depth- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#69>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -}-{#fun btStorageResult_m_normalOnSurfaceB_set    `( BtStorageResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btStorageResult_m_normalOnSurfaceB_set    `( BtStorageResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#69>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -}-{#fun btStorageResult_m_normalOnSurfaceB_get    `( BtStorageResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btStorageResult_m_normalOnSurfaceB_get    `( BtStorageResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#70>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -}-{#fun btStorageResult_m_closestPointInB_set    `( BtStorageResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btStorageResult_m_closestPointInB_set    `( BtStorageResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#70>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -}-{#fun btStorageResult_m_closestPointInB_get    `( BtStorageResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btStorageResult_m_closestPointInB_get    `( BtStorageResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h?r=2223#71>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.cpp?r=2223> -}@@ -728,12 +851,12 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btSubSimplexClosestResult_reset as btSubSimplexClosestResult_reset    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#72>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btSubSimplexClosestResult_isValid as btSubSimplexClosestResult_isValid    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#82>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}@@ -742,15 +865,23 @@ ,  `Float'  -- ^ b ,  `Float'  -- ^ c ,  `Float'  -- ^ d- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btSubSimplexClosestResult_m_closestPointOnSimplex_set    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btSubSimplexClosestResult_m_closestPointOnSimplex_set    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btSubSimplexClosestResult_m_closestPointOnSimplex_get    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btSubSimplexClosestResult_m_closestPointOnSimplex_get    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223>+-}+{#fun btSubSimplexClosestResult_m_usedVertices_set    `( BtSubSimplexClosestResultClass bc , BtUsageBitfieldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223>+-}+{#fun btSubSimplexClosestResult_m_usedVertices_get    `( BtSubSimplexClosestResultClass bc )' =>     { withBt* `bc'  } ->  `BtUsageBitfield'  mkBtUsageBitfield* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#64>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}@@ -769,7 +900,7 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btUsageBitfield_reset as btUsageBitfield_reset    `( BtUsageBitfieldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#49>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}@@ -844,207 +975,215 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_reset as btVoronoiSimplexSolver_reset    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#125>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_updateClosestVectorAndPoints as btVoronoiSimplexSolver_updateClosestVectorAndPoints    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#141>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_setEqualVertexThreshold as btVoronoiSimplexSolver_setEqualVertexThreshold    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ threshold- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#162>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_inSimplex as btVoronoiSimplexSolver_inSimplex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ w- } ->  `Bool'  #}+, withVec3* `Vec3'  peekVec3* -- ^ w+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#162>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_inSimplex as btVoronoiSimplexSolver_inSimplex'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ w- } ->  `Bool'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ w+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#151>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closest as btVoronoiSimplexSolver_closest    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v- } ->  `Bool'  #}+, withVec3* `Vec3'  peekVec3* -- ^ v+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#151>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closest as btVoronoiSimplexSolver_closest'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v- } ->  `Bool'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ v+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#127>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closestPtPointTetrahedron as btVoronoiSimplexSolver_closestPtPointTetrahedron    `( BtVoronoiSimplexSolverClass bc , BtSubSimplexClosestResultClass p5 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p-, withVector3* `Vector3'  peekVector3* -- ^ a-, withVector3* `Vector3'  peekVector3* -- ^ b-, withVector3* `Vector3'  peekVector3* -- ^ c-, withVector3* `Vector3'  peekVector3* -- ^ d+, withVec3* `Vec3'  peekVec3* -- ^ p+, withVec3* `Vec3'  peekVec3* -- ^ a+, withVec3* `Vec3'  peekVec3* -- ^ b+, withVec3* `Vec3'  peekVec3* -- ^ c+, withVec3* `Vec3'  peekVec3* -- ^ d , withBt* `p5'  -- ^ finalResult- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#127>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closestPtPointTetrahedron as btVoronoiSimplexSolver_closestPtPointTetrahedron'    `( BtVoronoiSimplexSolverClass bc , BtSubSimplexClosestResultClass p5 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p-, allocaVector3-  `Vector3'  peekVector3* -- ^ a-, allocaVector3-  `Vector3'  peekVector3* -- ^ b-, allocaVector3-  `Vector3'  peekVector3* -- ^ c-, allocaVector3-  `Vector3'  peekVector3* -- ^ d+, allocaVec3-  `Vec3'  peekVec3* -- ^ p+, allocaVec3-  `Vec3'  peekVec3* -- ^ a+, allocaVec3-  `Vec3'  peekVec3* -- ^ b+, allocaVec3-  `Vec3'  peekVec3* -- ^ c+, allocaVec3-  `Vec3'  peekVec3* -- ^ d , withBt* `p5'  -- ^ finalResult- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#129>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closestPtPointTriangle as btVoronoiSimplexSolver_closestPtPointTriangle    `( BtVoronoiSimplexSolverClass bc , BtSubSimplexClosestResultClass p4 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p-, withVector3* `Vector3'  peekVector3* -- ^ a-, withVector3* `Vector3'  peekVector3* -- ^ b-, withVector3* `Vector3'  peekVector3* -- ^ c+, withVec3* `Vec3'  peekVec3* -- ^ p+, withVec3* `Vec3'  peekVec3* -- ^ a+, withVec3* `Vec3'  peekVec3* -- ^ b+, withVec3* `Vec3'  peekVec3* -- ^ c , withBt* `p4'  -- ^ result- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#129>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_closestPtPointTriangle as btVoronoiSimplexSolver_closestPtPointTriangle'    `( BtVoronoiSimplexSolverClass bc , BtSubSimplexClosestResultClass p4 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p-, allocaVector3-  `Vector3'  peekVector3* -- ^ a-, allocaVector3-  `Vector3'  peekVector3* -- ^ b-, allocaVector3-  `Vector3'  peekVector3* -- ^ c+, allocaVec3-  `Vec3'  peekVec3* -- ^ p+, allocaVec3-  `Vec3'  peekVec3* -- ^ a+, allocaVec3-  `Vec3'  peekVec3* -- ^ b+, allocaVec3-  `Vec3'  peekVec3* -- ^ c , withBt* `p4'  -- ^ result- } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#128>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_pointOutsideOfPlane as btVoronoiSimplexSolver_pointOutsideOfPlane    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p-, withVector3* `Vector3'  peekVector3* -- ^ a-, withVector3* `Vector3'  peekVector3* -- ^ b-, withVector3* `Vector3'  peekVector3* -- ^ c-, withVector3* `Vector3'  peekVector3* -- ^ d- } ->  `Int'  #}+, withVec3* `Vec3'  peekVec3* -- ^ p+, withVec3* `Vec3'  peekVec3* -- ^ a+, withVec3* `Vec3'  peekVec3* -- ^ b+, withVec3* `Vec3'  peekVec3* -- ^ c+, withVec3* `Vec3'  peekVec3* -- ^ d+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#128>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_pointOutsideOfPlane as btVoronoiSimplexSolver_pointOutsideOfPlane'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p-, allocaVector3-  `Vector3'  peekVector3* -- ^ a-, allocaVector3-  `Vector3'  peekVector3* -- ^ b-, allocaVector3-  `Vector3'  peekVector3* -- ^ c-, allocaVector3-  `Vector3'  peekVector3* -- ^ d- } ->  `Int'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ p+, allocaVec3-  `Vec3'  peekVec3* -- ^ a+, allocaVec3-  `Vec3'  peekVec3* -- ^ b+, allocaVec3-  `Vec3'  peekVec3* -- ^ c+, allocaVec3-  `Vec3'  peekVec3* -- ^ d+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#166>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_emptySimplex as btVoronoiSimplexSolver_emptySimplex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#153>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_maxVertex as btVoronoiSimplexSolver_maxVertex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#139>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_addVertex as btVoronoiSimplexSolver_addVertex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ w-, withVector3* `Vector3'  peekVector3* -- ^ p-, withVector3* `Vector3'  peekVector3* -- ^ q- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ w+, withVec3* `Vec3'  peekVec3* -- ^ p+, withVec3* `Vec3'  peekVec3* -- ^ q+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#139>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_addVertex as btVoronoiSimplexSolver_addVertex'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ w-, allocaVector3-  `Vector3'  peekVector3* -- ^ p-, allocaVector3-  `Vector3'  peekVector3* -- ^ q- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ w+, allocaVec3-  `Vec3'  peekVec3* -- ^ p+, allocaVec3-  `Vec3'  peekVec3* -- ^ q+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#124>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_reduceVertices as btVoronoiSimplexSolver_reduceVertices    `( BtVoronoiSimplexSolverClass bc , BtUsageBitfieldClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ usedVerts- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#164>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_backup_closest as btVoronoiSimplexSolver_backup_closest    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ v+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#164>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_backup_closest as btVoronoiSimplexSolver_backup_closest'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ v+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#123>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_removeVertex as btVoronoiSimplexSolver_removeVertex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#146>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_getEqualVertexThreshold as btVoronoiSimplexSolver_getEqualVertexThreshold    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#168>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_compute_points as btVoronoiSimplexSolver_compute_points    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p1-, withVector3* `Vector3'  peekVector3* -- ^ p2- } ->  `()'  #}+, withVec3* `Vec3'  peekVec3* -- ^ p1+, withVec3* `Vec3'  peekVec3* -- ^ p2+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#168>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_compute_points as btVoronoiSimplexSolver_compute_points'    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p1-, allocaVector3-  `Vector3'  peekVector3* -- ^ p2- } ->  `()'  #}+, allocaVec3-  `Vec3'  peekVec3* -- ^ p1+, allocaVec3-  `Vec3'  peekVec3* -- ^ p2+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#155>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_fullSimplex as btVoronoiSimplexSolver_fullSimplex    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}+ } ->  `Bool'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#170>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -} {#fun btVoronoiSimplexSolver_numVertices as btVoronoiSimplexSolver_numVertices    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223>+-}+{#fun btVoronoiSimplexSolver_m_cachedBC_set    `( BtVoronoiSimplexSolverClass bc , BtSubSimplexClosestResultClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223>+-}+{#fun btVoronoiSimplexSolver_m_cachedBC_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc'  } ->  `BtSubSimplexClosestResult'  mkBtSubSimplexClosestResult* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#110>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedP1_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedP1_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#110>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedP1_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedP1_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#111>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedP2_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedP2_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#111>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedP2_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedP2_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#112>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedV_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedV_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#112>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_cachedV_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVoronoiSimplexSolver_m_cachedV_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#116>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}@@ -1064,11 +1203,11 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#113>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_lastW_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVoronoiSimplexSolver_m_lastW_set    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#113>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}-{#fun btVoronoiSimplexSolver_m_lastW_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVoronoiSimplexSolver_m_lastW_get    `( BtVoronoiSimplexSolverClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h?r=2223#121>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp?r=2223> -}@@ -1102,8 +1241,8 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#43>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_sResults_normal_set    `( BtGjkEpaSolver2_sResultsClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btGjkEpaSolver2_sResults_normal_set    `( BtGjkEpaSolver2_sResultsClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h?r=2223#43>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp?r=2223> -}-{#fun btGjkEpaSolver2_sResults_normal_get    `( BtGjkEpaSolver2_sResultsClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btGjkEpaSolver2_sResults_normal_get    `( BtGjkEpaSolver2_sResultsClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}
Physics/Bullet/Raw/BulletDynamics/ConstraintSolver.chs view
@@ -20,3552 +20,5447 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223> -} {#fun btAngularLimit_getCorrection as btAngularLimit_getCorrection    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#373>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_set as btAngularLimit_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ low-,  `Float'  -- ^ high-,  `Float'  -- ^ _softness-,  `Float'  -- ^ _biasFactor-,  `Float'  -- ^ _relaxationFactor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#426>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getError as btAngularLimit_getError    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#416>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_isLimit as btAngularLimit_isLimit    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#404>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getSign as btAngularLimit_getSign    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#386>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getBiasFactor as btAngularLimit_getBiasFactor    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#380>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getSoftness as btAngularLimit_getSoftness    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#430>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getHigh as btAngularLimit_getHigh    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#410>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getHalfRange as btAngularLimit_getHalfRange    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#428>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getLow as btAngularLimit_getLow    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#392>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btAngularLimit_getRelaxationFactor as btAngularLimit_getRelaxationFactor    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * btConeTwistConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#129>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_new0 as btConeTwistConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform'  } -> `BtConeTwistConstraint' mkBtConeTwistConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_new1 as btConeTwistConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform'  } -> `BtConeTwistConstraint' mkBtConeTwistConstraint* #}-{#fun btConeTwistConstraint_free    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getRigidBodyB as btConeTwistConstraint_getRigidBodyB    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getInfo2NonVirtual as btConeTwistConstraint_getInfo2NonVirtual    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withMatrix3x3* `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldA-, withMatrix3x3* `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getInfo2NonVirtual as btConeTwistConstraint_getInfo2NonVirtual'    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldA-, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getRigidBodyA as btConeTwistConstraint_getRigidBodyA    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#246>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_isPastSwingLimit as btConeTwistConstraint_isPastSwingLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getFrameOffsetA as btConeTwistConstraint_getFrameOffsetA    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#279>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getFrameOffsetB as btConeTwistConstraint_getFrameOffsetB    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getSwingSpan2 as btConeTwistConstraint_getSwingSpan2    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getSwingSpan1 as btConeTwistConstraint_getSwingSpan1    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#228>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_calcAngleInfo2 as btConeTwistConstraint_calcAngleInfo2    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withMatrix3x3* `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldA-, withMatrix3x3* `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#228>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_calcAngleInfo2 as btConeTwistConstraint_calcAngleInfo2'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldA-, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ invInertiaWorldB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#270>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setParam as btConeTwistConstraint_setParam    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getParam as btConeTwistConstraint_getParam    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setDamping as btConeTwistConstraint_setDamping    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ damping- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getInfo1 as btConeTwistConstraint_getInfo1    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getInfo2 as btConeTwistConstraint_getInfo2    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_calculateSerializeBufferSize as btConeTwistConstraint_calculateSerializeBufferSize    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#242>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getTwistAngle as btConeTwistConstraint_getTwistAngle    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#252>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMaxMotorImpulseNormalized as btConeTwistConstraint_setMaxMotorImpulseNormalized    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ maxMotorImpulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#212>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getSolveTwistLimit as btConeTwistConstraint_getSolveTwistLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#250>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_enableMotor as btConeTwistConstraint_enableMotor    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ b- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#210>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getBFrame as btConeTwistConstraint_getBFrame    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getInfo1NonVirtual as btConeTwistConstraint_getInfo1NonVirtual    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getFixThresh as btConeTwistConstraint_getFixThresh    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#217>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getSolveSwingLimit as btConeTwistConstraint_getSolveSwingLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setAngularOnly as btConeTwistConstraint_setAngularOnly    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ angularOnly- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setFrames as btConeTwistConstraint_setFrames    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ frameA-, withTransform* `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setFrames as btConeTwistConstraint_setFrames'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ frameA-, allocaTransform-  `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setLimit0 as btConeTwistConstraint_setLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex-,  `Float'  -- ^ limitValue- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setLimit0 as btConeTwistConstraint_setLimit0    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex-,  `Float'  -- ^ limitValue- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#198>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setLimit1 as btConeTwistConstraint_setLimit1    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ _swingSpan1-,  `Float'  -- ^ _swingSpan2-,  `Float'  -- ^ _twistSpan-,  `Float'  -- ^ _softness-,  `Float'  -- ^ _biasFactor-,  `Float'  -- ^ _relaxationFactor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_buildJacobian as btConeTwistConstraint_buildJacobian    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getTwistLimitSign as btConeTwistConstraint_getTwistLimitSign    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#251>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMaxMotorImpulse as btConeTwistConstraint_setMaxMotorImpulse    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ maxMotorImpulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#145>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_updateRHS as btConeTwistConstraint_updateRHS    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMotorTarget as btConeTwistConstraint_setMotorTarget    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withQuaternion* `Quaternion'  peekQuaternion* -- ^ q- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMotorTarget as btConeTwistConstraint_setMotorTarget'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ q- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setFixThresh as btConeTwistConstraint_setFixThresh    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ fixThresh- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMotorTargetInConstraintSpace as btConeTwistConstraint_setMotorTargetInConstraintSpace    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withQuaternion* `Quaternion'  peekQuaternion* -- ^ q- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_setMotorTargetInConstraintSpace as btConeTwistConstraint_setMotorTargetInConstraintSpace'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ q- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#143>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_solveConstraintObsolete as btConeTwistConstraint_solveConstraintObsolete    `( BtConeTwistConstraintClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ bodyA-, withBt* `p1'  -- ^ bodyB-,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_GetPointForAngle as btConeTwistConstraint_GetPointForAngle    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ fAngleInRadians-,  `Float'  -- ^ fLength-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#227>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_calcAngleInfo as btConeTwistConstraint_calcAngleInfo    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getTwistSpan as btConeTwistConstraint_getTwistSpan    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraint_getAFrame as btConeTwistConstraint_getAFrame    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}--- * btConeTwistConstraintData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_new as btConeTwistConstraintData    {  } -> `BtConeTwistConstraintData' mkBtConeTwistConstraintData* #}-{#fun btConeTwistConstraintData_free    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_swingSpan1_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_swingSpan1_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_swingSpan2_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_swingSpan2_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#305>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_twistSpan_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#305>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_twistSpan_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#306>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_limitSoftness_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#306>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_limitSoftness_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#307>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_biasFactor_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#307>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_biasFactor_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#308>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_relaxationFactor_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#308>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_relaxationFactor_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_damping_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>--}-{#fun btConeTwistConstraintData_m_damping_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btConstraintInfo1-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#95>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo1_new as btTypedConstraint_btConstraintInfo1    {  } -> `BtTypedConstraint_btConstraintInfo1' mkBtTypedConstraint_btConstraintInfo1* #}-{#fun btTypedConstraint_btConstraintInfo1_free    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo1_m_numConstraintRows_set    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo1_m_numConstraintRows_get    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo1_nub_set    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo1_nub_get    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btConstraintInfo2-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#99>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_new as btTypedConstraint_btConstraintInfo2    {  } -> `BtTypedConstraint_btConstraintInfo2' mkBtTypedConstraint_btConstraintInfo2* #}-{#fun btTypedConstraint_btConstraintInfo2_free    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_erp_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_erp_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_fps_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_fps_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_m_damping_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_m_damping_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_m_numIterations_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_m_numIterations_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_rowskip_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_btConstraintInfo2_rowskip_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btConstraintSetting-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_new as btConstraintSetting    {  } -> `BtConstraintSetting' mkBtConstraintSetting* #}-{#fun btConstraintSetting_free    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_tau_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_tau_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_damping_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_damping_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_impulseClamp_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btConstraintSetting_m_impulseClamp_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btConstraintSolver-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>--}-{#fun btConstraintSolver_reset as btConstraintSolver_reset    `( BtConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>--}-{#fun btConstraintSolver_allSolved as btConstraintSolver_allSolved    `( BtConstraintSolverClass bc , BtContactSolverInfoClass p0 , BtIDebugDrawClass p1 , BtStackAllocClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1-, withBt* `p2'  -- ^ arg2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>--}-{#fun btConstraintSolver_prepareSolve as btConstraintSolver_prepareSolve    `( BtConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ arg0-,  `Int'  -- ^ arg1- } ->  `()'  #}--- * btContactConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_getInfo1 as btContactConstraint_getInfo1    `( BtContactConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_setContactManifold as btContactConstraint_setContactManifold    `( BtContactConstraintClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ contactManifold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_buildJacobian as btContactConstraint_buildJacobian    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_getInfo2 as btContactConstraint_getInfo2    `( BtContactConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_getContactManifold0 as btContactConstraint_getContactManifold    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_getContactManifold0 as btContactConstraint_getContactManifold0    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>--}-{#fun btContactConstraint_getContactManifold1 as btContactConstraint_getContactManifold1    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtPersistentManifold' mkBtPersistentManifold*  #}--- * btContactSolverInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfo_new as btContactSolverInfo    {  } -> `BtContactSolverInfo' mkBtContactSolverInfo* #}-{#fun btContactSolverInfo_free    `( BtContactSolverInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btContactSolverInfoData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_new as btContactSolverInfoData    {  } -> `BtContactSolverInfoData' mkBtContactSolverInfoData* #}-{#fun btContactSolverInfoData_free    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#37>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_tau_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#37>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_tau_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_damping_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_damping_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_friction_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_friction_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_timeStep_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_timeStep_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_restitution_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_restitution_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_numIterations_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_numIterations_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_maxErrorReduction_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_maxErrorReduction_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_sor_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_sor_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_erp_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_erp_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_erp2_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_erp2_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_globalCfm_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_globalCfm_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_splitImpulse_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_splitImpulse_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_splitImpulsePenetrationThreshold_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_splitImpulsePenetrationThreshold_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_linearSlop_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_linearSlop_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_warmstartingFactor_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_warmstartingFactor_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_solverMode_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_solverMode_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_restingContactRestitutionThreshold_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_restingContactRestitutionThreshold_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_minimumSolverBatchSize_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>--}-{#fun btContactSolverInfoData_m_minimumSolverBatchSize_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btGeneric6DofConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#352>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_new0 as btGeneric6DofConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofConstraint' mkBtGeneric6DofConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#353>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_new1 as btGeneric6DofConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofConstraint' mkBtGeneric6DofConstraint* #}-{#fun btGeneric6DofConstraint_free    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#405>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_buildJacobian as btGeneric6DofConstraint_buildJacobian    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#547>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setParam as btGeneric6DofConstraint_setParam    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#382>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetA0 as btGeneric6DofConstraint_getFrameOffsetA    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#382>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetA0 as btGeneric6DofConstraint_getFrameOffsetA0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#393>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetA1 as btGeneric6DofConstraint_getFrameOffsetA1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#434>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getRelativePivotPosition as btGeneric6DofConstraint_getRelativePivotPosition    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ axis_index- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#387>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetB0 as btGeneric6DofConstraint_getFrameOffsetB    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#387>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetB0 as btGeneric6DofConstraint_getFrameOffsetB0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#398>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getFrameOffsetB1 as btGeneric6DofConstraint_getFrameOffsetB1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#413>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getInfo2NonVirtual as btGeneric6DofConstraint_getInfo2NonVirtual    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ linVelA-, withVector3* `Vector3'  peekVector3* -- ^ linVelB-, withVector3* `Vector3'  peekVector3* -- ^ angVelA-, withVector3* `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#413>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getInfo2NonVirtual as btGeneric6DofConstraint_getInfo2NonVirtual'    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#368>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getCalculatedTransformA as btGeneric6DofConstraint_getCalculatedTransformA    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#549>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getParam as btGeneric6DofConstraint_getParam    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#407>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getInfo1 as btGeneric6DofConstraint_getInfo1    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#411>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getInfo2 as btGeneric6DofConstraint_getInfo2    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#535>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calcAnchorPos as btGeneric6DofConstraint_calcAnchorPos    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAngularLowerLimit as btGeneric6DofConstraint_getAngularLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angularLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAngularLowerLimit as btGeneric6DofConstraint_getAngularLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angularLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#579>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateSerializeBufferSize as btGeneric6DofConstraint_calculateSerializeBufferSize    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#422>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAxis as btGeneric6DofConstraint_getAxis    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ axis_index-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#460>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getLinearUpperLimit as btGeneric6DofConstraint_getLinearUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#460>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getLinearUpperLimit as btGeneric6DofConstraint_getLinearUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#543>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setUseFrameOffset as btGeneric6DofConstraint_setUseFrameOffset    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ frameOffsetOnOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#490>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getRotationalLimitMotor as btGeneric6DofConstraint_getRotationalLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtRotationalLimitMotor' mkBtRotationalLimitMotor*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#409>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getInfo1NonVirtual as btGeneric6DofConstraint_getInfo1NonVirtual    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#445>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setLinearLowerLimit as btGeneric6DofConstraint_setLinearLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#445>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setLinearLowerLimit as btGeneric6DofConstraint_setLinearLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#450>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getLinearLowerLimit as btGeneric6DofConstraint_getLinearLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#450>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getLinearLowerLimit as btGeneric6DofConstraint_getLinearLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#525>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_isLimited as btGeneric6DofConstraint_isLimited    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#542>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getUseFrameOffset as btGeneric6DofConstraint_getUseFrameOffset    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getCalculatedTransformB as btGeneric6DofConstraint_getCalculatedTransformB    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms0'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#362>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_calculateTransforms1 as btGeneric6DofConstraint_calculateTransforms1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#539>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_get_limit_motor_info2 as btGeneric6DofConstraint_get_limit_motor_info2    `( BtGeneric6DofConstraintClass bc , BtRotationalLimitMotorClass p0 , BtTypedConstraint_btConstraintInfo2Class p7 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ limot-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ linVelA-, withVector3* `Vector3'  peekVector3* -- ^ linVelB-, withVector3* `Vector3'  peekVector3* -- ^ angVelA-, withVector3* `Vector3'  peekVector3* -- ^ angVelB-, withBt* `p7'  -- ^ info-,  `Int'  -- ^ row-, withVector3* `Vector3'  peekVector3* -- ^ ax1-,  `Int'  -- ^ rotational-,  `Int'  -- ^ rotAllowed- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#539>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_get_limit_motor_info2 as btGeneric6DofConstraint_get_limit_motor_info2'    `( BtGeneric6DofConstraintClass bc , BtRotationalLimitMotorClass p0 , BtTypedConstraint_btConstraintInfo2Class p7 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ limot-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelB-, withBt* `p7'  -- ^ info-,  `Int'  -- ^ row-, allocaVector3-  `Vector3'  peekVector3* -- ^ ax1-,  `Int'  -- ^ rotational-,  `Int'  -- ^ rotAllowed- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#502>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setLimit as btGeneric6DofConstraint_setLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ axis-,  `Float'  -- ^ lo-,  `Float'  -- ^ hi- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#496>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getTranslationalLimitMotor as btGeneric6DofConstraint_getTranslationalLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtTranslationalLimitMotor' mkBtTranslationalLimitMotor*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#428>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAngle as btGeneric6DofConstraint_getAngle    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ axis_index- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#416>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_updateRHS as btGeneric6DofConstraint_updateRHS    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#483>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAngularUpperLimit as btGeneric6DofConstraint_getAngularUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angularUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#483>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_getAngularUpperLimit as btGeneric6DofConstraint_getAngularUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angularUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAngularLowerLimit as btGeneric6DofConstraint_setAngularLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angularLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#465>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAngularLowerLimit as btGeneric6DofConstraint_setAngularLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angularLower- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#436>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setFrames as btGeneric6DofConstraint_setFrames    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ frameA-, withTransform* `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#436>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setFrames as btGeneric6DofConstraint_setFrames'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ frameA-, allocaTransform-  `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#455>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setLinearUpperLimit as btGeneric6DofConstraint_setLinearUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#455>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setLinearUpperLimit as btGeneric6DofConstraint_setLinearUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAngularUpperLimit as btGeneric6DofConstraint_setAngularUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angularUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAngularUpperLimit as btGeneric6DofConstraint_setAngularUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angularUpper- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#551>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAxis as btGeneric6DofConstraint_setAxis    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ axis1-, withVector3* `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#551>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_setAxis as btGeneric6DofConstraint_setAxis'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ axis1-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#443>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_testAngularLimitMotor as btGeneric6DofConstraint_testAngularLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ axis_index- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#350>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_m_useSolveConstraintObsolete_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#350>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraint_m_useSolveConstraintObsolete_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * btGeneric6DofConstraintData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#564>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraintData_new as btGeneric6DofConstraintData    {  } -> `BtGeneric6DofConstraintData' mkBtGeneric6DofConstraintData* #}-{#fun btGeneric6DofConstraintData_free    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#575>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraintData_m_useLinearReferenceFrameA_set    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#575>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraintData_m_useLinearReferenceFrameA_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_set    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btGeneric6DofSpringConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_new as btGeneric6DofSpringConstraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofSpringConstraint' mkBtGeneric6DofSpringConstraint* #}-{#fun btGeneric6DofSpringConstraint_free    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_calculateSerializeBufferSize as btGeneric6DofSpringConstraint_calculateSerializeBufferSize    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint0 as btGeneric6DofSpringConstraint_setEquilibriumPoint    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint0 as btGeneric6DofSpringConstraint_setEquilibriumPoint0    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint1 as btGeneric6DofSpringConstraint_setEquilibriumPoint1    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint2 as btGeneric6DofSpringConstraint_setEquilibriumPoint2    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-,  `Float'  -- ^ val- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_enableSpring as btGeneric6DofSpringConstraint_enableSpring    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-,  `Bool'  -- ^ onOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setStiffness as btGeneric6DofSpringConstraint_setStiffness    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-,  `Float'  -- ^ stiffness- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setDamping as btGeneric6DofSpringConstraint_setDamping    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index-,  `Float'  -- ^ damping- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_getInfo2 as btGeneric6DofSpringConstraint_getInfo2    `( BtGeneric6DofSpringConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setAxis as btGeneric6DofSpringConstraint_setAxis    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ axis1-, withVector3* `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraint_setAxis as btGeneric6DofSpringConstraint_setAxis'    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ axis1-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}--- * btGeneric6DofSpringConstraintData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>--}-{#fun btGeneric6DofSpringConstraintData_new as btGeneric6DofSpringConstraintData    {  } -> `BtGeneric6DofSpringConstraintData' mkBtGeneric6DofSpringConstraintData* #}-{#fun btGeneric6DofSpringConstraintData_free    `( BtGeneric6DofSpringConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btHinge2Constraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_new as btHinge2Constraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtHinge2Constraint' mkBtHinge2Constraint* #}-{#fun btHinge2Constraint_free    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_setLowerLimit as btHinge2Constraint_setLowerLimit    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ ang1min- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAnchor2 as btHinge2Constraint_getAnchor2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAxis1 as btHinge2Constraint_getAxis1    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAnchor as btHinge2Constraint_getAnchor    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAxis2 as btHinge2Constraint_getAxis2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_setUpperLimit as btHinge2Constraint_setUpperLimit    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ ang1max- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAngle2 as btHinge2Constraint_getAngle2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>--}-{#fun btHinge2Constraint_getAngle1 as btHinge2Constraint_getAngle1    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * btHingeConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#103>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_new0 as btHingeConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_new1 as btHingeConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withVector3* `Vector3' , withVector3* `Vector3' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_new2 as btHingeConstraint2    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_new3 as btHingeConstraint3    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}-{#fun btHingeConstraint_free    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyB0 as btHingeConstraint_getRigidBodyB    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyB0 as btHingeConstraint_getRigidBodyB0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyB1 as btHingeConstraint_getRigidBodyB1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2NonVirtual as btHingeConstraint_getInfo2NonVirtual    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ angVelA-, withVector3* `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2NonVirtual as btHingeConstraint_getInfo2NonVirtual'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyA0 as btHingeConstraint_getRigidBodyA    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyA0 as btHingeConstraint_getRigidBodyA0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getRigidBodyA1 as btHingeConstraint_getRigidBodyA1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getMotorTargetVelosity as btHingeConstraint_getMotorTargetVelosity    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getFrameOffsetA as btHingeConstraint_getFrameOffsetA    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getFrameOffsetB as btHingeConstraint_getFrameOffsetB    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_buildJacobian as btHingeConstraint_buildJacobian    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#175>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMaxMotorImpulse as btHingeConstraint_setMaxMotorImpulse    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ maxMotorImpulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getHingeAngle0 as btHingeConstraint_getHingeAngle    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getHingeAngle0 as btHingeConstraint_getHingeAngle0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#239>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getHingeAngle1 as btHingeConstraint_getHingeAngle1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#239>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getHingeAngle1 as btHingeConstraint_getHingeAngle1'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_testLimit as btHingeConstraint_testLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_testLimit as btHingeConstraint_testLimit'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo1 as btHingeConstraint_getInfo1    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2Internal as btHingeConstraint_getInfo2Internal    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ angVelA-, withVector3* `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2Internal as btHingeConstraint_getInfo2Internal'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2 as btHingeConstraint_getInfo2    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#227>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getUpperLimit as btHingeConstraint_getUpperLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_enableAngularMotor as btHingeConstraint_enableAngularMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ enableMotor-,  `Float'  -- ^ targetVelocity-,  `Float'  -- ^ maxMotorImpulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#259>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getLimitSign as btHingeConstraint_getLimitSign    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#345>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_calculateSerializeBufferSize as btHingeConstraint_calculateSerializeBufferSize    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getMaxMotorImpulse as btHingeConstraint_getMaxMotorImpulse    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getLowerLimit as btHingeConstraint_getLowerLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#291>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setParam as btHingeConstraint_setParam    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setUseFrameOffset as btHingeConstraint_setUseFrameOffset    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ frameOffsetOnOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getEnableAngularMotor as btHingeConstraint_getEnableAngularMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#174>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_enableMotor as btHingeConstraint_enableMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ enableMotor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#245>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getBFrame0 as btHingeConstraint_getBFrame    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#245>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getBFrame0 as btHingeConstraint_getBFrame0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getBFrame1 as btHingeConstraint_getBFrame1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo1NonVirtual as btHingeConstraint_getInfo1NonVirtual    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2InternalUsingFrameOffset as btHingeConstraint_getInfo2InternalUsingFrameOffset    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ angVelA-, withVector3* `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getInfo2InternalUsingFrameOffset as btHingeConstraint_getInfo2InternalUsingFrameOffset'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVelB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getUseFrameOffset as btHingeConstraint_getUseFrameOffset    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setAngularOnly as btHingeConstraint_setAngularOnly    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ angularOnly- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#293>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getParam as btHingeConstraint_getParam    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#180>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setLimit as btHingeConstraint_setLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ low-,  `Float'  -- ^ high-,  `Float'  -- ^ _softness-,  `Float'  -- ^ _biasFactor-,  `Float'  -- ^ _relaxationFactor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#250>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getSolveLimit as btHingeConstraint_getSolveLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_updateRHS as btHingeConstraint_updateRHS    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withQuaternion* `Quaternion'  peekQuaternion* -- ^ qAinB-,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ qAinB-,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withQuaternion* `Quaternion'  peekQuaternion* -- ^ qAinB-,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget0'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ qAinB-,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#177>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setMotorTarget1 as btHingeConstraint_setMotorTarget1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ targetAngle-,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getAngularOnly as btHingeConstraint_getAngularOnly    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setFrames as btHingeConstraint_setFrames    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ frameA-, withTransform* `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setFrames as btHingeConstraint_setFrames'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ frameA-, allocaTransform-  `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#193>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setAxis as btHingeConstraint_setAxis    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ axisInA- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#193>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_setAxis as btHingeConstraint_setAxis'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ axisInA- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getAFrame0 as btHingeConstraint_getAFrame    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getAFrame0 as btHingeConstraint_getAFrame0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#247>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraint_getAFrame1 as btHingeConstraint_getAFrame1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}--- * btHingeConstraintDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#305>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_new as btHingeConstraintDoubleData    {  } -> `BtHingeConstraintDoubleData' mkBtHingeConstraintDoubleData* #}-{#fun btHingeConstraintDoubleData_free    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_useReferenceFrameA_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_useReferenceFrameA_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_angularOnly_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_angularOnly_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#311>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_enableAngularMotor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#311>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_enableAngularMotor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#312>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_motorTargetVelocity_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#312>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_motorTargetVelocity_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#313>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_maxMotorImpulse_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#313>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_maxMotorImpulse_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#315>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_lowerLimit_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#315>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_lowerLimit_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#316>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_upperLimit_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#316>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_upperLimit_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_limitSoftness_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_limitSoftness_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_biasFactor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_biasFactor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_relaxationFactor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintDoubleData_m_relaxationFactor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btHingeConstraintFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#324>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_new as btHingeConstraintFloatData    {  } -> `BtHingeConstraintFloatData' mkBtHingeConstraintFloatData* #}-{#fun btHingeConstraintFloatData_free    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_useReferenceFrameA_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_useReferenceFrameA_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#329>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_angularOnly_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#329>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_angularOnly_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#331>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_enableAngularMotor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#331>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_enableAngularMotor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_motorTargetVelocity_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_motorTargetVelocity_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_maxMotorImpulse_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_maxMotorImpulse_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_lowerLimit_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_lowerLimit_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#336>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_upperLimit_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#336>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_upperLimit_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_limitSoftness_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_limitSoftness_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#338>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_biasFactor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#338>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_biasFactor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#339>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_relaxationFactor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#339>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>--}-{#fun btHingeConstraintFloatData_m_relaxationFactor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btJacobianEntry-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_new0 as btJacobianEntry0    {  } -> `BtJacobianEntry' mkBtJacobianEntry* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_new2 as btJacobianEntry2    {  withVector3* `Vector3' , withMatrix3x3* `Matrix3x3' , withMatrix3x3* `Matrix3x3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtJacobianEntry' mkBtJacobianEntry* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_new3 as btJacobianEntry3    {  withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtJacobianEntry' mkBtJacobianEntry* #}-{#fun btJacobianEntry_free    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_getDiagonal as btJacobianEntry_getDiagonal    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_getRelativeVelocity as btJacobianEntry_getRelativeVelocity    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linvelA-, withVector3* `Vector3'  peekVector3* -- ^ angvelA-, withVector3* `Vector3'  peekVector3* -- ^ linvelB-, withVector3* `Vector3'  peekVector3* -- ^ angvelB- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_getRelativeVelocity as btJacobianEntry_getRelativeVelocity'    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linvelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ angvelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ linvelB-, allocaVector3-  `Vector3'  peekVector3* -- ^ angvelB- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_0MinvJt_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_0MinvJt_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_1MinvJt_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_1MinvJt_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_Adiag_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_Adiag_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_aJ_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_aJ_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_bJ_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_bJ_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_linearJointAxis_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>--}-{#fun btJacobianEntry_m_linearJointAxis_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * btPoint2PointConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_new0 as btPoint2PointConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtPoint2PointConstraint' mkBtPoint2PointConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_new1 as btPoint2PointConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withVector3* `Vector3'  } -> `BtPoint2PointConstraint' mkBtPoint2PointConstraint* #}-{#fun btPoint2PointConstraint_free    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getInfo1NonVirtual as btPoint2PointConstraint_getInfo1NonVirtual    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getInfo2NonVirtual as btPoint2PointConstraint_getInfo2NonVirtual    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ body0_trans-, withTransform* `Transform'  peekTransform* -- ^ body1_trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getInfo2NonVirtual as btPoint2PointConstraint_getInfo2NonVirtual'    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ body0_trans-, allocaTransform-  `Transform'  peekTransform* -- ^ body1_trans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_setParam as btPoint2PointConstraint_setParam    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getPivotInA as btPoint2PointConstraint_getPivotInA    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getPivotInB as btPoint2PointConstraint_getPivotInB    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_updateRHS as btPoint2PointConstraint_updateRHS    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_buildJacobian as btPoint2PointConstraint_buildJacobian    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#143>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_calculateSerializeBufferSize as btPoint2PointConstraint_calculateSerializeBufferSize    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getParam as btPoint2PointConstraint_getParam    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getInfo1 as btPoint2PointConstraint_getInfo1    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#86>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_getInfo2 as btPoint2PointConstraint_getInfo2    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_setPivotA as btPoint2PointConstraint_setPivotA    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pivotA- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_setPivotA as btPoint2PointConstraint_setPivotA'    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pivotA- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_setPivotB as btPoint2PointConstraint_setPivotB    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pivotB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_setPivotB as btPoint2PointConstraint_setPivotB'    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pivotB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_m_useSolveConstraintObsolete_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraint_m_useSolveConstraintObsolete_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * btPoint2PointConstraintDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraintDoubleData_new as btPoint2PointConstraintDoubleData    {  } -> `BtPoint2PointConstraintDoubleData' mkBtPoint2PointConstraintDoubleData* #}-{#fun btPoint2PointConstraintDoubleData_free    `( BtPoint2PointConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btPoint2PointConstraintFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>--}-{#fun btPoint2PointConstraintFloatData_new as btPoint2PointConstraintFloatData    {  } -> `BtPoint2PointConstraintFloatData' mkBtPoint2PointConstraintFloatData* #}-{#fun btPoint2PointConstraintFloatData_free    `( BtPoint2PointConstraintFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btRotationalLimitMotor-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_new as btRotationalLimitMotor    {  } -> `BtRotationalLimitMotor' mkBtRotationalLimitMotor* #}-{#fun btRotationalLimitMotor_free    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_testLimitValue as btRotationalLimitMotor_testLimitValue    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ test_value- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_solveAngularLimits as btRotationalLimitMotor_solveAngularLimits    `( BtRotationalLimitMotorClass bc , BtRigidBodyClass p3 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-, withVector3* `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ jacDiagABInv-, withBt* `p3'  -- ^ body0-, withBt* `p4'  -- ^ body1- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_solveAngularLimits as btRotationalLimitMotor_solveAngularLimits'    `( BtRotationalLimitMotorClass bc , BtRigidBodyClass p3 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ jacDiagABInv-, withBt* `p3'  -- ^ body0-, withBt* `p4'  -- ^ body1- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_needApplyTorques as btRotationalLimitMotor_needApplyTorques    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#106>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_isLimited as btRotationalLimitMotor_isLimited    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_accumulatedImpulse_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_accumulatedImpulse_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_bounce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_bounce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#64>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#64>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentLimitError_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentLimitError_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentPosition_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_currentPosition_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_damping_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_damping_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_enableMotor_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_enableMotor_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_hiLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_hiLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_limitSoftness_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_limitSoftness_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_loLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_loLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_maxLimitForce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_maxLimitForce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_maxMotorForce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_maxMotorForce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_normalCFM_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#52>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_normalCFM_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_stopCFM_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_stopCFM_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_stopERP_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_stopERP_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_targetVelocity_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btRotationalLimitMotor_m_targetVelocity_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btSequentialImpulseConstraintSolver-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_new as btSequentialImpulseConstraintSolver    {  } -> `BtSequentialImpulseConstraintSolver' mkBtSequentialImpulseConstraintSolver* #}-{#fun btSequentialImpulseConstraintSolver_free    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_reset as btSequentialImpulseConstraintSolver_reset    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_btRand2 as btSequentialImpulseConstraintSolver_btRand2    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word64'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_getRandSeed as btSequentialImpulseConstraintSolver_getRandSeed    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word64'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_setRandSeed as btSequentialImpulseConstraintSolver_setRandSeed    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ -,  `Word64'  -- ^ seed- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>--}-{#fun btSequentialImpulseConstraintSolver_btRandInt2 as btSequentialImpulseConstraintSolver_btRandInt2    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ n- } ->  `Int'  #}--- * btSliderConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_new0 as btSliderConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtSliderConstraint' mkBtSliderConstraint* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_new1 as btSliderConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtSliderConstraint' mkBtSliderConstraint* #}-{#fun btSliderConstraint_free    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#175>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRigidBodyB as btSliderConstraint_getRigidBodyB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#233>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setPoweredAngMotor as btSliderConstraint_setPoweredAngMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ onOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#170>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getInfo2NonVirtual as btSliderConstraint_getInfo2NonVirtual    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB-, withVector3* `Vector3'  peekVector3* -- ^ linVelA-, withVector3* `Vector3'  peekVector3* -- ^ linVelB-,  `Float'  -- ^ rbAinvMass-,  `Float'  -- ^ rbBinvMass- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#170>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getInfo2NonVirtual as btSliderConstraint_getInfo2NonVirtual'    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelA-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVelB-,  `Float'  -- ^ rbAinvMass-,  `Float'  -- ^ rbBinvMass- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#174>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRigidBodyA as btSliderConstraint_getRigidBodyA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#202>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingLimAng as btSliderConstraint_getDampingLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionOrthoLin as btSliderConstraint_setRestitutionOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionOrthoLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#210>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionDirLin as btSliderConstraint_setRestitutionDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionDirLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#240>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getLinearPos as btSliderConstraint_getLinearPos    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetA0 as btSliderConstraint_getFrameOffsetA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetA0 as btSliderConstraint_getFrameOffsetA0    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#180>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetA1 as btSliderConstraint_getFrameOffsetA1    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#179>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetB0 as btSliderConstraint_getFrameOffsetB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#179>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetB0 as btSliderConstraint_getFrameOffsetB0    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#181>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getFrameOffsetB1 as btSliderConstraint_getFrameOffsetB1    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#227>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setPoweredLinMotor as btSliderConstraint_setPoweredLinMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ onOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#177>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getCalculatedTransformB as btSliderConstraint_getCalculatedTransformB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#176>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getCalculatedTransformA as btSliderConstraint_getCalculatedTransformA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#198>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionLimLin as btSliderConstraint_getRestitutionLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessOrthoAng as btSliderConstraint_getSoftnessOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessOrthoLin as btSliderConstraint_setSoftnessOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessOrthoLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_calculateSerializeBufferSize as btSliderConstraint_calculateSerializeBufferSize    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#215>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessLimLin as btSliderConstraint_setSoftnessLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessLimLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getAngularPos as btSliderConstraint_getAngularPos    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#219>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionLimAng as btSliderConstraint_setRestitutionLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionLimAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getParam as btSliderConstraint_getParam    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getInfo1 as btSliderConstraint_getInfo1    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getInfo2 as btSliderConstraint_getInfo2    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setParam as btSliderConstraint_setParam    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#185>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setUpperLinLimit as btSliderConstraint_setUpperLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ upperLimit- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingDirLin as btSliderConstraint_setDampingDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingDirLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#188>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getUpperAngLimit as btSliderConstraint_getUpperAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#213>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionDirAng as btSliderConstraint_setRestitutionDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionDirAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#193>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingDirLin as btSliderConstraint_getDampingDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#249>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getAngDepth as btSliderConstraint_getAngDepth    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#194>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessDirAng as btSliderConstraint_getSoftnessDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getPoweredAngMotor as btSliderConstraint_getPoweredAngMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#187>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setLowerAngLimit as btSliderConstraint_setLowerAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ lowerLimit- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setUpperAngLimit as btSliderConstraint_setUpperAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ upperLimit- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#229>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setTargetLinMotorVelocity as btSliderConstraint_setTargetLinMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ targetLinMotorVelocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#220>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingLimAng as btSliderConstraint_setDampingLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingLimAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#201>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionLimAng as btSliderConstraint_getRestitutionLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#258>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getUseFrameOffset as btSliderConstraint_getUseFrameOffset    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessOrthoLin as btSliderConstraint_getSoftnessOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#208>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingOrthoAng as btSliderConstraint_getDampingOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#259>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setUseFrameOffset as btSliderConstraint_setUseFrameOffset    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ frameOffsetOnOff- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#183>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setLowerLinLimit as btSliderConstraint_setLowerLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ lowerLimit- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#192>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionDirLin as btSliderConstraint_getRestitutionDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getTargetLinMotorVelocity as btSliderConstraint_getTargetLinMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#252>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_testLinLimits as btSliderConstraint_testLinLimits    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#182>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getLowerLinLimit as btSliderConstraint_getLowerLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setFrames as btSliderConstraint_setFrames    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ frameA-, withTransform* `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setFrames as btSliderConstraint_setFrames'    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ frameA-, allocaTransform-  `Transform'  peekTransform* -- ^ frameB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#197>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessLimLin as btSliderConstraint_getSoftnessLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getInfo1NonVirtual as btSliderConstraint_getInfo1NonVirtual    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingOrthoAng as btSliderConstraint_setDampingOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingOrthoAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#212>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessDirAng as btSliderConstraint_setSoftnessDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessDirAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getAncorInA as btSliderConstraint_getAncorInA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#228>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getPoweredLinMotor as btSliderConstraint_getPoweredLinMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#256>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getAncorInB as btSliderConstraint_getAncorInB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#225>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionOrthoAng as btSliderConstraint_setRestitutionOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionOrthoAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#214>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingDirAng as btSliderConstraint_setDampingDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingDirAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#246>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSolveLinLimit as btSliderConstraint_getSolveLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#207>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionOrthoAng as btSliderConstraint_getRestitutionOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getMaxAngMotorForce as btSliderConstraint_getMaxAngMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#196>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingDirAng as btSliderConstraint_getDampingDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#251>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_calculateTransforms as btSliderConstraint_calculateTransforms    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#251>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_calculateTransforms as btSliderConstraint_calculateTransforms'    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#184>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getUpperLinLimit as btSliderConstraint_getUpperLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#247>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getLinDepth as btSliderConstraint_getLinDepth    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#231>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setMaxLinMotorForce as btSliderConstraint_setMaxLinMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ maxLinMotorForce- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#204>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionOrthoLin as btSliderConstraint_getRestitutionOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setTargetAngMotorVelocity as btSliderConstraint_setTargetAngMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ targetAngMotorVelocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#200>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessLimAng as btSliderConstraint_getSoftnessLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingOrthoLin as btSliderConstraint_getDampingOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getDampingLimLin as btSliderConstraint_getDampingLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#186>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getLowerAngLimit as btSliderConstraint_getLowerAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#195>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getRestitutionDirAng as btSliderConstraint_getRestitutionDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#236>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getTargetAngMotorVelocity as btSliderConstraint_getTargetAngMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setRestitutionLimLin as btSliderConstraint_setRestitutionLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ restitutionLimLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#253>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_testAngLimits as btSliderConstraint_testAngLimits    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#232>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getMaxLinMotorForce as btSliderConstraint_getMaxLinMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#223>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingOrthoLin as btSliderConstraint_setDampingOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingOrthoLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#224>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessOrthoAng as btSliderConstraint_setSoftnessOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessOrthoAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSolveAngLimit as btSliderConstraint_getSolveAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#217>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setDampingLimLin as btSliderConstraint_setDampingLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dampingLimLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessDirLin as btSliderConstraint_setSoftnessDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessDirLin- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setMaxAngMotorForce as btSliderConstraint_setMaxAngMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ maxAngMotorForce- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#191>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getSoftnessDirLin as btSliderConstraint_getSoftnessDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_setSoftnessLimAng as btSliderConstraint_setSoftnessLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ softnessLimAng- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraint_getUseLinearReferenceFrameA as btSliderConstraint_getUseLinearReferenceFrameA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}--- * btSliderConstraintData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_new as btSliderConstraintData    {  } -> `BtSliderConstraintData' mkBtSliderConstraintData* #}-{#fun btSliderConstraintData_free    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#291>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_linearUpperLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#291>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_linearUpperLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#292>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_linearLowerLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#292>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_linearLowerLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#294>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_angularUpperLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#294>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_angularUpperLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_angularLowerLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_angularLowerLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_useLinearReferenceFrameA_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_useLinearReferenceFrameA_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#298>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_useOffsetForConstraintFrame_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#298>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>--}-{#fun btSliderConstraintData_m_useOffsetForConstraintFrame_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btSolverBodyObsolete-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_new as btSolverBodyObsolete    {  } -> `BtSolverBodyObsolete' mkBtSolverBodyObsolete* #}-{#fun btSolverBodyObsolete_free    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_getAngularVelocity as btSolverBodyObsolete_getAngularVelocity    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_getAngularVelocity as btSolverBodyObsolete_getAngularVelocity'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#156>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_writebackVelocity0 as btSolverBodyObsolete_writebackVelocity    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#156>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_writebackVelocity0 as btSolverBodyObsolete_writebackVelocity0    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_writebackVelocity1 as btSolverBodyObsolete_writebackVelocity1    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_internalApplyPushImpulse as btSolverBodyObsolete_internalApplyPushImpulse    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearComponent-, withVector3* `Vector3'  peekVector3* -- ^ angularComponent-,  `Float'  -- ^ impulseMagnitude- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_internalApplyPushImpulse as btSolverBodyObsolete_internalApplyPushImpulse'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearComponent-, allocaVector3-  `Vector3'  peekVector3* -- ^ angularComponent-,  `Float'  -- ^ impulseMagnitude- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_getVelocityInLocalPointObsolete as btSolverBodyObsolete_getVelocityInLocalPointObsolete    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rel_pos-, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_getVelocityInLocalPointObsolete as btSolverBodyObsolete_getVelocityInLocalPointObsolete'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rel_pos-, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_deltaLinearVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_deltaLinearVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_deltaAngularVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_deltaAngularVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_angularFactor_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#113>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_angularFactor_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_invMass_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_invMass_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_originalBody_set    `( BtSolverBodyObsoleteClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_pushVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_pushVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#117>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_turnVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#117>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>--}-{#fun btSolverBodyObsolete_m_turnVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * btSolverConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#30>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_new as btSolverConstraint    {  } -> `BtSolverConstraint' mkBtSolverConstraint* #}-{#fun btSolverConstraint_free    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#33>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_relpos1CrossNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#33>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_relpos1CrossNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_contactNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#34>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_contactNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_relpos2CrossNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#36>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_relpos2CrossNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_angularComponentA_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_angularComponentA_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_angularComponentB_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#40>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_angularComponentB_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_appliedPushImpulse_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#42>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_appliedPushImpulse_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_appliedImpulse_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_appliedImpulse_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_friction_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_friction_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_jacDiagABInv_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_jacDiagABInv_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_rhs_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_rhs_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_cfm_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_cfm_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_lowerLimit_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_lowerLimit_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_upperLimit_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_upperLimit_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_rhsPenetration_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>--}-{#fun btSolverConstraint_m_rhsPenetration_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btTranslationalLimitMotor-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#154>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_new as btTranslationalLimitMotor    {  } -> `BtTranslationalLimitMotor' mkBtTranslationalLimitMotor* #}-{#fun btTranslationalLimitMotor_free    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_testLimitValue as btTranslationalLimitMotor_testLimitValue    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex-,  `Float'  -- ^ test_value- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_needApplyForce as btTranslationalLimitMotor_needApplyForce    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_solveLinearAxis as btTranslationalLimitMotor_solveLinearAxis    `( BtTranslationalLimitMotorClass bc , BtRigidBodyClass p2 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-,  `Float'  -- ^ jacDiagABInv-, withBt* `p2'  -- ^ body1-, withVector3* `Vector3'  peekVector3* -- ^ pointInA-, withBt* `p4'  -- ^ body2-, withVector3* `Vector3'  peekVector3* -- ^ pointInB-,  `Int'  -- ^ limit_index-, withVector3* `Vector3'  peekVector3* -- ^ axis_normal_on_a-, withVector3* `Vector3'  peekVector3* -- ^ anchorPos- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_solveLinearAxis as btTranslationalLimitMotor_solveLinearAxis'    `( BtTranslationalLimitMotorClass bc , BtRigidBodyClass p2 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-,  `Float'  -- ^ jacDiagABInv-, withBt* `p2'  -- ^ body1-, allocaVector3-  `Vector3'  peekVector3* -- ^ pointInA-, withBt* `p4'  -- ^ body2-, allocaVector3-  `Vector3'  peekVector3* -- ^ pointInB-,  `Int'  -- ^ limit_index-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis_normal_on_a-, allocaVector3-  `Vector3'  peekVector3* -- ^ anchorPos- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#202>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_isLimited as btTranslationalLimitMotor_isLimited    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ limitIndex- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_accumulatedImpulse_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_accumulatedImpulse_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_currentLimitError_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_currentLimitError_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#151>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_currentLinearDiff_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#151>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_currentLinearDiff_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_damping_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#141>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_damping_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_limitSoftness_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_limitSoftness_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_lowerLimit_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#135>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_lowerLimit_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_maxMotorForce_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_maxMotorForce_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#143>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_normalCFM_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#143>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_normalCFM_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_restitution_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_restitution_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#145>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_stopCFM_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#145>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_stopCFM_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_stopERP_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_stopERP_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_targetVelocity_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_targetVelocity_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_upperLimit_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>--}-{#fun btTranslationalLimitMotor_m_upperLimit_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * btTypedConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#192>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyB0 as btTypedConstraint_getRigidBodyB    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#192>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyB0 as btTypedConstraint_getRigidBodyB0    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#201>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyB1 as btTypedConstraint_getRigidBodyB1    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_buildJacobian as btTypedConstraint_buildJacobian    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#188>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyA0 as btTypedConstraint_getRigidBodyA    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#188>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyA0 as btTypedConstraint_getRigidBodyA0    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#197>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getRigidBodyA1 as btTypedConstraint_getRigidBodyA1    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_enableFeedback as btTypedConstraint_enableFeedback    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ needsFeedback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getUserConstraintId as btTypedConstraint_getUserConstraintId    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#277>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setParam as btTypedConstraint_setParam    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Float'  -- ^ value-,  `Int'  -- ^ axis- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#280>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getParam as btTypedConstraint_getParam    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ num-,  `Int'  -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getInfo1 as btTypedConstraint_getInfo1    `( BtTypedConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getInfo2 as btTypedConstraint_getInfo2    `( BtTypedConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ info- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setBreakingImpulseThreshold as btTypedConstraint_setBreakingImpulseThreshold    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ threshold- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_calculateSerializeBufferSize as btTypedConstraint_calculateSerializeBufferSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#173>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_isEnabled as btTypedConstraint_isEnabled    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setUserConstraintId as btTypedConstraint_setUserConstraintId    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ uid- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#270>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getDbgDrawSize as btTypedConstraint_getDbgDrawSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_internalSetAppliedImpulse as btTypedConstraint_internalSetAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ appliedImpulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_needsFeedback as btTypedConstraint_needsFeedback    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setEnabled as btTypedConstraint_setEnabled    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ enabled- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#236>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getUid as btTypedConstraint_getUid    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setDbgDrawSize as btTypedConstraint_setDbgDrawSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dbgDrawSize- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_setUserConstraintType as btTypedConstraint_setUserConstraintType    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ userConstraintType- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#157>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_internalGetAppliedImpulse as btTypedConstraint_internalGetAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#163>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getBreakingImpulseThreshold as btTypedConstraint_getBreakingImpulseThreshold    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getUserConstraintType as btTypedConstraint_getUserConstraintType    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#185>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_solveConstraintObsolete as btTypedConstraint_solveConstraintObsolete    `( BtTypedConstraintClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-, withBt* `p1'  -- ^ arg1-,  `Float'  -- ^ arg2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraint_getAppliedImpulse as btTypedConstraint_getAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}--- * btTypedConstraintData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#317>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_new as btTypedConstraintData    {  } -> `BtTypedConstraintData' mkBtTypedConstraintData* #}-{#fun btTypedConstraintData_free    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_appliedImpulse_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_appliedImpulse_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_dbgDrawSize_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_dbgDrawSize_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#330>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#330>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_name_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_name_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#325>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_needsFeedback_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#325>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_needsFeedback_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_objectType_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_objectType_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_rbA_set    `( BtTypedConstraintDataClass bc , BtRigidBodyFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_rbB_set    `( BtTypedConstraintDataClass bc , BtRigidBodyFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#324>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_userConstraintId_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#324>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_userConstraintId_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#323>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_userConstraintType_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#323>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>--}-{#fun btTypedConstraintData_m_userConstraintType_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btUniversalConstraint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#44>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_new as btUniversalConstraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVector3* `Vector3' , withVector3* `Vector3' , withVector3* `Vector3'  } -> `BtUniversalConstraint' mkBtUniversalConstraint* #}-{#fun btUniversalConstraint_free    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_setLowerLimit as btUniversalConstraint_setLowerLimit    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ ang1min-,  `Float'  -- ^ ang2min- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAnchor2 as btUniversalConstraint_getAnchor2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_setAxis as btUniversalConstraint_setAxis    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ axis1-, withVector3* `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_setAxis as btUniversalConstraint_setAxis'    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ axis1-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis2- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAxis1 as btUniversalConstraint_getAxis1    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAnchor as btUniversalConstraint_getAnchor    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAxis2 as btUniversalConstraint_getAxis2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_setUpperLimit as btUniversalConstraint_setUpperLimit    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ ang1max-,  `Float'  -- ^ ang2max- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAngle2 as btUniversalConstraint_getAngle2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>--}-{#fun btUniversalConstraint_getAngle1 as btUniversalConstraint_getAngle1    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#373>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_set as btAngularLimit_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ low+,  `Float'  -- ^ high+,  `Float'  -- ^ _softness+,  `Float'  -- ^ _biasFactor+,  `Float'  -- ^ _relaxationFactor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#426>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getError as btAngularLimit_getError    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#416>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_isLimit as btAngularLimit_isLimit    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#404>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getSign as btAngularLimit_getSign    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#386>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getBiasFactor as btAngularLimit_getBiasFactor    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#380>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getSoftness as btAngularLimit_getSoftness    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#430>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getHigh as btAngularLimit_getHigh    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#410>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getHalfRange as btAngularLimit_getHalfRange    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#428>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getLow as btAngularLimit_getLow    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#392>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_getRelaxationFactor as btAngularLimit_getRelaxationFactor    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#346>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_center_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#346>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_center_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#347>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_halfRange_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#347>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_halfRange_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_softness_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_softness_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#349>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_biasFactor_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#349>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_biasFactor_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#350>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_relaxationFactor_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#350>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_relaxationFactor_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#351>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_correction_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#351>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_correction_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_sign_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_sign_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#355>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_solveLimit_set    `( BtAngularLimitClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#355>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btAngularLimit_m_solveLimit_get    `( BtAngularLimitClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btConeTwistConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_new0 as btConeTwistConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform'  } -> `BtConeTwistConstraint' mkBtConeTwistConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_new1 as btConeTwistConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform'  } -> `BtConeTwistConstraint' mkBtConeTwistConstraint* #}+{#fun btConeTwistConstraint_free    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getRigidBodyB as btConeTwistConstraint_getRigidBodyB    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_buildJacobian as btConeTwistConstraint_buildJacobian    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getRigidBodyA as btConeTwistConstraint_getRigidBodyA    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_adjustSwingAxisToUseEllipseNormal as btConeTwistConstraint_adjustSwingAxisToUseEllipseNormal    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ vSwingAxis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_adjustSwingAxisToUseEllipseNormal as btConeTwistConstraint_adjustSwingAxisToUseEllipseNormal'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ vSwingAxis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_isPastSwingLimit as btConeTwistConstraint_isPastSwingLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getFrameOffsetA as btConeTwistConstraint_getFrameOffsetA    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#279>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getFrameOffsetB as btConeTwistConstraint_getFrameOffsetB    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getInfo2NonVirtual as btConeTwistConstraint_getInfo2NonVirtual    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withMat3* `Mat3'  peekMat3* -- ^ invInertiaWorldA+, withMat3* `Mat3'  peekMat3* -- ^ invInertiaWorldB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getInfo2NonVirtual as btConeTwistConstraint_getInfo2NonVirtual'    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaMat3-  `Mat3'  peekMat3* -- ^ invInertiaWorldA+, allocaMat3-  `Mat3'  peekMat3* -- ^ invInertiaWorldB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getSwingSpan1 as btConeTwistConstraint_getSwingSpan1    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_calcAngleInfo2 as btConeTwistConstraint_calcAngleInfo2    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withMat3* `Mat3'  peekMat3* -- ^ invInertiaWorldA+, withMat3* `Mat3'  peekMat3* -- ^ invInertiaWorldB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_calcAngleInfo2 as btConeTwistConstraint_calcAngleInfo2'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaMat3-  `Mat3'  peekMat3* -- ^ invInertiaWorldA+, allocaMat3-  `Mat3'  peekMat3* -- ^ invInertiaWorldB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getParam as btConeTwistConstraint_getParam    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setDamping as btConeTwistConstraint_setDamping    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ damping+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getInfo1 as btConeTwistConstraint_getInfo1    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getInfo2 as btConeTwistConstraint_getInfo2    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setParam as btConeTwistConstraint_setParam    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_calculateSerializeBufferSize as btConeTwistConstraint_calculateSerializeBufferSize    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_init as btConeTwistConstraint_init    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#242>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getTwistAngle as btConeTwistConstraint_getTwistAngle    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#252>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMaxMotorImpulseNormalized as btConeTwistConstraint_setMaxMotorImpulseNormalized    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ maxMotorImpulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#212>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getSolveTwistLimit as btConeTwistConstraint_getSolveTwistLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#250>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_enableMotor as btConeTwistConstraint_enableMotor    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ b+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getBFrame as btConeTwistConstraint_getBFrame    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getInfo1NonVirtual as btConeTwistConstraint_getInfo1NonVirtual    `( BtConeTwistConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_serialize as btConeTwistConstraint_serialize    `( BtConeTwistConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getFixThresh as btConeTwistConstraint_getFixThresh    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getSolveSwingLimit as btConeTwistConstraint_getSolveSwingLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getSwingSpan2 as btConeTwistConstraint_getSwingSpan2    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setAngularOnly as btConeTwistConstraint_setAngularOnly    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ angularOnly+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setFrames as btConeTwistConstraint_setFrames    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ frameA+, withTransform* `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setFrames as btConeTwistConstraint_setFrames'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ frameA+, allocaTransform-  `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setLimit0 as btConeTwistConstraint_setLimit    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+,  `Float'  -- ^ limitValue+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setLimit0 as btConeTwistConstraint_setLimit0    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+,  `Float'  -- ^ limitValue+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setLimit1 as btConeTwistConstraint_setLimit1    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ _swingSpan1+,  `Float'  -- ^ _swingSpan2+,  `Float'  -- ^ _twistSpan+,  `Float'  -- ^ _softness+,  `Float'  -- ^ _biasFactor+,  `Float'  -- ^ _relaxationFactor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getTwistLimitSign as btConeTwistConstraint_getTwistLimitSign    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#251>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMaxMotorImpulse as btConeTwistConstraint_setMaxMotorImpulse    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ maxMotorImpulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_calcAngleInfo as btConeTwistConstraint_calcAngleInfo    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMotorTarget as btConeTwistConstraint_setMotorTarget    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ q+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMotorTarget as btConeTwistConstraint_setMotorTarget'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ q+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setFixThresh as btConeTwistConstraint_setFixThresh    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ fixThresh+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMotorTargetInConstraintSpace as btConeTwistConstraint_setMotorTargetInConstraintSpace    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ q+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_setMotorTargetInConstraintSpace as btConeTwistConstraint_setMotorTargetInConstraintSpace'    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ q+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_solveConstraintObsolete as btConeTwistConstraint_solveConstraintObsolete    `( BtConeTwistConstraintClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ bodyA+, withBt* `p1'  -- ^ bodyB+,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_GetPointForAngle as btConeTwistConstraint_GetPointForAngle    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ fAngleInRadians+,  `Float'  -- ^ fLength+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_updateRHS as btConeTwistConstraint_updateRHS    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getTwistSpan as btConeTwistConstraint_getTwistSpan    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_getAFrame as btConeTwistConstraint_getAFrame    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_rbAFrame_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_rbAFrame_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_rbBFrame_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_rbBFrame_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_limitSoftness_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_limitSoftness_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_biasFactor_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_biasFactor_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_relaxationFactor_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_relaxationFactor_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_damping_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_damping_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingSpan1_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingSpan1_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingSpan2_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingSpan2_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistSpan_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistSpan_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_fixThresh_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_fixThresh_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingAxis_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingAxis_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAxis_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAxis_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_kSwing_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_kSwing_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_kTwist_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_kTwist_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistLimitSign_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistLimitSign_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingCorrection_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingCorrection_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistCorrection_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistCorrection_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAngle_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAngle_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accSwingLimitImpulse_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accSwingLimitImpulse_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accTwistLimitImpulse_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accTwistLimitImpulse_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_angularOnly_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_angularOnly_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_solveTwistLimit_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_solveTwistLimit_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_solveSwingLimit_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_solveSwingLimit_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_useSolveConstraintObsolete_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_useSolveConstraintObsolete_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingLimitRatio_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_swingLimitRatio_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistLimitRatio_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistLimitRatio_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAxisA_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_twistAxisA_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_bMotorEnabled_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_bMotorEnabled_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_bNormalizedMotorStrength_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_bNormalizedMotorStrength_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_qTarget_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withUnitQuaternion* `UnitQuaternion'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#104>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_qTarget_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_maxMotorImpulse_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_maxMotorImpulse_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accMotorImpulse_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_accMotorImpulse_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_flags_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_flags_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_linCFM_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_linCFM_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_linERP_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_linERP_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_angCFM_set    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraint_m_angCFM_get    `( BtConeTwistConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btConeTwistConstraintData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_new as btConeTwistConstraintData    {  } -> `BtConeTwistConstraintData' mkBtConeTwistConstraintData* #}+{#fun btConeTwistConstraintData_free    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_typeConstraintData_set    `( BtConeTwistConstraintDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_typeConstraintData_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#299>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_rbAFrame_set    `( BtConeTwistConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#299>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_rbAFrame_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#300>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_rbBFrame_set    `( BtConeTwistConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#300>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_rbBFrame_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_swingSpan1_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_swingSpan1_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_swingSpan2_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_swingSpan2_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_twistSpan_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_twistSpan_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_limitSoftness_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_limitSoftness_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_biasFactor_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_biasFactor_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_relaxationFactor_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_relaxationFactor_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_damping_set    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp?r=2223>+-}+{#fun btConeTwistConstraintData_m_damping_get    `( BtConeTwistConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btConstraintInfo1+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo1_new as btTypedConstraint_btConstraintInfo1    {  } -> `BtTypedConstraint_btConstraintInfo1' mkBtTypedConstraint_btConstraintInfo1* #}+{#fun btTypedConstraint_btConstraintInfo1_free    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo1_m_numConstraintRows_set    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo1_m_numConstraintRows_get    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo1_nub_set    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo1_nub_get    `( BtTypedConstraint_btConstraintInfo1Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btConstraintInfo2+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_new as btTypedConstraint_btConstraintInfo2    {  } -> `BtTypedConstraint_btConstraintInfo2' mkBtTypedConstraint_btConstraintInfo2* #}+{#fun btTypedConstraint_btConstraintInfo2_free    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_erp_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_erp_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_fps_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_fps_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_m_damping_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_m_damping_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_m_numIterations_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_m_numIterations_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_rowskip_set    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_btConstraintInfo2_rowskip_get    `( BtTypedConstraint_btConstraintInfo2Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btConstraintSetting+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_new as btConstraintSetting    {  } -> `BtConstraintSetting' mkBtConstraintSetting* #}+{#fun btConstraintSetting_free    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_tau_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_tau_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_damping_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_damping_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_impulseClamp_set    `( BtConstraintSettingClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btConstraintSetting_m_impulseClamp_get    `( BtConstraintSettingClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btConstraintSolver+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>+-}+{#fun btConstraintSolver_reset as btConstraintSolver_reset    `( BtConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>+-}+{#fun btConstraintSolver_allSolved as btConstraintSolver_allSolved    `( BtConstraintSolverClass bc , BtContactSolverInfoClass p0 , BtIDebugDrawClass p1 , BtStackAllocClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+, withBt* `p2'  -- ^ arg2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btConstraintSolver.cpp?r=2223>+-}+{#fun btConstraintSolver_prepareSolve as btConstraintSolver_prepareSolve    `( BtConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ arg0+,  `Int'  -- ^ arg1+ } ->  `()'   #}+-- * btContactConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_getInfo1 as btContactConstraint_getInfo1    `( BtContactConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_setContactManifold as btContactConstraint_setContactManifold    `( BtContactConstraintClass bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ contactManifold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_buildJacobian as btContactConstraint_buildJacobian    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_getInfo2 as btContactConstraint_getInfo2    `( BtContactConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_getContactManifold0 as btContactConstraint_getContactManifold    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_getContactManifold0 as btContactConstraint_getContactManifold0    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_getContactManifold1 as btContactConstraint_getContactManifold1    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_m_contactManifold_set    `( BtContactConstraintClass bc , BtPersistentManifoldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp?r=2223>+-}+{#fun btContactConstraint_m_contactManifold_get    `( BtContactConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+-- * btContactSolverInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfo_new as btContactSolverInfo    {  } -> `BtContactSolverInfo' mkBtContactSolverInfo* #}+{#fun btContactSolverInfo_free    `( BtContactSolverInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btContactSolverInfoData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_new as btContactSolverInfoData    {  } -> `BtContactSolverInfoData' mkBtContactSolverInfoData* #}+{#fun btContactSolverInfoData_free    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_tau_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_tau_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_damping_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_damping_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_friction_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_friction_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_timeStep_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_timeStep_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_restitution_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_restitution_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_numIterations_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_numIterations_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_maxErrorReduction_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_maxErrorReduction_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_sor_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_sor_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_erp_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_erp_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_erp2_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_erp2_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_globalCfm_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_globalCfm_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_splitImpulse_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_splitImpulse_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_splitImpulsePenetrationThreshold_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_splitImpulsePenetrationThreshold_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_linearSlop_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_linearSlop_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_warmstartingFactor_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_warmstartingFactor_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_solverMode_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_solverMode_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_restingContactRestitutionThreshold_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_restingContactRestitutionThreshold_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_minimumSolverBatchSize_set    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btContactSolverInfo.cpp?r=2223>+-}+{#fun btContactSolverInfoData_m_minimumSolverBatchSize_get    `( BtContactSolverInfoDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btGeneric6DofConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_new0 as btGeneric6DofConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofConstraint' mkBtGeneric6DofConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#353>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_new1 as btGeneric6DofConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofConstraint' mkBtGeneric6DofConstraint* #}+{#fun btGeneric6DofConstraint_free    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#405>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_buildJacobian as btGeneric6DofConstraint_buildJacobian    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#547>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setParam as btGeneric6DofConstraint_setParam    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#409>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getInfo1NonVirtual as btGeneric6DofConstraint_getInfo1NonVirtual    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#382>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetA0 as btGeneric6DofConstraint_getFrameOffsetA    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#382>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetA0 as btGeneric6DofConstraint_getFrameOffsetA0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#393>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetA1 as btGeneric6DofConstraint_getFrameOffsetA1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#434>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getRelativePivotPosition as btGeneric6DofConstraint_getRelativePivotPosition    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis_index+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateAngleInfo as btGeneric6DofConstraint_calculateAngleInfo    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#413>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getInfo2NonVirtual as btGeneric6DofConstraint_getInfo2NonVirtual    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ linVelA+, withVec3* `Vec3'  peekVec3* -- ^ linVelB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#413>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getInfo2NonVirtual as btGeneric6DofConstraint_getInfo2NonVirtual'    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularLimits as btGeneric6DofConstraint_setAngularLimits    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+,  `Int'  -- ^ row_offset+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ linVelA+, withVec3* `Vec3'  peekVec3* -- ^ linVelB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularLimits as btGeneric6DofConstraint_setAngularLimits'    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+,  `Int'  -- ^ row_offset+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#549>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getParam as btGeneric6DofConstraint_getParam    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#407>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getInfo1 as btGeneric6DofConstraint_getInfo1    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#411>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getInfo2 as btGeneric6DofConstraint_getInfo2    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#535>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calcAnchorPos as btGeneric6DofConstraint_calcAnchorPos    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#471>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAngularLowerLimit as btGeneric6DofConstraint_getAngularLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angularLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#471>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAngularLowerLimit as btGeneric6DofConstraint_getAngularLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angularLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#579>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateSerializeBufferSize as btGeneric6DofConstraint_calculateSerializeBufferSize    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#422>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAxis as btGeneric6DofConstraint_getAxis    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis_index+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#460>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getLinearUpperLimit as btGeneric6DofConstraint_getLinearUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#460>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getLinearUpperLimit as btGeneric6DofConstraint_getLinearUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#543>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setUseFrameOffset as btGeneric6DofConstraint_setUseFrameOffset    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ frameOffsetOnOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#525>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_isLimited as btGeneric6DofConstraint_isLimited    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#490>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getRotationalLimitMotor as btGeneric6DofConstraint_getRotationalLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtRotationalLimitMotor'  mkBtRotationalLimitMotor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_buildAngularJacobian as btGeneric6DofConstraint_buildAngularJacobian    `( BtGeneric6DofConstraintClass bc , BtJacobianEntryClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ jacAngular+, withVec3* `Vec3'  peekVec3* -- ^ jointAxisW+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_buildAngularJacobian as btGeneric6DofConstraint_buildAngularJacobian'    `( BtGeneric6DofConstraintClass bc , BtJacobianEntryClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ jacAngular+, allocaVec3-  `Vec3'  peekVec3* -- ^ jointAxisW+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#387>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetB0 as btGeneric6DofConstraint_getFrameOffsetB    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#387>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetB0 as btGeneric6DofConstraint_getFrameOffsetB0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#398>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getFrameOffsetB1 as btGeneric6DofConstraint_getFrameOffsetB1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#445>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearLowerLimit as btGeneric6DofConstraint_setLinearLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#445>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearLowerLimit as btGeneric6DofConstraint_setLinearLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#450>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getLinearLowerLimit as btGeneric6DofConstraint_getLinearLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#450>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getLinearLowerLimit as btGeneric6DofConstraint_getLinearLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_buildLinearJacobian as btGeneric6DofConstraint_buildLinearJacobian    `( BtGeneric6DofConstraintClass bc , BtJacobianEntryClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ jacLinear+, withVec3* `Vec3'  peekVec3* -- ^ normalWorld+, withVec3* `Vec3'  peekVec3* -- ^ pivotAInW+, withVec3* `Vec3'  peekVec3* -- ^ pivotBInW+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_buildLinearJacobian as btGeneric6DofConstraint_buildLinearJacobian'    `( BtGeneric6DofConstraintClass bc , BtJacobianEntryClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ jacLinear+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ pivotAInW+, allocaVec3-  `Vec3'  peekVec3* -- ^ pivotBInW+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getUseFrameOffset as btGeneric6DofConstraint_getUseFrameOffset    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getCalculatedTransformB as btGeneric6DofConstraint_getCalculatedTransformB    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms0    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#360>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateTransforms0 as btGeneric6DofConstraint_calculateTransforms0'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#362>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateTransforms1 as btGeneric6DofConstraint_calculateTransforms1    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_get_limit_motor_info2 as btGeneric6DofConstraint_get_limit_motor_info2    `( BtGeneric6DofConstraintClass bc , BtRotationalLimitMotorClass p0 , BtTypedConstraint_btConstraintInfo2Class p7 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ limot+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ linVelA+, withVec3* `Vec3'  peekVec3* -- ^ linVelB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+, withBt* `p7'  -- ^ info+,  `Int'  -- ^ row+, withVec3* `Vec3'  peekVec3* -- ^ ax1+,  `Int'  -- ^ rotational+,  `Int'  -- ^ rotAllowed+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#539>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_get_limit_motor_info2 as btGeneric6DofConstraint_get_limit_motor_info2'    `( BtGeneric6DofConstraintClass bc , BtRotationalLimitMotorClass p0 , BtTypedConstraint_btConstraintInfo2Class p7 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ limot+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+, withBt* `p7'  -- ^ info+,  `Int'  -- ^ row+, allocaVec3-  `Vec3'  peekVec3* -- ^ ax1+,  `Int'  -- ^ rotational+,  `Int'  -- ^ rotAllowed+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#368>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getCalculatedTransformA as btGeneric6DofConstraint_getCalculatedTransformA    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#585>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_serialize as btGeneric6DofConstraint_serialize    `( BtGeneric6DofConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLimit as btGeneric6DofConstraint_setLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis+,  `Float'  -- ^ lo+,  `Float'  -- ^ hi+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#496>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getTranslationalLimitMotor as btGeneric6DofConstraint_getTranslationalLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTranslationalLimitMotor'  mkBtTranslationalLimitMotor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearLimits as btGeneric6DofConstraint_setLinearLimits    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+,  `Int'  -- ^ row+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ linVelA+, withVec3* `Vec3'  peekVec3* -- ^ linVelB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearLimits as btGeneric6DofConstraint_setLinearLimits'    `( BtGeneric6DofConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+,  `Int'  -- ^ row+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#428>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAngle as btGeneric6DofConstraint_getAngle    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis_index+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#416>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_updateRHS as btGeneric6DofConstraint_updateRHS    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#483>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAngularUpperLimit as btGeneric6DofConstraint_getAngularUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angularUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#483>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_getAngularUpperLimit as btGeneric6DofConstraint_getAngularUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angularUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularLowerLimit as btGeneric6DofConstraint_setAngularLowerLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angularLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#465>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularLowerLimit as btGeneric6DofConstraint_setAngularLowerLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angularLower+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_calculateLinearInfo as btGeneric6DofConstraint_calculateLinearInfo    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setFrames as btGeneric6DofConstraint_setFrames    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ frameA+, withTransform* `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setFrames as btGeneric6DofConstraint_setFrames'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ frameA+, allocaTransform-  `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#455>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearUpperLimit as btGeneric6DofConstraint_setLinearUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#455>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setLinearUpperLimit as btGeneric6DofConstraint_setLinearUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularUpperLimit as btGeneric6DofConstraint_setAngularUpperLimit    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angularUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAngularUpperLimit as btGeneric6DofConstraint_setAngularUpperLimit'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angularUpper+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#551>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAxis as btGeneric6DofConstraint_setAxis    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ axis1+, withVec3* `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#551>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_setAxis as btGeneric6DofConstraint_setAxis'    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ axis1+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#443>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_testAngularLimitMotor as btGeneric6DofConstraint_testAngularLimitMotor    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ axis_index+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_frameInA_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_frameInA_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_frameInB_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_frameInB_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_linearLimits_set    `( BtGeneric6DofConstraintClass bc , BtTranslationalLimitMotorClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_linearLimits_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtTranslationalLimitMotor'  mkBtTranslationalLimitMotor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#302>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_timeStep_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#302>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_timeStep_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedTransformA_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedTransformA_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedTransformB_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedTransformB_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedAxisAngleDiff_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedAxisAngleDiff_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedLinearDiff_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_calculatedLinearDiff_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_factA_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_factA_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_factB_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_factB_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_hasStaticBody_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_hasStaticBody_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_AnchorPos_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_AnchorPos_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useLinearReferenceFrameA_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#314>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useLinearReferenceFrameA_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useOffsetForConstraintFrame_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useOffsetForConstraintFrame_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_flags_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_flags_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#350>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useSolveConstraintObsolete_set    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#350>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraint_m_useSolveConstraintObsolete_get    `( BtGeneric6DofConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btGeneric6DofConstraintData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#564>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_new as btGeneric6DofConstraintData    {  } -> `BtGeneric6DofConstraintData' mkBtGeneric6DofConstraintData* #}+{#fun btGeneric6DofConstraintData_free    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#565>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_typeConstraintData_set    `( BtGeneric6DofConstraintDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#565>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_typeConstraintData_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_rbAFrame_set    `( BtGeneric6DofConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_rbAFrame_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_rbBFrame_set    `( BtGeneric6DofConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_rbBFrame_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#569>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_linearUpperLimit_set    `( BtGeneric6DofConstraintDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#569>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_linearUpperLimit_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#570>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_linearLowerLimit_set    `( BtGeneric6DofConstraintDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#570>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_linearLowerLimit_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#572>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_angularUpperLimit_set    `( BtGeneric6DofConstraintDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#572>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_angularUpperLimit_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#573>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_angularLowerLimit_set    `( BtGeneric6DofConstraintDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#573>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_angularLowerLimit_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#575>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_useLinearReferenceFrameA_set    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#575>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_useLinearReferenceFrameA_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_set    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_get    `( BtGeneric6DofConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btGeneric6DofSpringConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_new as btGeneric6DofSpringConstraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtGeneric6DofSpringConstraint' mkBtGeneric6DofSpringConstraint* #}+{#fun btGeneric6DofSpringConstraint_free    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_calculateSerializeBufferSize as btGeneric6DofSpringConstraint_calculateSerializeBufferSize    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint0 as btGeneric6DofSpringConstraint_setEquilibriumPoint    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint0 as btGeneric6DofSpringConstraint_setEquilibriumPoint0    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint1 as btGeneric6DofSpringConstraint_setEquilibriumPoint1    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setEquilibriumPoint2 as btGeneric6DofSpringConstraint_setEquilibriumPoint2    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+,  `Float'  -- ^ val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_serialize as btGeneric6DofSpringConstraint_serialize    `( BtGeneric6DofSpringConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_enableSpring as btGeneric6DofSpringConstraint_enableSpring    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+,  `Bool'  -- ^ onOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setStiffness as btGeneric6DofSpringConstraint_setStiffness    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+,  `Float'  -- ^ stiffness+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setDamping as btGeneric6DofSpringConstraint_setDamping    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+,  `Float'  -- ^ damping+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_getInfo2 as btGeneric6DofSpringConstraint_getInfo2    `( BtGeneric6DofSpringConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_internalUpdateSprings as btGeneric6DofSpringConstraint_internalUpdateSprings    `( BtGeneric6DofSpringConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setAxis as btGeneric6DofSpringConstraint_setAxis    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ axis1+, withVec3* `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraint_setAxis as btGeneric6DofSpringConstraint_setAxis'    `( BtGeneric6DofSpringConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ axis1+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+-- * btGeneric6DofSpringConstraintData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraintData_new as btGeneric6DofSpringConstraintData    {  } -> `BtGeneric6DofSpringConstraintData' mkBtGeneric6DofSpringConstraintData* #}+{#fun btGeneric6DofSpringConstraintData_free    `( BtGeneric6DofSpringConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraintData_m_6dofData_set    `( BtGeneric6DofSpringConstraintDataClass bc , BtGeneric6DofConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp?r=2223>+-}+{#fun btGeneric6DofSpringConstraintData_m_6dofData_get    `( BtGeneric6DofSpringConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtGeneric6DofConstraintData'  mkBtGeneric6DofConstraintData* #}+-- * btHinge2Constraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_new as btHinge2Constraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtHinge2Constraint' mkBtHinge2Constraint* #}+{#fun btHinge2Constraint_free    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_setLowerLimit as btHinge2Constraint_setLowerLimit    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ ang1min+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAnchor2 as btHinge2Constraint_getAnchor2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAxis1 as btHinge2Constraint_getAxis1    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAnchor as btHinge2Constraint_getAnchor    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAxis2 as btHinge2Constraint_getAxis2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_setUpperLimit as btHinge2Constraint_setUpperLimit    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ ang1max+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAngle2 as btHinge2Constraint_getAngle2    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_getAngle1 as btHinge2Constraint_getAngle1    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_anchor_set    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_anchor_get    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_axis1_set    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_axis1_get    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_axis2_set    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp?r=2223>+-}+{#fun btHinge2Constraint_m_axis2_get    `( BtHinge2ConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btHingeConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_new0 as btHingeConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_new1 as btHingeConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withVec3* `Vec3' , withVec3* `Vec3' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_new2 as btHingeConstraint2    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_new3 as btHingeConstraint3    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtHingeConstraint' mkBtHingeConstraint* #}+{#fun btHingeConstraint_free    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyB0 as btHingeConstraint_getRigidBodyB    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyB0 as btHingeConstraint_getRigidBodyB0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyB1 as btHingeConstraint_getRigidBodyB1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2NonVirtual as btHingeConstraint_getInfo2NonVirtual    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2NonVirtual as btHingeConstraint_getInfo2NonVirtual'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyA0 as btHingeConstraint_getRigidBodyA    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyA0 as btHingeConstraint_getRigidBodyA0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getRigidBodyA1 as btHingeConstraint_getRigidBodyA1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getMotorTargetVelosity as btHingeConstraint_getMotorTargetVelosity    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getFrameOffsetA as btHingeConstraint_getFrameOffsetA    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getFrameOffsetB as btHingeConstraint_getFrameOffsetB    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_buildJacobian as btHingeConstraint_buildJacobian    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMaxMotorImpulse as btHingeConstraint_setMaxMotorImpulse    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ maxMotorImpulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getHingeAngle0 as btHingeConstraint_getHingeAngle    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getHingeAngle0 as btHingeConstraint_getHingeAngle0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getHingeAngle1 as btHingeConstraint_getHingeAngle1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getHingeAngle1 as btHingeConstraint_getHingeAngle1'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_testLimit as btHingeConstraint_testLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_testLimit as btHingeConstraint_testLimit'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo1 as btHingeConstraint_getInfo1    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2Internal as btHingeConstraint_getInfo2Internal    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2Internal as btHingeConstraint_getInfo2Internal'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2 as btHingeConstraint_getInfo2    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getUpperLimit as btHingeConstraint_getUpperLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_enableAngularMotor as btHingeConstraint_enableAngularMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ enableMotor+,  `Float'  -- ^ targetVelocity+,  `Float'  -- ^ maxMotorImpulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#259>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getLimitSign as btHingeConstraint_getLimitSign    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#345>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_calculateSerializeBufferSize as btHingeConstraint_calculateSerializeBufferSize    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getMaxMotorImpulse as btHingeConstraint_getMaxMotorImpulse    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#218>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getLowerLimit as btHingeConstraint_getLowerLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setParam as btHingeConstraint_setParam    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setUseFrameOffset as btHingeConstraint_setUseFrameOffset    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ frameOffsetOnOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getEnableAngularMotor as btHingeConstraint_getEnableAngularMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#174>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_enableMotor as btHingeConstraint_enableMotor    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ enableMotor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#245>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getBFrame0 as btHingeConstraint_getBFrame    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#245>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getBFrame0 as btHingeConstraint_getBFrame0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getBFrame1 as btHingeConstraint_getBFrame1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo1NonVirtual as btHingeConstraint_getInfo1NonVirtual    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2InternalUsingFrameOffset as btHingeConstraint_getInfo2InternalUsingFrameOffset    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ angVelA+, withVec3* `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getInfo2InternalUsingFrameOffset as btHingeConstraint_getInfo2InternalUsingFrameOffset'    `( BtHingeConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVelB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#351>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_serialize as btHingeConstraint_serialize    `( BtHingeConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getUseFrameOffset as btHingeConstraint_getUseFrameOffset    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setAngularOnly as btHingeConstraint_setAngularOnly    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ angularOnly+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#293>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getParam as btHingeConstraint_getParam    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setLimit as btHingeConstraint_setLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ low+,  `Float'  -- ^ high+,  `Float'  -- ^ _softness+,  `Float'  -- ^ _biasFactor+,  `Float'  -- ^ _relaxationFactor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#250>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getSolveLimit as btHingeConstraint_getSolveLimit    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_updateRHS as btHingeConstraint_updateRHS    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ qAinB+,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ qAinB+,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ qAinB+,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMotorTarget0 as btHingeConstraint_setMotorTarget0'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ qAinB+,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#177>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setMotorTarget1 as btHingeConstraint_setMotorTarget1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ targetAngle+,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getAngularOnly as btHingeConstraint_getAngularOnly    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setFrames as btHingeConstraint_setFrames    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ frameA+, withTransform* `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setFrames as btHingeConstraint_setFrames'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ frameA+, allocaTransform-  `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setAxis as btHingeConstraint_setAxis    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ axisInA+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_setAxis as btHingeConstraint_setAxis'    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ axisInA+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getAFrame0 as btHingeConstraint_getAFrame    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getAFrame0 as btHingeConstraint_getAFrame0    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_getAFrame1 as btHingeConstraint_getAFrame1    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_rbAFrame_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_rbAFrame_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_rbBFrame_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_rbBFrame_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_motorTargetVelocity_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_motorTargetVelocity_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_maxMotorImpulse_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_maxMotorImpulse_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_limit_set    `( BtHingeConstraintClass bc , BtAngularLimitClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_limit_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtAngularLimit'  mkBtAngularLimit* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_kHinge_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_kHinge_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_accLimitImpulse_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_accLimitImpulse_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_hingeAngle_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_hingeAngle_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_referenceSign_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_referenceSign_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_angularOnly_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_angularOnly_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_enableAngularMotor_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_enableAngularMotor_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useSolveConstraintObsolete_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useSolveConstraintObsolete_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useOffsetForConstraintFrame_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useOffsetForConstraintFrame_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useReferenceFrameA_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_useReferenceFrameA_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_accMotorImpulse_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_accMotorImpulse_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_flags_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_flags_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_normalCFM_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_normalCFM_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_stopCFM_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_stopCFM_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_stopERP_set    `( BtHingeConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraint_m_stopERP_get    `( BtHingeConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btHingeConstraintDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_new as btHingeConstraintDoubleData    {  } -> `BtHingeConstraintDoubleData' mkBtHingeConstraintDoubleData* #}+{#fun btHingeConstraintDoubleData_free    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_typeConstraintData_set    `( BtHingeConstraintDoubleDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_typeConstraintData_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_rbAFrame_set    `( BtHingeConstraintDoubleDataClass bc , BtTransformDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_rbAFrame_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformDoubleData'  mkBtTransformDoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_rbBFrame_set    `( BtHingeConstraintDoubleDataClass bc , BtTransformDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_rbBFrame_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformDoubleData'  mkBtTransformDoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_useReferenceFrameA_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_useReferenceFrameA_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_angularOnly_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_angularOnly_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_enableAngularMotor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_enableAngularMotor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_motorTargetVelocity_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_motorTargetVelocity_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_maxMotorImpulse_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_maxMotorImpulse_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_lowerLimit_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_lowerLimit_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#316>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_upperLimit_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#316>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_upperLimit_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_limitSoftness_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_limitSoftness_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_biasFactor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_biasFactor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_relaxationFactor_set    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintDoubleData_m_relaxationFactor_get    `( BtHingeConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btHingeConstraintFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_new as btHingeConstraintFloatData    {  } -> `BtHingeConstraintFloatData' mkBtHingeConstraintFloatData* #}+{#fun btHingeConstraintFloatData_free    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_typeConstraintData_set    `( BtHingeConstraintFloatDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_typeConstraintData_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_rbAFrame_set    `( BtHingeConstraintFloatDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_rbAFrame_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_rbBFrame_set    `( BtHingeConstraintFloatDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_rbBFrame_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#328>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_useReferenceFrameA_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#328>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_useReferenceFrameA_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_angularOnly_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_angularOnly_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_enableAngularMotor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_enableAngularMotor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_motorTargetVelocity_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_motorTargetVelocity_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_maxMotorImpulse_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_maxMotorImpulse_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_lowerLimit_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_lowerLimit_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#336>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_upperLimit_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#336>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_upperLimit_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_limitSoftness_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_limitSoftness_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#338>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_biasFactor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#338>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_biasFactor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#339>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_relaxationFactor_set    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.h?r=2223#339>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp?r=2223>+-}+{#fun btHingeConstraintFloatData_m_relaxationFactor_get    `( BtHingeConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btJacobianEntry+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_new0 as btJacobianEntry0    {  } -> `BtJacobianEntry' mkBtJacobianEntry* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_new2 as btJacobianEntry2    {  withVec3* `Vec3' , withMat3* `Mat3' , withMat3* `Mat3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtJacobianEntry' mkBtJacobianEntry* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_new3 as btJacobianEntry3    {  withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtJacobianEntry' mkBtJacobianEntry* #}+{#fun btJacobianEntry_free    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_getDiagonal as btJacobianEntry_getDiagonal    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_getRelativeVelocity as btJacobianEntry_getRelativeVelocity    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linvelA+, withVec3* `Vec3'  peekVec3* -- ^ angvelA+, withVec3* `Vec3'  peekVec3* -- ^ linvelB+, withVec3* `Vec3'  peekVec3* -- ^ angvelB+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_getRelativeVelocity as btJacobianEntry_getRelativeVelocity'    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linvelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ angvelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linvelB+, allocaVec3-  `Vec3'  peekVec3* -- ^ angvelB+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_0MinvJt_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_0MinvJt_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_1MinvJt_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_1MinvJt_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_Adiag_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_Adiag_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_aJ_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_aJ_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_bJ_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_bJ_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_linearJointAxis_set    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btJacobianEntry.cpp?r=2223>+-}+{#fun btJacobianEntry_m_linearJointAxis_get    `( BtJacobianEntryClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btPoint2PointConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_new0 as btPoint2PointConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtPoint2PointConstraint' mkBtPoint2PointConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_new1 as btPoint2PointConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withVec3* `Vec3'  } -> `BtPoint2PointConstraint' mkBtPoint2PointConstraint* #}+{#fun btPoint2PointConstraint_free    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getInfo1NonVirtual as btPoint2PointConstraint_getInfo1NonVirtual    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getInfo2NonVirtual as btPoint2PointConstraint_getInfo2NonVirtual    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ body0_trans+, withTransform* `Transform'  peekTransform* -- ^ body1_trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getInfo2NonVirtual as btPoint2PointConstraint_getInfo2NonVirtual'    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ body0_trans+, allocaTransform-  `Transform'  peekTransform* -- ^ body1_trans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_setParam as btPoint2PointConstraint_setParam    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getPivotInA as btPoint2PointConstraint_getPivotInA    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getPivotInB as btPoint2PointConstraint_getPivotInB    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_updateRHS as btPoint2PointConstraint_updateRHS    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_serialize as btPoint2PointConstraint_serialize    `( BtPoint2PointConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_buildJacobian as btPoint2PointConstraint_buildJacobian    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_calculateSerializeBufferSize as btPoint2PointConstraint_calculateSerializeBufferSize    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getParam as btPoint2PointConstraint_getParam    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getInfo1 as btPoint2PointConstraint_getInfo1    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_getInfo2 as btPoint2PointConstraint_getInfo2    `( BtPoint2PointConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_setPivotA as btPoint2PointConstraint_setPivotA    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pivotA+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_setPivotA as btPoint2PointConstraint_setPivotA'    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pivotA+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_setPivotB as btPoint2PointConstraint_setPivotB    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pivotB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_setPivotB as btPoint2PointConstraint_setPivotB'    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pivotB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_pivotInA_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_pivotInA_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_pivotInB_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_pivotInB_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_flags_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_flags_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_erp_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_erp_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_cfm_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_cfm_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_useSolveConstraintObsolete_set    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_useSolveConstraintObsolete_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_setting_set    `( BtPoint2PointConstraintClass bc , BtConstraintSettingClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraint_m_setting_get    `( BtPoint2PointConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtConstraintSetting'  mkBtConstraintSetting* #}+-- * btPoint2PointConstraintDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_new as btPoint2PointConstraintDoubleData    {  } -> `BtPoint2PointConstraintDoubleData' mkBtPoint2PointConstraintDoubleData* #}+{#fun btPoint2PointConstraintDoubleData_free    `( BtPoint2PointConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_typeConstraintData_set    `( BtPoint2PointConstraintDoubleDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_typeConstraintData_get    `( BtPoint2PointConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_pivotInA_set    `( BtPoint2PointConstraintDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_pivotInA_get    `( BtPoint2PointConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_pivotInB_set    `( BtPoint2PointConstraintDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintDoubleData_m_pivotInB_get    `( BtPoint2PointConstraintDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+-- * btPoint2PointConstraintFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_new as btPoint2PointConstraintFloatData    {  } -> `BtPoint2PointConstraintFloatData' mkBtPoint2PointConstraintFloatData* #}+{#fun btPoint2PointConstraintFloatData_free    `( BtPoint2PointConstraintFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_typeConstraintData_set    `( BtPoint2PointConstraintFloatDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_typeConstraintData_get    `( BtPoint2PointConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_pivotInA_set    `( BtPoint2PointConstraintFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_pivotInA_get    `( BtPoint2PointConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_pivotInB_set    `( BtPoint2PointConstraintFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp?r=2223>+-}+{#fun btPoint2PointConstraintFloatData_m_pivotInB_get    `( BtPoint2PointConstraintFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+-- * btRotationalLimitMotor+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_new as btRotationalLimitMotor    {  } -> `BtRotationalLimitMotor' mkBtRotationalLimitMotor* #}+{#fun btRotationalLimitMotor_free    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_testLimitValue as btRotationalLimitMotor_testLimitValue    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ test_value+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_solveAngularLimits as btRotationalLimitMotor_solveAngularLimits    `( BtRotationalLimitMotorClass bc , BtRigidBodyClass p3 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+, withVec3* `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ jacDiagABInv+, withBt* `p3'  -- ^ body0+, withBt* `p4'  -- ^ body1+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_solveAngularLimits as btRotationalLimitMotor_solveAngularLimits'    `( BtRotationalLimitMotorClass bc , BtRigidBodyClass p3 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ jacDiagABInv+, withBt* `p3'  -- ^ body0+, withBt* `p4'  -- ^ body1+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_needApplyTorques as btRotationalLimitMotor_needApplyTorques    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_isLimited as btRotationalLimitMotor_isLimited    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_accumulatedImpulse_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_accumulatedImpulse_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_bounce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_bounce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentLimitError_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentLimitError_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentPosition_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_currentPosition_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_damping_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_damping_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_enableMotor_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_enableMotor_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_hiLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_hiLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_limitSoftness_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_limitSoftness_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_loLimit_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_loLimit_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_maxLimitForce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_maxLimitForce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_maxMotorForce_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_maxMotorForce_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_normalCFM_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_normalCFM_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_stopCFM_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_stopCFM_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_stopERP_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_stopERP_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_targetVelocity_set    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btRotationalLimitMotor_m_targetVelocity_get    `( BtRotationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btSequentialImpulseConstraintSolver+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_new as btSequentialImpulseConstraintSolver    {  } -> `BtSequentialImpulseConstraintSolver' mkBtSequentialImpulseConstraintSolver* #}+{#fun btSequentialImpulseConstraintSolver_free    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_convertContact as btSequentialImpulseConstraintSolver_convertContact    `( BtSequentialImpulseConstraintSolverClass bc , BtPersistentManifoldClass p0 , BtContactSolverInfoClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ manifold+, withBt* `p1'  -- ^ infoGlobal+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_setRandSeed as btSequentialImpulseConstraintSolver_setRandSeed    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ +,  `Word64'  -- ^ seed+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_getFixedBody as btSequentialImpulseConstraintSolver_getFixedBody    `( )' =>     {  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimitSIMD as btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimitSIMD    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_btRand2 as btSequentialImpulseConstraintSolver_btRand2    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word64'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_setFrictionConstraintImpulse as btSequentialImpulseConstraintSolver_setFrictionConstraintImpulse    `( BtSequentialImpulseConstraintSolverClass bc , BtSolverConstraintClass p0 , BtRigidBodyClass p1 , BtRigidBodyClass p2 , BtManifoldPointClass p3 , BtContactSolverInfoClass p4 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solverConstraint+, withBt* `p1'  -- ^ rb0+, withBt* `p2'  -- ^ rb1+, withBt* `p3'  -- ^ cp+, withBt* `p4'  -- ^ infoGlobal+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_getOrInitSolverBody as btSequentialImpulseConstraintSolver_getOrInitSolverBody    `( BtSequentialImpulseConstraintSolverClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGenericSIMD as btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGenericSIMD    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_btRandInt2 as btSequentialImpulseConstraintSolver_btRandInt2    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimit as btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimit    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_reset as btSequentialImpulseConstraintSolver_reset    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSplitPenetrationImpulseCacheFriendly as btSequentialImpulseConstraintSolver_resolveSplitPenetrationImpulseCacheFriendly    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_setupFrictionConstraint as btSequentialImpulseConstraintSolver_setupFrictionConstraint    `( BtSequentialImpulseConstraintSolverClass bc , BtSolverConstraintClass p0 , BtRigidBodyClass p2 , BtRigidBodyClass p3 , BtManifoldPointClass p4 , BtCollisionObjectClass p7 , BtCollisionObjectClass p8 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solverConstraint+, withVec3* `Vec3'  peekVec3* -- ^ normalAxis+, withBt* `p2'  -- ^ solverBodyA+, withBt* `p3'  -- ^ solverBodyIdB+, withBt* `p4'  -- ^ cp+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos1+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos2+, withBt* `p7'  -- ^ colObj0+, withBt* `p8'  -- ^ colObj1+,  `Float'  -- ^ relaxation+,  `Float'  -- ^ desiredVelocity+,  `Float'  -- ^ cfmSlip+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_setupFrictionConstraint as btSequentialImpulseConstraintSolver_setupFrictionConstraint'    `( BtSequentialImpulseConstraintSolverClass bc , BtSolverConstraintClass p0 , BtRigidBodyClass p2 , BtRigidBodyClass p3 , BtManifoldPointClass p4 , BtCollisionObjectClass p7 , BtCollisionObjectClass p8 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solverConstraint+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalAxis+, withBt* `p2'  -- ^ solverBodyA+, withBt* `p3'  -- ^ solverBodyIdB+, withBt* `p4'  -- ^ cp+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos1+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos2+, withBt* `p7'  -- ^ colObj0+, withBt* `p8'  -- ^ colObj1+,  `Float'  -- ^ relaxation+,  `Float'  -- ^ desiredVelocity+,  `Float'  -- ^ cfmSlip+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_getRandSeed as btSequentialImpulseConstraintSolver_getRandSeed    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word64'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_addFrictionConstraint as btSequentialImpulseConstraintSolver_addFrictionConstraint    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p1 , BtRigidBodyClass p2 , BtManifoldPointClass p4 , BtCollisionObjectClass p7 , BtCollisionObjectClass p8 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ normalAxis+, withBt* `p1'  -- ^ solverBodyA+, withBt* `p2'  -- ^ solverBodyB+,  `Int'  -- ^ frictionIndex+, withBt* `p4'  -- ^ cp+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos1+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos2+, withBt* `p7'  -- ^ colObj0+, withBt* `p8'  -- ^ colObj1+,  `Float'  -- ^ relaxation+,  `Float'  -- ^ desiredVelocity+,  `Float'  -- ^ cfmSlip+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_addFrictionConstraint as btSequentialImpulseConstraintSolver_addFrictionConstraint'    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p1 , BtRigidBodyClass p2 , BtManifoldPointClass p4 , BtCollisionObjectClass p7 , BtCollisionObjectClass p8 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ normalAxis+, withBt* `p1'  -- ^ solverBodyA+, withBt* `p2'  -- ^ solverBodyB+,  `Int'  -- ^ frictionIndex+, withBt* `p4'  -- ^ cp+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos1+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos2+, withBt* `p7'  -- ^ colObj0+, withBt* `p8'  -- ^ colObj1+,  `Float'  -- ^ relaxation+,  `Float'  -- ^ desiredVelocity+,  `Float'  -- ^ cfmSlip+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_restitutionCurve as btSequentialImpulseConstraintSolver_restitutionCurve    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ rel_vel+,  `Float'  -- ^ restitution+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGeneric as btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGeneric    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_resolveSplitPenetrationSIMD as btSequentialImpulseConstraintSolver_resolveSplitPenetrationSIMD    `( BtSequentialImpulseConstraintSolverClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body1+, withBt* `p1'  -- ^ body2+, withBt* `p2'  -- ^ contactConstraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverContactConstraintPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_btSolverConstraint_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverContactConstraintPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSolverConstraint_'  mkBtAlignedObjectArray_btSolverConstraint_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverNonContactConstraintPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_btSolverConstraint_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverNonContactConstraintPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSolverConstraint_'  mkBtAlignedObjectArray_btSolverConstraint_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverContactFrictionConstraintPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_btSolverConstraint_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpSolverContactFrictionConstraintPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSolverConstraint_'  mkBtAlignedObjectArray_btSolverConstraint_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_orderTmpConstraintPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_orderTmpConstraintPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_orderFrictionConstraintPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_orderFrictionConstraintPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpConstraintSizesPool_set    `( BtSequentialImpulseConstraintSolverClass bc , BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_tmpConstraintSizesPool_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_'  mkBtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_btSeed2_set    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc' ,  `Word64'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp?r=2223>+-}+{#fun btSequentialImpulseConstraintSolver_m_btSeed2_get    `( BtSequentialImpulseConstraintSolverClass bc )' =>     { withBt* `bc'  } ->  `Word64'   #}+-- * btSliderConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_new0 as btSliderConstraint0    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withTransform* `Transform' , withTransform* `Transform' ,  `Bool'  } -> `BtSliderConstraint' mkBtSliderConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_new1 as btSliderConstraint1    `( BtRigidBodyClass p0 )' =>     {  withBt* `p0' , withTransform* `Transform' ,  `Bool'  } -> `BtSliderConstraint' mkBtSliderConstraint* #}+{#fun btSliderConstraint_free    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#175>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRigidBodyB as btSliderConstraint_getRigidBodyB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#174>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRigidBodyA as btSliderConstraint_getRigidBodyA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#249>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getAngDepth as btSliderConstraint_getAngDepth    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getTargetAngMotorVelocity as btSliderConstraint_getTargetAngMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getAngularPos as btSliderConstraint_getAngularPos    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#219>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionLimAng as btSliderConstraint_setRestitutionLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionLimAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getParam as btSliderConstraint_getParam    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getInfo1 as btSliderConstraint_getInfo1    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getInfo2 as btSliderConstraint_getInfo2    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getPoweredLinMotor as btSliderConstraint_getPoweredLinMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#259>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setUseFrameOffset as btSliderConstraint_setUseFrameOffset    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ frameOffsetOnOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessLimLin as btSliderConstraint_setSoftnessLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessLimLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getAncorInA as btSliderConstraint_getAncorInA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#256>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getAncorInB as btSliderConstraint_getAncorInB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#214>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingDirAng as btSliderConstraint_setDampingDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingDirAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSolveLinLimit as btSliderConstraint_getSolveLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getUseFrameOffset as btSliderConstraint_getUseFrameOffset    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getMaxAngMotorForce as btSliderConstraint_getMaxAngMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#213>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionDirAng as btSliderConstraint_setRestitutionDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionDirAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#232>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getMaxLinMotorForce as btSliderConstraint_getMaxLinMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingOrthoLin as btSliderConstraint_setDampingOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingOrthoLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSolveAngLimit as btSliderConstraint_getSolveAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#233>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setPoweredAngMotor as btSliderConstraint_setPoweredAngMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ onOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getLinearPos as btSliderConstraint_getLinearPos    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#177>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getCalculatedTransformB as btSliderConstraint_getCalculatedTransformB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getCalculatedTransformA as btSliderConstraint_getCalculatedTransformA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#253>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_testAngLimits as btSliderConstraint_testAngLimits    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingDirLin as btSliderConstraint_setDampingDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingDirLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getUpperAngLimit as btSliderConstraint_getUpperAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setUpperAngLimit as btSliderConstraint_setUpperAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ upperLimit+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#201>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionLimAng as btSliderConstraint_getRestitutionLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessOrthoLin as btSliderConstraint_getSoftnessOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#183>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setLowerLinLimit as btSliderConstraint_setLowerLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ lowerLimit+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#192>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionDirLin as btSliderConstraint_getRestitutionDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getInfo1NonVirtual as btSliderConstraint_getInfo1NonVirtual    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionLimLin as btSliderConstraint_setRestitutionLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionLimLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setTargetLinMotorVelocity as btSliderConstraint_setTargetLinMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ targetLinMotorVelocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#184>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getUpperLinLimit as btSliderConstraint_getUpperLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setMaxLinMotorForce as btSliderConstraint_setMaxLinMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ maxLinMotorForce+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getLowerAngLimit as btSliderConstraint_getLowerAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessDirLin as btSliderConstraint_setSoftnessDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessDirLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_initParams as btSliderConstraint_initParams    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getInfo2NonVirtual as btSliderConstraint_getInfo2NonVirtual    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+, withVec3* `Vec3'  peekVec3* -- ^ linVelA+, withVec3* `Vec3'  peekVec3* -- ^ linVelB+,  `Float'  -- ^ rbAinvMass+,  `Float'  -- ^ rbBinvMass+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getInfo2NonVirtual as btSliderConstraint_getInfo2NonVirtual'    `( BtSliderConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelA+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVelB+,  `Float'  -- ^ rbAinvMass+,  `Float'  -- ^ rbBinvMass+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetA0 as btSliderConstraint_getFrameOffsetA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetA0 as btSliderConstraint_getFrameOffsetA0    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetA1 as btSliderConstraint_getFrameOffsetA1    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#179>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetB0 as btSliderConstraint_getFrameOffsetB    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#179>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetB0 as btSliderConstraint_getFrameOffsetB0    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#181>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getFrameOffsetB1 as btSliderConstraint_getFrameOffsetB1    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#196>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingDirAng as btSliderConstraint_getDampingDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#198>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionLimLin as btSliderConstraint_getRestitutionLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessOrthoAng as btSliderConstraint_getSoftnessOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessOrthoLin as btSliderConstraint_setSoftnessOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessOrthoLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#218>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessLimAng as btSliderConstraint_setSoftnessLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessLimAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingDirLin as btSliderConstraint_getDampingDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessLimLin as btSliderConstraint_getSoftnessLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setPoweredLinMotor as btSliderConstraint_setPoweredLinMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ onOff+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#251>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_calculateTransforms as btSliderConstraint_calculateTransforms    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#251>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_calculateTransforms as btSliderConstraint_calculateTransforms'    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getLinDepth as btSliderConstraint_getLinDepth    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_serialize as btSliderConstraint_serialize    `( BtSliderConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#199>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingLimLin as btSliderConstraint_getDampingLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionDirAng as btSliderConstraint_getRestitutionDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#272>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setParam as btSliderConstraint_setParam    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingLimAng as btSliderConstraint_getDampingLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionOrthoLin as btSliderConstraint_setRestitutionOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionOrthoLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionDirLin as btSliderConstraint_setRestitutionDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionDirLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#220>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingLimAng as btSliderConstraint_setDampingLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingLimAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#212>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessDirAng as btSliderConstraint_setSoftnessDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessDirAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setUpperLinLimit as btSliderConstraint_setUpperLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ upperLimit+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#303>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_calculateSerializeBufferSize as btSliderConstraint_calculateSerializeBufferSize    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setTargetAngMotorVelocity as btSliderConstraint_setTargetAngMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ targetAngMotorVelocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessDirAng as btSliderConstraint_getSoftnessDirAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setMaxAngMotorForce as btSliderConstraint_setMaxAngMotorForce    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ maxAngMotorForce+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setLowerAngLimit as btSliderConstraint_setLowerAngLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ lowerLimit+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#234>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getPoweredAngMotor as btSliderConstraint_getPoweredAngMotor    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingOrthoAng as btSliderConstraint_getDampingOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#204>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionOrthoLin as btSliderConstraint_getRestitutionOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getTargetLinMotorVelocity as btSliderConstraint_getTargetLinMotorVelocity    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#252>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_testLinLimits as btSliderConstraint_testLinLimits    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getLowerLinLimit as btSliderConstraint_getLowerLinLimit    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingOrthoAng as btSliderConstraint_setDampingOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingOrthoAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setRestitutionOrthoAng as btSliderConstraint_setRestitutionOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ restitutionOrthoAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getRestitutionOrthoAng as btSliderConstraint_getRestitutionOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getDampingOrthoLin as btSliderConstraint_getDampingOrthoLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessLimAng as btSliderConstraint_getSoftnessLimAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setSoftnessOrthoAng as btSliderConstraint_setSoftnessOrthoAng    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ softnessOrthoAng+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setDampingLimLin as btSliderConstraint_setDampingLimLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dampingLimLin+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setFrames as btSliderConstraint_setFrames    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ frameA+, withTransform* `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#261>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_setFrames as btSliderConstraint_setFrames'    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ frameA+, allocaTransform-  `Transform'  peekTransform* -- ^ frameB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#191>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getSoftnessDirLin as btSliderConstraint_getSoftnessDirLin    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#190>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_getUseLinearReferenceFrameA as btSliderConstraint_getUseLinearReferenceFrameA    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useSolveConstraintObsolete_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useSolveConstraintObsolete_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useOffsetForConstraintFrame_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useOffsetForConstraintFrame_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_frameInA_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_frameInA_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_frameInB_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_frameInB_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useLinearReferenceFrameA_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_useLinearReferenceFrameA_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_lowerLinLimit_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_lowerLinLimit_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_upperLinLimit_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_upperLinLimit_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_lowerAngLimit_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_lowerAngLimit_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_upperAngLimit_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_upperAngLimit_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessDirLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessDirLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionDirLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionDirLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingDirLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingDirLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmDirLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmDirLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessDirAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessDirAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionDirAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionDirAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingDirAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingDirAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmDirAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmDirAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessLimLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessLimLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionLimLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionLimLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingLimLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingLimLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmLimLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmLimLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessLimAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessLimAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionLimAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionLimAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingLimAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingLimAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmLimAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmLimAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessOrthoLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessOrthoLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionOrthoLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionOrthoLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingOrthoLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingOrthoLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmOrthoLin_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmOrthoLin_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessOrthoAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_softnessOrthoAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionOrthoAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_restitutionOrthoAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingOrthoAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_dampingOrthoAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmOrthoAng_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_cfmOrthoAng_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_solveLinLim_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_solveLinLim_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_solveAngLim_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_solveAngLim_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_flags_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_flags_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_timeStep_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_timeStep_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_calculatedTransformA_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_calculatedTransformA_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_calculatedTransformB_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_calculatedTransformB_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_sliderAxis_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_sliderAxis_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_realPivotAInW_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_realPivotAInW_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_realPivotBInW_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_realPivotBInW_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_projPivotInW_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_projPivotInW_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_delta_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_delta_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_depth_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_depth_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_relPosA_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_relPosA_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_relPosB_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_relPosB_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_linPos_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_linPos_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_angPos_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_angPos_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_angDepth_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_angDepth_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_kAngle_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_kAngle_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_poweredLinMotor_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_poweredLinMotor_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_targetLinMotorVelocity_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_targetLinMotorVelocity_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_maxLinMotorForce_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_maxLinMotorForce_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_accumulatedLinMotorImpulse_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_accumulatedLinMotorImpulse_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_poweredAngMotor_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_poweredAngMotor_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_targetAngMotorVelocity_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_targetAngMotorVelocity_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_maxAngMotorForce_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_maxAngMotorForce_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_accumulatedAngMotorImpulse_set    `( BtSliderConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraint_m_accumulatedAngMotorImpulse_get    `( BtSliderConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btSliderConstraintData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_new as btSliderConstraintData    {  } -> `BtSliderConstraintData' mkBtSliderConstraintData* #}+{#fun btSliderConstraintData_free    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#287>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_typeConstraintData_set    `( BtSliderConstraintDataClass bc , BtTypedConstraintDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#287>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_typeConstraintData_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraintData'  mkBtTypedConstraintData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_rbAFrame_set    `( BtSliderConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_rbAFrame_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_rbBFrame_set    `( BtSliderConstraintDataClass bc , BtTransformFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_rbBFrame_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtTransformFloatData'  mkBtTransformFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_linearUpperLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_linearUpperLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#292>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_linearLowerLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#292>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_linearLowerLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_angularUpperLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#294>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_angularUpperLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_angularLowerLimit_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_angularLowerLimit_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_useLinearReferenceFrameA_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_useLinearReferenceFrameA_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_useOffsetForConstraintFrame_set    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp?r=2223>+-}+{#fun btSliderConstraintData_m_useOffsetForConstraintFrame_get    `( BtSliderConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btSolverBodyObsolete+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_new as btSolverBodyObsolete    {  } -> `BtSolverBodyObsolete' mkBtSolverBodyObsolete* #}+{#fun btSolverBodyObsolete_free    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_getAngularVelocity as btSolverBodyObsolete_getAngularVelocity    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_getAngularVelocity as btSolverBodyObsolete_getAngularVelocity'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_writebackVelocity0 as btSolverBodyObsolete_writebackVelocity    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_writebackVelocity0 as btSolverBodyObsolete_writebackVelocity0    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_writebackVelocity1 as btSolverBodyObsolete_writebackVelocity1    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_internalApplyPushImpulse as btSolverBodyObsolete_internalApplyPushImpulse    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearComponent+, withVec3* `Vec3'  peekVec3* -- ^ angularComponent+,  `Float'  -- ^ impulseMagnitude+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_internalApplyPushImpulse as btSolverBodyObsolete_internalApplyPushImpulse'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearComponent+, allocaVec3-  `Vec3'  peekVec3* -- ^ angularComponent+,  `Float'  -- ^ impulseMagnitude+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_getVelocityInLocalPointObsolete as btSolverBodyObsolete_getVelocityInLocalPointObsolete    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rel_pos+, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_getVelocityInLocalPointObsolete as btSolverBodyObsolete_getVelocityInLocalPointObsolete'    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos+, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_deltaLinearVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_deltaLinearVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_deltaAngularVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_deltaAngularVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_angularFactor_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_angularFactor_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_invMass_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_invMass_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_originalBody_set    `( BtSolverBodyObsoleteClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#115>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_originalBody_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_pushVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_pushVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_turnVelocity_set    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverBody.cpp?r=2223>+-}+{#fun btSolverBodyObsolete_m_turnVelocity_get    `( BtSolverBodyObsoleteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btSolverConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_new as btSolverConstraint    {  } -> `BtSolverConstraint' mkBtSolverConstraint* #}+{#fun btSolverConstraint_free    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_angularComponentA_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_angularComponentA_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_angularComponentB_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#40>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_angularComponentB_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_appliedImpulse_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_appliedImpulse_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_appliedPushImpulse_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#42>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_appliedPushImpulse_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_cfm_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_cfm_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_contactNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_contactNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_friction_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_friction_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_jacDiagABInv_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_jacDiagABInv_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_lowerLimit_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_lowerLimit_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_relpos1CrossNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_relpos1CrossNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_relpos2CrossNormal_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_relpos2CrossNormal_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_rhs_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_rhs_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_rhsPenetration_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_rhsPenetration_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_upperLimit_set    `( BtSolverConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btSolverConstraint.cpp?r=2223>+-}+{#fun btSolverConstraint_m_upperLimit_get    `( BtSolverConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btTranslationalLimitMotor+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_new as btTranslationalLimitMotor    {  } -> `BtTranslationalLimitMotor' mkBtTranslationalLimitMotor* #}+{#fun btTranslationalLimitMotor_free    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_testLimitValue as btTranslationalLimitMotor_testLimitValue    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+,  `Float'  -- ^ test_value+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_needApplyForce as btTranslationalLimitMotor_needApplyForce    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_solveLinearAxis as btTranslationalLimitMotor_solveLinearAxis    `( BtTranslationalLimitMotorClass bc , BtRigidBodyClass p2 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+,  `Float'  -- ^ jacDiagABInv+, withBt* `p2'  -- ^ body1+, withVec3* `Vec3'  peekVec3* -- ^ pointInA+, withBt* `p4'  -- ^ body2+, withVec3* `Vec3'  peekVec3* -- ^ pointInB+,  `Int'  -- ^ limit_index+, withVec3* `Vec3'  peekVec3* -- ^ axis_normal_on_a+, withVec3* `Vec3'  peekVec3* -- ^ anchorPos+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_solveLinearAxis as btTranslationalLimitMotor_solveLinearAxis'    `( BtTranslationalLimitMotorClass bc , BtRigidBodyClass p2 , BtRigidBodyClass p4 )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+,  `Float'  -- ^ jacDiagABInv+, withBt* `p2'  -- ^ body1+, allocaVec3-  `Vec3'  peekVec3* -- ^ pointInA+, withBt* `p4'  -- ^ body2+, allocaVec3-  `Vec3'  peekVec3* -- ^ pointInB+,  `Int'  -- ^ limit_index+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis_normal_on_a+, allocaVec3-  `Vec3'  peekVec3* -- ^ anchorPos+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_isLimited as btTranslationalLimitMotor_isLimited    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ limitIndex+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_accumulatedImpulse_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_accumulatedImpulse_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_currentLimitError_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_currentLimitError_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_currentLinearDiff_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_currentLinearDiff_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_damping_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_damping_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_limitSoftness_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_limitSoftness_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_lowerLimit_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_lowerLimit_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_maxMotorForce_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_maxMotorForce_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_normalCFM_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_normalCFM_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_restitution_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_restitution_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_stopCFM_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_stopCFM_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_stopERP_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_stopERP_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_targetVelocity_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_targetVelocity_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_upperLimit_set    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp?r=2223>+-}+{#fun btTranslationalLimitMotor_m_upperLimit_get    `( BtTranslationalLimitMotorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btTypedConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#192>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyB0 as btTypedConstraint_getRigidBodyB    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#192>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyB0 as btTypedConstraint_getRigidBodyB0    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#201>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyB1 as btTypedConstraint_getRigidBodyB1    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_buildJacobian as btTypedConstraint_buildJacobian    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyA0 as btTypedConstraint_getRigidBodyA    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyA0 as btTypedConstraint_getRigidBodyA0    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#197>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getRigidBodyA1 as btTypedConstraint_getRigidBodyA1    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_serialize as btTypedConstraint_serialize    `( BtTypedConstraintClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_enableFeedback as btTypedConstraint_enableFeedback    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ needsFeedback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getUserConstraintId as btTypedConstraint_getUserConstraintId    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setParam as btTypedConstraint_setParam    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Float'  -- ^ value+,  `Int'  -- ^ axis+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#280>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getParam as btTypedConstraint_getParam    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ num+,  `Int'  -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getInfo1 as btTypedConstraint_getInfo1    `( BtTypedConstraintClass bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getInfo2 as btTypedConstraint_getInfo2    `( BtTypedConstraintClass bc , BtTypedConstraint_btConstraintInfo2Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ info+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setBreakingImpulseThreshold as btTypedConstraint_setBreakingImpulseThreshold    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ threshold+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getFixedBody as btTypedConstraint_getFixedBody    `( )' =>     {  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_calculateSerializeBufferSize as btTypedConstraint_calculateSerializeBufferSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#173>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_isEnabled as btTypedConstraint_isEnabled    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setUserConstraintId as btTypedConstraint_setUserConstraintId    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ uid+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getMotorFactor as btTypedConstraint_getMotorFactor    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ pos+,  `Float'  -- ^ lowLim+,  `Float'  -- ^ uppLim+,  `Float'  -- ^ vel+,  `Float'  -- ^ timeFact+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getDbgDrawSize as btTypedConstraint_getDbgDrawSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_internalSetAppliedImpulse as btTypedConstraint_internalSetAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ appliedImpulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#241>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_needsFeedback as btTypedConstraint_needsFeedback    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#231>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getUserConstraintPtr as btTypedConstraint_getUserConstraintPtr    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setEnabled as btTypedConstraint_setEnabled    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ enabled+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getUid as btTypedConstraint_getUid    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setDbgDrawSize as btTypedConstraint_setDbgDrawSize    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dbgDrawSize+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setUserConstraintType as btTypedConstraint_setUserConstraintType    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ userConstraintType+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_internalGetAppliedImpulse as btTypedConstraint_internalGetAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setupSolverConstraint as btTypedConstraint_setupSolverConstraint    `( BtTypedConstraintClass bc , BtAlignedObjectArray_btSolverConstraint_Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ca+,  `Int'  -- ^ solverBodyA+,  `Int'  -- ^ solverBodyB+,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getBreakingImpulseThreshold as btTypedConstraint_getBreakingImpulseThreshold    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getUserConstraintType as btTypedConstraint_getUserConstraintType    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_solveConstraintObsolete as btTypedConstraint_solveConstraintObsolete    `( BtTypedConstraintClass bc , BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+, withBt* `p1'  -- ^ arg1+,  `Float'  -- ^ arg2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_getAppliedImpulse as btTypedConstraint_getAppliedImpulse    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_setUserConstraintPtr as btTypedConstraint_setUserConstraintPtr    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_appliedImpulse_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_appliedImpulse_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_breakingImpulseThreshold_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_breakingImpulseThreshold_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_dbgDrawSize_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_dbgDrawSize_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_isEnabled_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_isEnabled_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_needsFeedback_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_needsFeedback_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_rbA_set    `( BtTypedConstraintClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_rbA_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_rbB_set    `( BtTypedConstraintClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_rbB_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_userConstraintType_set    `( BtTypedConstraintClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraint_m_userConstraintType_get    `( BtTypedConstraintClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btTypedConstraintData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#317>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_new as btTypedConstraintData    {  } -> `BtTypedConstraintData' mkBtTypedConstraintData* #}+{#fun btTypedConstraintData_free    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_appliedImpulse_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#327>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_appliedImpulse_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#328>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_dbgDrawSize_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#328>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_dbgDrawSize_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_name_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_name_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_needsFeedback_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_needsFeedback_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_objectType_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_objectType_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_rbA_set    `( BtTypedConstraintDataClass bc , BtRigidBodyFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_rbA_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBodyFloatData'  mkBtRigidBodyFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_rbB_set    `( BtTypedConstraintDataClass bc , BtRigidBodyFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_rbB_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBodyFloatData'  mkBtRigidBodyFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_userConstraintId_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_userConstraintId_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_userConstraintType_set    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp?r=2223>+-}+{#fun btTypedConstraintData_m_userConstraintType_get    `( BtTypedConstraintDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btUniversalConstraint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#44>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_new as btUniversalConstraint    `( BtRigidBodyClass p0 , BtRigidBodyClass p1 )' =>     {  withBt* `p0' , withBt* `p1' , withVec3* `Vec3' , withVec3* `Vec3' , withVec3* `Vec3'  } -> `BtUniversalConstraint' mkBtUniversalConstraint* #}+{#fun btUniversalConstraint_free    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_setLowerLimit as btUniversalConstraint_setLowerLimit    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ ang1min+,  `Float'  -- ^ ang2min+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAnchor2 as btUniversalConstraint_getAnchor2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_setAxis as btUniversalConstraint_setAxis    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ axis1+, withVec3* `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_setAxis as btUniversalConstraint_setAxis'    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ axis1+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis2+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAxis1 as btUniversalConstraint_getAxis1    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAnchor as btUniversalConstraint_getAnchor    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAxis2 as btUniversalConstraint_getAxis2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_setUpperLimit as btUniversalConstraint_setUpperLimit    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ ang1max+,  `Float'  -- ^ ang2max+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAngle2 as btUniversalConstraint_getAngle2    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_getAngle1 as btUniversalConstraint_getAngle1    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_anchor_set    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_anchor_get    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_axis1_set    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_axis1_get    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_axis2_set    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp?r=2223>+-}+{#fun btUniversalConstraint_m_axis2_get    `( BtUniversalConstraintClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}
Physics/Bullet/Raw/BulletDynamics/Dynamics.chs view
@@ -11,1527 +11,2144 @@ import Physics.Bullet.Raw.Types import Physics.Bullet.Raw.Class -- * btActionInterface-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.cpp?r=2223>--}-{#fun btActionInterface_updateAction as btActionInterface_updateAction    `( BtActionInterfaceClass bc , BtCollisionWorldClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionWorld-,  `Float'  -- ^ deltaTimeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.cpp?r=2223>--}-{#fun btActionInterface_debugDraw as btActionInterface_debugDraw    `( BtActionInterfaceClass bc , BtIDebugDrawClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ debugDrawer- } ->  `()'  #}--- * btContinuousDynamicsWorld-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.h?r=2223#31>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.cpp?r=2223>--}-{#fun btContinuousDynamicsWorld_new as btContinuousDynamicsWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtConstraintSolverClass p2 , BtCollisionConfigurationClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtContinuousDynamicsWorld' mkBtContinuousDynamicsWorld* #}-{#fun btContinuousDynamicsWorld_free    `( BtContinuousDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.h?r=2223#35>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.cpp?r=2223>--}-{#fun btContinuousDynamicsWorld_internalSingleStepSimulation as btContinuousDynamicsWorld_internalSingleStepSimulation    `( BtContinuousDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.h?r=2223#37>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btContinuousDynamicsWorld.cpp?r=2223>--}-{#fun btContinuousDynamicsWorld_calculateTimeOfImpacts as btContinuousDynamicsWorld_calculateTimeOfImpacts    `( BtContinuousDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}--- * btDiscreteDynamicsWorld-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_new as btDiscreteDynamicsWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtConstraintSolverClass p2 , BtCollisionConfigurationClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtDiscreteDynamicsWorld' mkBtDiscreteDynamicsWorld* #}-{#fun btDiscreteDynamicsWorld_free    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#124>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_setGravity as btDiscreteDynamicsWorld_setGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#124>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_setGravity as btDiscreteDynamicsWorld_setGravity'    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addAction as btDiscreteDynamicsWorld_addAction    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_applyGravity as btDiscreteDynamicsWorld_applyGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#196>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_serialize as btDiscreteDynamicsWorld_serialize    `( BtDiscreteDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getCollisionWorld as btDiscreteDynamicsWorld_getCollisionWorld    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionWorld' mkBtCollisionWorld*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addRigidBody0 as btDiscreteDynamicsWorld_addRigidBody    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#130>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addRigidBody0 as btDiscreteDynamicsWorld_addRigidBody0    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addRigidBody1 as btDiscreteDynamicsWorld_addRigidBody1    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body-,  `Int'  -- ^ group-,  `Int'  -- ^ mask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#161>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_clearForces as btDiscreteDynamicsWorld_clearForces    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#180>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeVehicle as btDiscreteDynamicsWorld_removeVehicle    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ vehicle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getSynchronizeAllMotionStates as btDiscreteDynamicsWorld_getSynchronizeAllMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#166>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_setNumTasks as btDiscreteDynamicsWorld_setNumTasks    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ numTasks- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#186>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_setSynchronizeAllMotionStates as btDiscreteDynamicsWorld_setSynchronizeAllMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ synchronizeAll- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#103>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeConstraint as btDiscreteDynamicsWorld_removeConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ constraint- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#148>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getNumConstraints as btDiscreteDynamicsWorld_getNumConstraints    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#128>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addCollisionObject as btDiscreteDynamicsWorld_addCollisionObject    `( BtDiscreteDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject-,  `Int'  -- ^ collisionFilterGroup-,  `Int'  -- ^ collisionFilterMask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeRigidBody as btDiscreteDynamicsWorld_removeRigidBody    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_debugDrawConstraint as btDiscreteDynamicsWorld_debugDrawConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ constraint- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_debugDrawWorld as btDiscreteDynamicsWorld_debugDrawWorld    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addConstraint as btDiscreteDynamicsWorld_addConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ constraint-,  `Bool'  -- ^ disableCollisionsBetweenLinkedBodies- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#126>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getGravity as btDiscreteDynamicsWorld_getGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeAction as btDiscreteDynamicsWorld_removeAction    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#184>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeCharacter as btDiscreteDynamicsWorld_removeCharacter    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ character- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getConstraint0 as btDiscreteDynamicsWorld_getConstraint    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getConstraint0 as btDiscreteDynamicsWorld_getConstraint0    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#152>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getConstraint1 as btDiscreteDynamicsWorld_getConstraint1    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_getConstraintSolver as btDiscreteDynamicsWorld_getConstraintSolver    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConstraintSolver' mkBtConstraintSolver*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#93>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_stepSimulation as btDiscreteDynamicsWorld_stepSimulation    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-,  `Int'  -- ^ maxSubSteps-,  `Float'  -- ^ fixedTimeStep- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#182>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addCharacter as btDiscreteDynamicsWorld_addCharacter    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ character- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#172>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_updateVehicles as btDiscreteDynamicsWorld_updateVehicles    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#99>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_synchronizeSingleMotionState as btDiscreteDynamicsWorld_synchronizeSingleMotionState    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#178>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_addVehicle as btDiscreteDynamicsWorld_addVehicle    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ vehicle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_synchronizeMotionStates as btDiscreteDynamicsWorld_synchronizeMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_removeCollisionObject as btDiscreteDynamicsWorld_removeCollisionObject    `( BtDiscreteDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>--}-{#fun btDiscreteDynamicsWorld_setConstraintSolver as btDiscreteDynamicsWorld_setConstraintSolver    `( BtDiscreteDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ solver- } ->  `()'  #}--- * btDynamicsWorld-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_setGravity as btDynamicsWorld_setGravity    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_setGravity as btDynamicsWorld_setGravity'    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addAction as btDynamicsWorld_addAction    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ action- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getSolverInfo as btDynamicsWorld_getSolverInfo    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtContactSolverInfo' mkBtContactSolverInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addRigidBody0 as btDynamicsWorld_addRigidBody    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addRigidBody0 as btDynamicsWorld_addRigidBody0    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addRigidBody1 as btDynamicsWorld_addRigidBody1    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body-,  `Int'  -- ^ group-,  `Int'  -- ^ mask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#106>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_clearForces as btDynamicsWorld_clearForces    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_removeVehicle as btDynamicsWorld_removeVehicle    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ vehicle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_removeConstraint as btDynamicsWorld_removeConstraint    `( BtDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ constraint- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#98>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getNumConstraints as btDynamicsWorld_getNumConstraints    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_removeRigidBody as btDynamicsWorld_removeRigidBody    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#86>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_synchronizeMotionStates as btDynamicsWorld_synchronizeMotionStates    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#70>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addConstraint as btDynamicsWorld_addConstraint    `( BtDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ constraint-,  `Bool'  -- ^ disableCollisionsBetweenLinkedBodies- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getGravity as btDynamicsWorld_getGravity    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_debugDrawWorld as btDynamicsWorld_debugDrawWorld    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_removeAction as btDynamicsWorld_removeAction    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ action- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_removeCharacter as btDynamicsWorld_removeCharacter    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ character- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getConstraint0 as btDynamicsWorld_getConstraint    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getConstraint0 as btDynamicsWorld_getConstraint0    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getConstraint1 as btDynamicsWorld_getConstraint1    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_getConstraintSolver as btDynamicsWorld_getConstraintSolver    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConstraintSolver' mkBtConstraintSolver*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_stepSimulation as btDynamicsWorld_stepSimulation    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-,  `Int'  -- ^ maxSubSteps-,  `Float'  -- ^ fixedTimeStep- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addCharacter as btDynamicsWorld_addCharacter    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ character- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_addVehicle as btDynamicsWorld_addVehicle    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ vehicle- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#94>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>--}-{#fun btDynamicsWorld_setConstraintSolver as btDynamicsWorld_setConstraintSolver    `( BtDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ solver- } ->  `()'  #}--- * btRigidBody-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#164>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_new0 as btRigidBody0    `( BtRigidBody_btRigidBodyConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtRigidBody' mkBtRigidBody* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_new1 as btRigidBody1    `( BtMotionStateClass p1 , BtCollisionShapeClass p2 )' =>     {   `Float' , withBt* `p1' , withBt* `p2' , withVector3* `Vector3'  } -> `BtRigidBody' mkBtRigidBody* #}-{#fun btRigidBody_free    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setGravity as btRigidBody_setGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ acceleration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#209>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setGravity as btRigidBody_setGravity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ acceleration- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#405>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_updateDeactivation as btRigidBody_updateDeactivation    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angFac- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angFac- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angFac- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor0'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angFac- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#482>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularFactor1 as btRigidBody_setAngularFactor1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ angFac- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#606>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalWritebackVelocity0 as btRigidBody_internalWritebackVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#606>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalWritebackVelocity0 as btRigidBody_internalWritebackVelocity0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#619>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalWritebackVelocity1 as btRigidBody_internalWritebackVelocity1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#532>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getPushVelocity as btRigidBody_getPushVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#551>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetDeltaAngularVelocity as btRigidBody_internalGetDeltaAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#207>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyGravity as btRigidBody_applyGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#343>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getOrientation as btRigidBody_getOrientation    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyCentralForce as btRigidBody_applyCentralForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#268>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyCentralForce as btRigidBody_applyCentralForce'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#466>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setMotionState as btRigidBody_setMotionState    `( BtRigidBodyClass bc , BtMotionStateClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ motionState- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_clearForces as btRigidBody_clearForces    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getMotionState0 as btRigidBody_getMotionState    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtMotionState' mkBtMotionState*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#458>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getMotionState0 as btRigidBody_getMotionState0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtMotionState' mkBtMotionState*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#462>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getMotionState1 as btRigidBody_getMotionState1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtMotionState' mkBtMotionState*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#216>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setDamping as btRigidBody_setDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ lin_damping-,  `Float'  -- ^ ang_damping- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyImpulse as btRigidBody_applyImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse-, withVector3* `Vector3'  peekVector3* -- ^ rel_pos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyImpulse as btRigidBody_applyImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse-, allocaVector3-  `Vector3'  peekVector3* -- ^ rel_pos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#299>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyTorque as btRigidBody_applyTorque    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ torque- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#299>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyTorque as btRigidBody_applyTorque'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ torque- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#597>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalApplyPushImpulse as btRigidBody_internalApplyPushImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearComponent-, withVector3* `Vector3'  peekVector3* -- ^ angularComponent-,  `Float'  -- ^ impulseMagnitude- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#597>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalApplyPushImpulse as btRigidBody_internalApplyPushImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearComponent-, allocaVector3-  `Vector3'  peekVector3* -- ^ angularComponent-,  `Float'  -- ^ impulseMagnitude- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#422>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_wantsSleeping as btRigidBody_wantsSleeping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#452>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setNewBroadphaseProxy as btRigidBody_setNewBroadphaseProxy    `( BtRigidBodyClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ broadphaseProxy- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#366>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getVelocityInLocalPoint as btRigidBody_getVelocityInLocalPoint    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rel_pos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#366>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getVelocityInLocalPoint as btRigidBody_getVelocityInLocalPoint'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rel_pos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#625>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_calculateSerializeBufferSize as btRigidBody_calculateSerializeBufferSize    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#361>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularVelocity as btRigidBody_setAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ ang_vel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#361>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setAngularVelocity as btRigidBody_setAngularVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ ang_vel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#250>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getLinearFactor as btRigidBody_getLinearFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_predictIntegratedTransform as btRigidBody_predictIntegratedTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ step-, withTransform* `Transform'  peekTransform* -- ^ predictedTransform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_predictIntegratedTransform as btRigidBody_predictIntegratedTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ step-, allocaTransform-  `Transform'  peekTransform* -- ^ predictedTransform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#556>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetAngularFactor as btRigidBody_internalGetAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#233>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAngularSleepingThreshold as btRigidBody_getAngularSleepingThreshold    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#238>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyDamping as btRigidBody_applyDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_saveKinematicState as btRigidBody_saveKinematicState    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ step- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#293>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setSleepingThresholds as btRigidBody_setSleepingThresholds    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ linear-,  `Float'  -- ^ angular- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#351>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAngularVelocity as btRigidBody_getAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#228>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getLinearSleepingThreshold as btRigidBody_getLinearSleepingThreshold    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#561>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetInvMass as btRigidBody_internalGetInvMass    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#315>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyTorqueImpulse as btRigidBody_applyTorqueImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ torque- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#315>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyTorqueImpulse as btRigidBody_applyTorqueImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ torque- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#566>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetPushVelocity as btRigidBody_internalGetPushVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setLinearFactor as btRigidBody_setLinearFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ linearFactor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setLinearFactor as btRigidBody_setLinearFactor'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ linearFactor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#630>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_serializeSingleObject as btRigidBody_serializeSingleObject    `( BtRigidBodyClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#259>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getInvMass as btRigidBody_getInvMass    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#273>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getTotalForce as btRigidBody_getTotalForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#340>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getCenterOfMassPosition as btRigidBody_getCenterOfMassPosition    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#381>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAabb as btRigidBody_getAabb    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#381>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAabb as btRigidBody_getAabb'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#444>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getBroadphaseProxy0 as btRigidBody_getBroadphaseProxy    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#444>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getBroadphaseProxy0 as btRigidBody_getBroadphaseProxy0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#448>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getBroadphaseProxy1 as btRigidBody_getBroadphaseProxy1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBroadphaseProxy' mkBtBroadphaseProxy*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#240>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getCollisionShape0 as btRigidBody_getCollisionShape    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#240>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getCollisionShape0 as btRigidBody_getCollisionShape0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getCollisionShape1 as btRigidBody_getCollisionShape1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtCollisionShape' mkBtCollisionShape*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_upcast0 as btRigidBody_upcast    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_upcast0 as btRigidBody_upcast0    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#195>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_upcast1 as btRigidBody_upcast1    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtRigidBody' mkBtRigidBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#497>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_checkCollideWithOverride as btRigidBody_checkCollideWithOverride    `( BtRigidBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ co- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_translate as btRigidBody_translate    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_translate as btRigidBody_translate'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#338>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_updateInertiaTensor as btRigidBody_updateInertiaTensor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyForce as btRigidBody_applyForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ force-, withVector3* `Vector3'  peekVector3* -- ^ rel_pos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyForce as btRigidBody_applyForce'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ force-, allocaVector3-  `Vector3'  peekVector3* -- ^ rel_pos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#581>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetAngularVelocity as btRigidBody_internalGetAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#581>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetAngularVelocity as btRigidBody_internalGetAngularVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyCentralImpulse as btRigidBody_applyCentralImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_applyCentralImpulse as btRigidBody_applyCentralImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#537>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getTurnVelocity as btRigidBody_getTurnVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#522>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getDeltaLinearVelocity as btRigidBody_getDeltaLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_integrateVelocities as btRigidBody_integrateVelocities    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ step- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#211>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getGravity as btRigidBody_getGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setMassProps as btRigidBody_setMassProps    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, withVector3* `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#248>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setMassProps as btRigidBody_setMassProps'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-, allocaVector3-  `Vector3'  peekVector3* -- ^ inertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setCenterOfMassTransform as btRigidBody_setCenterOfMassTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ xform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setCenterOfMassTransform as btRigidBody_setCenterOfMassTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ xform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#512>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setFlags as btRigidBody_setFlags    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ flags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#499>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_addConstraintRef as btRigidBody_addConstraintRef    `( BtRigidBodyClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ c- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#356>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setLinearVelocity as btRigidBody_setLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ lin_vel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#356>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setLinearVelocity as btRigidBody_setLinearVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ lin_vel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#492>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_isInWorld as btRigidBody_isInWorld    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#278>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getTotalTorque as btRigidBody_getTotalTorque    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#507>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getNumConstraintRefs as btRigidBody_getNumConstraintRefs    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#399>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_computeAngularImpulseDenominator as btRigidBody_computeAngularImpulseDenominator    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#399>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_computeAngularImpulseDenominator as btRigidBody_computeAngularImpulseDenominator'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ axis- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#260>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getInvInertiaTensorWorld as btRigidBody_getInvInertiaTensorWorld    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#527>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getDeltaAngularVelocity as btRigidBody_getDeltaAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#546>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetDeltaLinearVelocity as btRigidBody_internalGetDeltaLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#387>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_computeImpulseDenominator as btRigidBody_computeImpulseDenominator    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ pos-, withVector3* `Vector3'  peekVector3* -- ^ normal- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#387>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_computeImpulseDenominator as btRigidBody_computeImpulseDenominator'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ pos-, allocaVector3-  `Vector3'  peekVector3* -- ^ normal- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#502>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getConstraintRef as btRigidBody_getConstraintRef    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `BtTypedConstraint' mkBtTypedConstraint*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#223>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAngularDamping as btRigidBody_getAngularDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#571>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetTurnVelocity as btRigidBody_internalGetTurnVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#185>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_proceedToTransform as btRigidBody_proceedToTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ newTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#185>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_proceedToTransform as btRigidBody_proceedToTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ newTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#288>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setInvInertiaDiagLocal as btRigidBody_setInvInertiaDiagLocal    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ diagInvInertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#288>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_setInvInertiaDiagLocal as btRigidBody_setInvInertiaDiagLocal'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ diagInvInertia- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#283>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getInvInertiaDiagLocal as btRigidBody_getInvInertiaDiagLocal    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#345>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getCenterOfMassTransform as btRigidBody_getCenterOfMassTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_removeConstraintRef as btRigidBody_removeConstraintRef    `( BtRigidBodyClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ c- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#486>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getAngularFactor as btRigidBody_getAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#348>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getLinearVelocity as btRigidBody_getLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#517>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getFlags as btRigidBody_getFlags    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetVelocityInLocalPointObsolete as btRigidBody_internalGetVelocityInLocalPointObsolete    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rel_pos-, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_internalGetVelocityInLocalPointObsolete as btRigidBody_internalGetVelocityInLocalPointObsolete'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rel_pos-, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_getLinearDamping as btRigidBody_getLinearDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#474>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_m_contactSolverType_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#474>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_m_contactSolverType_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#475>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_m_frictionSolverType_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#475>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_m_frictionSolverType_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btRigidBodyConstructionInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#142>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_new as btRigidBody_btRigidBodyConstructionInfo    `( BtMotionStateClass p1 , BtCollisionShapeClass p2 )' =>     {   `Float' , withBt* `p1' , withBt* `p2' , withVector3* `Vector3'  } -> `BtRigidBody_btRigidBodyConstructionInfo' mkBtRigidBody_btRigidBodyConstructionInfo* #}-{#fun btRigidBody_btRigidBodyConstructionInfo_free    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#140>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#138>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#124>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#124>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#132>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_friction_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#127>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_friction_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#123>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_localInertia_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#122>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_localInertia_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_mass_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_mass_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_motionState_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc , BtMotionStateClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#129>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_restitution_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#129>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_restitution_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}--- * btRigidBodyDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#663>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_new as btRigidBodyDoubleData    {  } -> `BtRigidBodyDoubleData' mkBtRigidBodyDoubleData* #}-{#fun btRigidBodyDoubleData_free    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#675>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_inverseMass_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#675>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_inverseMass_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#676>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_linearDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#676>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_linearDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#677>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_angularDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#677>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_angularDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#678>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalDampingFactor_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#678>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalDampingFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#679>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#679>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#680>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#680>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#681>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalAngularDampingFactor_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#681>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalAngularDampingFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#682>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_linearSleepingThreshold_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#682>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_linearSleepingThreshold_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#683>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_angularSleepingThreshold_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#683>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_angularSleepingThreshold_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#684>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#684>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyDoubleData_m_additionalDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btRigidBodyFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#637>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_new as btRigidBodyFloatData    {  } -> `BtRigidBodyFloatData' mkBtRigidBodyFloatData* #}-{#fun btRigidBodyFloatData_free    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#655>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalAngularDampingFactor_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#655>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalAngularDampingFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#654>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#654>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#658>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#658>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#652>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalDampingFactor_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#652>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalDampingFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#653>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#653>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#651>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_angularDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#651>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_angularDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#657>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_angularSleepingThreshold_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#657>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_angularSleepingThreshold_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#649>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_inverseMass_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#649>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_inverseMass_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#650>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_linearDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#650>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_linearDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#656>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_linearSleepingThreshold_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#656>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>--}-{#fun btRigidBodyFloatData_m_linearSleepingThreshold_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btSimpleDynamicsWorld-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_new as btSimpleDynamicsWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtConstraintSolverClass p2 , BtCollisionConfigurationClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtSimpleDynamicsWorld' mkBtSimpleDynamicsWorld* #}-{#fun btSimpleDynamicsWorld_free    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_setGravity as btSimpleDynamicsWorld_setGravity    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_setGravity as btSimpleDynamicsWorld_setGravity'    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ gravity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_addAction as btSimpleDynamicsWorld_addAction    `( BtSimpleDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ action- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#76>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_setConstraintSolver as btSimpleDynamicsWorld_setConstraintSolver    `( BtSimpleDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ solver- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_getConstraintSolver as btSimpleDynamicsWorld_getConstraintSolver    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtConstraintSolver' mkBtConstraintSolver*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_stepSimulation as btSimpleDynamicsWorld_stepSimulation    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ timeStep-,  `Int'  -- ^ maxSubSteps-,  `Float'  -- ^ fixedTimeStep- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_removeRigidBody as btSimpleDynamicsWorld_removeRigidBody    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_addRigidBody0 as btSimpleDynamicsWorld_addRigidBody    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_addRigidBody0 as btSimpleDynamicsWorld_addRigidBody0    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_addRigidBody1 as btSimpleDynamicsWorld_addRigidBody1    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body-,  `Int'  -- ^ group-,  `Int'  -- ^ mask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_getGravity as btSimpleDynamicsWorld_getGravity    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_synchronizeMotionStates as btSimpleDynamicsWorld_synchronizeMotionStates    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#70>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_removeCollisionObject as btSimpleDynamicsWorld_removeCollisionObject    `( BtSimpleDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#85>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_clearForces as btSimpleDynamicsWorld_clearForces    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_removeAction as btSimpleDynamicsWorld_removeAction    `( BtSimpleDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ action- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#72>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_updateAabbs as btSimpleDynamicsWorld_updateAabbs    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>--}-{#fun btSimpleDynamicsWorld_debugDrawWorld as btSimpleDynamicsWorld_debugDrawWorld    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.cpp?r=2223>+-}+{#fun btActionInterface_getFixedBody as btActionInterface_getFixedBody    `( )' =>     {  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.cpp?r=2223>+-}+{#fun btActionInterface_updateAction as btActionInterface_updateAction    `( BtActionInterfaceClass bc , BtCollisionWorldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionWorld+,  `Float'  -- ^ deltaTimeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btActionInterface.cpp?r=2223>+-}+{#fun btActionInterface_debugDraw as btActionInterface_debugDraw    `( BtActionInterfaceClass bc , BtIDebugDrawClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ debugDrawer+ } ->  `()'   #}+-- * btDiscreteDynamicsWorld+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_new as btDiscreteDynamicsWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtConstraintSolverClass p2 , BtCollisionConfigurationClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtDiscreteDynamicsWorld' mkBtDiscreteDynamicsWorld* #}+{#fun btDiscreteDynamicsWorld_free    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_setGravity as btDiscreteDynamicsWorld_setGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_setGravity as btDiscreteDynamicsWorld_setGravity'    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addAction as btDiscreteDynamicsWorld_addAction    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_applyGravity as btDiscreteDynamicsWorld_applyGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_serialize as btDiscreteDynamicsWorld_serialize    `( BtDiscreteDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getCollisionWorld as btDiscreteDynamicsWorld_getCollisionWorld    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionWorld'  mkBtCollisionWorld* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addRigidBody0 as btDiscreteDynamicsWorld_addRigidBody    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#128>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addRigidBody0 as btDiscreteDynamicsWorld_addRigidBody0    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#130>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addRigidBody1 as btDiscreteDynamicsWorld_addRigidBody1    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+,  `Int'  -- ^ group+,  `Int'  -- ^ mask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_clearForces as btDiscreteDynamicsWorld_clearForces    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#178>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeVehicle as btDiscreteDynamicsWorld_removeVehicle    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ vehicle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_serializeRigidBodies as btDiscreteDynamicsWorld_serializeRigidBodies    `( BtDiscreteDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_internalSingleStepSimulation as btDiscreteDynamicsWorld_internalSingleStepSimulation    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#188>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getSynchronizeAllMotionStates as btDiscreteDynamicsWorld_getSynchronizeAllMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_setNumTasks as btDiscreteDynamicsWorld_setNumTasks    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ numTasks+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#184>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_setSynchronizeAllMotionStates as btDiscreteDynamicsWorld_setSynchronizeAllMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ synchronizeAll+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_predictUnconstraintMotion as btDiscreteDynamicsWorld_predictUnconstraintMotion    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeConstraint as btDiscreteDynamicsWorld_removeConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getNumConstraints as btDiscreteDynamicsWorld_getNumConstraints    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addCollisionObject as btDiscreteDynamicsWorld_addCollisionObject    `( BtDiscreteDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeRigidBody as btDiscreteDynamicsWorld_removeRigidBody    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_integrateTransforms as btDiscreteDynamicsWorld_integrateTransforms    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_debugDrawConstraint as btDiscreteDynamicsWorld_debugDrawConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_debugDrawWorld as btDiscreteDynamicsWorld_debugDrawWorld    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_calculateSimulationIslands as btDiscreteDynamicsWorld_calculateSimulationIslands    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addConstraint as btDiscreteDynamicsWorld_addConstraint    `( BtDiscreteDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constraint+,  `Bool'  -- ^ disableCollisionsBetweenLinkedBodies+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_startProfiling as btDiscreteDynamicsWorld_startProfiling    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_updateActivationState as btDiscreteDynamicsWorld_updateActivationState    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getGravity as btDiscreteDynamicsWorld_getGravity    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#105>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeAction as btDiscreteDynamicsWorld_removeAction    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeCharacter as btDiscreteDynamicsWorld_removeCharacter    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ character+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_saveKinematicState as btDiscreteDynamicsWorld_saveKinematicState    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getConstraint0 as btDiscreteDynamicsWorld_getConstraint    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getConstraint0 as btDiscreteDynamicsWorld_getConstraint0    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getConstraint1 as btDiscreteDynamicsWorld_getConstraint1    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_getConstraintSolver as btDiscreteDynamicsWorld_getConstraintSolver    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConstraintSolver'  mkBtConstraintSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addCharacter as btDiscreteDynamicsWorld_addCharacter    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ character+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_solveConstraints as btDiscreteDynamicsWorld_solveConstraints    `( BtDiscreteDynamicsWorldClass bc , BtContactSolverInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solverInfo+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_updateActions as btDiscreteDynamicsWorld_updateActions    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_updateVehicles as btDiscreteDynamicsWorld_updateVehicles    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_synchronizeSingleMotionState as btDiscreteDynamicsWorld_synchronizeSingleMotionState    `( BtDiscreteDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#176>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_addVehicle as btDiscreteDynamicsWorld_addVehicle    `( BtDiscreteDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ vehicle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_synchronizeMotionStates as btDiscreteDynamicsWorld_synchronizeMotionStates    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_stepSimulation as btDiscreteDynamicsWorld_stepSimulation    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+,  `Int'  -- ^ maxSubSteps+,  `Float'  -- ^ fixedTimeStep+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_removeCollisionObject as btDiscreteDynamicsWorld_removeCollisionObject    `( BtDiscreteDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_setConstraintSolver as btDiscreteDynamicsWorld_setConstraintSolver    `( BtDiscreteDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solver+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_constraintSolver_set    `( BtDiscreteDynamicsWorldClass bc , BtConstraintSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_constraintSolver_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtConstraintSolver'  mkBtConstraintSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_constraints_set    `( BtDiscreteDynamicsWorldClass bc , BtAlignedObjectArray_btTypedConstraint_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_constraints_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btTypedConstraint_ptr_'  mkBtAlignedObjectArray_btTypedConstraint_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_nonStaticRigidBodies_set    `( BtDiscreteDynamicsWorldClass bc , BtAlignedObjectArray_btRigidBody_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_nonStaticRigidBodies_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btRigidBody_ptr_'  mkBtAlignedObjectArray_btRigidBody_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_gravity_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_gravity_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_localTime_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_localTime_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_ownsIslandManager_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_ownsIslandManager_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_ownsConstraintSolver_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_ownsConstraintSolver_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_synchronizeAllMotionStates_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_synchronizeAllMotionStates_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_actions_set    `( BtDiscreteDynamicsWorldClass bc , BtAlignedObjectArray_btActionInterface_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_actions_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btActionInterface_ptr_'  mkBtAlignedObjectArray_btActionInterface_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_profileTimings_set    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp?r=2223>+-}+{#fun btDiscreteDynamicsWorld_m_profileTimings_get    `( BtDiscreteDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btDynamicsWorld+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_setGravity as btDynamicsWorld_setGravity    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_setGravity as btDynamicsWorld_setGravity'    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addAction as btDynamicsWorld_addAction    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ action+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getSolverInfo as btDynamicsWorld_getSolverInfo    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtContactSolverInfo'  mkBtContactSolverInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addRigidBody0 as btDynamicsWorld_addRigidBody    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addRigidBody0 as btDynamicsWorld_addRigidBody0    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addRigidBody1 as btDynamicsWorld_addRigidBody1    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+,  `Int'  -- ^ group+,  `Int'  -- ^ mask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_clearForces as btDynamicsWorld_clearForces    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_removeVehicle as btDynamicsWorld_removeVehicle    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ vehicle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_removeConstraint as btDynamicsWorld_removeConstraint    `( BtDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constraint+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getNumConstraints as btDynamicsWorld_getNumConstraints    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_removeRigidBody as btDynamicsWorld_removeRigidBody    `( BtDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_synchronizeMotionStates as btDynamicsWorld_synchronizeMotionStates    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addConstraint as btDynamicsWorld_addConstraint    `( BtDynamicsWorldClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constraint+,  `Bool'  -- ^ disableCollisionsBetweenLinkedBodies+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getGravity as btDynamicsWorld_getGravity    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_debugDrawWorld as btDynamicsWorld_debugDrawWorld    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_removeAction as btDynamicsWorld_removeAction    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ action+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_setWorldUserInfo as btDynamicsWorld_setWorldUserInfo    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ worldUserInfo+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_removeCharacter as btDynamicsWorld_removeCharacter    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ character+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getConstraint0 as btDynamicsWorld_getConstraint    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getConstraint0 as btDynamicsWorld_getConstraint0    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getConstraint1 as btDynamicsWorld_getConstraint1    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getConstraintSolver as btDynamicsWorld_getConstraintSolver    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConstraintSolver'  mkBtConstraintSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_stepSimulation as btDynamicsWorld_stepSimulation    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+,  `Int'  -- ^ maxSubSteps+,  `Float'  -- ^ fixedTimeStep+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addCharacter as btDynamicsWorld_addCharacter    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ character+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_addVehicle as btDynamicsWorld_addVehicle    `( BtDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ vehicle+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#126>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_getWorldUserInfo as btDynamicsWorld_getWorldUserInfo    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_setConstraintSolver as btDynamicsWorld_setConstraintSolver    `( BtDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solver+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_m_worldUserInfo_set    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_m_worldUserInfo_get    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_m_solverInfo_set    `( BtDynamicsWorldClass bc , BtContactSolverInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btDynamicsWorld.cpp?r=2223>+-}+{#fun btDynamicsWorld_m_solverInfo_get    `( BtDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtContactSolverInfo'  mkBtContactSolverInfo* #}+-- * btRigidBody+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#164>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_new0 as btRigidBody0    `( BtRigidBody_btRigidBodyConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtRigidBody' mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_new1 as btRigidBody1    `( BtMotionStateClass p1 , BtCollisionShapeClass p2 )' =>     {   `Float' , withBt* `p1' , withBt* `p2' , withVec3* `Vec3'  } -> `BtRigidBody' mkBtRigidBody* #}+{#fun btRigidBody_free    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setGravity as btRigidBody_setGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ acceleration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setGravity as btRigidBody_setGravity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ acceleration+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#405>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_updateDeactivation as btRigidBody_updateDeactivation    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angFac+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angFac+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angFac+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#477>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularFactor0 as btRigidBody_setAngularFactor0'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angFac+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#482>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularFactor1 as btRigidBody_setAngularFactor1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ angFac+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#606>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalWritebackVelocity0 as btRigidBody_internalWritebackVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#606>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalWritebackVelocity0 as btRigidBody_internalWritebackVelocity0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#619>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalWritebackVelocity1 as btRigidBody_internalWritebackVelocity1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#532>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getPushVelocity as btRigidBody_getPushVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#551>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetDeltaAngularVelocity as btRigidBody_internalGetDeltaAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyGravity as btRigidBody_applyGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#628>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_serialize as btRigidBody_serialize    `( BtRigidBodyClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getOrientation as btRigidBody_getOrientation    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyCentralForce as btRigidBody_applyCentralForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyCentralForce as btRigidBody_applyCentralForce'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#466>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setMotionState as btRigidBody_setMotionState    `( BtRigidBodyClass bc , BtMotionStateClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ motionState+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_clearForces as btRigidBody_clearForces    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getMotionState0 as btRigidBody_getMotionState    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtMotionState'  mkBtMotionState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#458>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getMotionState0 as btRigidBody_getMotionState0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtMotionState'  mkBtMotionState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getMotionState1 as btRigidBody_getMotionState1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtMotionState'  mkBtMotionState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setDamping as btRigidBody_setDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ lin_damping+,  `Float'  -- ^ ang_damping+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyImpulse as btRigidBody_applyImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyImpulse as btRigidBody_applyImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#299>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyTorque as btRigidBody_applyTorque    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ torque+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#299>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyTorque as btRigidBody_applyTorque'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ torque+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#597>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalApplyPushImpulse as btRigidBody_internalApplyPushImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearComponent+, withVec3* `Vec3'  peekVec3* -- ^ angularComponent+,  `Float'  -- ^ impulseMagnitude+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#597>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalApplyPushImpulse as btRigidBody_internalApplyPushImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearComponent+, allocaVec3-  `Vec3'  peekVec3* -- ^ angularComponent+,  `Float'  -- ^ impulseMagnitude+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#422>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_wantsSleeping as btRigidBody_wantsSleeping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#452>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setNewBroadphaseProxy as btRigidBody_setNewBroadphaseProxy    `( BtRigidBodyClass bc , BtBroadphaseProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ broadphaseProxy+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#366>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getVelocityInLocalPoint as btRigidBody_getVelocityInLocalPoint    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rel_pos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#366>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getVelocityInLocalPoint as btRigidBody_getVelocityInLocalPoint'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#625>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_calculateSerializeBufferSize as btRigidBody_calculateSerializeBufferSize    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#361>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularVelocity as btRigidBody_setAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ ang_vel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#361>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setAngularVelocity as btRigidBody_setAngularVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ ang_vel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#250>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getLinearFactor as btRigidBody_getLinearFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_predictIntegratedTransform as btRigidBody_predictIntegratedTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ step+, withTransform* `Transform'  peekTransform* -- ^ predictedTransform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#203>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_predictIntegratedTransform as btRigidBody_predictIntegratedTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ step+, allocaTransform-  `Transform'  peekTransform* -- ^ predictedTransform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#556>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetAngularFactor as btRigidBody_internalGetAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#233>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAngularSleepingThreshold as btRigidBody_getAngularSleepingThreshold    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyDamping as btRigidBody_applyDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_saveKinematicState as btRigidBody_saveKinematicState    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ step+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#293>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setSleepingThresholds as btRigidBody_setSleepingThresholds    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ linear+,  `Float'  -- ^ angular+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#351>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAngularVelocity as btRigidBody_getAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getLinearSleepingThreshold as btRigidBody_getLinearSleepingThreshold    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetInvMass as btRigidBody_internalGetInvMass    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyTorqueImpulse as btRigidBody_applyTorqueImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ torque+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#315>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyTorqueImpulse as btRigidBody_applyTorqueImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ torque+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetPushVelocity as btRigidBody_internalGetPushVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setLinearFactor as btRigidBody_setLinearFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ linearFactor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setLinearFactor as btRigidBody_setLinearFactor'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ linearFactor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#630>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_serializeSingleObject as btRigidBody_serializeSingleObject    `( BtRigidBodyClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#259>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getInvMass as btRigidBody_getInvMass    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#273>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getTotalForce as btRigidBody_getTotalForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getCenterOfMassPosition as btRigidBody_getCenterOfMassPosition    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#381>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAabb as btRigidBody_getAabb    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#381>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAabb as btRigidBody_getAabb'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#444>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getBroadphaseProxy0 as btRigidBody_getBroadphaseProxy    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#444>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getBroadphaseProxy0 as btRigidBody_getBroadphaseProxy0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#448>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getBroadphaseProxy1 as btRigidBody_getBroadphaseProxy1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseProxy'  mkBtBroadphaseProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getCollisionShape0 as btRigidBody_getCollisionShape    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getCollisionShape0 as btRigidBody_getCollisionShape0    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getCollisionShape1 as btRigidBody_getCollisionShape1    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_upcast0 as btRigidBody_upcast    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_upcast0 as btRigidBody_upcast0    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_upcast1 as btRigidBody_upcast1    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#497>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_checkCollideWithOverride as btRigidBody_checkCollideWithOverride    `( BtRigidBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ co+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_translate as btRigidBody_translate    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_translate as btRigidBody_translate'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#338>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_updateInertiaTensor as btRigidBody_updateInertiaTensor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyForce as btRigidBody_applyForce    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ force+, withVec3* `Vec3'  peekVec3* -- ^ rel_pos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyForce as btRigidBody_applyForce'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ force+, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#581>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetAngularVelocity as btRigidBody_internalGetAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#581>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetAngularVelocity as btRigidBody_internalGetAngularVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#181>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setupRigidBody as btRigidBody_setupRigidBody    `( BtRigidBodyClass bc , BtRigidBody_btRigidBodyConstructionInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ constructionInfo+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyCentralImpulse as btRigidBody_applyCentralImpulse    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_applyCentralImpulse as btRigidBody_applyCentralImpulse'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#537>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getTurnVelocity as btRigidBody_getTurnVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#522>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getDeltaLinearVelocity as btRigidBody_getDeltaLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_integrateVelocities as btRigidBody_integrateVelocities    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ step+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#211>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getGravity as btRigidBody_getGravity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setMassProps as btRigidBody_setMassProps    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, withVec3* `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setMassProps as btRigidBody_setMassProps'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+, allocaVec3-  `Vec3'  peekVec3* -- ^ inertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setCenterOfMassTransform as btRigidBody_setCenterOfMassTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ xform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setCenterOfMassTransform as btRigidBody_setCenterOfMassTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ xform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setFlags as btRigidBody_setFlags    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ flags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#499>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_addConstraintRef as btRigidBody_addConstraintRef    `( BtRigidBodyClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ c+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#356>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setLinearVelocity as btRigidBody_setLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ lin_vel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#356>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setLinearVelocity as btRigidBody_setLinearVelocity'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ lin_vel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#492>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_isInWorld as btRigidBody_isInWorld    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getTotalTorque as btRigidBody_getTotalTorque    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getNumConstraintRefs as btRigidBody_getNumConstraintRefs    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#399>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_computeAngularImpulseDenominator as btRigidBody_computeAngularImpulseDenominator    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#399>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_computeAngularImpulseDenominator as btRigidBody_computeAngularImpulseDenominator'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ axis+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#260>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getInvInertiaTensorWorld as btRigidBody_getInvInertiaTensorWorld    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaMat3-  `Mat3'  peekMat3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#527>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getDeltaAngularVelocity as btRigidBody_getDeltaAngularVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#546>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetDeltaLinearVelocity as btRigidBody_internalGetDeltaLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#387>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_computeImpulseDenominator as btRigidBody_computeImpulseDenominator    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ pos+, withVec3* `Vec3'  peekVec3* -- ^ normal+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#387>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_computeImpulseDenominator as btRigidBody_computeImpulseDenominator'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ pos+, allocaVec3-  `Vec3'  peekVec3* -- ^ normal+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getConstraintRef as btRigidBody_getConstraintRef    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAngularDamping as btRigidBody_getAngularDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#571>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetTurnVelocity as btRigidBody_internalGetTurnVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_proceedToTransform as btRigidBody_proceedToTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ newTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_proceedToTransform as btRigidBody_proceedToTransform'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ newTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setInvInertiaDiagLocal as btRigidBody_setInvInertiaDiagLocal    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ diagInvInertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_setInvInertiaDiagLocal as btRigidBody_setInvInertiaDiagLocal'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ diagInvInertia+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#283>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getInvInertiaDiagLocal as btRigidBody_getInvInertiaDiagLocal    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#345>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getCenterOfMassTransform as btRigidBody_getCenterOfMassTransform    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_removeConstraintRef as btRigidBody_removeConstraintRef    `( BtRigidBodyClass bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ c+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#486>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getAngularFactor as btRigidBody_getAngularFactor    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#348>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getLinearVelocity as btRigidBody_getLinearVelocity    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#517>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getFlags as btRigidBody_getFlags    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetVelocityInLocalPointObsolete as btRigidBody_internalGetVelocityInLocalPointObsolete    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rel_pos+, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_internalGetVelocityInLocalPointObsolete as btRigidBody_internalGetVelocityInLocalPointObsolete'    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rel_pos+, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#218>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_getLinearDamping as btRigidBody_getLinearDamping    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalAngularDampingFactor_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalAngularDampingFactor_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalDamping_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalDamping_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalDampingFactor_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalDampingFactor_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularDamping_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularDamping_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularFactor_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularFactor_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularSleepingThreshold_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularSleepingThreshold_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#60>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_angularVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_constraintRefs_set    `( BtRigidBodyClass bc , BtAlignedObjectArray_btTypedConstraint_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#87>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_constraintRefs_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btTypedConstraint_ptr_'  mkBtAlignedObjectArray_btTypedConstraint_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_contactSolverType_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_contactSolverType_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_debugBodyId_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_debugBodyId_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_deltaAngularVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_deltaAngularVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_deltaLinearVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_deltaLinearVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#475>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_frictionSolverType_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#475>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_frictionSolverType_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_gravity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_gravity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_gravity_acceleration_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_gravity_acceleration_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invInertiaLocal_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invInertiaLocal_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invInertiaTensorWorld_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invInertiaTensorWorld_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invMass_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#99>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_invMass_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_inverseMass_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_inverseMass_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearDamping_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearDamping_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearFactor_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearFactor_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearSleepingThreshold_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearSleepingThreshold_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_linearVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_optionalMotionState_set    `( BtRigidBodyClass bc , BtMotionStateClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_optionalMotionState_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `BtMotionState'  mkBtMotionState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_pushVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_pushVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_rigidbodyFlags_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_rigidbodyFlags_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_totalForce_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_totalForce_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_totalTorque_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_totalTorque_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_turnVelocity_set    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_m_turnVelocity_get    `( BtRigidBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * btRigidBodyConstructionInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#142>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_new as btRigidBody_btRigidBodyConstructionInfo    `( BtMotionStateClass p1 , BtCollisionShapeClass p2 )' =>     {   `Float' , withBt* `p1' , withBt* `p2' , withVec3* `Vec3'  } -> `BtRigidBody_btRigidBodyConstructionInfo' mkBtRigidBody_btRigidBodyConstructionInfo* #}+{#fun btRigidBody_btRigidBodyConstructionInfo_free    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#140>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#137>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#138>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc , BtCollisionShapeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_friction_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#127>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_friction_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_localInertia_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#122>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_localInertia_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_mass_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_mass_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_motionState_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc , BtMotionStateClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_motionState_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `BtMotionState'  mkBtMotionState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_restitution_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_restitution_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_set    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#119>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_get    `( BtRigidBody_btRigidBodyConstructionInfoClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+-- * btRigidBodyDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#663>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_new as btRigidBodyDoubleData    {  } -> `BtRigidBodyDoubleData' mkBtRigidBodyDoubleData* #}+{#fun btRigidBodyDoubleData_free    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#664>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_collisionObjectData_set    `( BtRigidBodyDoubleDataClass bc , BtCollisionObjectDoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#664>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_collisionObjectData_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObjectDoubleData'  mkBtCollisionObjectDoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#665>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_invInertiaTensorWorld_set    `( BtRigidBodyDoubleDataClass bc , BtMatrix3x3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#665>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_invInertiaTensorWorld_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtMatrix3x3DoubleData'  mkBtMatrix3x3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#666>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearVelocity_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#666>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearVelocity_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#667>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularVelocity_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#667>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularVelocity_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#668>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularFactor_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#668>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#669>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearFactor_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#669>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#670>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_gravity_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#670>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_gravity_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#671>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_gravity_acceleration_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#671>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_gravity_acceleration_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#672>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_invInertiaLocal_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#672>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_invInertiaLocal_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#673>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_totalForce_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#673>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_totalForce_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#674>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_totalTorque_set    `( BtRigidBodyDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#674>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_totalTorque_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#675>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_inverseMass_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#675>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_inverseMass_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#676>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#676>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#677>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#677>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#678>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalDampingFactor_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#678>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalDampingFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#679>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#679>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#680>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#680>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#681>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalAngularDampingFactor_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#681>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalAngularDampingFactor_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#682>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearSleepingThreshold_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#682>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_linearSleepingThreshold_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#683>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularSleepingThreshold_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Double'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#683>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_angularSleepingThreshold_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Double'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#684>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalDamping_set    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#684>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyDoubleData_m_additionalDamping_get    `( BtRigidBodyDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btRigidBodyFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#637>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_new as btRigidBodyFloatData    {  } -> `BtRigidBodyFloatData' mkBtRigidBodyFloatData* #}+{#fun btRigidBodyFloatData_free    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#655>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalAngularDampingFactor_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#655>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalAngularDampingFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#654>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#654>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#658>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#658>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#652>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalDampingFactor_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#652>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalDampingFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#653>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#653>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#651>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#651>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#642>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularFactor_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#642>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#657>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularSleepingThreshold_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#657>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularSleepingThreshold_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#641>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularVelocity_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#641>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_angularVelocity_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#638>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_collisionObjectData_set    `( BtRigidBodyFloatDataClass bc , BtCollisionObjectFloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#638>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_collisionObjectData_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObjectFloatData'  mkBtCollisionObjectFloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#644>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_gravity_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#644>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_gravity_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#645>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_gravity_acceleration_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#645>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_gravity_acceleration_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#646>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_invInertiaLocal_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#646>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_invInertiaLocal_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#639>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_invInertiaTensorWorld_set    `( BtRigidBodyFloatDataClass bc , BtMatrix3x3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#639>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_invInertiaTensorWorld_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtMatrix3x3FloatData'  mkBtMatrix3x3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#649>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_inverseMass_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#649>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_inverseMass_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#650>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearDamping_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#650>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearDamping_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#643>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearFactor_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#643>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearFactor_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearSleepingThreshold_set    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearSleepingThreshold_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#640>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearVelocity_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#640>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_linearVelocity_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#647>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_totalForce_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#647>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_totalForce_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#648>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_totalTorque_set    `( BtRigidBodyFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.h?r=2223#648>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btRigidBody.cpp?r=2223>+-}+{#fun btRigidBodyFloatData_m_totalTorque_get    `( BtRigidBodyFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+-- * btSimpleDynamicsWorld+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_new as btSimpleDynamicsWorld    `( BtDispatcherClass p0 , BtBroadphaseInterfaceClass p1 , BtConstraintSolverClass p2 , BtCollisionConfigurationClass p3 )' =>     {  withBt* `p0' , withBt* `p1' , withBt* `p2' , withBt* `p3'  } -> `BtSimpleDynamicsWorld' mkBtSimpleDynamicsWorld* #}+{#fun btSimpleDynamicsWorld_free    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_predictUnconstraintMotion as btSimpleDynamicsWorld_predictUnconstraintMotion    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_setGravity as btSimpleDynamicsWorld_setGravity    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_setGravity as btSimpleDynamicsWorld_setGravity'    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ gravity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_addAction as btSimpleDynamicsWorld_addAction    `( BtSimpleDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ action+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_synchronizeMotionStates as btSimpleDynamicsWorld_synchronizeMotionStates    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#76>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_setConstraintSolver as btSimpleDynamicsWorld_setConstraintSolver    `( BtSimpleDynamicsWorldClass bc , BtConstraintSolverClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ solver+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_stepSimulation as btSimpleDynamicsWorld_stepSimulation    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+,  `Int'  -- ^ maxSubSteps+,  `Float'  -- ^ fixedTimeStep+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_getConstraintSolver as btSimpleDynamicsWorld_getConstraintSolver    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtConstraintSolver'  mkBtConstraintSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_removeRigidBody as btSimpleDynamicsWorld_removeRigidBody    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_addRigidBody0 as btSimpleDynamicsWorld_addRigidBody    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_addRigidBody0 as btSimpleDynamicsWorld_addRigidBody0    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_addRigidBody1 as btSimpleDynamicsWorld_addRigidBody1    `( BtSimpleDynamicsWorldClass bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+,  `Int'  -- ^ group+,  `Int'  -- ^ mask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_getGravity as btSimpleDynamicsWorld_getGravity    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_integrateTransforms as btSimpleDynamicsWorld_integrateTransforms    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_removeCollisionObject as btSimpleDynamicsWorld_removeCollisionObject    `( BtSimpleDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_clearForces as btSimpleDynamicsWorld_clearForces    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_removeAction as btSimpleDynamicsWorld_removeAction    `( BtSimpleDynamicsWorldClass bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ action+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_updateAabbs as btSimpleDynamicsWorld_updateAabbs    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_debugDrawWorld as btSimpleDynamicsWorld_debugDrawWorld    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_constraintSolver_set    `( BtSimpleDynamicsWorldClass bc , BtConstraintSolverClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_constraintSolver_get    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtConstraintSolver'  mkBtConstraintSolver* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_ownsConstraintSolver_set    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_ownsConstraintSolver_get    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_gravity_set    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp?r=2223>+-}+{#fun btSimpleDynamicsWorld_m_gravity_get    `( BtSimpleDynamicsWorldClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}
Physics/Bullet/Raw/BulletDynamics/Vehicle.chs view
@@ -19,19 +19,19 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#43>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_contactNormalWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_contactNormalWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#43>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_contactNormalWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_contactNormalWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#44>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_contactPointWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_contactPointWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#44>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_contactPointWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_contactPointWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#45>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -43,27 +43,27 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#46>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_hardPointWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_hardPointWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#46>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_hardPointWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_hardPointWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#47>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_wheelDirectionWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_wheelDirectionWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#47>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_wheelDirectionWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_wheelDirectionWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#48>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_wheelAxleWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_wheelAxleWS_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#48>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_RaycastInfo_m_wheelAxleWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_RaycastInfo_m_wheelAxleWS_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#49>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -72,12 +72,44 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -} {#fun btWheelInfo_RaycastInfo_m_isInContact_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_RaycastInfo_m_groundObject_set    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_RaycastInfo_m_groundObject_get    `( BtWheelInfo_RaycastInfoClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #} -- * btDefaultVehicleRaycaster {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#225>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btDefaultVehicleRaycaster_new as btDefaultVehicleRaycaster    `( BtDynamicsWorldClass p0 )' =>     {  withBt* `p0'  } -> `BtDefaultVehicleRaycaster' mkBtDefaultVehicleRaycaster* #} {#fun btDefaultVehicleRaycaster_free    `( BtDefaultVehicleRaycasterClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btDefaultVehicleRaycaster_castRay as btDefaultVehicleRaycaster_castRay    `( BtDefaultVehicleRaycasterClass bc , BtVehicleRaycaster_btVehicleRaycasterResultClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withBt* `p2'  -- ^ result+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btDefaultVehicleRaycaster_castRay as btDefaultVehicleRaycaster_castRay'    `( BtDefaultVehicleRaycasterClass bc , BtVehicleRaycaster_btVehicleRaycasterResultClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, withBt* `p2'  -- ^ result+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btDefaultVehicleRaycaster_m_dynamicsWorld_set    `( BtDefaultVehicleRaycasterClass bc , BtDynamicsWorldClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btDefaultVehicleRaycaster_m_dynamicsWorld_get    `( BtDefaultVehicleRaycasterClass bc )' =>     { withBt* `bc'  } ->  `BtDynamicsWorld'  mkBtDynamicsWorld* #} -- * btRaycastVehicle {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#79>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>@@ -89,27 +121,33 @@ -} {#fun btRaycastVehicle_updateSuspension as btRaycastVehicle_updateSuspension    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ deltaTime- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#146>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getRigidBody0 as btRaycastVehicle_getRigidBody    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}+ } ->  `BtRigidBody'  mkBtRigidBody* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#146>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getRigidBody0 as btRaycastVehicle_getRigidBody0    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}+ } ->  `BtRigidBody'  mkBtRigidBody* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#151>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getRigidBody1 as btRaycastVehicle_getRigidBody1    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtRigidBody' mkBtRigidBody*  #}+ } ->  `BtRigidBody'  mkBtRigidBody* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#214>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getUserConstraintId as btRaycastVehicle_getUserConstraintId    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_defaultInit as btRaycastVehicle_defaultInit    `( BtRaycastVehicleClass bc , BtRaycastVehicle_btVehicleTuningClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ tuning+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#111>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -}@@ -121,84 +159,86 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_addWheel as btRaycastVehicle_addWheel    `( BtRaycastVehicleClass bc , BtRaycastVehicle_btVehicleTuningClass p5 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ connectionPointCS0-, withVector3* `Vector3'  peekVector3* -- ^ wheelDirectionCS0-, withVector3* `Vector3'  peekVector3* -- ^ wheelAxleCS+, withVec3* `Vec3'  peekVec3* -- ^ connectionPointCS0+, withVec3* `Vec3'  peekVec3* -- ^ wheelDirectionCS0+, withVec3* `Vec3'  peekVec3* -- ^ wheelAxleCS ,  `Float'  -- ^ suspensionRestLength ,  `Float'  -- ^ wheelRadius , withBt* `p5'  -- ^ tuning ,  `Bool'  -- ^ isFrontWheel- } ->  `BtWheelInfo' mkBtWheelInfo*  #}+ } ->  `BtWheelInfo'  mkBtWheelInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#117>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_addWheel as btRaycastVehicle_addWheel'    `( BtRaycastVehicleClass bc , BtRaycastVehicle_btVehicleTuningClass p5 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ connectionPointCS0-, allocaVector3-  `Vector3'  peekVector3* -- ^ wheelDirectionCS0-, allocaVector3-  `Vector3'  peekVector3* -- ^ wheelAxleCS+, allocaVec3-  `Vec3'  peekVec3* -- ^ connectionPointCS0+, allocaVec3-  `Vec3'  peekVec3* -- ^ wheelDirectionCS0+, allocaVec3-  `Vec3'  peekVec3* -- ^ wheelAxleCS ,  `Float'  -- ^ suspensionRestLength ,  `Float'  -- ^ wheelRadius , withBt* `p5'  -- ^ tuning ,  `Bool'  -- ^ isFrontWheel- } ->  `BtWheelInfo' mkBtWheelInfo*  #}+ } ->  `BtWheelInfo'  mkBtWheelInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#113>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_updateWheelTransform as btRaycastVehicle_updateWheelTransform    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ wheelIndex ,  `Bool'  -- ^ interpolatedTransform- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#209>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_setUserConstraintId as btRaycastVehicle_setUserConstraintId    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ uid- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#119>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getNumWheels as btRaycastVehicle_getNumWheels    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#97>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_rayCast as btRaycastVehicle_rayCast    `( BtRaycastVehicleClass bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ wheel- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#156>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getRightAxis as btRaycastVehicle_getRightAxis    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#160>+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#109>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -}-{#fun btRaycastVehicle_getUpAxis as btRaycastVehicle_getUpAxis    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+{#fun btRaycastVehicle_applyEngineForce as btRaycastVehicle_applyEngineForce    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ force+,  `Int'  -- ^ wheel+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#172>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getForwardVector as btRaycastVehicle_getForwardVector    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^   } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#126>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getWheelInfo0 as btRaycastVehicle_getWheelInfo    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtWheelInfo' mkBtWheelInfo*  #}+ } ->  `BtWheelInfo'  mkBtWheelInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#126>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getWheelInfo0 as btRaycastVehicle_getWheelInfo0    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtWheelInfo' mkBtWheelInfo*  #}+ } ->  `BtWheelInfo'  mkBtWheelInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#128>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getWheelInfo1 as btRaycastVehicle_getWheelInfo1    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ index- } ->  `BtWheelInfo' mkBtWheelInfo*  #}+ } ->  `BtWheelInfo'  mkBtWheelInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#95>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -}@@ -211,19 +251,12 @@ {#fun btRaycastVehicle_updateWheelTransformsWS as btRaycastVehicle_updateWheelTransformsWS    `( BtRaycastVehicleClass bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ wheel ,  `Bool'  -- ^ interpolatedTransform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>--}-{#fun btRaycastVehicle_applyEngineForce as btRaycastVehicle_applyEngineForce    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ force-,  `Int'  -- ^ wheel- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#102>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_resetSuspension as btRaycastVehicle_resetSuspension    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#190>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -}@@ -231,80 +264,237 @@ ,  `Int'  -- ^ rightIndex ,  `Int'  -- ^ upIndex ,  `Int'  -- ^ forwardIndex- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#204>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_setUserConstraintType as btRaycastVehicle_setUserConstraintType    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ userConstraintType- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#93>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_debugDraw as btRaycastVehicle_debugDraw    `( BtRaycastVehicleClass bc , BtIDebugDrawClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ debugDrawer- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#142>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_updateFriction as btRaycastVehicle_updateFriction    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ timeStep- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#165>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getForwardAxis as btRaycastVehicle_getForwardAxis    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#104>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getSteeringValue as btRaycastVehicle_getSteeringValue    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Int'  -- ^ wheel- } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#199>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getUserConstraintType as btRaycastVehicle_getUserConstraintType    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_getUpAxis as btRaycastVehicle_getUpAxis    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#135>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_setPitchControl as btRaycastVehicle_setPitchControl    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ pitch- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#185>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_getCurrentSpeedKmHour as btRaycastVehicle_getCurrentSpeedKmHour    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#133>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_setBrake as btRaycastVehicle_setBrake    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ brake ,  `Int'  -- ^ wheelIndex- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#106>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_setSteeringValue as btRaycastVehicle_setSteeringValue    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ steering ,  `Int'  -- ^ wheel- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#99>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_updateVehicle as btRaycastVehicle_updateVehicle    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  -- ^  ,  `Float'  -- ^ step- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#85>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223> -} {#fun btRaycastVehicle_updateAction as btRaycastVehicle_updateAction    `( BtRaycastVehicleClass bc , BtCollisionWorldClass p0 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ collisionWorld ,  `Float'  -- ^ step- } ->  `()'  #}+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_forwardWS_set    `( BtRaycastVehicleClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_forwardWS_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_axle_set    `( BtRaycastVehicleClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_axle_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_forwardImpulse_set    `( BtRaycastVehicleClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_forwardImpulse_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_sideImpulse_set    `( BtRaycastVehicleClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_sideImpulse_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_userConstraintType_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_userConstraintType_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_userConstraintId_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_userConstraintId_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_tau_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_tau_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_damping_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_damping_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_vehicleRaycaster_set    `( BtRaycastVehicleClass bc , BtVehicleRaycasterClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_vehicleRaycaster_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtVehicleRaycaster'  mkBtVehicleRaycaster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_pitchControl_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_pitchControl_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_steeringValue_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_steeringValue_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_currentVehicleSpeedKmHour_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_currentVehicleSpeedKmHour_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_chassisBody_set    `( BtRaycastVehicleClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_chassisBody_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexRightAxis_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexRightAxis_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexUpAxis_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexUpAxis_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexForwardAxis_set    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_indexForwardAxis_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_wheelInfo_set    `( BtRaycastVehicleClass bc , BtAlignedObjectArray_btWheelInfo_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>+-}+{#fun btRaycastVehicle_m_wheelInfo_get    `( BtRaycastVehicleClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btWheelInfo_'  mkBtAlignedObjectArray_btWheelInfo_* #} -- * btVehicleRaycaster+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223>+-}+{#fun btVehicleRaycaster_castRay as btVehicleRaycaster_castRay    `( BtVehicleRaycasterClass bc , BtVehicleRaycaster_btVehicleRaycasterResultClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withBt* `p2'  -- ^ result+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223>+-}+{#fun btVehicleRaycaster_castRay as btVehicleRaycaster_castRay'    `( BtVehicleRaycasterClass bc , BtVehicleRaycaster_btVehicleRaycasterResultClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, withBt* `p2'  -- ^ result+ } ->  `VoidPtr'  mkVoidPtr* #} -- * btVehicleRaycasterResult {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#24>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223>@@ -322,19 +512,19 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#26>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223> -}-{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_set    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_set    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#26>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223> -}-{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_get    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_get    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#25>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223> -}-{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_set    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_set    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.h?r=2223#25>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btVehicleRaycaster.cpp?r=2223> -}-{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_get    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_get    `( BtVehicleRaycaster_btVehicleRaycasterResultClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} -- * btVehicleTuning {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.h?r=2223#42>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btRaycastVehicle.cpp?r=2223>@@ -399,14 +589,14 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -} {#fun btWheelInfo_getSuspensionRestLength as btWheelInfo_getSuspensionRestLength    `( BtWheelInfoClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}+ } ->  `Float'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#108>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -} {#fun btWheelInfo_updateWheel as btWheelInfo_updateWheel    `( BtWheelInfoClass bc , BtRigidBodyClass p0 , BtWheelInfo_RaycastInfoClass p1 )' =>     { withBt* `bc'  -- ^  , withBt* `p0'  -- ^ chassis , withBt* `p1'  -- ^ raycastInfo- } ->  `()'  #}+ } ->  `()'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#78>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -426,11 +616,19 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#57>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_chassisConnectionPointCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_m_chassisConnectionPointCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#57>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_chassisConnectionPointCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_m_chassisConnectionPointCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_m_clientInfo_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_m_clientInfo_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#110>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -479,6 +677,14 @@      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -} {#fun btWheelInfo_m_maxSuspensionTravelCm_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_m_raycastInfo_set    `( BtWheelInfoClass bc , BtWheelInfo_RaycastInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223>+-}+{#fun btWheelInfo_m_raycastInfo_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc'  } ->  `BtWheelInfo_RaycastInfo'  mkBtWheelInfo_RaycastInfo* #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#71>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -538,19 +744,19 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#59>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_wheelAxleCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_m_wheelAxleCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#59>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_wheelAxleCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_m_wheelAxleCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_wheelDirectionCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfo_m_wheelDirectionCS_set    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#58>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfo_m_wheelDirectionCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfo_m_wheelDirectionCS_get    `( BtWheelInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#65>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -608,11 +814,11 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#21>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_chassisConnectionCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_chassisConnectionCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#21>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_chassisConnectionCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_chassisConnectionCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#31>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}@@ -656,19 +862,19 @@ {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#23>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_wheelAxleCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_wheelAxleCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#23>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_wheelAxleCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_wheelAxleCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#22>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_wheelDirectionCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_wheelDirectionCS_set    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#22>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}-{#fun btWheelInfoConstructionInfo_m_wheelDirectionCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}+{#fun btWheelInfoConstructionInfo_m_wheelDirectionCS_get    `( BtWheelInfoConstructionInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.h?r=2223#26>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletDynamics/Vehicle/btWheelInfo.cpp?r=2223> -}
Physics/Bullet/Raw/BulletSoftBody.chs view
@@ -11,2862 +11,3476 @@ import Physics.Bullet.Raw.Types import Physics.Bullet.Raw.Class -- * AJoint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#523>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_new as btSoftBody_AJoint    {  } -> `BtSoftBody_AJoint' mkBtSoftBody_AJoint* #}-{#fun btSoftBody_AJoint_free    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#540>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Terminate as btSoftBody_AJoint_Terminate    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#539>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Solve as btSoftBody_AJoint_Solve    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Float'  -- ^ sor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#538>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Prepare as btSoftBody_AJoint_Prepare    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Int'  -- ^ iterations- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#537>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_m_icontrol_set    `( BtSoftBody_AJointClass bc , BtSoftBody_AJoint_IControlClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * Anchor-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#281>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_new as btSoftBody_Anchor    {  } -> `BtSoftBody_Anchor' mkBtSoftBody_Anchor* #}-{#fun btSoftBody_Anchor_free    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_node_set    `( BtSoftBody_AnchorClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#283>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_local_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#283>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_local_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#284>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_body_set    `( BtSoftBody_AnchorClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_influence_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#285>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_influence_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c0_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#286>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c0_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#287>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c1_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#287>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c1_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#288>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c2_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#288>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Anchor_m_c2_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Body-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#376>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_new0 as btSoftBody_Body0    {  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_new1 as btSoftBody_Body1    `( BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#378>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_new2 as btSoftBody_Body2    `( BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}-{#fun btSoftBody_Body_free    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#391>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_invWorldInertia as btSoftBody_Body_invWorldInertia    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#383>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_activate as btSoftBody_Body_activate    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#411>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_linearVelocity as btSoftBody_Body_linearVelocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#433>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyVImpulse as btSoftBody_Body_applyVImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse-, withVector3* `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#433>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyVImpulse as btSoftBody_Body_applyVImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#438>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDImpulse as btSoftBody_Body_applyDImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse-, withVector3* `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#438>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDImpulse as btSoftBody_Body_applyDImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDCImpulse as btSoftBody_Body_applyDCImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#471>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDCImpulse as btSoftBody_Body_applyDCImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#466>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyAImpulse as btSoftBody_Body_applyAImpulse    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#417>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#417>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#417>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity0    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#417>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity0'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#423>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_angularVelocity1 as btSoftBody_Body_angularVelocity1    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#456>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyVAImpulse as btSoftBody_Body_applyVAImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#456>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyVAImpulse as btSoftBody_Body_applyVAImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#443>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyImpulse as btSoftBody_Body_applyImpulse    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ impulse-, withVector3* `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#443>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyImpulse as btSoftBody_Body_applyImpulse'    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ impulse-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#461>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDAImpulse as btSoftBody_Body_applyDAImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#461>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_applyDAImpulse as btSoftBody_Body_applyDAImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#429>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_velocity as btSoftBody_Body_velocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#429>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_velocity as btSoftBody_Body_velocity'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#398>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_invMass as btSoftBody_Body_invMass    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#404>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_xform as btSoftBody_Body_xform    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#372>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_m_soft_set    `( BtSoftBody_BodyClass bc , BtSoftBody_ClusterClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#373>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_m_rigid_set    `( BtSoftBody_BodyClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#374>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Body_m_collisionObject_set    `( BtSoftBody_BodyClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * CJoint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#545>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_new as btSoftBody_CJoint    {  } -> `BtSoftBody_CJoint' mkBtSoftBody_CJoint* #}-{#fun btSoftBody_CJoint_free    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#553>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_Terminate as btSoftBody_CJoint_Terminate    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#552>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_Solve as btSoftBody_CJoint_Solve    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Float'  -- ^ sor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#551>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_Prepare as btSoftBody_CJoint_Prepare    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Int'  -- ^ iterations- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#546>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_life_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#546>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_life_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#547>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_maxlife_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#547>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_maxlife_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#549>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_normal_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#549>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_normal_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#550>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_friction_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#550>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_CJoint_m_friction_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Cluster-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#340>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_new as btSoftBody_Cluster    {  } -> `BtSoftBody_Cluster' mkBtSoftBody_Cluster* #}-{#fun btSoftBody_Cluster_free    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_adamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#333>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_adamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#329>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_av_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#329>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_av_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#339>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_clusterIndex_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#339>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_clusterIndex_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#338>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_collide_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#338>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_collide_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#323>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_com_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#323>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_com_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_containsAnchor_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#337>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_containsAnchor_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_framexform_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#318>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_framexform_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_idmass_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#319>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_idmass_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_imass_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#320>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_imass_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_invwi_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#322>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_invwi_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ldamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#332>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ldamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#330>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_leaf_set    `( BtSoftBody_ClusterClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#321>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_locii_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#321>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_locii_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_lv_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#328>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_lv_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#334>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_matching_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#334>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_matching_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_maxSelfCollisionImpulse_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#335>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_maxSelfCollisionImpulse_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#331>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ndamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#331>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ndamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ndimpulses_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#327>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_ndimpulses_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#326>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_nvimpulses_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#326>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_nvimpulses_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#336>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_selfCollisionImpulseFactor_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#336>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Cluster_m_selfCollisionImpulseFactor_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Config-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#558>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_new as btSoftBody_Config    {  } -> `BtSoftBody_Config' mkBtSoftBody_Config* #}-{#fun btSoftBody_Config_free    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#560>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kVCF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#560>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kVCF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#561>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDP_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#561>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDP_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#562>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDG_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#562>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDG_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#563>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kLF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#563>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kLF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#564>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kPR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#564>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kPR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#565>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kVC_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#565>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kVC_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#566>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#566>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kDF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#567>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kMT_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#567>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kMT_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#568>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kCHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#568>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kCHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#569>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kKHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#569>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kKHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#570>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#570>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#571>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kAHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#571>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kAHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#572>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSRHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#572>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSRHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#573>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSKHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#573>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSKHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#574>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSSHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#574>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSSHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#575>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSR_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#575>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSR_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSK_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#576>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSK_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#577>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSS_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#577>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_kSS_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#578>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_maxvolume_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#578>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_maxvolume_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#579>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_timescale_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#579>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_timescale_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#580>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_viterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#580>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_viterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#581>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_piterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#581>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_piterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#582>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_diterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#582>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_diterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#583>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_citerations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#583>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_citerations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#584>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_collisions_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#584>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Config_collisions_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * Element-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#199>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Element_new as btSoftBody_Element    {  } -> `BtSoftBody_Element' mkBtSoftBody_Element* #}-{#fun btSoftBody_Element_free    `( BtSoftBody_ElementClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * Face-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#241>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_new as btSoftBody_Face    {  } -> `BtSoftBody_Face' mkBtSoftBody_Face* #}-{#fun btSoftBody_Face_free    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#243>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_m_normal_set    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#243>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_m_normal_get    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_m_ra_set    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#244>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_m_ra_get    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#245>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Face_m_leaf_set    `( BtSoftBody_FaceClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * Feature-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#212>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Feature_new as btSoftBody_Feature    {  } -> `BtSoftBody_Feature' mkBtSoftBody_Feature* #}-{#fun btSoftBody_Feature_free    `( BtSoftBody_FeatureClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#213>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Feature_m_material_set    `( BtSoftBody_FeatureClass bc , BtSoftBody_MaterialClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * IControl-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#525>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_IControl_new as btSoftBody_AJoint_IControl    {  } -> `BtSoftBody_AJoint_IControl' mkBtSoftBody_AJoint_IControl* #}-{#fun btSoftBody_AJoint_IControl_free    `( BtSoftBody_AJoint_IControlClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#528>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_IControl_Default as btSoftBody_AJoint_IControl_Default    `( )' =>     {  } ->  `BtSoftBody_AJoint_IControl' mkBtSoftBody_AJoint_IControl*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#527>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_IControl_Speed as btSoftBody_AJoint_IControl_Speed    `( BtSoftBody_AJoint_IControlClass bc , BtSoftBody_AJointClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0-,  `Float'  -- ^ current- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#526>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_IControl_Prepare as btSoftBody_AJoint_IControl_Prepare    `( BtSoftBody_AJoint_IControlClass bc , BtSoftBody_AJointClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ arg0- } ->  `()'  #}--- * ImplicitFn-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_ImplicitFn_Eval as btSoftBody_ImplicitFn_Eval    `( BtSoftBody_ImplicitFnClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ x- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#169>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_ImplicitFn_Eval as btSoftBody_ImplicitFn_Eval'    `( BtSoftBody_ImplicitFnClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ x- } ->  `Float'  #}--- * Impulse-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#353>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_new as btSoftBody_Impulse    {  } -> `BtSoftBody_Impulse' mkBtSoftBody_Impulse* #}-{#fun btSoftBody_Impulse_free    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#352>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_asDrift_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#352>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_asDrift_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#351>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_asVelocity_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#351>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_asVelocity_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#350>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_drift_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#350>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_drift_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#349>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_velocity_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#349>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Impulse_m_velocity_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * Joint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#505>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Terminate as btSoftBody_Joint_Terminate    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#504>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Solve as btSoftBody_Joint_Solve    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Float'  -- ^ sor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#503>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Prepare as btSoftBody_Joint_Prepare    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Int'  -- ^ iterations- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#494>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_cfm_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#494>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_cfm_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#495>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_erp_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#495>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_erp_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#496>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_split_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#496>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_split_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#497>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_drift_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#497>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_drift_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_sdrift_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#498>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_sdrift_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#499>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_massmatrix_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#499>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_massmatrix_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_delete_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#500>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_m_delete_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}--- * LJoint-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#510>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_new as btSoftBody_LJoint    {  } -> `BtSoftBody_LJoint' mkBtSoftBody_LJoint* #}-{#fun btSoftBody_LJoint_free    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#518>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Terminate as btSoftBody_LJoint_Terminate    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#517>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Solve as btSoftBody_LJoint_Solve    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Float'  -- ^ sor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#516>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Prepare as btSoftBody_LJoint_Prepare    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt-,  `Int'  -- ^ iterations- } ->  `()'  #}--- * Link-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#230>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_new as btSoftBody_Link    {  } -> `BtSoftBody_Link' mkBtSoftBody_Link* #}-{#fun btSoftBody_Link_free    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#232>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_rl_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#232>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_rl_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#233>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_bbending_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#233>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_bbending_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c0_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#234>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c0_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c1_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#235>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c1_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#236>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c2_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#236>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c2_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c3_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#237>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Link_m_c3_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * Material-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#203>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_new as btSoftBody_Material    {  } -> `BtSoftBody_Material' mkBtSoftBody_Material* #}-{#fun btSoftBody_Material_free    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#207>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_flags_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#207>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_flags_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kAST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kAST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#204>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kLST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#204>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kLST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kVST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#206>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Material_m_kVST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Node-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#217>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_new as btSoftBody_Node    {  } -> `BtSoftBody_Node' mkBtSoftBody_Node* #}-{#fun btSoftBody_Node_free    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#224>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_area_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#224>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_area_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_battach_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#226>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_battach_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_f_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#221>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_f_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#223>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_im_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#223>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_im_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#225>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_leaf_set    `( BtSoftBody_NodeClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_n_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#222>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_n_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#219>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_q_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#219>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_q_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#220>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_v_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#220>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_v_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_x_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#218>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Node_m_x_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * Note-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#292>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_new as btSoftBody_Note    {  } -> `BtSoftBody_Note' mkBtSoftBody_Note* #}-{#fun btSoftBody_Note_free    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#293>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_text_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#293>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_text_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } ->  `String'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#294>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_offset_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#294>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_offset_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_rank_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#295>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Note_m_rank_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * Pose-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#301>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_new as btSoftBody_Pose    {  } -> `BtSoftBody_Pose' mkBtSoftBody_Pose* #}-{#fun btSoftBody_Pose_free    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#302>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_bvolume_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#302>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_bvolume_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_bframe_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#303>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_bframe_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_volume_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#304>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_volume_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#307>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_com_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#307>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_com_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#308>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_rot_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#308>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_rot_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_scl_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#309>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_scl_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_aqq_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#310>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Pose_m_aqq_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}--- * RContact-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#259>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_new as btSoftBody_RContact    {  } -> `BtSoftBody_RContact' mkBtSoftBody_RContact* #}-{#fun btSoftBody_RContact_free    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#261>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_node_set    `( BtSoftBody_RContactClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c0_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , withMatrix3x3* `Matrix3x3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c0_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , allocaMatrix3x3-  `Matrix3x3'  peekMatrix3x3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#263>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c1_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#263>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c1_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c2_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#264>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c2_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#265>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c3_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#265>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c3_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c4_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#266>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RContact_m_c4_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * RayFromToCaster-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#607>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_new as btSoftBody_RayFromToCaster    {  withVector3* `Vector3' , withVector3* `Vector3' ,  `Float'  } -> `BtSoftBody_RayFromToCaster' mkBtSoftBody_RayFromToCaster* #}-{#fun btSoftBody_RayFromToCaster_free    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#608>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_Process as btSoftBody_RayFromToCaster_Process    `( BtSoftBody_RayFromToCasterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ leaf- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#601>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayFrom_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#601>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayFrom_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#602>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayTo_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#602>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayTo_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#603>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayNormalizedDirection_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#603>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_rayNormalizedDirection_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#604>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_mint_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#604>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_mint_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#605>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_face_set    `( BtSoftBody_RayFromToCasterClass bc , BtSoftBody_FaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#606>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_tests_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#606>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_RayFromToCaster_m_tests_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * SContact-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#270>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_new as btSoftBody_SContact    {  } -> `BtSoftBody_SContact' mkBtSoftBody_SContact* #}-{#fun btSoftBody_SContact_free    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#271>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_node_set    `( BtSoftBody_SContactClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#272>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_face_set    `( BtSoftBody_SContactClass bc , BtSoftBody_FaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#273>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_weights_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#273>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_weights_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_normal_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#274>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_normal_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#275>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_margin_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#275>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_margin_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_friction_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#276>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SContact_m_friction_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * SolverState-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#591>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_new as btSoftBody_SolverState    {  } -> `BtSoftBody_SolverState' mkBtSoftBody_SolverState* #}-{#fun btSoftBody_SolverState_free    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#592>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_sdt_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#592>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_sdt_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#593>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_isdt_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#593>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_isdt_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#594>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_velmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#594>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_velmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#595>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_radmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#595>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_radmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#596>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_updmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#596>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_SolverState_updmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Specs-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#487>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_new as btSoftBody_Joint_Specs    {  } -> `BtSoftBody_Joint_Specs' mkBtSoftBody_Joint_Specs* #}-{#fun btSoftBody_Joint_Specs_free    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#488>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_erp_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#488>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_erp_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#489>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_cfm_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#489>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_cfm_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#490>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_split_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#490>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_Specs_split_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * Specs-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#512>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Specs_new as btSoftBody_LJoint_Specs    {  } -> `BtSoftBody_LJoint_Specs' mkBtSoftBody_LJoint_Specs* #}-{#fun btSoftBody_LJoint_Specs_free    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#513>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Specs_position_set    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#513>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_LJoint_Specs_position_get    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * Specs-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#532>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Specs_new as btSoftBody_AJoint_Specs    {  } -> `BtSoftBody_AJoint_Specs' mkBtSoftBody_AJoint_Specs* #}-{#fun btSoftBody_AJoint_Specs_free    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#533>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Specs_axis_set    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#533>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Specs_axis_get    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#534>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_AJoint_Specs_icontrol_set    `( BtSoftBody_AJoint_SpecsClass bc , BtSoftBody_AJoint_IControlClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * Tetra-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#249>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_new as btSoftBody_Tetra    {  } -> `BtSoftBody_Tetra' mkBtSoftBody_Tetra* #}-{#fun btSoftBody_Tetra_free    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#251>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_rv_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#251>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_rv_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#252>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_leaf_set    `( BtSoftBody_TetraClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_c1_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#254>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_c1_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_c2_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#255>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Tetra_m_c2_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btSoftBody-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#679>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_new1 as btSoftBody1    `( BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody' mkBtSoftBody* #}-{#fun btSoftBody_free    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#808>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getVolume as btSoftBody_getVolume    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#839>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_cutLink0 as btSoftBody_cutLink    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-,  `Float'  -- ^ position- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#839>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_cutLink0 as btSoftBody_cutLink0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-,  `Float'  -- ^ position- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#840>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_cutLink1 as btSoftBody_cutLink1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ node0-, withBt* `p1'  -- ^ node1-,  `Float'  -- ^ position- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#959>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_PSolve_Links as btSoftBody_PSolve_Links    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb-,  `Float'  -- ^ kst-,  `Float'  -- ^ ti- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#835>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_generateClusters as btSoftBody_generateClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ k-,  `Int'  -- ^ maxiterations- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#695>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setCollisionShape as btSoftBody_setCollisionShape    `( BtSoftBodyClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionShape- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#948>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_initializeClusters as btSoftBody_initializeClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#820>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVAImpulse as btSoftBody_clusterVAImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#820>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVAImpulse as btSoftBody_clusterVAImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#767>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce0 as btSoftBody_addForce    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#767>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce0 as btSoftBody_addForce'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#767>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce0 as btSoftBody_addForce0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#767>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce0 as btSoftBody_addForce0'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ force- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce1 as btSoftBody_addForce1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ force-,  `Int'  -- ^ node- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addForce1 as btSoftBody_addForce1'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ force-,  `Int'  -- ^ node- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#945>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_updateBounds as btSoftBody_updateBounds    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#801>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rotate as btSoftBody_rotate    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withQuaternion* `Quaternion'  peekQuaternion* -- ^ rot- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#801>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rotate as btSoftBody_rotate'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ rot- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#830>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_releaseCluster as btSoftBody_releaseCluster    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#944>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_updateNormals as btSoftBody_updateNormals    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#951>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_prepareClusters as btSoftBody_prepareClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ iterations- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#831>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_releaseClusters as btSoftBody_releaseClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#786>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getTotalMass as btSoftBody_getTotalMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#943>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkContact as btSoftBody_checkContact    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 , BtSoftBody_sCtiClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ colObj-, withVector3* `Vector3'  peekVector3* -- ^ x-,  `Float'  -- ^ margin-, withBt* `p3'  -- ^ cti- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#943>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkContact as btSoftBody_checkContact'    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 , BtSoftBody_sCtiClass p3 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ colObj-, allocaVector3-  `Vector3'  peekVector3* -- ^ x-,  `Float'  -- ^ margin-, withBt* `p3'  -- ^ cti- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#818>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDImpulse as btSoftBody_clusterDImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ rpos-, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#818>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDImpulse as btSoftBody_clusterDImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#681>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_initDefaults as btSoftBody_initDefaults    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#701>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkLink0 as btSoftBody_checkLink    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#701>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkLink0 as btSoftBody_checkLink0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#703>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkLink1 as btSoftBody_checkLink1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ node0-, withBt* `p1'  -- ^ node1- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#793>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setVolumeMass as btSoftBody_setVolumeMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#819>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterImpulse as btSoftBody_clusterImpulse    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p2 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ rpos-, withBt* `p2'  -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#819>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterImpulse as btSoftBody_clusterImpulse'    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p2 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, withBt* `p2'  -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#707>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_checkFace as btSoftBody_checkFace    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-,  `Int'  -- ^ node2- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#942>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_evaluateCom as btSoftBody_evaluateCom    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#821>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDAImpulse as btSoftBody_clusterDAImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#821>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDAImpulse as btSoftBody_clusterDAImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#960>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_VSolve_Links as btSoftBody_VSolve_Links    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb-,  `Float'  -- ^ kst- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#789>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setTotalMass as btSoftBody_setTotalMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ mass-,  `Bool'  -- ^ fromfaces- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#823>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDCImpulse as btSoftBody_clusterDCImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#823>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterDCImpulse as btSoftBody_clusterDCImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#815>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVelocity as btSoftBody_clusterVelocity    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#815>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVelocity as btSoftBody_clusterVelocity'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#826>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_generateBendingConstraints as btSoftBody_generateBendingConstraints    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ distance-, withBt* `p1'  -- ^ mat- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#949>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_updateClusters as btSoftBody_updateClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#756>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendAnchor0 as btSoftBody_appendAnchor    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node-, withBt* `p1'  -- ^ body-,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies-,  `Float'  -- ^ influence- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#756>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendAnchor0 as btSoftBody_appendAnchor0    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node-, withBt* `p1'  -- ^ body-,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies-,  `Float'  -- ^ influence- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#757>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendAnchor1 as btSoftBody_appendAnchor1    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node-, withBt* `p1'  -- ^ body-, withVector3* `Vector3'  peekVector3* -- ^ localPivot-,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies-,  `Float'  -- ^ influence- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#757>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendAnchor1 as btSoftBody_appendAnchor1'    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node-, withBt* `p1'  -- ^ body-, allocaVector3-  `Vector3'  peekVector3* -- ^ localPivot-,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies-,  `Float'  -- ^ influence- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#953>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_applyClusters as btSoftBody_applyClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ drift- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setVelocity as btSoftBody_setVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setVelocity as btSoftBody_setVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#810>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterCount as btSoftBody_clusterCount    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#911>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_upcast0 as btSoftBody_upcast    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#911>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_upcast0 as btSoftBody_upcast0    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#917>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_upcast1 as btSoftBody_upcast1    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#879>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getWindVelocity as btSoftBody_getWindVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#849>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_predictMotion as btSoftBody_predictMotion    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ dt- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#936>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_pointersToIndices as btSoftBody_pointersToIndices    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#784>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getMass as btSoftBody_getMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#957>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_PSolve_RContacts as btSoftBody_PSolve_RContacts    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb-,  `Float'  -- ^ kst-,  `Float'  -- ^ ti- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#941>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_initializeFaceTree as btSoftBody_initializeFaceTree    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#772>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#772>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#772>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#772>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity0'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#779>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity1 as btSoftBody_addVelocity1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ velocity-,  `Int'  -- ^ node- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#779>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_addVelocity1 as btSoftBody_addVelocity1'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity-,  `Int'  -- ^ node- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#956>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_PSolve_Anchors as btSoftBody_PSolve_Anchors    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb-,  `Float'  -- ^ kst-,  `Float'  -- ^ ti- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#950>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_cleanupClusters as btSoftBody_cleanupClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#797>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_transform as btSoftBody_transform    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ trs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#797>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_transform as btSoftBody_transform'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ trs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#761>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendLinearJoint2 as btSoftBody_appendLinearJoint2    `( BtSoftBodyClass bc , BtSoftBody_LJoint_SpecsClass p0 , BtSoftBodyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ specs-, withBt* `p1'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#828>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_randomizeConstraints as btSoftBody_randomizeConstraints    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#946>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_updatePose as btSoftBody_updatePose    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#799>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_translate as btSoftBody_translate    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ trs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#799>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_translate as btSoftBody_translate'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ trs- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#928>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getAabb as btSoftBody_getAabb    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ aabbMin-, withVector3* `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#928>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getAabb as btSoftBody_getAabb'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ aabbMax- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#958>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_PSolve_SContacts as btSoftBody_PSolve_SContacts    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb-,  `Float'  -- ^ arg1-,  `Float'  -- ^ ti- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#709>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendMaterial as btSoftBody_appendMaterial    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtSoftBody_Material' mkBtSoftBody_Material*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#728>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNode as btSoftBody_appendNode    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ x-,  `Float'  -- ^ m- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#728>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNode as btSoftBody_appendNode'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ x-,  `Float'  -- ^ m- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#782>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setMass as btSoftBody_setMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node-,  `Float'  -- ^ mass- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#859>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_integrateMotion as btSoftBody_integrateMotion    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#861>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_defaultCollisionHandler0 as btSoftBody_defaultCollisionHandler    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pco- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#861>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_defaultCollisionHandler0 as btSoftBody_defaultCollisionHandler0    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ pco- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#862>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_defaultCollisionHandler1 as btSoftBody_defaultCollisionHandler1    `( BtSoftBodyClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ psb- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#851>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_solveConstraints as btSoftBody_solveConstraints    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#791>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setTotalDensity as btSoftBody_setTotalDensity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ density- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#717>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote0 as btSoftBody_appendNote    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, withVector3* `Vector3'  peekVector3* -- ^ o-, withVector4* `Vector4'  peekVector4* -- ^ c-, withBt* `p3'  -- ^ n0-, withBt* `p4'  -- ^ n1-, withBt* `p5'  -- ^ n2-, withBt* `p6'  -- ^ n3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#717>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote0 as btSoftBody_appendNote'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, allocaVector3-  `Vector3'  peekVector3* -- ^ o-, allocaVector4-  `Vector4'  peekVector4* -- ^ c-, withBt* `p3'  -- ^ n0-, withBt* `p4'  -- ^ n1-, withBt* `p5'  -- ^ n2-, withBt* `p6'  -- ^ n3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#717>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote0 as btSoftBody_appendNote0    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, withVector3* `Vector3'  peekVector3* -- ^ o-, withVector4* `Vector4'  peekVector4* -- ^ c-, withBt* `p3'  -- ^ n0-, withBt* `p4'  -- ^ n1-, withBt* `p5'  -- ^ n2-, withBt* `p6'  -- ^ n3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#717>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote0 as btSoftBody_appendNote0'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, allocaVector3-  `Vector3'  peekVector3* -- ^ o-, allocaVector4-  `Vector4'  peekVector4* -- ^ c-, withBt* `p3'  -- ^ n0-, withBt* `p4'  -- ^ n1-, withBt* `p5'  -- ^ n2-, withBt* `p6'  -- ^ n3- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote1 as btSoftBody_appendNote1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, withVector3* `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote1 as btSoftBody_appendNote1'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, allocaVector3-  `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#723>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote2 as btSoftBody_appendNote2    `( BtSoftBodyClass bc , BtSoftBody_LinkClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, withVector3* `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#723>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote2 as btSoftBody_appendNote2'    `( BtSoftBodyClass bc , BtSoftBody_LinkClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, allocaVector3-  `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#726>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote3 as btSoftBody_appendNote3    `( BtSoftBodyClass bc , BtSoftBody_FaceClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, withVector3* `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#726>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendNote3 as btSoftBody_appendNote3'    `( BtSoftBodyClass bc , BtSoftBody_FaceClass p2 )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ text-, allocaVector3-  `Vector3'  peekVector3* -- ^ o-, withBt* `p2'  -- ^ feature- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#795>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setVolumeDensity as btSoftBody_setVolumeDensity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ density- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#947>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_updateConstants as btSoftBody_updateConstants    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#853>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_staticSolve as btSoftBody_staticSolve    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ iterations- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#837>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_refine as btSoftBody_refine    `( BtSoftBodyClass bc , BtSoftBody_ImplicitFnClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ ifn-,  `Float'  -- ^ accurary-,  `Bool'  -- ^ cut- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#730>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendLink0 as btSoftBody_appendLink    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#730>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendLink0 as btSoftBody_appendLink0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#734>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendLink1 as btSoftBody_appendLink1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p2 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-, withBt* `p2'  -- ^ mat-,  `Bool'  -- ^ bcheckexist- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#738>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendLink2 as btSoftBody_appendLink2    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 , BtSoftBody_MaterialClass p2 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ node0-, withBt* `p1'  -- ^ node1-, withBt* `p2'  -- ^ mat-,  `Bool'  -- ^ bcheckexist- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#965>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_calculateSerializeBufferSize as btSoftBody_calculateSerializeBufferSize    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#952>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_solveClusters1 as btSoftBody_solveClusters1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ sor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#845>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rayTest0 as btSoftBody_rayTest    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ results- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#845>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rayTest0 as btSoftBody_rayTest'    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ results- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#845>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rayTest0 as btSoftBody_rayTest0    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFrom-, withVector3* `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ results- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#845>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_rayTest0 as btSoftBody_rayTest0'    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFrom-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayTo-, withBt* `p2'  -- ^ results- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#806>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setPose as btSoftBody_setPose    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Bool'  -- ^ bvolume-,  `Bool'  -- ^ bframe- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#740>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendFace0 as btSoftBody_appendFace    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#740>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendFace0 as btSoftBody_appendFace0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#744>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendFace1 as btSoftBody_appendFace1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p3 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-,  `Int'  -- ^ node2-, withBt* `p3'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#954>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_dampClusters as btSoftBody_dampClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#689>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_getWorldInfo as btSoftBody_getWorldInfo    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#765>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendAngularJoint2 as btSoftBody_appendAngularJoint2    `( BtSoftBodyClass bc , BtSoftBody_AJoint_SpecsClass p0 , BtSoftBodyClass p1 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ specs-, withBt* `p1'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#817>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVImpulse as btSoftBody_clusterVImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, withVector3* `Vector3'  peekVector3* -- ^ rpos-, withVector3* `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#817>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterVImpulse as btSoftBody_clusterVImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ rpos-, allocaVector3-  `Vector3'  peekVector3* -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#803>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_scale as btSoftBody_scale    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ scl- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#803>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_scale as btSoftBody_scale'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ scl- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#822>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterAImpulse as btSoftBody_clusterAImpulse    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p1 )' =>     {  withBt* `p0'  -- ^ cluster-, withBt* `p1'  -- ^ impulse- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#812>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterCom0 as btSoftBody_clusterCom    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#812>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterCom0 as btSoftBody_clusterCom0    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#813>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_clusterCom1 as btSoftBody_clusterCom1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ cluster-, allocaVector3-  `Vector3'  peekVector3* -- ^ - } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#873>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setWindVelocity as btSoftBody_setWindVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#873>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_setWindVelocity as btSoftBody_setWindVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ velocity- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#955>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_applyForces as btSoftBody_applyForces    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#745>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendTetra0 as btSoftBody_appendTetra    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#745>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendTetra0 as btSoftBody_appendTetra0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ model-, withBt* `p1'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#751>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_appendTetra1 as btSoftBody_appendTetra1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p4 )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ node0-,  `Int'  -- ^ node1-,  `Int'  -- ^ node2-,  `Int'  -- ^ node3-, withBt* `p4'  -- ^ mat- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#660>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_bUpdateRtCst_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#660>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_bUpdateRtCst_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#668>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_initialWorldTransform_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#668>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_initialWorldTransform_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#658>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_timeacc_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#658>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_timeacc_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#670>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_windVelocity_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#670>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_windVelocity_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#647>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_m_worldInfo_set    `( BtSoftBodyClass bc , BtSoftBodyWorldInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btSoftBodyHelpers-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_new as btSoftBodyHelpers    {  } -> `BtSoftBodyHelpers' mkBtSoftBodyHelpers* #}-{#fun btSoftBodyHelpers_free    `( BtSoftBodyHelpersClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_DrawInfos as btSoftBodyHelpers_DrawInfos    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw-,  `Bool'  -- ^ masses-,  `Bool'  -- ^ areas-,  `Bool'  -- ^ stress- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_Draw as btSoftBodyHelpers_Draw    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw-,  `Int'  -- ^ drawflags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreateEllipsoid as btSoftBodyHelpers_CreateEllipsoid    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, withVector3* `Vector3'  peekVector3* -- ^ center-, withVector3* `Vector3'  peekVector3* -- ^ radius-,  `Int'  -- ^ res- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreateEllipsoid as btSoftBodyHelpers_CreateEllipsoid'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, allocaVector3-  `Vector3'  peekVector3* -- ^ center-, allocaVector3-  `Vector3'  peekVector3* -- ^ radius-,  `Int'  -- ^ res- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreateFromTetGenData as btSoftBodyHelpers_CreateFromTetGenData    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-,  `String'  -- ^ ele-,  `String'  -- ^ face-,  `String'  -- ^ node-,  `Bool'  -- ^ bfacelinks-,  `Bool'  -- ^ btetralinks-,  `Bool'  -- ^ bfacesfromtetras- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_DrawFrame as btSoftBodyHelpers_DrawFrame    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreateRope as btSoftBodyHelpers_CreateRope    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-,  `Int'  -- ^ res-,  `Int'  -- ^ fixeds- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreateRope as btSoftBodyHelpers_CreateRope'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-,  `Int'  -- ^ res-,  `Int'  -- ^ fixeds- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#102>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CalculateUV as btSoftBodyHelpers_CalculateUV    `( )' =>     {   `Int'  -- ^ resx-,  `Int'  -- ^ resy-,  `Int'  -- ^ ix-,  `Int'  -- ^ iy-,  `Int'  -- ^ id- } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_DrawFaceTree as btSoftBodyHelpers_DrawFaceTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw-,  `Int'  -- ^ mindepth-,  `Int'  -- ^ maxdepth- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_DrawClusterTree as btSoftBodyHelpers_DrawClusterTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw-,  `Int'  -- ^ mindepth-,  `Int'  -- ^ maxdepth- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_DrawNodeTree as btSoftBodyHelpers_DrawNodeTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb-, withBt* `p1'  -- ^ idraw-,  `Int'  -- ^ mindepth-,  `Int'  -- ^ maxdepth- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreatePatch as btSoftBodyHelpers_CreatePatch    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, withVector3* `Vector3'  peekVector3* -- ^ corner00-, withVector3* `Vector3'  peekVector3* -- ^ corner10-, withVector3* `Vector3'  peekVector3* -- ^ corner01-, withVector3* `Vector3'  peekVector3* -- ^ corner11-,  `Int'  -- ^ resx-,  `Int'  -- ^ resy-,  `Int'  -- ^ fixeds-,  `Bool'  -- ^ gendiags- } ->  `BtSoftBody' mkBtSoftBody*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun btSoftBodyHelpers_CreatePatch as btSoftBodyHelpers_CreatePatch'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo-, allocaVector3-  `Vector3'  peekVector3* -- ^ corner00-, allocaVector3-  `Vector3'  peekVector3* -- ^ corner10-, allocaVector3-  `Vector3'  peekVector3* -- ^ corner01-, allocaVector3-  `Vector3'  peekVector3* -- ^ corner11-,  `Int'  -- ^ resx-,  `Int'  -- ^ resy-,  `Int'  -- ^ fixeds-,  `Bool'  -- ^ gendiags- } ->  `BtSoftBody' mkBtSoftBody*  #}--- * btSoftBodyRigidBodyCollisionConfiguration-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>--}-{#fun btSoftBodyRigidBodyCollisionConfiguration_new as btSoftBodyRigidBodyCollisionConfiguration    `( BtDefaultCollisionConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBodyRigidBodyCollisionConfiguration' mkBtSoftBodyRigidBodyCollisionConfiguration* #}-{#fun btSoftBodyRigidBodyCollisionConfiguration_free    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>--}-{#fun btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc as btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ proxyType0-,  `Int'  -- ^ proxyType1- } ->  `BtCollisionAlgorithmCreateFunc' mkBtCollisionAlgorithmCreateFunc*  #}--- * btSoftBodyWorldInfo-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_new as btSoftBodyWorldInfo    {  } -> `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo* #}-{#fun btSoftBodyWorldInfo_free    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_air_density_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#45>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_air_density_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#49>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_m_broadphase_set    `( BtSoftBodyWorldInfoClass bc , BtBroadphaseInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_m_dispatcher_set    `( BtSoftBodyWorldInfoClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_m_gravity_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_m_gravity_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_density_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_density_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_normal_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#48>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_normal_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_offset_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBodyWorldInfo_water_offset_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * btSoftRigidDynamicsWorld-{#fun btSoftRigidDynamicsWorld_free    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_getWorldInfo0 as btSoftRigidDynamicsWorld_getWorldInfo    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_getWorldInfo0 as btSoftRigidDynamicsWorld_getWorldInfo0    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_getWorldInfo1 as btSoftRigidDynamicsWorld_getWorldInfo1    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_setDrawFlags as btSoftRigidDynamicsWorld_setDrawFlags    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ f- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#103>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_serialize as btSoftRigidDynamicsWorld_serialize    `( BtSoftRigidDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ serializer- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_rayTest as btSoftRigidDynamicsWorld_rayTest    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ rayFromWorld-, withVector3* `Vector3'  peekVector3* -- ^ rayToWorld-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_rayTest as btSoftRigidDynamicsWorld_rayTest'    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ rayFromWorld-, allocaVector3-  `Vector3'  peekVector3* -- ^ rayToWorld-, withBt* `p2'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_addSoftBody as btSoftRigidDynamicsWorld_addSoftBody    `( BtSoftRigidDynamicsWorldClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body-,  `Int'  -- ^ collisionFilterGroup-,  `Int'  -- ^ collisionFilterMask- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_removeCollisionObject as btSoftRigidDynamicsWorld_removeCollisionObject    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ collisionObject- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_rayTestSingle as btSoftRigidDynamicsWorld_rayTestSingle    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  withTransform* `Transform'  peekTransform* -- ^ rayFromTrans-, withTransform* `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p2'  -- ^ collisionObject-, withBt* `p3'  -- ^ collisionShape-, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p5'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_rayTestSingle as btSoftRigidDynamicsWorld_rayTestSingle'    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans-, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans-, withBt* `p2'  -- ^ collisionObject-, withBt* `p3'  -- ^ collisionShape-, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform-, withBt* `p5'  -- ^ resultCallback- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_removeSoftBody as btSoftRigidDynamicsWorld_removeSoftBody    `( BtSoftRigidDynamicsWorldClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ body- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_debugDrawWorld as btSoftRigidDynamicsWorld_debugDrawWorld    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#64>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>--}-{#fun btSoftRigidDynamicsWorld_getDrawFlags as btSoftRigidDynamicsWorld_getDrawFlags    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}--- * eAeroModel-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_eAeroModel_new as btSoftBody_eAeroModel    {  } -> `BtSoftBody_eAeroModel' mkBtSoftBody_eAeroModel* #}-{#fun btSoftBody_eAeroModel_free    `( BtSoftBody_eAeroModelClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * eFeature-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_eFeature_new as btSoftBody_eFeature    {  } -> `BtSoftBody_eFeature' mkBtSoftBody_eFeature* #}-{#fun btSoftBody_eFeature_free    `( BtSoftBody_eFeatureClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * ePSolver-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#98>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_ePSolver_new as btSoftBody_ePSolver    {  } -> `BtSoftBody_ePSolver' mkBtSoftBody_ePSolver* #}-{#fun btSoftBody_ePSolver_free    `( BtSoftBody_ePSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * eSolverPresets-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_eSolverPresets_new as btSoftBody_eSolverPresets    {  } -> `BtSoftBody_eSolverPresets' mkBtSoftBody_eSolverPresets* #}-{#fun btSoftBody_eSolverPresets_free    `( BtSoftBody_eSolverPresetsClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * eType-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#480>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_Joint_eType_new as btSoftBody_Joint_eType    {  } -> `BtSoftBody_Joint_eType' mkBtSoftBody_Joint_eType* #}-{#fun btSoftBody_Joint_eType_free    `( BtSoftBody_Joint_eTypeClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * eVSolver-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#92>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_eVSolver_new as btSoftBody_eVSolver    {  } -> `BtSoftBody_eVSolver' mkBtSoftBody_eVSolver* #}-{#fun btSoftBody_eVSolver_free    `( BtSoftBody_eVSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * fCollision-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#131>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_fCollision_new as btSoftBody_fCollision    {  } -> `BtSoftBody_fCollision' mkBtSoftBody_fCollision* #}-{#fun btSoftBody_fCollision_free    `( BtSoftBody_fCollisionClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * fDrawFlags-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#26>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>--}-{#fun fDrawFlags_new as fDrawFlags    {  } -> `FDrawFlags' mkFDrawFlags* #}-{#fun fDrawFlags_free    `( FDrawFlagsClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * fMaterial-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_fMaterial_new as btSoftBody_fMaterial    {  } -> `BtSoftBody_fMaterial' mkBtSoftBody_fMaterial* #}-{#fun btSoftBody_fMaterial_free    `( BtSoftBody_fMaterialClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * sCti-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#181>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_new as btSoftBody_sCti    {  } -> `BtSoftBody_sCti' mkBtSoftBody_sCti* #}-{#fun btSoftBody_sCti_free    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#182>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_m_colObj_set    `( BtSoftBody_sCtiClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#183>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_m_normal_set    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#183>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_m_normal_get    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#184>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_m_offset_set    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#184>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sCti_m_offset_get    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}--- * sMedium-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#189>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_new as btSoftBody_sMedium    {  } -> `BtSoftBody_sMedium' mkBtSoftBody_sMedium* #}-{#fun btSoftBody_sMedium_free    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#192>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_density_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#192>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_density_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#191>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_pressure_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#191>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_pressure_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_velocity_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' , withVector3* `Vector3'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#190>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sMedium_m_velocity_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' , allocaVector3-  `Vector3'  peekVector3* } -> `()' #}--- * sRayCast-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#159>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sRayCast_new as btSoftBody_sRayCast    {  } -> `BtSoftBody_sRayCast' mkBtSoftBody_sRayCast* #}-{#fun btSoftBody_sRayCast_free    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#160>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sRayCast_body_set    `( BtSoftBody_sRayCastClass bc , BtSoftBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#163>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sRayCast_fraction_set    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#163>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sRayCast_fraction_get    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#162>-     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>--}-{#fun btSoftBody_sRayCast_index_set    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#162>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#526>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_new as btSoftBody_AJoint    {  } -> `BtSoftBody_AJoint' mkBtSoftBody_AJoint* #}+{#fun btSoftBody_AJoint_free    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#543>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Terminate as btSoftBody_AJoint_Terminate    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#542>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Solve as btSoftBody_AJoint_Solve    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Float'  -- ^ sor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Prepare as btSoftBody_AJoint_Prepare    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Int'  -- ^ iterations+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#540>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_m_icontrol_set    `( BtSoftBody_AJointClass bc , BtSoftBody_AJoint_IControlClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#540>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_m_icontrol_get    `( BtSoftBody_AJointClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_AJoint_IControl'  mkBtSoftBody_AJoint_IControl* #}+-- * Anchor+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#284>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_new as btSoftBody_Anchor    {  } -> `BtSoftBody_Anchor' mkBtSoftBody_Anchor* #}+{#fun btSoftBody_Anchor_free    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_node_set    `( BtSoftBody_AnchorClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_node_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_local_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#286>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_local_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#287>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_body_set    `( BtSoftBody_AnchorClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#287>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_body_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_influence_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#288>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_influence_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c0_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#289>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c0_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#290>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c1_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#290>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c1_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c2_set    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#291>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Anchor_m_c2_get    `( BtSoftBody_AnchorClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Body+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_new0 as btSoftBody_Body0    {  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#380>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_new1 as btSoftBody_Body1    `( BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#381>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_new2 as btSoftBody_Body2    `( BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody_Body' mkBtSoftBody_Body* #}+{#fun btSoftBody_Body_free    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#394>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_invWorldInertia as btSoftBody_Body_invWorldInertia    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaMat3-  `Mat3'  peekMat3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#386>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_activate as btSoftBody_Body_activate    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#414>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_linearVelocity as btSoftBody_Body_linearVelocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyVImpulse as btSoftBody_Body_applyVImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+, withVec3* `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#436>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyVImpulse as btSoftBody_Body_applyVImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#441>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDImpulse as btSoftBody_Body_applyDImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+, withVec3* `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#441>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDImpulse as btSoftBody_Body_applyDImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDCImpulse as btSoftBody_Body_applyDCImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#474>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDCImpulse as btSoftBody_Body_applyDCImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#469>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyAImpulse as btSoftBody_Body_applyAImpulse    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#420>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#420>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#420>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity0    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#420>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_angularVelocity0 as btSoftBody_Body_angularVelocity0'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#426>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_angularVelocity1 as btSoftBody_Body_angularVelocity1    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#459>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyVAImpulse as btSoftBody_Body_applyVAImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#459>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyVAImpulse as btSoftBody_Body_applyVAImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#446>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyImpulse as btSoftBody_Body_applyImpulse    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ impulse+, withVec3* `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#446>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyImpulse as btSoftBody_Body_applyImpulse'    `( BtSoftBody_BodyClass bc , BtSoftBody_ImpulseClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ impulse+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDAImpulse as btSoftBody_Body_applyDAImpulse    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#464>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_applyDAImpulse as btSoftBody_Body_applyDAImpulse'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#432>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_velocity as btSoftBody_Body_velocity    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#432>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_velocity as btSoftBody_Body_velocity'    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#401>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_invMass as btSoftBody_Body_invMass    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#407>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_xform as btSoftBody_Body_xform    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_soft_set    `( BtSoftBody_BodyClass bc , BtSoftBody_ClusterClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_soft_get    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_rigid_set    `( BtSoftBody_BodyClass bc , BtRigidBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_rigid_get    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_collisionObject_set    `( BtSoftBody_BodyClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Body_m_collisionObject_get    `( BtSoftBody_BodyClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+-- * CJoint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#548>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_new as btSoftBody_CJoint    {  } -> `BtSoftBody_CJoint' mkBtSoftBody_CJoint* #}+{#fun btSoftBody_CJoint_free    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#556>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_Terminate as btSoftBody_CJoint_Terminate    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#555>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_Solve as btSoftBody_CJoint_Solve    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Float'  -- ^ sor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#554>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_Prepare as btSoftBody_CJoint_Prepare    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Int'  -- ^ iterations+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#549>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_life_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#549>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_life_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#550>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_maxlife_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#550>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_maxlife_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#552>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_normal_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#552>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_normal_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#553>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_friction_set    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#553>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_CJoint_m_friction_get    `( BtSoftBody_CJointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Cluster+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#343>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_new as btSoftBody_Cluster    {  } -> `BtSoftBody_Cluster' mkBtSoftBody_Cluster* #}+{#fun btSoftBody_Cluster_free    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#336>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_adamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#336>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_adamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_av_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#332>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_av_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#342>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_clusterIndex_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#342>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_clusterIndex_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_collide_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#341>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_collide_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_com_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#326>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_com_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_containsAnchor_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#340>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_containsAnchor_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_framerefs_set    `( BtSoftBody_ClusterClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#320>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_framerefs_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#321>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_framexform_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#321>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_framexform_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_idmass_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#322>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_idmass_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_imass_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#323>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_imass_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_invwi_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#325>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_invwi_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ldamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#335>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ldamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_leaf_set    `( BtSoftBody_ClusterClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#333>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_leaf_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_locii_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#324>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_locii_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_lv_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#331>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_lv_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_masses_set    `( BtSoftBody_ClusterClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#318>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_masses_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_matching_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#337>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_matching_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#338>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_maxSelfCollisionImpulse_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#338>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_maxSelfCollisionImpulse_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#334>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ndamping_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#334>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ndamping_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ndimpulses_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#330>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_ndimpulses_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_nodes_set    `( BtSoftBody_ClusterClass bc , BtAlignedObjectArray_btSoftBody_Node_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#319>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_nodes_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Node_ptr_'  mkBtAlignedObjectArray_btSoftBody_Node_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_nvimpulses_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#329>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_nvimpulses_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#339>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_selfCollisionImpulseFactor_set    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#339>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Cluster_m_selfCollisionImpulseFactor_get    `( BtSoftBody_ClusterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Config+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#561>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_new as btSoftBody_Config    {  } -> `BtSoftBody_Config' mkBtSoftBody_Config* #}+{#fun btSoftBody_Config_free    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#563>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kVCF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#563>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kVCF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#564>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDP_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#564>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDP_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#565>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDG_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#565>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDG_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kLF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#566>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kLF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kPR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#567>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kPR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#568>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kVC_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#568>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kVC_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#569>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDF_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#569>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kDF_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#570>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kMT_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#570>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kMT_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#571>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kCHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#571>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kCHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#572>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kKHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#572>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kKHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#573>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#573>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#574>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kAHR_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#574>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kAHR_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#575>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSRHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#575>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSRHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSKHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#576>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSKHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#577>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSSHR_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#577>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSSHR_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#578>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSR_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#578>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSR_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#579>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSK_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#579>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSK_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#580>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSS_SPLT_CL_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#580>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_kSS_SPLT_CL_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#581>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_maxvolume_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#581>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_maxvolume_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#582>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_timescale_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#582>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_timescale_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#583>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_viterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#583>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_viterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#584>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_piterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#584>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_piterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#585>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_diterations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#585>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_diterations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#586>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_citerations_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#586>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_citerations_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#587>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_collisions_set    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#587>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_collisions_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#588>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_vsequence_set    `( BtSoftBody_ConfigClass bc , BtAlignedObjectArray_btSoftBody_eVSolver___Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#588>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_vsequence_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_eVSolver___'  mkBtAlignedObjectArray_btSoftBody_eVSolver___* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#589>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_psequence_set    `( BtSoftBody_ConfigClass bc , BtAlignedObjectArray_btSoftBody_ePSolver___Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#589>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_psequence_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_ePSolver___'  mkBtAlignedObjectArray_btSoftBody_ePSolver___* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#590>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_dsequence_set    `( BtSoftBody_ConfigClass bc , BtAlignedObjectArray_btSoftBody_ePSolver___Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#590>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Config_m_dsequence_get    `( BtSoftBody_ConfigClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_ePSolver___'  mkBtAlignedObjectArray_btSoftBody_ePSolver___* #}+-- * Element+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#202>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Element_new as btSoftBody_Element    {  } -> `BtSoftBody_Element' mkBtSoftBody_Element* #}+{#fun btSoftBody_Element_free    `( BtSoftBody_ElementClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#201>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Element_m_tag_set    `( BtSoftBody_ElementClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#201>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Element_m_tag_get    `( BtSoftBody_ElementClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+-- * Face+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#244>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_new as btSoftBody_Face    {  } -> `BtSoftBody_Face' mkBtSoftBody_Face* #}+{#fun btSoftBody_Face_free    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_normal_set    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_normal_get    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_ra_set    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#247>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_ra_get    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_leaf_set    `( BtSoftBody_FaceClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#248>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Face_m_leaf_get    `( BtSoftBody_FaceClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+-- * Feature+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#215>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Feature_new as btSoftBody_Feature    {  } -> `BtSoftBody_Feature' mkBtSoftBody_Feature* #}+{#fun btSoftBody_Feature_free    `( BtSoftBody_FeatureClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Feature_m_material_set    `( BtSoftBody_FeatureClass bc , BtSoftBody_MaterialClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#216>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Feature_m_material_get    `( BtSoftBody_FeatureClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+-- * IControl+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#528>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_IControl_new as btSoftBody_AJoint_IControl    {  } -> `BtSoftBody_AJoint_IControl' mkBtSoftBody_AJoint_IControl* #}+{#fun btSoftBody_AJoint_IControl_free    `( BtSoftBody_AJoint_IControlClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#531>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_IControl_Default as btSoftBody_AJoint_IControl_Default    `( )' =>     {  } ->  `BtSoftBody_AJoint_IControl'  mkBtSoftBody_AJoint_IControl* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#530>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_IControl_Speed as btSoftBody_AJoint_IControl_Speed    `( BtSoftBody_AJoint_IControlClass bc , BtSoftBody_AJointClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+,  `Float'  -- ^ current+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#529>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_IControl_Prepare as btSoftBody_AJoint_IControl_Prepare    `( BtSoftBody_AJoint_IControlClass bc , BtSoftBody_AJointClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+-- * ImplicitFn+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#172>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_ImplicitFn_Eval as btSoftBody_ImplicitFn_Eval    `( BtSoftBody_ImplicitFnClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ x+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#172>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_ImplicitFn_Eval as btSoftBody_ImplicitFn_Eval'    `( BtSoftBody_ImplicitFnClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ x+ } ->  `Float'   #}+-- * Impulse+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#356>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_new as btSoftBody_Impulse    {  } -> `BtSoftBody_Impulse' mkBtSoftBody_Impulse* #}+{#fun btSoftBody_Impulse_free    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#355>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_asDrift_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#355>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_asDrift_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#354>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_asVelocity_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#354>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_asVelocity_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#353>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_drift_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#353>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_drift_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_velocity_set    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#352>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Impulse_m_velocity_get    `( BtSoftBody_ImpulseClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * Joint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#508>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Terminate as btSoftBody_Joint_Terminate    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#507>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Solve as btSoftBody_Joint_Solve    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Float'  -- ^ sor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#506>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Prepare as btSoftBody_Joint_Prepare    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Int'  -- ^ iterations+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#497>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_cfm_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#497>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_cfm_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_erp_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#498>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_erp_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#499>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_split_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#499>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_split_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_drift_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#500>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_drift_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#501>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_sdrift_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#501>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_sdrift_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_massmatrix_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#502>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_massmatrix_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_delete_set    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#503>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_m_delete_get    `( BtSoftBody_JointClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * LJoint+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#513>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_new as btSoftBody_LJoint    {  } -> `BtSoftBody_LJoint' mkBtSoftBody_LJoint* #}+{#fun btSoftBody_LJoint_free    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#521>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Terminate as btSoftBody_LJoint_Terminate    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#520>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Solve as btSoftBody_LJoint_Solve    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Float'  -- ^ sor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#519>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Prepare as btSoftBody_LJoint_Prepare    `( BtSoftBody_LJointClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+,  `Int'  -- ^ iterations+ } ->  `()'   #}+-- * Link+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#233>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_new as btSoftBody_Link    {  } -> `BtSoftBody_Link' mkBtSoftBody_Link* #}+{#fun btSoftBody_Link_free    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_rl_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#235>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_rl_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_bbending_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#236>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_bbending_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c0_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#237>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c0_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c1_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#238>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c1_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c2_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#239>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c2_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c3_set    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#240>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Link_m_c3_get    `( BtSoftBody_LinkClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * Material+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#206>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_new as btSoftBody_Material    {  } -> `BtSoftBody_Material' mkBtSoftBody_Material* #}+{#fun btSoftBody_Material_free    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_flags_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#210>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_flags_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kAST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#208>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kAST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kLST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#207>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kLST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kVST_set    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#209>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Material_m_kVST_get    `( BtSoftBody_MaterialClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Node+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#220>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_new as btSoftBody_Node    {  } -> `BtSoftBody_Node' mkBtSoftBody_Node* #}+{#fun btSoftBody_Node_free    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_area_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_area_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_battach_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#229>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_battach_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_f_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_f_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_im_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#226>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_im_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_leaf_set    `( BtSoftBody_NodeClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_leaf_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_n_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_n_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_q_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#222>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_q_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_v_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#223>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_v_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_x_set    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Node_m_x_get    `( BtSoftBody_NodeClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * Note+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#295>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_new as btSoftBody_Note    {  } -> `BtSoftBody_Note' mkBtSoftBody_Note* #}+{#fun btSoftBody_Note_free    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#296>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_text_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#296>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_text_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_offset_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_offset_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_rank_set    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#298>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Note_m_rank_get    `( BtSoftBody_NoteClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * Pose+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#304>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_new as btSoftBody_Pose    {  } -> `BtSoftBody_Pose' mkBtSoftBody_Pose* #}+{#fun btSoftBody_Pose_free    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_bvolume_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#305>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_bvolume_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_bframe_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#306>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_bframe_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_volume_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#307>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_volume_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_pos_set    `( BtSoftBody_PoseClass bc , BtAlignedObjectArray_btVector3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#308>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_pos_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btVector3_'  mkBtAlignedObjectArray_btVector3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_wgh_set    `( BtSoftBody_PoseClass bc , BtAlignedObjectArray_float_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#309>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_wgh_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_float_'  mkBtAlignedObjectArray_float_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_com_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#310>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_com_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_rot_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#311>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_rot_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_scl_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#312>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_scl_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_aqq_set    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Pose_m_aqq_get    `( BtSoftBody_PoseClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+-- * RContact+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#262>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_new as btSoftBody_RContact    {  } -> `BtSoftBody_RContact' mkBtSoftBody_RContact* #}+{#fun btSoftBody_RContact_free    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#263>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_cti_set    `( BtSoftBody_RContactClass bc , BtSoftBody_sCtiClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#263>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_cti_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_sCti'  mkBtSoftBody_sCti* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_node_set    `( BtSoftBody_RContactClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_node_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c0_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , withMat3* `Mat3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c0_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , allocaMat3-  `Mat3'  peekMat3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c1_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#266>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c1_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#267>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c2_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#267>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c2_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c3_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#268>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c3_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#269>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c4_set    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#269>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RContact_m_c4_get    `( BtSoftBody_RContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * RayFromToCaster+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#610>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_new as btSoftBody_RayFromToCaster    {  withVec3* `Vec3' , withVec3* `Vec3' ,  `Float'  } -> `BtSoftBody_RayFromToCaster' mkBtSoftBody_RayFromToCaster* #}+{#fun btSoftBody_RayFromToCaster_free    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#611>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_Process as btSoftBody_RayFromToCaster_Process    `( BtSoftBody_RayFromToCasterClass bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ leaf+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#604>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayFrom_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#604>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayFrom_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#605>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayTo_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#605>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayTo_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#606>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayNormalizedDirection_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#606>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_rayNormalizedDirection_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#607>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_mint_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#607>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_mint_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#608>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_face_set    `( BtSoftBody_RayFromToCasterClass bc , BtSoftBody_FaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#608>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_face_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#609>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_tests_set    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#609>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_RayFromToCaster_m_tests_get    `( BtSoftBody_RayFromToCasterClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * SContact+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#273>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_new as btSoftBody_SContact    {  } -> `BtSoftBody_SContact' mkBtSoftBody_SContact* #}+{#fun btSoftBody_SContact_free    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_node_set    `( BtSoftBody_SContactClass bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#274>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_node_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_face_set    `( BtSoftBody_SContactClass bc , BtSoftBody_FaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#275>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_face_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_weights_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#276>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_weights_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_normal_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_normal_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_margin_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#278>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_margin_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#279>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_friction_set    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#279>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SContact_m_friction_get    `( BtSoftBody_SContactClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * SolverState+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#594>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_new as btSoftBody_SolverState    {  } -> `BtSoftBody_SolverState' mkBtSoftBody_SolverState* #}+{#fun btSoftBody_SolverState_free    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#595>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_sdt_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#595>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_sdt_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#596>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_isdt_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#596>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_isdt_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#597>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_velmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#597>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_velmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#598>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_radmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#598>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_radmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#599>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_updmrg_set    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#599>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_SolverState_updmrg_get    `( BtSoftBody_SolverStateClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Specs+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#490>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_new as btSoftBody_Joint_Specs    {  } -> `BtSoftBody_Joint_Specs' mkBtSoftBody_Joint_Specs* #}+{#fun btSoftBody_Joint_Specs_free    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#491>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_erp_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#491>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_erp_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#492>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_cfm_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#492>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_cfm_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_split_set    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#493>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_Specs_split_get    `( BtSoftBody_Joint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * Specs+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#515>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Specs_new as btSoftBody_LJoint_Specs    {  } -> `BtSoftBody_LJoint_Specs' mkBtSoftBody_LJoint_Specs* #}+{#fun btSoftBody_LJoint_Specs_free    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#516>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Specs_position_set    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#516>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_LJoint_Specs_position_get    `( BtSoftBody_LJoint_SpecsClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * Specs+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#535>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Specs_new as btSoftBody_AJoint_Specs    {  } -> `BtSoftBody_AJoint_Specs' mkBtSoftBody_AJoint_Specs* #}+{#fun btSoftBody_AJoint_Specs_free    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#536>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Specs_axis_set    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#536>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Specs_axis_get    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#537>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Specs_icontrol_set    `( BtSoftBody_AJoint_SpecsClass bc , BtSoftBody_AJoint_IControlClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#537>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_AJoint_Specs_icontrol_get    `( BtSoftBody_AJoint_SpecsClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_AJoint_IControl'  mkBtSoftBody_AJoint_IControl* #}+-- * Tetra+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#252>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_new as btSoftBody_Tetra    {  } -> `BtSoftBody_Tetra' mkBtSoftBody_Tetra* #}+{#fun btSoftBody_Tetra_free    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_rv_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#254>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_rv_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_leaf_set    `( BtSoftBody_TetraClass bc , BtDbvtNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#255>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_leaf_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_c1_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_c1_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_c2_set    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Tetra_m_c2_get    `( BtSoftBody_TetraClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btSoftBody+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#682>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_new1 as btSoftBody1    `( BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBody' mkBtSoftBody* #}+{#fun btSoftBody_free    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#811>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getVolume as btSoftBody_getVolume    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#842>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_cutLink0 as btSoftBody_cutLink    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+,  `Float'  -- ^ position+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#842>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_cutLink0 as btSoftBody_cutLink0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+,  `Float'  -- ^ position+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#843>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_cutLink1 as btSoftBody_cutLink1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ node0+, withBt* `p1'  -- ^ node1+,  `Float'  -- ^ position+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#962>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_PSolve_Links as btSoftBody_PSolve_Links    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb+,  `Float'  -- ^ kst+,  `Float'  -- ^ ti+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#838>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_generateClusters as btSoftBody_generateClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ k+,  `Int'  -- ^ maxiterations+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#698>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setCollisionShape as btSoftBody_setCollisionShape    `( BtSoftBodyClass bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionShape+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#951>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_initializeClusters as btSoftBody_initializeClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#823>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVAImpulse as btSoftBody_clusterVAImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#823>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVAImpulse as btSoftBody_clusterVAImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce0 as btSoftBody_addForce    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce0 as btSoftBody_addForce'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce0 as btSoftBody_addForce0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#770>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce0 as btSoftBody_addForce0'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ force+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#773>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce1 as btSoftBody_addForce1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ force+,  `Int'  -- ^ node+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#773>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addForce1 as btSoftBody_addForce1'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ force+,  `Int'  -- ^ node+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#971>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_serialize as btSoftBody_serialize    `( BtSoftBodyClass bc , BtSerializerClass p1 )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ dataBuffer+, withBt* `p1'  -- ^ serializer+ } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#948>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_updateBounds as btSoftBody_updateBounds    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#804>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rotate as btSoftBody_rotate    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ rot+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#804>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rotate as btSoftBody_rotate'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ rot+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#833>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_releaseCluster as btSoftBody_releaseCluster    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#947>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_updateNormals as btSoftBody_updateNormals    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#954>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_prepareClusters as btSoftBody_prepareClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ iterations+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#834>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_releaseClusters as btSoftBody_releaseClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#789>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getTotalMass as btSoftBody_getTotalMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#946>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkContact as btSoftBody_checkContact    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 , BtSoftBody_sCtiClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ colObj+, withVec3* `Vec3'  peekVec3* -- ^ x+,  `Float'  -- ^ margin+, withBt* `p3'  -- ^ cti+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#946>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkContact as btSoftBody_checkContact'    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 , BtSoftBody_sCtiClass p3 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ colObj+, allocaVec3-  `Vec3'  peekVec3* -- ^ x+,  `Float'  -- ^ margin+, withBt* `p3'  -- ^ cti+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#821>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDImpulse as btSoftBody_clusterDImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ rpos+, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#821>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDImpulse as btSoftBody_clusterDImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#684>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_initDefaults as btSoftBody_initDefaults    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#704>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkLink0 as btSoftBody_checkLink    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#704>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkLink0 as btSoftBody_checkLink0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#706>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkLink1 as btSoftBody_checkLink1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ node0+, withBt* `p1'  -- ^ node1+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#796>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setVolumeMass as btSoftBody_setVolumeMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#822>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterImpulse as btSoftBody_clusterImpulse    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p2 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ rpos+, withBt* `p2'  -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#822>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterImpulse as btSoftBody_clusterImpulse'    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p2 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, withBt* `p2'  -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#710>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_checkFace as btSoftBody_checkFace    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+,  `Int'  -- ^ node2+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#945>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_evaluateCom as btSoftBody_evaluateCom    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#824>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDAImpulse as btSoftBody_clusterDAImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#824>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDAImpulse as btSoftBody_clusterDAImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#963>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_VSolve_Links as btSoftBody_VSolve_Links    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb+,  `Float'  -- ^ kst+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#792>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setTotalMass as btSoftBody_setTotalMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ mass+,  `Bool'  -- ^ fromfaces+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#826>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDCImpulse as btSoftBody_clusterDCImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#826>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterDCImpulse as btSoftBody_clusterDCImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#818>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVelocity as btSoftBody_clusterVelocity    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#818>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVelocity as btSoftBody_clusterVelocity'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#829>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_generateBendingConstraints as btSoftBody_generateBendingConstraints    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ distance+, withBt* `p1'  -- ^ mat+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#952>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_updateClusters as btSoftBody_updateClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#759>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendAnchor0 as btSoftBody_appendAnchor    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+, withBt* `p1'  -- ^ body+,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies+,  `Float'  -- ^ influence+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#759>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendAnchor0 as btSoftBody_appendAnchor0    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+, withBt* `p1'  -- ^ body+,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies+,  `Float'  -- ^ influence+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#760>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendAnchor1 as btSoftBody_appendAnchor1    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+, withBt* `p1'  -- ^ body+, withVec3* `Vec3'  peekVec3* -- ^ localPivot+,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies+,  `Float'  -- ^ influence+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#760>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendAnchor1 as btSoftBody_appendAnchor1'    `( BtSoftBodyClass bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+, withBt* `p1'  -- ^ body+, allocaVec3-  `Vec3'  peekVec3* -- ^ localPivot+,  `Bool'  -- ^ disableCollisionBetweenLinkedBodies+,  `Float'  -- ^ influence+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#956>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_applyClusters as btSoftBody_applyClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ drift+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#778>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setVelocity as btSoftBody_setVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#778>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setVelocity as btSoftBody_setVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#813>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterCount as btSoftBody_clusterCount    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#914>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_upcast0 as btSoftBody_upcast    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#914>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_upcast0 as btSoftBody_upcast0    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#920>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_upcast1 as btSoftBody_upcast1    `(  BtCollisionObjectClass p0 )' =>     {  withBt* `p0'  -- ^ colObj+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#882>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getWindVelocity as btSoftBody_getWindVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#852>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_predictMotion as btSoftBody_predictMotion    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ dt+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#939>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_pointersToIndices as btSoftBody_pointersToIndices    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#787>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getMass as btSoftBody_getMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#960>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_PSolve_RContacts as btSoftBody_PSolve_RContacts    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb+,  `Float'  -- ^ kst+,  `Float'  -- ^ ti+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#944>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_initializeFaceTree as btSoftBody_initializeFaceTree    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity0    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#775>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity0 as btSoftBody_addVelocity0'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#782>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity1 as btSoftBody_addVelocity1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ velocity+,  `Int'  -- ^ node+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#782>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_addVelocity1 as btSoftBody_addVelocity1'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+,  `Int'  -- ^ node+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#959>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_PSolve_Anchors as btSoftBody_PSolve_Anchors    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb+,  `Float'  -- ^ kst+,  `Float'  -- ^ ti+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#953>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_cleanupClusters as btSoftBody_cleanupClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#800>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_transform as btSoftBody_transform    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ trs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#800>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_transform as btSoftBody_transform'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ trs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#764>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendLinearJoint2 as btSoftBody_appendLinearJoint2    `( BtSoftBodyClass bc , BtSoftBody_LJoint_SpecsClass p0 , BtSoftBodyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ specs+, withBt* `p1'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#831>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_randomizeConstraints as btSoftBody_randomizeConstraints    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#949>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_updatePose as btSoftBody_updatePose    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#802>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_translate as btSoftBody_translate    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ trs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#802>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_translate as btSoftBody_translate'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ trs+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#931>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getAabb as btSoftBody_getAabb    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ aabbMin+, withVec3* `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#931>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getAabb as btSoftBody_getAabb'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ aabbMax+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#961>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_PSolve_SContacts as btSoftBody_PSolve_SContacts    `(  BtSoftBodyClass p0 )' =>     {  withBt* `p0'  -- ^ psb+,  `Float'  -- ^ arg1+,  `Float'  -- ^ ti+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#712>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendMaterial as btSoftBody_appendMaterial    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#731>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNode as btSoftBody_appendNode    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ x+,  `Float'  -- ^ m+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#731>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNode as btSoftBody_appendNode'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ x+,  `Float'  -- ^ m+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#785>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setMass as btSoftBody_setMass    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node+,  `Float'  -- ^ mass+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#862>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_integrateMotion as btSoftBody_integrateMotion    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#864>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_defaultCollisionHandler0 as btSoftBody_defaultCollisionHandler    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pco+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#864>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_defaultCollisionHandler0 as btSoftBody_defaultCollisionHandler0    `( BtSoftBodyClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pco+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#865>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_defaultCollisionHandler1 as btSoftBody_defaultCollisionHandler1    `( BtSoftBodyClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ psb+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#854>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_solveConstraints as btSoftBody_solveConstraints    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#794>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setTotalDensity as btSoftBody_setTotalDensity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ density+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote0 as btSoftBody_appendNote    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, withVec3* `Vec3'  peekVec3* -- ^ o+, withVec4* `Vec4'  peekVec4* -- ^ c+, withBt* `p3'  -- ^ n0+, withBt* `p4'  -- ^ n1+, withBt* `p5'  -- ^ n2+, withBt* `p6'  -- ^ n3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote0 as btSoftBody_appendNote'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, allocaVec3-  `Vec3'  peekVec3* -- ^ o+, allocaVec4-  `Vec4'  peekVec4* -- ^ c+, withBt* `p3'  -- ^ n0+, withBt* `p4'  -- ^ n1+, withBt* `p5'  -- ^ n2+, withBt* `p6'  -- ^ n3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote0 as btSoftBody_appendNote0    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, withVec3* `Vec3'  peekVec3* -- ^ o+, withVec4* `Vec4'  peekVec4* -- ^ c+, withBt* `p3'  -- ^ n0+, withBt* `p4'  -- ^ n1+, withBt* `p5'  -- ^ n2+, withBt* `p6'  -- ^ n3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#720>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote0 as btSoftBody_appendNote0'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p3 , BtSoftBody_NodeClass p4 , BtSoftBody_NodeClass p5 , BtSoftBody_NodeClass p6 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, allocaVec3-  `Vec3'  peekVec3* -- ^ o+, allocaVec4-  `Vec4'  peekVec4* -- ^ c+, withBt* `p3'  -- ^ n0+, withBt* `p4'  -- ^ n1+, withBt* `p5'  -- ^ n2+, withBt* `p6'  -- ^ n3+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#723>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote1 as btSoftBody_appendNote1    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, withVec3* `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#723>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote1 as btSoftBody_appendNote1'    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, allocaVec3-  `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#726>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote2 as btSoftBody_appendNote2    `( BtSoftBodyClass bc , BtSoftBody_LinkClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, withVec3* `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#726>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote2 as btSoftBody_appendNote2'    `( BtSoftBodyClass bc , BtSoftBody_LinkClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, allocaVec3-  `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#729>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote3 as btSoftBody_appendNote3    `( BtSoftBodyClass bc , BtSoftBody_FaceClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, withVec3* `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#729>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendNote3 as btSoftBody_appendNote3'    `( BtSoftBodyClass bc , BtSoftBody_FaceClass p2 )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ text+, allocaVec3-  `Vec3'  peekVec3* -- ^ o+, withBt* `p2'  -- ^ feature+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#798>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setVolumeDensity as btSoftBody_setVolumeDensity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ density+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#950>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_updateConstants as btSoftBody_updateConstants    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#856>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_staticSolve as btSoftBody_staticSolve    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ iterations+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#840>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_refine as btSoftBody_refine    `( BtSoftBodyClass bc , BtSoftBody_ImplicitFnClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ifn+,  `Float'  -- ^ accurary+,  `Bool'  -- ^ cut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#733>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendLink0 as btSoftBody_appendLink    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#733>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendLink0 as btSoftBody_appendLink0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#737>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendLink1 as btSoftBody_appendLink1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+, withBt* `p2'  -- ^ mat+,  `Bool'  -- ^ bcheckexist+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#741>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendLink2 as btSoftBody_appendLink2    `( BtSoftBodyClass bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 , BtSoftBody_MaterialClass p2 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ node0+, withBt* `p1'  -- ^ node1+, withBt* `p2'  -- ^ mat+,  `Bool'  -- ^ bcheckexist+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#968>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_calculateSerializeBufferSize as btSoftBody_calculateSerializeBufferSize    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#860>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_solveClusters0 as btSoftBody_solveClusters    `(  BtAlignedObjectArray_btSoftBody_ptr_Class p0 )' =>     {  withBt* `p0'  -- ^ bodies+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#860>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_solveClusters0 as btSoftBody_solveClusters0    `(  BtAlignedObjectArray_btSoftBody_ptr_Class p0 )' =>     {  withBt* `p0'  -- ^ bodies+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#955>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_solveClusters1 as btSoftBody_solveClusters1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ sor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#848>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rayTest0 as btSoftBody_rayTest    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#848>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rayTest0 as btSoftBody_rayTest'    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#848>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rayTest0 as btSoftBody_rayTest0    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFrom+, withVec3* `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#848>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_rayTest0 as btSoftBody_rayTest0'    `( BtSoftBodyClass bc , BtSoftBody_sRayCastClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFrom+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayTo+, withBt* `p2'  -- ^ results+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#809>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setPose as btSoftBody_setPose    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Bool'  -- ^ bvolume+,  `Bool'  -- ^ bframe+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#743>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendFace0 as btSoftBody_appendFace    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#743>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendFace0 as btSoftBody_appendFace0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#747>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendFace1 as btSoftBody_appendFace1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p3 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+,  `Int'  -- ^ node2+, withBt* `p3'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#957>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_dampClusters as btSoftBody_dampClusters    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#692>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_getWorldInfo as btSoftBody_getWorldInfo    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#768>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendAngularJoint2 as btSoftBody_appendAngularJoint2    `( BtSoftBodyClass bc , BtSoftBody_AJoint_SpecsClass p0 , BtSoftBodyClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ specs+, withBt* `p1'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#820>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVImpulse as btSoftBody_clusterVImpulse    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, withVec3* `Vec3'  peekVec3* -- ^ rpos+, withVec3* `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#820>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterVImpulse as btSoftBody_clusterVImpulse'    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ rpos+, allocaVec3-  `Vec3'  peekVec3* -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#806>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_scale as btSoftBody_scale    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ scl+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#806>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_scale as btSoftBody_scale'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ scl+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#825>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterAImpulse as btSoftBody_clusterAImpulse    `(  BtSoftBody_ClusterClass p0 , BtSoftBody_ImpulseClass p1 )' =>     {  withBt* `p0'  -- ^ cluster+, withBt* `p1'  -- ^ impulse+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#815>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterCom0 as btSoftBody_clusterCom    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#815>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterCom0 as btSoftBody_clusterCom0    `(  BtSoftBody_ClusterClass p0 )' =>     {  withBt* `p0'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#816>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_clusterCom1 as btSoftBody_clusterCom1    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ cluster+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#876>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setWindVelocity as btSoftBody_setWindVelocity    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#876>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_setWindVelocity as btSoftBody_setWindVelocity'    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ velocity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#958>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_applyForces as btSoftBody_applyForces    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#748>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendTetra0 as btSoftBody_appendTetra    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#748>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendTetra0 as btSoftBody_appendTetra0    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ model+, withBt* `p1'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#754>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_appendTetra1 as btSoftBody_appendTetra1    `( BtSoftBodyClass bc , BtSoftBody_MaterialClass p4 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ node0+,  `Int'  -- ^ node1+,  `Int'  -- ^ node2+,  `Int'  -- ^ node3+, withBt* `p4'  -- ^ mat+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_anchors_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Anchor_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#656>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_anchors_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Anchor_'  mkBtAlignedObjectArray_btSoftBody_Anchor_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#663>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_bUpdateRtCst_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#663>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_bUpdateRtCst_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#666>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_cdbvt_set    `( BtSoftBodyClass bc , BtDbvtClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#666>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_cdbvt_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtDbvt'  mkBtDbvt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#646>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_cfg_set    `( BtSoftBodyClass bc , BtSoftBody_ConfigClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#646>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_cfg_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Config'  mkBtSoftBody_Config* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#669>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_clusterConnectivity_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_bool_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#669>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_clusterConnectivity_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_bool_'  mkBtAlignedObjectArray_bool_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#667>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_clusters_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#667>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_clusters_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Cluster_ptr_'  mkBtAlignedObjectArray_btSoftBody_Cluster_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_collisionDisabledObjects_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btCollisionObject_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_collisionDisabledObjects_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btCollisionObject_ptr_'  mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#654>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_faces_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Face_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#654>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_faces_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Face_'  mkBtAlignedObjectArray_btSoftBody_Face_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#665>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_fdbvt_set    `( BtSoftBodyClass bc , BtDbvtClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#665>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_fdbvt_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtDbvt'  mkBtDbvt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#671>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_initialWorldTransform_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#671>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_initialWorldTransform_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#659>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_joints_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Joint_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#659>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_joints_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Joint_ptr_'  mkBtAlignedObjectArray_btSoftBody_Joint_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#653>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_links_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Link_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#653>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_links_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Link_'  mkBtAlignedObjectArray_btSoftBody_Link_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#660>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_materials_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Material_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#660>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_materials_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Material_ptr_'  mkBtAlignedObjectArray_btSoftBody_Material_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#664>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_ndbvt_set    `( BtSoftBodyClass bc , BtDbvtClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#664>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_ndbvt_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtDbvt'  mkBtDbvt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#652>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_nodes_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Node_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#652>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_nodes_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Node_'  mkBtAlignedObjectArray_btSoftBody_Node_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#651>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_notes_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Note_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#651>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_notes_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Note_'  mkBtAlignedObjectArray_btSoftBody_Note_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#648>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_pose_set    `( BtSoftBodyClass bc , BtSoftBody_PoseClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#648>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_pose_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Pose'  mkBtSoftBody_Pose* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#657>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_rcontacts_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_RContact_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#657>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_rcontacts_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_RContact_'  mkBtAlignedObjectArray_btSoftBody_RContact_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#658>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_scontacts_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_SContact_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#658>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_scontacts_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_SContact_'  mkBtAlignedObjectArray_btSoftBody_SContact_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#647>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_sst_set    `( BtSoftBodyClass bc , BtSoftBody_SolverStateClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#647>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_sst_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_SolverState'  mkBtSoftBody_SolverState* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#649>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_tag_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#649>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_tag_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#655>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_tetras_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_btSoftBody_Tetra_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#655>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_tetras_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_Tetra_'  mkBtAlignedObjectArray_btSoftBody_Tetra_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#661>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_timeacc_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#661>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_timeacc_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#690>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_userIndexMapping_set    `( BtSoftBodyClass bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#690>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_userIndexMapping_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#673>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_windVelocity_set    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#673>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_windVelocity_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#650>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_worldInfo_set    `( BtSoftBodyClass bc , BtSoftBodyWorldInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#650>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_m_worldInfo_get    `( BtSoftBodyClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+-- * btSoftBodyHelpers+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_new as btSoftBodyHelpers    {  } -> `BtSoftBodyHelpers' mkBtSoftBodyHelpers* #}+{#fun btSoftBodyHelpers_free    `( BtSoftBodyHelpersClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_DrawInfos as btSoftBodyHelpers_DrawInfos    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+,  `Bool'  -- ^ masses+,  `Bool'  -- ^ areas+,  `Bool'  -- ^ stress+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_Draw as btSoftBodyHelpers_Draw    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+,  `Int'  -- ^ drawflags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreateEllipsoid as btSoftBodyHelpers_CreateEllipsoid    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, withVec3* `Vec3'  peekVec3* -- ^ center+, withVec3* `Vec3'  peekVec3* -- ^ radius+,  `Int'  -- ^ res+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreateEllipsoid as btSoftBodyHelpers_CreateEllipsoid'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, allocaVec3-  `Vec3'  peekVec3* -- ^ center+, allocaVec3-  `Vec3'  peekVec3* -- ^ radius+,  `Int'  -- ^ res+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreateFromTetGenData as btSoftBodyHelpers_CreateFromTetGenData    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+,  `String'  -- ^ ele+,  `String'  -- ^ face+,  `String'  -- ^ node+,  `Bool'  -- ^ bfacelinks+,  `Bool'  -- ^ btetralinks+,  `Bool'  -- ^ bfacesfromtetras+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_DrawFrame as btSoftBodyHelpers_DrawFrame    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreateRope as btSoftBodyHelpers_CreateRope    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+,  `Int'  -- ^ res+,  `Int'  -- ^ fixeds+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreateRope as btSoftBodyHelpers_CreateRope'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+,  `Int'  -- ^ res+,  `Int'  -- ^ fixeds+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#102>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CalculateUV as btSoftBodyHelpers_CalculateUV    `( )' =>     {   `Int'  -- ^ resx+,  `Int'  -- ^ resy+,  `Int'  -- ^ ix+,  `Int'  -- ^ iy+,  `Int'  -- ^ id+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_DrawFaceTree as btSoftBodyHelpers_DrawFaceTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+,  `Int'  -- ^ mindepth+,  `Int'  -- ^ maxdepth+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_DrawClusterTree as btSoftBodyHelpers_DrawClusterTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+,  `Int'  -- ^ mindepth+,  `Int'  -- ^ maxdepth+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_DrawNodeTree as btSoftBodyHelpers_DrawNodeTree    `(  BtSoftBodyClass p0 , BtIDebugDrawClass p1 )' =>     {  withBt* `p0'  -- ^ psb+, withBt* `p1'  -- ^ idraw+,  `Int'  -- ^ mindepth+,  `Int'  -- ^ maxdepth+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreatePatch as btSoftBodyHelpers_CreatePatch    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, withVec3* `Vec3'  peekVec3* -- ^ corner00+, withVec3* `Vec3'  peekVec3* -- ^ corner10+, withVec3* `Vec3'  peekVec3* -- ^ corner01+, withVec3* `Vec3'  peekVec3* -- ^ corner11+,  `Int'  -- ^ resx+,  `Int'  -- ^ resy+,  `Int'  -- ^ fixeds+,  `Bool'  -- ^ gendiags+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun btSoftBodyHelpers_CreatePatch as btSoftBodyHelpers_CreatePatch'    `(  BtSoftBodyWorldInfoClass p0 )' =>     {  withBt* `p0'  -- ^ worldInfo+, allocaVec3-  `Vec3'  peekVec3* -- ^ corner00+, allocaVec3-  `Vec3'  peekVec3* -- ^ corner10+, allocaVec3-  `Vec3'  peekVec3* -- ^ corner01+, allocaVec3-  `Vec3'  peekVec3* -- ^ corner11+,  `Int'  -- ^ resx+,  `Int'  -- ^ resy+,  `Int'  -- ^ fixeds+,  `Bool'  -- ^ gendiags+ } ->  `BtSoftBody'  mkBtSoftBody* #}+-- * btSoftBodyRigidBodyCollisionConfiguration+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_new as btSoftBodyRigidBodyCollisionConfiguration    `( BtDefaultCollisionConstructionInfoClass p0 )' =>     {  withBt* `p0'  } -> `BtSoftBodyRigidBodyCollisionConfiguration' mkBtSoftBodyRigidBodyCollisionConfiguration* #}+{#fun btSoftBodyRigidBodyCollisionConfiguration_free    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc as btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ proxyType0+,  `Int'  -- ^ proxyType1+ } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softSoftCreateFunc_set    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softSoftCreateFunc_get    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConvexCreateFunc_set    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConvexCreateFunc_get    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConvexCreateFunc_set    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConvexCreateFunc_get    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConcaveCreateFunc_set    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConcaveCreateFunc_get    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConcaveCreateFunc_set    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc , BtCollisionAlgorithmCreateFuncClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp?r=2223>+-}+{#fun btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConcaveCreateFunc_get    `( BtSoftBodyRigidBodyCollisionConfigurationClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionAlgorithmCreateFunc'  mkBtCollisionAlgorithmCreateFunc* #}+-- * btSoftBodyWorldInfo+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_new as btSoftBodyWorldInfo    {  } -> `BtSoftBodyWorldInfo' mkBtSoftBodyWorldInfo* #}+{#fun btSoftBodyWorldInfo_free    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_air_density_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_air_density_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_broadphase_set    `( BtSoftBodyWorldInfoClass bc , BtBroadphaseInterfaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#49>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_broadphase_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_dispatcher_set    `( BtSoftBodyWorldInfoClass bc , BtDispatcherClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_dispatcher_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `BtDispatcher'  mkBtDispatcher* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_gravity_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_gravity_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_sparsesdf_set    `( BtSoftBodyWorldInfoClass bc , BtSparseSdf_3_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_m_sparsesdf_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `BtSparseSdf_3_'  mkBtSparseSdf_3_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_density_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_density_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_normal_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_normal_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_offset_set    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBodyWorldInfo_water_offset_get    `( BtSoftBodyWorldInfoClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btSoftRigidDynamicsWorld+{#fun btSoftRigidDynamicsWorld_free    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_predictUnconstraintMotion as btSoftRigidDynamicsWorld_predictUnconstraintMotion    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getWorldInfo0 as btSoftRigidDynamicsWorld_getWorldInfo    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getWorldInfo0 as btSoftRigidDynamicsWorld_getWorldInfo0    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getWorldInfo1 as btSoftRigidDynamicsWorld_getWorldInfo1    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_setDrawFlags as btSoftRigidDynamicsWorld_setDrawFlags    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ f+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getSoftBodyArray0 as btSoftRigidDynamicsWorld_getSoftBodyArray    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btSoftBody_ptr_'  mkBtAlignedObjectArray_btSoftBody_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getSoftBodyArray0 as btSoftRigidDynamicsWorld_getSoftBodyArray0    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btSoftBody_ptr_'  mkBtAlignedObjectArray_btSoftBody_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getSoftBodyArray1 as btSoftRigidDynamicsWorld_getSoftBodyArray1    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtAlignedObjectArray_btSoftBody_ptr_'  mkBtAlignedObjectArray_btSoftBody_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#103>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_serialize as btSoftRigidDynamicsWorld_serialize    `( BtSoftRigidDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_rayTest as btSoftRigidDynamicsWorld_rayTest    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ rayFromWorld+, withVec3* `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_rayTest as btSoftRigidDynamicsWorld_rayTest'    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionWorld_RayResultCallbackClass p2 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ rayFromWorld+, allocaVec3-  `Vec3'  peekVec3* -- ^ rayToWorld+, withBt* `p2'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_solveSoftBodiesConstraints as btSoftRigidDynamicsWorld_solveSoftBodiesConstraints    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_removeCollisionObject as btSoftRigidDynamicsWorld_removeCollisionObject    `( BtSoftRigidDynamicsWorldClass bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ collisionObject+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_addSoftBody as btSoftRigidDynamicsWorld_addSoftBody    `( BtSoftRigidDynamicsWorldClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+,  `Int'  -- ^ collisionFilterGroup+,  `Int'  -- ^ collisionFilterMask+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_rayTestSingle as btSoftRigidDynamicsWorld_rayTestSingle    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  withTransform* `Transform'  peekTransform* -- ^ rayFromTrans+, withTransform* `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p2'  -- ^ collisionObject+, withBt* `p3'  -- ^ collisionShape+, withTransform* `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p5'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_rayTestSingle as btSoftRigidDynamicsWorld_rayTestSingle'    `(  BtCollisionObjectClass p2 , BtCollisionShapeClass p3 , BtCollisionWorld_RayResultCallbackClass p5 )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ rayFromTrans+, allocaTransform-  `Transform'  peekTransform* -- ^ rayToTrans+, withBt* `p2'  -- ^ collisionObject+, withBt* `p3'  -- ^ collisionShape+, allocaTransform-  `Transform'  peekTransform* -- ^ colObjWorldTransform+, withBt* `p5'  -- ^ resultCallback+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_internalSingleStepSimulation as btSoftRigidDynamicsWorld_internalSingleStepSimulation    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ timeStep+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_serializeSoftBodies as btSoftRigidDynamicsWorld_serializeSoftBodies    `( BtSoftRigidDynamicsWorldClass bc , BtSerializerClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ serializer+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_removeSoftBody as btSoftRigidDynamicsWorld_removeSoftBody    `( BtSoftRigidDynamicsWorldClass bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ body+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#64>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_getDrawFlags as btSoftRigidDynamicsWorld_getDrawFlags    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_debugDrawWorld as btSoftRigidDynamicsWorld_debugDrawWorld    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_softBodies_set    `( BtSoftRigidDynamicsWorldClass bc , BtAlignedObjectArray_btSoftBody_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_softBodies_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSoftBody_ptr_'  mkBtAlignedObjectArray_btSoftBody_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawFlags_set    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawFlags_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawNodeTree_set    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawNodeTree_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawFaceTree_set    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawFaceTree_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawClusterTree_set    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_drawClusterTree_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_sbi_set    `( BtSoftRigidDynamicsWorldClass bc , BtSoftBodyWorldInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_sbi_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBodyWorldInfo'  mkBtSoftBodyWorldInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_ownsSolver_set    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.h?r=2223#37>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp?r=2223>+-}+{#fun btSoftRigidDynamicsWorld_m_ownsSolver_get    `( BtSoftRigidDynamicsWorldClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btSparseSdf<3>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#45>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__new as btSparseSdf_3_    {  } -> `BtSparseSdf_3_' mkBtSparseSdf_3_* #}+{#fun btSparseSdf_3__free    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Reset as btSparseSdf_3__Reset    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#285>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Hash as btSparseSdf_3__Hash    `(  BtCollisionShapeClass p3 )' =>     {   `Int'  -- ^ x+,  `Int'  -- ^ y+,  `Int'  -- ^ z+, withBt* `p3'  -- ^ shape+ } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__RemoveReferences as btSparseSdf_3__RemoveReferences    `( BtSparseSdf_3_Class bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ pcs+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#277>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Lerp as btSparseSdf_3__Lerp    `( )' =>     {   `Float'  -- ^ a+,  `Float'  -- ^ b+,  `Float'  -- ^ t+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Evaluate as btSparseSdf_3__Evaluate    `( BtSparseSdf_3_Class bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ x+, withBt* `p1'  -- ^ shape+, withVec3* `Vec3'  peekVec3* -- ^ normal+,  `Float'  -- ^ margin+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Evaluate as btSparseSdf_3__Evaluate'    `( BtSparseSdf_3_Class bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ x+, withBt* `p1'  -- ^ shape+, allocaVec3-  `Vec3'  peekVec3* -- ^ normal+,  `Float'  -- ^ margin+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__GarbageCollect as btSparseSdf_3__GarbageCollect    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ lifetime+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#251>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__DistanceToShape as btSparseSdf_3__DistanceToShape    `(  BtCollisionShapeClass p1 )' =>     {  withVec3* `Vec3'  peekVec3* -- ^ x+, withBt* `p1'  -- ^ shape+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#251>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__DistanceToShape as btSparseSdf_3__DistanceToShape'    `(  BtCollisionShapeClass p1 )' =>     {  allocaVec3-  `Vec3'  peekVec3* -- ^ x+, withBt* `p1'  -- ^ shape+ } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__Initialize as btSparseSdf_3__Initialize    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ hashsize+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__cells_set    `( BtSparseSdf_3_Class bc , BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__cells_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_'  mkBtAlignedObjectArray_btSparseSdf_3__Cell_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__ncells_set    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__ncells_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__nprobes_set    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__nprobes_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__nqueries_set    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__nqueries_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__puid_set    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#70>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__puid_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__voxelsz_set    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSparseSDF.cpp?r=2223>+-}+{#fun btSparseSdf_3__voxelsz_get    `( BtSparseSdf_3_Class bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * eAeroModel+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_eAeroModel_new as btSoftBody_eAeroModel    {  } -> `BtSoftBody_eAeroModel' mkBtSoftBody_eAeroModel* #}+{#fun btSoftBody_eAeroModel_free    `( BtSoftBody_eAeroModelClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * eFeature+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_eFeature_new as btSoftBody_eFeature    {  } -> `BtSoftBody_eFeature' mkBtSoftBody_eFeature* #}+{#fun btSoftBody_eFeature_free    `( BtSoftBody_eFeatureClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * ePSolver+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_ePSolver_new as btSoftBody_ePSolver    {  } -> `BtSoftBody_ePSolver' mkBtSoftBody_ePSolver* #}+{#fun btSoftBody_ePSolver_free    `( BtSoftBody_ePSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * eSolverPresets+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_eSolverPresets_new as btSoftBody_eSolverPresets    {  } -> `BtSoftBody_eSolverPresets' mkBtSoftBody_eSolverPresets* #}+{#fun btSoftBody_eSolverPresets_free    `( BtSoftBody_eSolverPresetsClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * eType+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#483>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_Joint_eType_new as btSoftBody_Joint_eType    {  } -> `BtSoftBody_Joint_eType' mkBtSoftBody_Joint_eType* #}+{#fun btSoftBody_Joint_eType_free    `( BtSoftBody_Joint_eTypeClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * eVSolver+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#94>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_eVSolver_new as btSoftBody_eVSolver    {  } -> `BtSoftBody_eVSolver' mkBtSoftBody_eVSolver* #}+{#fun btSoftBody_eVSolver_free    `( BtSoftBody_eVSolverClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * fCollision+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#134>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_fCollision_new as btSoftBody_fCollision    {  } -> `BtSoftBody_fCollision' mkBtSoftBody_fCollision* #}+{#fun btSoftBody_fCollision_free    `( BtSoftBody_fCollisionClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * fDrawFlags+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.h?r=2223#26>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBodyHelpers.cpp?r=2223>+-}+{#fun fDrawFlags_new as fDrawFlags    {  } -> `FDrawFlags' mkFDrawFlags* #}+{#fun fDrawFlags_free    `( FDrawFlagsClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * fMaterial+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_fMaterial_new as btSoftBody_fMaterial    {  } -> `BtSoftBody_fMaterial' mkBtSoftBody_fMaterial* #}+{#fun btSoftBody_fMaterial_free    `( BtSoftBody_fMaterialClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * sCti+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#184>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_new as btSoftBody_sCti    {  } -> `BtSoftBody_sCti' mkBtSoftBody_sCti* #}+{#fun btSoftBody_sCti_free    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_colObj_set    `( BtSoftBody_sCtiClass bc , BtCollisionObjectClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#185>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_colObj_get    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc'  } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_normal_set    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#186>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_normal_get    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_offset_set    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#187>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sCti_m_offset_get    `( BtSoftBody_sCtiClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * sMedium+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#192>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_new as btSoftBody_sMedium    {  } -> `BtSoftBody_sMedium' mkBtSoftBody_sMedium* #}+{#fun btSoftBody_sMedium_free    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_density_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#195>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_density_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_pressure_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#194>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_pressure_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_velocity_set    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#193>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sMedium_m_velocity_get    `( BtSoftBody_sMediumClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+-- * sRayCast+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#162>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_new as btSoftBody_sRayCast    {  } -> `BtSoftBody_sRayCast' mkBtSoftBody_sRayCast* #}+{#fun btSoftBody_sRayCast_free    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_body_set    `( BtSoftBody_sRayCastClass bc , BtSoftBodyClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_body_get    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_fraction_set    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_fraction_get    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223>+-}+{#fun btSoftBody_sRayCast_index_set    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.h?r=2223#165>      <http://code.google.com/p/bullet/source/browse/trunk/src/BulletSoftBody/btSoftBody.cpp?r=2223> -} {#fun btSoftBody_sRayCast_index_get    `( BtSoftBody_sRayCastClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}
Physics/Bullet/Raw/C2HS.hs view
@@ -160,13 +160,13 @@ -- Given a list of enumeration values that represent bit masks, combine these -- masks using bitwise disjunction. ---combineBitMasks :: (Enum a, Bits b) => [a] -> b+combineBitMasks :: (Enum a, Bits b, Num b) => [a] -> b combineBitMasks = foldl (.|.) 0 . map (fromIntegral . fromEnum)  -- Tests whether the given bit mask is contained in the given bit pattern -- (i.e., all bits set in the mask are also set in the pattern). ---containsBitMask :: (Bits a, Enum b) => a -> b -> Bool+containsBitMask :: (Bits a, Enum b, Num a) => a -> b -> Bool bits `containsBitMask` bm = let bm' = fromIntegral . fromEnum $ bm 			    in 			    bm' .&. bits == bm'@@ -177,7 +177,7 @@ --   combined yield the bit pattern, instead all contained bit masks are --   produced. ---extractBitMasks :: (Bits a, Enum b, Bounded b) => a -> [b]+extractBitMasks :: (Bits a, Enum b, Bounded b, Num a) => a -> [b] extractBitMasks bits =    [bm | bm <- [minBound..maxBound], bits `containsBitMask` bm] @@ -207,7 +207,7 @@  -- |Obtain Haskell 'Bool' from C value. ---cToBool :: Num a => a -> Bool+cToBool :: (Eq a, Num a) => a -> Bool cToBool  = toBool  -- |Convert a C enumeration to Haskell.
Physics/Bullet/Raw/Class.chs view
@@ -1,1985 +1,4337 @@-{-#LANGUAGE ForeignFunctionInterface#-}-#include "Bullet.h"-module Physics.Bullet.Raw.Class where-import Control.Monad-import Foreign.Marshal.Alloc-import Foreign.ForeignPtr-import Foreign.Ptr-import Physics.Bullet.Raw.C2HS-import Physics.Bullet.Raw.Types--- * Class Pointer Types-{#pointer O_btSoftBody_AJoint as BtSoftBody_AJoint foreign newtype#}-mkBtSoftBody_AJoint p = liftM BtSoftBody_AJoint $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_AllHitsRayResultCallback as BtCollisionWorld_AllHitsRayResultCallback foreign newtype#}-mkBtCollisionWorld_AllHitsRayResultCallback p = liftM BtCollisionWorld_AllHitsRayResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Anchor as BtSoftBody_Anchor foreign newtype#}-mkBtSoftBody_Anchor p = liftM BtSoftBody_Anchor $ newForeignPtr_ $ castPtr p-{#pointer O_bT_BOX_BOX_TRANSFORM_CACHE as BT_BOX_BOX_TRANSFORM_CACHE foreign newtype#}-mkBT_BOX_BOX_TRANSFORM_CACHE p = liftM BT_BOX_BOX_TRANSFORM_CACHE $ newForeignPtr_ $ castPtr p-{#pointer O_bT_QUANTIZED_BVH_NODE as BT_QUANTIZED_BVH_NODE foreign newtype#}-mkBT_QUANTIZED_BVH_NODE p = liftM BT_QUANTIZED_BVH_NODE $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Body as BtSoftBody_Body foreign newtype#}-mkBtSoftBody_Body p = liftM BtSoftBody_Body $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_CJoint as BtSoftBody_CJoint foreign newtype#}-mkBtSoftBody_CJoint p = liftM BtSoftBody_CJoint $ newForeignPtr_ $ castPtr p-{#pointer O_cProfileIterator as CProfileIterator foreign newtype#}-mkCProfileIterator p = liftM CProfileIterator $ newForeignPtr_ $ castPtr p-{#pointer O_cProfileManager as CProfileManager foreign newtype#}-mkCProfileManager p = liftM CProfileManager $ newForeignPtr_ $ castPtr p-{#pointer O_cProfileNode as CProfileNode foreign newtype#}-mkCProfileNode p = liftM CProfileNode $ newForeignPtr_ $ castPtr p-{#pointer O_cProfileSample as CProfileSample foreign newtype#}-mkCProfileSample p = liftM CProfileSample $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_ClosestConvexResultCallback as BtCollisionWorld_ClosestConvexResultCallback foreign newtype#}-mkBtCollisionWorld_ClosestConvexResultCallback p = liftM BtCollisionWorld_ClosestConvexResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btDiscreteCollisionDetectorInterface_ClosestPointInput as BtDiscreteCollisionDetectorInterface_ClosestPointInput foreign newtype#}-mkBtDiscreteCollisionDetectorInterface_ClosestPointInput p = liftM BtDiscreteCollisionDetectorInterface_ClosestPointInput $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_ClosestRayResultCallback as BtCollisionWorld_ClosestRayResultCallback foreign newtype#}-mkBtCollisionWorld_ClosestRayResultCallback p = liftM BtCollisionWorld_ClosestRayResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Cluster as BtSoftBody_Cluster foreign newtype#}-mkBtSoftBody_Cluster p = liftM BtSoftBody_Cluster $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactCompoundShape_CompoundPrimitiveManager as BtGImpactCompoundShape_CompoundPrimitiveManager foreign newtype#}-mkBtGImpactCompoundShape_CompoundPrimitiveManager p = liftM BtGImpactCompoundShape_CompoundPrimitiveManager $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Config as BtSoftBody_Config foreign newtype#}-mkBtSoftBody_Config p = liftM BtSoftBody_Config $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_ContactResultCallback as BtCollisionWorld_ContactResultCallback foreign newtype#}-mkBtCollisionWorld_ContactResultCallback p = liftM BtCollisionWorld_ContactResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_ConvexResultCallback as BtCollisionWorld_ConvexResultCallback foreign newtype#}-mkBtCollisionWorld_ConvexResultCallback p = liftM BtCollisionWorld_ConvexResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactCollisionAlgorithm_CreateFunc as BtGImpactCollisionAlgorithm_CreateFunc foreign newtype#}-mkBtGImpactCollisionAlgorithm_CreateFunc p = liftM BtGImpactCollisionAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p-{#pointer O_btSphereSphereCollisionAlgorithm_CreateFunc as BtSphereSphereCollisionAlgorithm_CreateFunc foreign newtype#}-mkBtSphereSphereCollisionAlgorithm_CreateFunc p = liftM BtSphereSphereCollisionAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexConvexAlgorithm_CreateFunc as BtConvexConvexAlgorithm_CreateFunc foreign newtype#}-mkBtConvexConvexAlgorithm_CreateFunc p = liftM BtConvexConvexAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Element as BtSoftBody_Element foreign newtype#}-mkBtSoftBody_Element p = liftM BtSoftBody_Element $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Face as BtSoftBody_Face foreign newtype#}-mkBtSoftBody_Face p = liftM BtSoftBody_Face $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Feature as BtSoftBody_Feature foreign newtype#}-mkBtSoftBody_Feature p = liftM BtSoftBody_Feature $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_BVH_DATA as GIM_BVH_DATA foreign newtype#}-mkGIM_BVH_DATA p = liftM GIM_BVH_DATA $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_BVH_DATA_ARRAY as GIM_BVH_DATA_ARRAY foreign newtype#}-mkGIM_BVH_DATA_ARRAY p = liftM GIM_BVH_DATA_ARRAY $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_BVH_TREE_NODE as GIM_BVH_TREE_NODE foreign newtype#}-mkGIM_BVH_TREE_NODE p = liftM GIM_BVH_TREE_NODE $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_BVH_TREE_NODE_ARRAY as GIM_BVH_TREE_NODE_ARRAY foreign newtype#}-mkGIM_BVH_TREE_NODE_ARRAY p = liftM GIM_BVH_TREE_NODE_ARRAY $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_PAIR as GIM_PAIR foreign newtype#}-mkGIM_PAIR p = liftM GIM_PAIR $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_QUANTIZED_BVH_NODE_ARRAY as GIM_QUANTIZED_BVH_NODE_ARRAY foreign newtype#}-mkGIM_QUANTIZED_BVH_NODE_ARRAY p = liftM GIM_QUANTIZED_BVH_NODE_ARRAY $ newForeignPtr_ $ castPtr p-{#pointer O_gIM_TRIANGLE_CONTACT as GIM_TRIANGLE_CONTACT foreign newtype#}-mkGIM_TRIANGLE_CONTACT p = liftM GIM_TRIANGLE_CONTACT $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_IClone as BtDbvt_IClone foreign newtype#}-mkBtDbvt_IClone p = liftM BtDbvt_IClone $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_ICollide as BtDbvt_ICollide foreign newtype#}-mkBtDbvt_ICollide p = liftM BtDbvt_ICollide $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_AJoint_IControl as BtSoftBody_AJoint_IControl foreign newtype#}-mkBtSoftBody_AJoint_IControl p = liftM BtSoftBody_AJoint_IControl $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_IWriter as BtDbvt_IWriter foreign newtype#}-mkBtDbvt_IWriter p = liftM BtDbvt_IWriter $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_ImplicitFn as BtSoftBody_ImplicitFn foreign newtype#}-mkBtSoftBody_ImplicitFn p = liftM BtSoftBody_ImplicitFn $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Impulse as BtSoftBody_Impulse foreign newtype#}-mkBtSoftBody_Impulse p = liftM BtSoftBody_Impulse $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Joint as BtSoftBody_Joint foreign newtype#}-mkBtSoftBody_Joint p = liftM BtSoftBody_Joint $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_LJoint as BtSoftBody_LJoint foreign newtype#}-mkBtSoftBody_LJoint p = liftM BtSoftBody_LJoint $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Link as BtSoftBody_Link foreign newtype#}-mkBtSoftBody_Link p = liftM BtSoftBody_Link $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_LocalConvexResult as BtCollisionWorld_LocalConvexResult foreign newtype#}-mkBtCollisionWorld_LocalConvexResult p = liftM BtCollisionWorld_LocalConvexResult $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_LocalRayResult as BtCollisionWorld_LocalRayResult foreign newtype#}-mkBtCollisionWorld_LocalRayResult p = liftM BtCollisionWorld_LocalRayResult $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_LocalShapeInfo as BtCollisionWorld_LocalShapeInfo foreign newtype#}-mkBtCollisionWorld_LocalShapeInfo p = liftM BtCollisionWorld_LocalShapeInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Material as BtSoftBody_Material foreign newtype#}-mkBtSoftBody_Material p = liftM BtSoftBody_Material $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Node as BtSoftBody_Node foreign newtype#}-mkBtSoftBody_Node p = liftM BtSoftBody_Node $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Note as BtSoftBody_Note foreign newtype#}-mkBtSoftBody_Note p = liftM BtSoftBody_Note $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Pose as BtSoftBody_Pose foreign newtype#}-mkBtSoftBody_Pose p = liftM BtSoftBody_Pose $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_RContact as BtSoftBody_RContact foreign newtype#}-mkBtSoftBody_RContact p = liftM BtSoftBody_RContact $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_RayFromToCaster as BtSoftBody_RayFromToCaster foreign newtype#}-mkBtSoftBody_RayFromToCaster p = liftM BtSoftBody_RayFromToCaster $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld_RayResultCallback as BtCollisionWorld_RayResultCallback foreign newtype#}-mkBtCollisionWorld_RayResultCallback p = liftM BtCollisionWorld_RayResultCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btWheelInfo_RaycastInfo as BtWheelInfo_RaycastInfo foreign newtype#}-mkBtWheelInfo_RaycastInfo p = liftM BtWheelInfo_RaycastInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btDiscreteCollisionDetectorInterface_Result as BtDiscreteCollisionDetectorInterface_Result foreign newtype#}-mkBtDiscreteCollisionDetectorInterface_Result p = liftM BtDiscreteCollisionDetectorInterface_Result $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_SContact as BtSoftBody_SContact foreign newtype#}-mkBtSoftBody_SContact p = liftM BtSoftBody_SContact $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_SolverState as BtSoftBody_SolverState foreign newtype#}-mkBtSoftBody_SolverState p = liftM BtSoftBody_SolverState $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Joint_Specs as BtSoftBody_Joint_Specs foreign newtype#}-mkBtSoftBody_Joint_Specs p = liftM BtSoftBody_Joint_Specs $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_LJoint_Specs as BtSoftBody_LJoint_Specs foreign newtype#}-mkBtSoftBody_LJoint_Specs p = liftM BtSoftBody_LJoint_Specs $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_AJoint_Specs as BtSoftBody_AJoint_Specs foreign newtype#}-mkBtSoftBody_AJoint_Specs p = liftM BtSoftBody_AJoint_Specs $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Tetra as BtSoftBody_Tetra foreign newtype#}-mkBtSoftBody_Tetra p = liftM BtSoftBody_Tetra $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactMeshShapePart_TrimeshPrimitiveManager as BtGImpactMeshShapePart_TrimeshPrimitiveManager foreign newtype#}-mkBtGImpactMeshShapePart_TrimeshPrimitiveManager p = liftM BtGImpactMeshShapePart_TrimeshPrimitiveManager $ newForeignPtr_ $ castPtr p-{#pointer O_bt32BitAxisSweep3 as Bt32BitAxisSweep3 foreign newtype#}-mkBt32BitAxisSweep3 p = liftM Bt32BitAxisSweep3 $ newForeignPtr_ $ castPtr p-{#pointer O_btAABB as BtAABB foreign newtype#}-mkBtAABB p = liftM BtAABB $ newForeignPtr_ $ castPtr p-{#pointer O_btActionInterface as BtActionInterface foreign newtype#}-mkBtActionInterface p = liftM BtActionInterface $ newForeignPtr_ $ castPtr p-{#pointer O_btActivatingCollisionAlgorithm as BtActivatingCollisionAlgorithm foreign newtype#}-mkBtActivatingCollisionAlgorithm p = liftM BtActivatingCollisionAlgorithm $ newForeignPtr_ $ castPtr p-{#pointer O_btAngularLimit as BtAngularLimit foreign newtype#}-mkBtAngularLimit p = liftM BtAngularLimit $ newForeignPtr_ $ castPtr p-{#pointer O_btAxisSweep3 as BtAxisSweep3 foreign newtype#}-mkBtAxisSweep3 p = liftM BtAxisSweep3 $ newForeignPtr_ $ castPtr p-{#pointer O_btBU_Simplex1to4 as BtBU_Simplex1to4 foreign newtype#}-mkBtBU_Simplex1to4 p = liftM BtBU_Simplex1to4 $ newForeignPtr_ $ castPtr p-{#pointer O_btBlock as BtBlock foreign newtype#}-mkBtBlock p = liftM BtBlock $ newForeignPtr_ $ castPtr p-{#pointer O_btBoxShape as BtBoxShape foreign newtype#}-mkBtBoxShape p = liftM BtBoxShape $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphaseAabbCallback as BtBroadphaseAabbCallback foreign newtype#}-mkBtBroadphaseAabbCallback p = liftM BtBroadphaseAabbCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphaseInterface as BtBroadphaseInterface foreign newtype#}-mkBtBroadphaseInterface p = liftM BtBroadphaseInterface $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphasePair as BtBroadphasePair foreign newtype#}-mkBtBroadphasePair p = liftM BtBroadphasePair $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphasePairSortPredicate as BtBroadphasePairSortPredicate foreign newtype#}-mkBtBroadphasePairSortPredicate p = liftM BtBroadphasePairSortPredicate $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphaseProxy as BtBroadphaseProxy foreign newtype#}-mkBtBroadphaseProxy p = liftM BtBroadphaseProxy $ newForeignPtr_ $ castPtr p-{#pointer O_btBroadphaseRayCallback as BtBroadphaseRayCallback foreign newtype#}-mkBtBroadphaseRayCallback p = liftM BtBroadphaseRayCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btBvhSubtreeInfo as BtBvhSubtreeInfo foreign newtype#}-mkBtBvhSubtreeInfo p = liftM BtBvhSubtreeInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btBvhSubtreeInfoData as BtBvhSubtreeInfoData foreign newtype#}-mkBtBvhSubtreeInfoData p = liftM BtBvhSubtreeInfoData $ newForeignPtr_ $ castPtr p-{#pointer O_btBvhTree as BtBvhTree foreign newtype#}-mkBtBvhTree p = liftM BtBvhTree $ newForeignPtr_ $ castPtr p-{#pointer O_btBvhTriangleMeshShape as BtBvhTriangleMeshShape foreign newtype#}-mkBtBvhTriangleMeshShape p = liftM BtBvhTriangleMeshShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCapsuleShape as BtCapsuleShape foreign newtype#}-mkBtCapsuleShape p = liftM BtCapsuleShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCapsuleShapeData as BtCapsuleShapeData foreign newtype#}-mkBtCapsuleShapeData p = liftM BtCapsuleShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btCapsuleShapeX as BtCapsuleShapeX foreign newtype#}-mkBtCapsuleShapeX p = liftM BtCapsuleShapeX $ newForeignPtr_ $ castPtr p-{#pointer O_btCapsuleShapeZ as BtCapsuleShapeZ foreign newtype#}-mkBtCapsuleShapeZ p = liftM BtCapsuleShapeZ $ newForeignPtr_ $ castPtr p-{#pointer O_btCharIndexTripletData as BtCharIndexTripletData foreign newtype#}-mkBtCharIndexTripletData p = liftM BtCharIndexTripletData $ newForeignPtr_ $ castPtr p-{#pointer O_btChunk as BtChunk foreign newtype#}-mkBtChunk p = liftM BtChunk $ newForeignPtr_ $ castPtr p-{#pointer O_btClock as BtClock foreign newtype#}-mkBtClock p = liftM BtClock $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionAlgorithm as BtCollisionAlgorithm foreign newtype#}-mkBtCollisionAlgorithm p = liftM BtCollisionAlgorithm $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionAlgorithmConstructionInfo as BtCollisionAlgorithmConstructionInfo foreign newtype#}-mkBtCollisionAlgorithmConstructionInfo p = liftM BtCollisionAlgorithmConstructionInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionAlgorithmCreateFunc as BtCollisionAlgorithmCreateFunc foreign newtype#}-mkBtCollisionAlgorithmCreateFunc p = liftM BtCollisionAlgorithmCreateFunc $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionConfiguration as BtCollisionConfiguration foreign newtype#}-mkBtCollisionConfiguration p = liftM BtCollisionConfiguration $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionDispatcher as BtCollisionDispatcher foreign newtype#}-mkBtCollisionDispatcher p = liftM BtCollisionDispatcher $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionObject as BtCollisionObject foreign newtype#}-mkBtCollisionObject p = liftM BtCollisionObject $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionObjectDoubleData as BtCollisionObjectDoubleData foreign newtype#}-mkBtCollisionObjectDoubleData p = liftM BtCollisionObjectDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionObjectFloatData as BtCollisionObjectFloatData foreign newtype#}-mkBtCollisionObjectFloatData p = liftM BtCollisionObjectFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionShape as BtCollisionShape foreign newtype#}-mkBtCollisionShape p = liftM BtCollisionShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionShapeData as BtCollisionShapeData foreign newtype#}-mkBtCollisionShapeData p = liftM BtCollisionShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btCollisionWorld as BtCollisionWorld foreign newtype#}-mkBtCollisionWorld p = liftM BtCollisionWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btCompoundShape as BtCompoundShape foreign newtype#}-mkBtCompoundShape p = liftM BtCompoundShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCompoundShapeChild as BtCompoundShapeChild foreign newtype#}-mkBtCompoundShapeChild p = liftM BtCompoundShapeChild $ newForeignPtr_ $ castPtr p-{#pointer O_btCompoundShapeChildData as BtCompoundShapeChildData foreign newtype#}-mkBtCompoundShapeChildData p = liftM BtCompoundShapeChildData $ newForeignPtr_ $ castPtr p-{#pointer O_btCompoundShapeData as BtCompoundShapeData foreign newtype#}-mkBtCompoundShapeData p = liftM BtCompoundShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btConcaveShape as BtConcaveShape foreign newtype#}-mkBtConcaveShape p = liftM BtConcaveShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConeShape as BtConeShape foreign newtype#}-mkBtConeShape p = liftM BtConeShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConeShapeX as BtConeShapeX foreign newtype#}-mkBtConeShapeX p = liftM BtConeShapeX $ newForeignPtr_ $ castPtr p-{#pointer O_btConeShapeZ as BtConeShapeZ foreign newtype#}-mkBtConeShapeZ p = liftM BtConeShapeZ $ newForeignPtr_ $ castPtr p-{#pointer O_btConeTwistConstraint as BtConeTwistConstraint foreign newtype#}-mkBtConeTwistConstraint p = liftM BtConeTwistConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btConeTwistConstraintData as BtConeTwistConstraintData foreign newtype#}-mkBtConeTwistConstraintData p = liftM BtConeTwistConstraintData $ newForeignPtr_ $ castPtr p-{#pointer O_btTypedConstraint_btConstraintInfo1 as BtTypedConstraint_btConstraintInfo1 foreign newtype#}-mkBtTypedConstraint_btConstraintInfo1 p = liftM BtTypedConstraint_btConstraintInfo1 $ newForeignPtr_ $ castPtr p-{#pointer O_btTypedConstraint_btConstraintInfo2 as BtTypedConstraint_btConstraintInfo2 foreign newtype#}-mkBtTypedConstraint_btConstraintInfo2 p = liftM BtTypedConstraint_btConstraintInfo2 $ newForeignPtr_ $ castPtr p-{#pointer O_btConstraintRow as BtConstraintRow foreign newtype#}-mkBtConstraintRow p = liftM BtConstraintRow $ newForeignPtr_ $ castPtr p-{#pointer O_btConstraintSetting as BtConstraintSetting foreign newtype#}-mkBtConstraintSetting p = liftM BtConstraintSetting $ newForeignPtr_ $ castPtr p-{#pointer O_btConstraintSolver as BtConstraintSolver foreign newtype#}-mkBtConstraintSolver p = liftM BtConstraintSolver $ newForeignPtr_ $ castPtr p-{#pointer O_btContactConstraint as BtContactConstraint foreign newtype#}-mkBtContactConstraint p = liftM BtContactConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btContactSolverInfo as BtContactSolverInfo foreign newtype#}-mkBtContactSolverInfo p = liftM BtContactSolverInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btContactSolverInfoData as BtContactSolverInfoData foreign newtype#}-mkBtContactSolverInfoData p = liftM BtContactSolverInfoData $ newForeignPtr_ $ castPtr p-{#pointer O_btContinuousDynamicsWorld as BtContinuousDynamicsWorld foreign newtype#}-mkBtContinuousDynamicsWorld p = liftM BtContinuousDynamicsWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexConvexAlgorithm as BtConvexConvexAlgorithm foreign newtype#}-mkBtConvexConvexAlgorithm p = liftM BtConvexConvexAlgorithm $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexHullShape as BtConvexHullShape foreign newtype#}-mkBtConvexHullShape p = liftM BtConvexHullShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexHullShapeData as BtConvexHullShapeData foreign newtype#}-mkBtConvexHullShapeData p = liftM BtConvexHullShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexInternalAabbCachingShape as BtConvexInternalAabbCachingShape foreign newtype#}-mkBtConvexInternalAabbCachingShape p = liftM BtConvexInternalAabbCachingShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexInternalShape as BtConvexInternalShape foreign newtype#}-mkBtConvexInternalShape p = liftM BtConvexInternalShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexInternalShapeData as BtConvexInternalShapeData foreign newtype#}-mkBtConvexInternalShapeData p = liftM BtConvexInternalShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexSeparatingDistanceUtil as BtConvexSeparatingDistanceUtil foreign newtype#}-mkBtConvexSeparatingDistanceUtil p = liftM BtConvexSeparatingDistanceUtil $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexShape as BtConvexShape foreign newtype#}-mkBtConvexShape p = liftM BtConvexShape $ newForeignPtr_ $ castPtr p-{#pointer O_btConvexTriangleMeshShape as BtConvexTriangleMeshShape foreign newtype#}-mkBtConvexTriangleMeshShape p = liftM BtConvexTriangleMeshShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCylinderShape as BtCylinderShape foreign newtype#}-mkBtCylinderShape p = liftM BtCylinderShape $ newForeignPtr_ $ castPtr p-{#pointer O_btCylinderShapeData as BtCylinderShapeData foreign newtype#}-mkBtCylinderShapeData p = liftM BtCylinderShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btCylinderShapeX as BtCylinderShapeX foreign newtype#}-mkBtCylinderShapeX p = liftM BtCylinderShapeX $ newForeignPtr_ $ castPtr p-{#pointer O_btCylinderShapeZ as BtCylinderShapeZ foreign newtype#}-mkBtCylinderShapeZ p = liftM BtCylinderShapeZ $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt as BtDbvt foreign newtype#}-mkBtDbvt p = liftM BtDbvt $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvtAabbMm as BtDbvtAabbMm foreign newtype#}-mkBtDbvtAabbMm p = liftM BtDbvtAabbMm $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvtBroadphase as BtDbvtBroadphase foreign newtype#}-mkBtDbvtBroadphase p = liftM BtDbvtBroadphase $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvtNode as BtDbvtNode foreign newtype#}-mkBtDbvtNode p = liftM BtDbvtNode $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvtProxy as BtDbvtProxy foreign newtype#}-mkBtDbvtProxy p = liftM BtDbvtProxy $ newForeignPtr_ $ castPtr p-{#pointer O_btDefaultCollisionConfiguration as BtDefaultCollisionConfiguration foreign newtype#}-mkBtDefaultCollisionConfiguration p = liftM BtDefaultCollisionConfiguration $ newForeignPtr_ $ castPtr p-{#pointer O_btDefaultCollisionConstructionInfo as BtDefaultCollisionConstructionInfo foreign newtype#}-mkBtDefaultCollisionConstructionInfo p = liftM BtDefaultCollisionConstructionInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btDefaultMotionState as BtDefaultMotionState foreign newtype#}-mkBtDefaultMotionState p = liftM BtDefaultMotionState $ newForeignPtr_ $ castPtr p-{#pointer O_btDefaultSerializer as BtDefaultSerializer foreign newtype#}-mkBtDefaultSerializer p = liftM BtDefaultSerializer $ newForeignPtr_ $ castPtr p-{#pointer O_btDefaultVehicleRaycaster as BtDefaultVehicleRaycaster foreign newtype#}-mkBtDefaultVehicleRaycaster p = liftM BtDefaultVehicleRaycaster $ newForeignPtr_ $ castPtr p-{#pointer O_btDiscreteCollisionDetectorInterface as BtDiscreteCollisionDetectorInterface foreign newtype#}-mkBtDiscreteCollisionDetectorInterface p = liftM BtDiscreteCollisionDetectorInterface $ newForeignPtr_ $ castPtr p-{#pointer O_btDiscreteDynamicsWorld as BtDiscreteDynamicsWorld foreign newtype#}-mkBtDiscreteDynamicsWorld p = liftM BtDiscreteDynamicsWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btDispatcher as BtDispatcher foreign newtype#}-mkBtDispatcher p = liftM BtDispatcher $ newForeignPtr_ $ castPtr p-{#pointer O_btDispatcherInfo as BtDispatcherInfo foreign newtype#}-mkBtDispatcherInfo p = liftM BtDispatcherInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btDynamicsWorld as BtDynamicsWorld foreign newtype#}-mkBtDynamicsWorld p = liftM BtDynamicsWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btEmptyShape as BtEmptyShape foreign newtype#}-mkBtEmptyShape p = liftM BtEmptyShape $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactBvh as BtGImpactBvh foreign newtype#}-mkBtGImpactBvh p = liftM BtGImpactBvh $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactCollisionAlgorithm as BtGImpactCollisionAlgorithm foreign newtype#}-mkBtGImpactCollisionAlgorithm p = liftM BtGImpactCollisionAlgorithm $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactCompoundShape as BtGImpactCompoundShape foreign newtype#}-mkBtGImpactCompoundShape p = liftM BtGImpactCompoundShape $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactMeshShape as BtGImpactMeshShape foreign newtype#}-mkBtGImpactMeshShape p = liftM BtGImpactMeshShape $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactMeshShapeData as BtGImpactMeshShapeData foreign newtype#}-mkBtGImpactMeshShapeData p = liftM BtGImpactMeshShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactMeshShapePart as BtGImpactMeshShapePart foreign newtype#}-mkBtGImpactMeshShapePart p = liftM BtGImpactMeshShapePart $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactQuantizedBvh as BtGImpactQuantizedBvh foreign newtype#}-mkBtGImpactQuantizedBvh p = liftM BtGImpactQuantizedBvh $ newForeignPtr_ $ castPtr p-{#pointer O_btGImpactShapeInterface as BtGImpactShapeInterface foreign newtype#}-mkBtGImpactShapeInterface p = liftM BtGImpactShapeInterface $ newForeignPtr_ $ castPtr p-{#pointer O_btGLDebugDrawer as BtGLDebugDrawer foreign newtype#}-mkBtGLDebugDrawer p = liftM BtGLDebugDrawer $ newForeignPtr_ $ castPtr p-{#pointer O_btGeneric6DofConstraint as BtGeneric6DofConstraint foreign newtype#}-mkBtGeneric6DofConstraint p = liftM BtGeneric6DofConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btGeneric6DofConstraintData as BtGeneric6DofConstraintData foreign newtype#}-mkBtGeneric6DofConstraintData p = liftM BtGeneric6DofConstraintData $ newForeignPtr_ $ castPtr p-{#pointer O_btGeneric6DofSpringConstraint as BtGeneric6DofSpringConstraint foreign newtype#}-mkBtGeneric6DofSpringConstraint p = liftM BtGeneric6DofSpringConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btGeneric6DofSpringConstraintData as BtGeneric6DofSpringConstraintData foreign newtype#}-mkBtGeneric6DofSpringConstraintData p = liftM BtGeneric6DofSpringConstraintData $ newForeignPtr_ $ castPtr p-{#pointer O_btGeometryUtil as BtGeometryUtil foreign newtype#}-mkBtGeometryUtil p = liftM BtGeometryUtil $ newForeignPtr_ $ castPtr p-{#pointer O_btGjkEpaSolver2 as BtGjkEpaSolver2 foreign newtype#}-mkBtGjkEpaSolver2 p = liftM BtGjkEpaSolver2 $ newForeignPtr_ $ castPtr p-{#pointer O_btGjkPairDetector as BtGjkPairDetector foreign newtype#}-mkBtGjkPairDetector p = liftM BtGjkPairDetector $ newForeignPtr_ $ castPtr p-{#pointer O_btHashInt as BtHashInt foreign newtype#}-mkBtHashInt p = liftM BtHashInt $ newForeignPtr_ $ castPtr p-{#pointer O_btHashPtr as BtHashPtr foreign newtype#}-mkBtHashPtr p = liftM BtHashPtr $ newForeignPtr_ $ castPtr p-{#pointer O_btHashString as BtHashString foreign newtype#}-mkBtHashString p = liftM BtHashString $ newForeignPtr_ $ castPtr p-{#pointer O_btHashedOverlappingPairCache as BtHashedOverlappingPairCache foreign newtype#}-mkBtHashedOverlappingPairCache p = liftM BtHashedOverlappingPairCache $ newForeignPtr_ $ castPtr p-{#pointer O_btHinge2Constraint as BtHinge2Constraint foreign newtype#}-mkBtHinge2Constraint p = liftM BtHinge2Constraint $ newForeignPtr_ $ castPtr p-{#pointer O_btHingeConstraint as BtHingeConstraint foreign newtype#}-mkBtHingeConstraint p = liftM BtHingeConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btHingeConstraintDoubleData as BtHingeConstraintDoubleData foreign newtype#}-mkBtHingeConstraintDoubleData p = liftM BtHingeConstraintDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btHingeConstraintFloatData as BtHingeConstraintFloatData foreign newtype#}-mkBtHingeConstraintFloatData p = liftM BtHingeConstraintFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btIDebugDraw as BtIDebugDraw foreign newtype#}-mkBtIDebugDraw p = liftM BtIDebugDraw $ newForeignPtr_ $ castPtr p-{#pointer O_btIndexedMesh as BtIndexedMesh foreign newtype#}-mkBtIndexedMesh p = liftM BtIndexedMesh $ newForeignPtr_ $ castPtr p-{#pointer O_btIntIndexData as BtIntIndexData foreign newtype#}-mkBtIntIndexData p = liftM BtIntIndexData $ newForeignPtr_ $ castPtr p-{#pointer O_btInternalTriangleIndexCallback as BtInternalTriangleIndexCallback foreign newtype#}-mkBtInternalTriangleIndexCallback p = liftM BtInternalTriangleIndexCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btJacobianEntry as BtJacobianEntry foreign newtype#}-mkBtJacobianEntry p = liftM BtJacobianEntry $ newForeignPtr_ $ castPtr p-{#pointer O_btManifoldPoint as BtManifoldPoint foreign newtype#}-mkBtManifoldPoint p = liftM BtManifoldPoint $ newForeignPtr_ $ castPtr p-{#pointer O_btManifoldResult as BtManifoldResult foreign newtype#}-mkBtManifoldResult p = liftM BtManifoldResult $ newForeignPtr_ $ castPtr p-{#pointer O_btMatrix3x3DoubleData as BtMatrix3x3DoubleData foreign newtype#}-mkBtMatrix3x3DoubleData p = liftM BtMatrix3x3DoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btMatrix3x3FloatData as BtMatrix3x3FloatData foreign newtype#}-mkBtMatrix3x3FloatData p = liftM BtMatrix3x3FloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btMeshPartData as BtMeshPartData foreign newtype#}-mkBtMeshPartData p = liftM BtMeshPartData $ newForeignPtr_ $ castPtr p-{#pointer O_btMotionState as BtMotionState foreign newtype#}-mkBtMotionState p = liftM BtMotionState $ newForeignPtr_ $ castPtr p-{#pointer O_btMultiSapBroadphase as BtMultiSapBroadphase foreign newtype#}-mkBtMultiSapBroadphase p = liftM BtMultiSapBroadphase $ newForeignPtr_ $ castPtr p-{#pointer O_btMultiSapBroadphase_btMultiSapProxy as BtMultiSapBroadphase_btMultiSapProxy foreign newtype#}-mkBtMultiSapBroadphase_btMultiSapProxy p = liftM BtMultiSapBroadphase_btMultiSapProxy $ newForeignPtr_ $ castPtr p-{#pointer O_btMultiSphereShape as BtMultiSphereShape foreign newtype#}-mkBtMultiSphereShape p = liftM BtMultiSphereShape $ newForeignPtr_ $ castPtr p-{#pointer O_btMultiSphereShapeData as BtMultiSphereShapeData foreign newtype#}-mkBtMultiSphereShapeData p = liftM BtMultiSphereShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btNodeOverlapCallback as BtNodeOverlapCallback foreign newtype#}-mkBtNodeOverlapCallback p = liftM BtNodeOverlapCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btNullPairCache as BtNullPairCache foreign newtype#}-mkBtNullPairCache p = liftM BtNullPairCache $ newForeignPtr_ $ castPtr p-{#pointer O_btOptimizedBvh as BtOptimizedBvh foreign newtype#}-mkBtOptimizedBvh p = liftM BtOptimizedBvh $ newForeignPtr_ $ castPtr p-{#pointer O_btOptimizedBvhNode as BtOptimizedBvhNode foreign newtype#}-mkBtOptimizedBvhNode p = liftM BtOptimizedBvhNode $ newForeignPtr_ $ castPtr p-{#pointer O_btOptimizedBvhNodeDoubleData as BtOptimizedBvhNodeDoubleData foreign newtype#}-mkBtOptimizedBvhNodeDoubleData p = liftM BtOptimizedBvhNodeDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btOptimizedBvhNodeFloatData as BtOptimizedBvhNodeFloatData foreign newtype#}-mkBtOptimizedBvhNodeFloatData p = liftM BtOptimizedBvhNodeFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btOverlapCallback as BtOverlapCallback foreign newtype#}-mkBtOverlapCallback p = liftM BtOverlapCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btOverlapFilterCallback as BtOverlapFilterCallback foreign newtype#}-mkBtOverlapFilterCallback p = liftM BtOverlapFilterCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btOverlappingPairCache as BtOverlappingPairCache foreign newtype#}-mkBtOverlappingPairCache p = liftM BtOverlappingPairCache $ newForeignPtr_ $ castPtr p-{#pointer O_btOverlappingPairCallback as BtOverlappingPairCallback foreign newtype#}-mkBtOverlappingPairCallback p = liftM BtOverlappingPairCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btPairSet as BtPairSet foreign newtype#}-mkBtPairSet p = liftM BtPairSet $ newForeignPtr_ $ castPtr p-{#pointer O_btPersistentManifold as BtPersistentManifold foreign newtype#}-mkBtPersistentManifold p = liftM BtPersistentManifold $ newForeignPtr_ $ castPtr p-{#pointer O_btPoint2PointConstraint as BtPoint2PointConstraint foreign newtype#}-mkBtPoint2PointConstraint p = liftM BtPoint2PointConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btPoint2PointConstraintDoubleData as BtPoint2PointConstraintDoubleData foreign newtype#}-mkBtPoint2PointConstraintDoubleData p = liftM BtPoint2PointConstraintDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btPoint2PointConstraintFloatData as BtPoint2PointConstraintFloatData foreign newtype#}-mkBtPoint2PointConstraintFloatData p = liftM BtPoint2PointConstraintFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btPointerUid as BtPointerUid foreign newtype#}-mkBtPointerUid p = liftM BtPointerUid $ newForeignPtr_ $ castPtr p-{#pointer O_btPolyhedralConvexAabbCachingShape as BtPolyhedralConvexAabbCachingShape foreign newtype#}-mkBtPolyhedralConvexAabbCachingShape p = liftM BtPolyhedralConvexAabbCachingShape $ newForeignPtr_ $ castPtr p-{#pointer O_btPolyhedralConvexShape as BtPolyhedralConvexShape foreign newtype#}-mkBtPolyhedralConvexShape p = liftM BtPolyhedralConvexShape $ newForeignPtr_ $ castPtr p-{#pointer O_btPositionAndRadius as BtPositionAndRadius foreign newtype#}-mkBtPositionAndRadius p = liftM BtPositionAndRadius $ newForeignPtr_ $ castPtr p-{#pointer O_btPrimitiveManagerBase as BtPrimitiveManagerBase foreign newtype#}-mkBtPrimitiveManagerBase p = liftM BtPrimitiveManagerBase $ newForeignPtr_ $ castPtr p-{#pointer O_btPrimitiveTriangle as BtPrimitiveTriangle foreign newtype#}-mkBtPrimitiveTriangle p = liftM BtPrimitiveTriangle $ newForeignPtr_ $ castPtr p-{#pointer O_btQuadWord as BtQuadWord foreign newtype#}-mkBtQuadWord p = liftM BtQuadWord $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvh as BtQuantizedBvh foreign newtype#}-mkBtQuantizedBvh p = liftM BtQuantizedBvh $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvhDoubleData as BtQuantizedBvhDoubleData foreign newtype#}-mkBtQuantizedBvhDoubleData p = liftM BtQuantizedBvhDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvhFloatData as BtQuantizedBvhFloatData foreign newtype#}-mkBtQuantizedBvhFloatData p = liftM BtQuantizedBvhFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvhNode as BtQuantizedBvhNode foreign newtype#}-mkBtQuantizedBvhNode p = liftM BtQuantizedBvhNode $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvhNodeData as BtQuantizedBvhNodeData foreign newtype#}-mkBtQuantizedBvhNodeData p = liftM BtQuantizedBvhNodeData $ newForeignPtr_ $ castPtr p-{#pointer O_btQuantizedBvhTree as BtQuantizedBvhTree foreign newtype#}-mkBtQuantizedBvhTree p = liftM BtQuantizedBvhTree $ newForeignPtr_ $ castPtr p-{#pointer O_btRaycastVehicle as BtRaycastVehicle foreign newtype#}-mkBtRaycastVehicle p = liftM BtRaycastVehicle $ newForeignPtr_ $ castPtr p-{#pointer O_btRigidBody as BtRigidBody foreign newtype#}-mkBtRigidBody p = liftM BtRigidBody $ newForeignPtr_ $ castPtr p-{#pointer O_btRigidBody_btRigidBodyConstructionInfo as BtRigidBody_btRigidBodyConstructionInfo foreign newtype#}-mkBtRigidBody_btRigidBodyConstructionInfo p = liftM BtRigidBody_btRigidBodyConstructionInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btRigidBodyDoubleData as BtRigidBodyDoubleData foreign newtype#}-mkBtRigidBodyDoubleData p = liftM BtRigidBodyDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btRigidBodyFloatData as BtRigidBodyFloatData foreign newtype#}-mkBtRigidBodyFloatData p = liftM BtRigidBodyFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btRotationalLimitMotor as BtRotationalLimitMotor foreign newtype#}-mkBtRotationalLimitMotor p = liftM BtRotationalLimitMotor $ newForeignPtr_ $ castPtr p-{#pointer O_btScaledBvhTriangleMeshShape as BtScaledBvhTriangleMeshShape foreign newtype#}-mkBtScaledBvhTriangleMeshShape p = liftM BtScaledBvhTriangleMeshShape $ newForeignPtr_ $ castPtr p-{#pointer O_btScaledTriangleMeshShapeData as BtScaledTriangleMeshShapeData foreign newtype#}-mkBtScaledTriangleMeshShapeData p = liftM BtScaledTriangleMeshShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btSequentialImpulseConstraintSolver as BtSequentialImpulseConstraintSolver foreign newtype#}-mkBtSequentialImpulseConstraintSolver p = liftM BtSequentialImpulseConstraintSolver $ newForeignPtr_ $ castPtr p-{#pointer O_btSerializer as BtSerializer foreign newtype#}-mkBtSerializer p = liftM BtSerializer $ newForeignPtr_ $ castPtr p-{#pointer O_btShortIntIndexData as BtShortIntIndexData foreign newtype#}-mkBtShortIntIndexData p = liftM BtShortIntIndexData $ newForeignPtr_ $ castPtr p-{#pointer O_btShortIntIndexTripletData as BtShortIntIndexTripletData foreign newtype#}-mkBtShortIntIndexTripletData p = liftM BtShortIntIndexTripletData $ newForeignPtr_ $ castPtr p-{#pointer O_btSimpleBroadphase as BtSimpleBroadphase foreign newtype#}-mkBtSimpleBroadphase p = liftM BtSimpleBroadphase $ newForeignPtr_ $ castPtr p-{#pointer O_btSimpleBroadphaseProxy as BtSimpleBroadphaseProxy foreign newtype#}-mkBtSimpleBroadphaseProxy p = liftM BtSimpleBroadphaseProxy $ newForeignPtr_ $ castPtr p-{#pointer O_btSimpleDynamicsWorld as BtSimpleDynamicsWorld foreign newtype#}-mkBtSimpleDynamicsWorld p = liftM BtSimpleDynamicsWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btSliderConstraint as BtSliderConstraint foreign newtype#}-mkBtSliderConstraint p = liftM BtSliderConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btSliderConstraintData as BtSliderConstraintData foreign newtype#}-mkBtSliderConstraintData p = liftM BtSliderConstraintData $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody as BtSoftBody foreign newtype#}-mkBtSoftBody p = liftM BtSoftBody $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBodyHelpers as BtSoftBodyHelpers foreign newtype#}-mkBtSoftBodyHelpers p = liftM BtSoftBodyHelpers $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBodyRigidBodyCollisionConfiguration as BtSoftBodyRigidBodyCollisionConfiguration foreign newtype#}-mkBtSoftBodyRigidBodyCollisionConfiguration p = liftM BtSoftBodyRigidBodyCollisionConfiguration $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBodyWorldInfo as BtSoftBodyWorldInfo foreign newtype#}-mkBtSoftBodyWorldInfo p = liftM BtSoftBodyWorldInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftRigidDynamicsWorld as BtSoftRigidDynamicsWorld foreign newtype#}-mkBtSoftRigidDynamicsWorld p = liftM BtSoftRigidDynamicsWorld $ newForeignPtr_ $ castPtr p-{#pointer O_btSolverBodyObsolete as BtSolverBodyObsolete foreign newtype#}-mkBtSolverBodyObsolete p = liftM BtSolverBodyObsolete $ newForeignPtr_ $ castPtr p-{#pointer O_btSolverConstraint as BtSolverConstraint foreign newtype#}-mkBtSolverConstraint p = liftM BtSolverConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btSortedOverlappingPairCache as BtSortedOverlappingPairCache foreign newtype#}-mkBtSortedOverlappingPairCache p = liftM BtSortedOverlappingPairCache $ newForeignPtr_ $ castPtr p-{#pointer O_btSphereShape as BtSphereShape foreign newtype#}-mkBtSphereShape p = liftM BtSphereShape $ newForeignPtr_ $ castPtr p-{#pointer O_btSphereSphereCollisionAlgorithm as BtSphereSphereCollisionAlgorithm foreign newtype#}-mkBtSphereSphereCollisionAlgorithm p = liftM BtSphereSphereCollisionAlgorithm $ newForeignPtr_ $ castPtr p-{#pointer O_btStackAlloc as BtStackAlloc foreign newtype#}-mkBtStackAlloc p = liftM BtStackAlloc $ newForeignPtr_ $ castPtr p-{#pointer O_btStaticPlaneShape as BtStaticPlaneShape foreign newtype#}-mkBtStaticPlaneShape p = liftM BtStaticPlaneShape $ newForeignPtr_ $ castPtr p-{#pointer O_btStaticPlaneShapeData as BtStaticPlaneShapeData foreign newtype#}-mkBtStaticPlaneShapeData p = liftM BtStaticPlaneShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btStorageResult as BtStorageResult foreign newtype#}-mkBtStorageResult p = liftM BtStorageResult $ newForeignPtr_ $ castPtr p-{#pointer O_btStridingMeshInterface as BtStridingMeshInterface foreign newtype#}-mkBtStridingMeshInterface p = liftM BtStridingMeshInterface $ newForeignPtr_ $ castPtr p-{#pointer O_btStridingMeshInterfaceData as BtStridingMeshInterfaceData foreign newtype#}-mkBtStridingMeshInterfaceData p = liftM BtStridingMeshInterfaceData $ newForeignPtr_ $ castPtr p-{#pointer O_btSubSimplexClosestResult as BtSubSimplexClosestResult foreign newtype#}-mkBtSubSimplexClosestResult p = liftM BtSubSimplexClosestResult $ newForeignPtr_ $ castPtr p-{#pointer O_btTetrahedronShapeEx as BtTetrahedronShapeEx foreign newtype#}-mkBtTetrahedronShapeEx p = liftM BtTetrahedronShapeEx $ newForeignPtr_ $ castPtr p-{#pointer O_btTransformDoubleData as BtTransformDoubleData foreign newtype#}-mkBtTransformDoubleData p = liftM BtTransformDoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btTransformFloatData as BtTransformFloatData foreign newtype#}-mkBtTransformFloatData p = liftM BtTransformFloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btTransformUtil as BtTransformUtil foreign newtype#}-mkBtTransformUtil p = liftM BtTransformUtil $ newForeignPtr_ $ castPtr p-{#pointer O_btTranslationalLimitMotor as BtTranslationalLimitMotor foreign newtype#}-mkBtTranslationalLimitMotor p = liftM BtTranslationalLimitMotor $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleCallback as BtTriangleCallback foreign newtype#}-mkBtTriangleCallback p = liftM BtTriangleCallback $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleIndexVertexArray as BtTriangleIndexVertexArray foreign newtype#}-mkBtTriangleIndexVertexArray p = liftM BtTriangleIndexVertexArray $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleInfo as BtTriangleInfo foreign newtype#}-mkBtTriangleInfo p = liftM BtTriangleInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleInfoData as BtTriangleInfoData foreign newtype#}-mkBtTriangleInfoData p = liftM BtTriangleInfoData $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleInfoMap as BtTriangleInfoMap foreign newtype#}-mkBtTriangleInfoMap p = liftM BtTriangleInfoMap $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleInfoMapData as BtTriangleInfoMapData foreign newtype#}-mkBtTriangleInfoMapData p = liftM BtTriangleInfoMapData $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleMesh as BtTriangleMesh foreign newtype#}-mkBtTriangleMesh p = liftM BtTriangleMesh $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleMeshShape as BtTriangleMeshShape foreign newtype#}-mkBtTriangleMeshShape p = liftM BtTriangleMeshShape $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleMeshShapeData as BtTriangleMeshShapeData foreign newtype#}-mkBtTriangleMeshShapeData p = liftM BtTriangleMeshShapeData $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleShape as BtTriangleShape foreign newtype#}-mkBtTriangleShape p = liftM BtTriangleShape $ newForeignPtr_ $ castPtr p-{#pointer O_btTriangleShapeEx as BtTriangleShapeEx foreign newtype#}-mkBtTriangleShapeEx p = liftM BtTriangleShapeEx $ newForeignPtr_ $ castPtr p-{#pointer O_btTypedConstraint as BtTypedConstraint foreign newtype#}-mkBtTypedConstraint p = liftM BtTypedConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btTypedConstraintData as BtTypedConstraintData foreign newtype#}-mkBtTypedConstraintData p = liftM BtTypedConstraintData $ newForeignPtr_ $ castPtr p-{#pointer O_btTypedObject as BtTypedObject foreign newtype#}-mkBtTypedObject p = liftM BtTypedObject $ newForeignPtr_ $ castPtr p-{#pointer O_btUniformScalingShape as BtUniformScalingShape foreign newtype#}-mkBtUniformScalingShape p = liftM BtUniformScalingShape $ newForeignPtr_ $ castPtr p-{#pointer O_btUniversalConstraint as BtUniversalConstraint foreign newtype#}-mkBtUniversalConstraint p = liftM BtUniversalConstraint $ newForeignPtr_ $ castPtr p-{#pointer O_btUsageBitfield as BtUsageBitfield foreign newtype#}-mkBtUsageBitfield p = liftM BtUsageBitfield $ newForeignPtr_ $ castPtr p-{#pointer O_btVector3DoubleData as BtVector3DoubleData foreign newtype#}-mkBtVector3DoubleData p = liftM BtVector3DoubleData $ newForeignPtr_ $ castPtr p-{#pointer O_btVector3FloatData as BtVector3FloatData foreign newtype#}-mkBtVector3FloatData p = liftM BtVector3FloatData $ newForeignPtr_ $ castPtr p-{#pointer O_btVehicleRaycaster as BtVehicleRaycaster foreign newtype#}-mkBtVehicleRaycaster p = liftM BtVehicleRaycaster $ newForeignPtr_ $ castPtr p-{#pointer O_btVehicleRaycaster_btVehicleRaycasterResult as BtVehicleRaycaster_btVehicleRaycasterResult foreign newtype#}-mkBtVehicleRaycaster_btVehicleRaycasterResult p = liftM BtVehicleRaycaster_btVehicleRaycasterResult $ newForeignPtr_ $ castPtr p-{#pointer O_btRaycastVehicle_btVehicleTuning as BtRaycastVehicle_btVehicleTuning foreign newtype#}-mkBtRaycastVehicle_btVehicleTuning p = liftM BtRaycastVehicle_btVehicleTuning $ newForeignPtr_ $ castPtr p-{#pointer O_btVoronoiSimplexSolver as BtVoronoiSimplexSolver foreign newtype#}-mkBtVoronoiSimplexSolver p = liftM BtVoronoiSimplexSolver $ newForeignPtr_ $ castPtr p-{#pointer O_btWheelInfo as BtWheelInfo foreign newtype#}-mkBtWheelInfo p = liftM BtWheelInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btWheelInfoConstructionInfo as BtWheelInfoConstructionInfo foreign newtype#}-mkBtWheelInfoConstructionInfo p = liftM BtWheelInfoConstructionInfo $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_eAeroModel as BtSoftBody_eAeroModel foreign newtype#}-mkBtSoftBody_eAeroModel p = liftM BtSoftBody_eAeroModel $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_eFeature as BtSoftBody_eFeature foreign newtype#}-mkBtSoftBody_eFeature p = liftM BtSoftBody_eFeature $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_ePSolver as BtSoftBody_ePSolver foreign newtype#}-mkBtSoftBody_ePSolver p = liftM BtSoftBody_ePSolver $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_eSolverPresets as BtSoftBody_eSolverPresets foreign newtype#}-mkBtSoftBody_eSolverPresets p = liftM BtSoftBody_eSolverPresets $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_Joint_eType as BtSoftBody_Joint_eType foreign newtype#}-mkBtSoftBody_Joint_eType p = liftM BtSoftBody_Joint_eType $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_eVSolver as BtSoftBody_eVSolver foreign newtype#}-mkBtSoftBody_eVSolver p = liftM BtSoftBody_eVSolver $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_fCollision as BtSoftBody_fCollision foreign newtype#}-mkBtSoftBody_fCollision p = liftM BtSoftBody_fCollision $ newForeignPtr_ $ castPtr p-{#pointer O_fDrawFlags as FDrawFlags foreign newtype#}-mkFDrawFlags p = liftM FDrawFlags $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_fMaterial as BtSoftBody_fMaterial foreign newtype#}-mkBtSoftBody_fMaterial p = liftM BtSoftBody_fMaterial $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_sCti as BtSoftBody_sCti foreign newtype#}-mkBtSoftBody_sCti p = liftM BtSoftBody_sCti $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_sMedium as BtSoftBody_sMedium foreign newtype#}-mkBtSoftBody_sMedium p = liftM BtSoftBody_sMedium $ newForeignPtr_ $ castPtr p-{#pointer O_btSoftBody_sRayCast as BtSoftBody_sRayCast foreign newtype#}-mkBtSoftBody_sRayCast p = liftM BtSoftBody_sRayCast $ newForeignPtr_ $ castPtr p-{#pointer O_btGjkEpaSolver2_sResults as BtGjkEpaSolver2_sResults foreign newtype#}-mkBtGjkEpaSolver2_sResults p = liftM BtGjkEpaSolver2_sResults $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_sStkCLN as BtDbvt_sStkCLN foreign newtype#}-mkBtDbvt_sStkCLN p = liftM BtDbvt_sStkCLN $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_sStkNN as BtDbvt_sStkNN foreign newtype#}-mkBtDbvt_sStkNN p = liftM BtDbvt_sStkNN $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_sStkNP as BtDbvt_sStkNP foreign newtype#}-mkBtDbvt_sStkNP p = liftM BtDbvt_sStkNP $ newForeignPtr_ $ castPtr p-{#pointer O_btDbvt_sStkNPS as BtDbvt_sStkNPS foreign newtype#}-mkBtDbvt_sStkNPS p = liftM BtDbvt_sStkNPS $ newForeignPtr_ $ castPtr p--- * Class Hierarchy-class BtClass p where-  withBt :: p -> (Ptr a -> IO b) -> IO b-class BtClass p => BtSoftBody_AnchorClass p-instance BtSoftBody_AnchorClass BtSoftBody_Anchor-instance BtClass BtSoftBody_Anchor where-  withBt (BtSoftBody_Anchor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BT_BOX_BOX_TRANSFORM_CACHEClass p-instance BT_BOX_BOX_TRANSFORM_CACHEClass BT_BOX_BOX_TRANSFORM_CACHE-instance BtClass BT_BOX_BOX_TRANSFORM_CACHE where-  withBt (BT_BOX_BOX_TRANSFORM_CACHE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BT_QUANTIZED_BVH_NODEClass p-instance BT_QUANTIZED_BVH_NODEClass BT_QUANTIZED_BVH_NODE-instance BtClass BT_QUANTIZED_BVH_NODE where-  withBt (BT_QUANTIZED_BVH_NODE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_BodyClass p-instance BtSoftBody_BodyClass BtSoftBody_Body-instance BtClass BtSoftBody_Body where-  withBt (BtSoftBody_Body p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => CProfileIteratorClass p-instance CProfileIteratorClass CProfileIterator-instance BtClass CProfileIterator where-  withBt (CProfileIterator p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => CProfileManagerClass p-instance CProfileManagerClass CProfileManager-instance BtClass CProfileManager where-  withBt (CProfileManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => CProfileNodeClass p-instance CProfileNodeClass CProfileNode-instance BtClass CProfileNode where-  withBt (CProfileNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => CProfileSampleClass p-instance CProfileSampleClass CProfileSample-instance BtClass CProfileSample where-  withBt (CProfileSample p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDiscreteCollisionDetectorInterface_ClosestPointInputClass p-instance BtDiscreteCollisionDetectorInterface_ClosestPointInputClass BtDiscreteCollisionDetectorInterface_ClosestPointInput-instance BtClass BtDiscreteCollisionDetectorInterface_ClosestPointInput where-  withBt (BtDiscreteCollisionDetectorInterface_ClosestPointInput p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ClusterClass p-instance BtSoftBody_ClusterClass BtSoftBody_Cluster-instance BtClass BtSoftBody_Cluster where-  withBt (BtSoftBody_Cluster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ConfigClass p-instance BtSoftBody_ConfigClass BtSoftBody_Config-instance BtClass BtSoftBody_Config where-  withBt (BtSoftBody_Config p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_ContactResultCallbackClass p-instance BtCollisionWorld_ContactResultCallbackClass BtCollisionWorld_ContactResultCallback-instance BtClass BtCollisionWorld_ContactResultCallback where-  withBt (BtCollisionWorld_ContactResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_ConvexResultCallbackClass p-instance BtCollisionWorld_ConvexResultCallbackClass BtCollisionWorld_ConvexResultCallback-instance BtClass BtCollisionWorld_ConvexResultCallback where-  withBt (BtCollisionWorld_ConvexResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ElementClass p-instance BtSoftBody_ElementClass BtSoftBody_Element-instance BtClass BtSoftBody_Element where-  withBt (BtSoftBody_Element p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_ElementClass p => BtSoftBody_FeatureClass p-instance BtSoftBody_ElementClass BtSoftBody_Feature-instance BtSoftBody_FeatureClass BtSoftBody_Feature-instance BtClass BtSoftBody_Feature where-  withBt (BtSoftBody_Feature p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_BVH_DATAClass p-instance GIM_BVH_DATAClass GIM_BVH_DATA-instance BtClass GIM_BVH_DATA where-  withBt (GIM_BVH_DATA p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_BVH_DATA_ARRAYClass p-instance GIM_BVH_DATA_ARRAYClass GIM_BVH_DATA_ARRAY-instance BtClass GIM_BVH_DATA_ARRAY where-  withBt (GIM_BVH_DATA_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_BVH_TREE_NODEClass p-instance GIM_BVH_TREE_NODEClass GIM_BVH_TREE_NODE-instance BtClass GIM_BVH_TREE_NODE where-  withBt (GIM_BVH_TREE_NODE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_BVH_TREE_NODE_ARRAYClass p-instance GIM_BVH_TREE_NODE_ARRAYClass GIM_BVH_TREE_NODE_ARRAY-instance BtClass GIM_BVH_TREE_NODE_ARRAY where-  withBt (GIM_BVH_TREE_NODE_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_PAIRClass p-instance GIM_PAIRClass GIM_PAIR-instance BtClass GIM_PAIR where-  withBt (GIM_PAIR p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_QUANTIZED_BVH_NODE_ARRAYClass p-instance GIM_QUANTIZED_BVH_NODE_ARRAYClass GIM_QUANTIZED_BVH_NODE_ARRAY-instance BtClass GIM_QUANTIZED_BVH_NODE_ARRAY where-  withBt (GIM_QUANTIZED_BVH_NODE_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => GIM_TRIANGLE_CONTACTClass p-instance GIM_TRIANGLE_CONTACTClass GIM_TRIANGLE_CONTACT-instance BtClass GIM_TRIANGLE_CONTACT where-  withBt (GIM_TRIANGLE_CONTACT p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_ICloneClass p-instance BtDbvt_ICloneClass BtDbvt_IClone-instance BtClass BtDbvt_IClone where-  withBt (BtDbvt_IClone p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_ICollideClass p-instance BtDbvt_ICollideClass BtDbvt_ICollide-instance BtClass BtDbvt_ICollide where-  withBt (BtDbvt_ICollide p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_AJoint_IControlClass p-instance BtSoftBody_AJoint_IControlClass BtSoftBody_AJoint_IControl-instance BtClass BtSoftBody_AJoint_IControl where-  withBt (BtSoftBody_AJoint_IControl p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_IWriterClass p-instance BtDbvt_IWriterClass BtDbvt_IWriter-instance BtClass BtDbvt_IWriter where-  withBt (BtDbvt_IWriter p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ImplicitFnClass p-instance BtSoftBody_ImplicitFnClass BtSoftBody_ImplicitFn-instance BtClass BtSoftBody_ImplicitFn where-  withBt (BtSoftBody_ImplicitFn p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ImpulseClass p-instance BtSoftBody_ImpulseClass BtSoftBody_Impulse-instance BtClass BtSoftBody_Impulse where-  withBt (BtSoftBody_Impulse p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_JointClass p-instance BtSoftBody_JointClass BtSoftBody_Joint-instance BtClass BtSoftBody_Joint where-  withBt (BtSoftBody_Joint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_JointClass p => BtSoftBody_LJointClass p-instance BtSoftBody_JointClass BtSoftBody_LJoint-instance BtSoftBody_LJointClass BtSoftBody_LJoint-instance BtClass BtSoftBody_LJoint where-  withBt (BtSoftBody_LJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_FeatureClass p => BtSoftBody_LinkClass p-instance BtSoftBody_FeatureClass BtSoftBody_Link-instance BtSoftBody_ElementClass BtSoftBody_Link-instance BtSoftBody_LinkClass BtSoftBody_Link-instance BtClass BtSoftBody_Link where-  withBt (BtSoftBody_Link p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_LocalConvexResultClass p-instance BtCollisionWorld_LocalConvexResultClass BtCollisionWorld_LocalConvexResult-instance BtClass BtCollisionWorld_LocalConvexResult where-  withBt (BtCollisionWorld_LocalConvexResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_LocalRayResultClass p-instance BtCollisionWorld_LocalRayResultClass BtCollisionWorld_LocalRayResult-instance BtClass BtCollisionWorld_LocalRayResult where-  withBt (BtCollisionWorld_LocalRayResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_LocalShapeInfoClass p-instance BtCollisionWorld_LocalShapeInfoClass BtCollisionWorld_LocalShapeInfo-instance BtClass BtCollisionWorld_LocalShapeInfo where-  withBt (BtCollisionWorld_LocalShapeInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_ElementClass p => BtSoftBody_MaterialClass p-instance BtSoftBody_ElementClass BtSoftBody_Material-instance BtSoftBody_MaterialClass BtSoftBody_Material-instance BtClass BtSoftBody_Material where-  withBt (BtSoftBody_Material p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_FeatureClass p => BtSoftBody_NodeClass p-instance BtSoftBody_FeatureClass BtSoftBody_Node-instance BtSoftBody_ElementClass BtSoftBody_Node-instance BtSoftBody_NodeClass BtSoftBody_Node-instance BtClass BtSoftBody_Node where-  withBt (BtSoftBody_Node p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_ElementClass p => BtSoftBody_NoteClass p-instance BtSoftBody_ElementClass BtSoftBody_Note-instance BtSoftBody_NoteClass BtSoftBody_Note-instance BtClass BtSoftBody_Note where-  withBt (BtSoftBody_Note p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_PoseClass p-instance BtSoftBody_PoseClass BtSoftBody_Pose-instance BtClass BtSoftBody_Pose where-  withBt (BtSoftBody_Pose p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_RContactClass p-instance BtSoftBody_RContactClass BtSoftBody_RContact-instance BtClass BtSoftBody_RContact where-  withBt (BtSoftBody_RContact p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDbvt_ICollideClass p => BtSoftBody_RayFromToCasterClass p-instance BtDbvt_ICollideClass BtSoftBody_RayFromToCaster-instance BtSoftBody_RayFromToCasterClass BtSoftBody_RayFromToCaster-instance BtClass BtSoftBody_RayFromToCaster where-  withBt (BtSoftBody_RayFromToCaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorld_RayResultCallbackClass p-instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_RayResultCallback-instance BtClass BtCollisionWorld_RayResultCallback where-  withBt (BtCollisionWorld_RayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtWheelInfo_RaycastInfoClass p-instance BtWheelInfo_RaycastInfoClass BtWheelInfo_RaycastInfo-instance BtClass BtWheelInfo_RaycastInfo where-  withBt (BtWheelInfo_RaycastInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDiscreteCollisionDetectorInterface_ResultClass p-instance BtDiscreteCollisionDetectorInterface_ResultClass BtDiscreteCollisionDetectorInterface_Result-instance BtClass BtDiscreteCollisionDetectorInterface_Result where-  withBt (BtDiscreteCollisionDetectorInterface_Result p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_SContactClass p-instance BtSoftBody_SContactClass BtSoftBody_SContact-instance BtClass BtSoftBody_SContact where-  withBt (BtSoftBody_SContact p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_SolverStateClass p-instance BtSoftBody_SolverStateClass BtSoftBody_SolverState-instance BtClass BtSoftBody_SolverState where-  withBt (BtSoftBody_SolverState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_Joint_SpecsClass p-instance BtSoftBody_Joint_SpecsClass BtSoftBody_Joint_Specs-instance BtClass BtSoftBody_Joint_Specs where-  withBt (BtSoftBody_Joint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_Joint_SpecsClass p => BtSoftBody_LJoint_SpecsClass p-instance BtSoftBody_Joint_SpecsClass BtSoftBody_LJoint_Specs-instance BtSoftBody_LJoint_SpecsClass BtSoftBody_LJoint_Specs-instance BtClass BtSoftBody_LJoint_Specs where-  withBt (BtSoftBody_LJoint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_Joint_SpecsClass p => BtSoftBody_AJoint_SpecsClass p-instance BtSoftBody_Joint_SpecsClass BtSoftBody_AJoint_Specs-instance BtSoftBody_AJoint_SpecsClass BtSoftBody_AJoint_Specs-instance BtClass BtSoftBody_AJoint_Specs where-  withBt (BtSoftBody_AJoint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_FeatureClass p => BtSoftBody_TetraClass p-instance BtSoftBody_FeatureClass BtSoftBody_Tetra-instance BtSoftBody_ElementClass BtSoftBody_Tetra-instance BtSoftBody_TetraClass BtSoftBody_Tetra-instance BtClass BtSoftBody_Tetra where-  withBt (BtSoftBody_Tetra p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtAABBClass p-instance BtAABBClass BtAABB-instance BtClass BtAABB where-  withBt (BtAABB p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtActionInterfaceClass p-instance BtActionInterfaceClass BtActionInterface-instance BtClass BtActionInterface where-  withBt (BtActionInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtAngularLimitClass p-instance BtAngularLimitClass BtAngularLimit-instance BtClass BtAngularLimit where-  withBt (BtAngularLimit p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBlockClass p-instance BtBlockClass BtBlock-instance BtClass BtBlock where-  withBt (BtBlock p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBroadphaseAabbCallbackClass p-instance BtBroadphaseAabbCallbackClass BtBroadphaseAabbCallback-instance BtClass BtBroadphaseAabbCallback where-  withBt (BtBroadphaseAabbCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBroadphaseInterfaceClass p-instance BtBroadphaseInterfaceClass BtBroadphaseInterface-instance BtClass BtBroadphaseInterface where-  withBt (BtBroadphaseInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBroadphasePairClass p-instance BtBroadphasePairClass BtBroadphasePair-instance BtClass BtBroadphasePair where-  withBt (BtBroadphasePair p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBroadphasePairSortPredicateClass p-instance BtBroadphasePairSortPredicateClass BtBroadphasePairSortPredicate-instance BtClass BtBroadphasePairSortPredicate where-  withBt (BtBroadphasePairSortPredicate p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBroadphaseProxyClass p-instance BtBroadphaseProxyClass BtBroadphaseProxy-instance BtClass BtBroadphaseProxy where-  withBt (BtBroadphaseProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseAabbCallbackClass p => BtBroadphaseRayCallbackClass p-instance BtBroadphaseAabbCallbackClass BtBroadphaseRayCallback-instance BtBroadphaseRayCallbackClass BtBroadphaseRayCallback-instance BtClass BtBroadphaseRayCallback where-  withBt (BtBroadphaseRayCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBvhSubtreeInfoClass p-instance BtBvhSubtreeInfoClass BtBvhSubtreeInfo-instance BtClass BtBvhSubtreeInfo where-  withBt (BtBvhSubtreeInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBvhSubtreeInfoDataClass p-instance BtBvhSubtreeInfoDataClass BtBvhSubtreeInfoData-instance BtClass BtBvhSubtreeInfoData where-  withBt (BtBvhSubtreeInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtBvhTreeClass p-instance BtBvhTreeClass BtBvhTree-instance BtClass BtBvhTree where-  withBt (BtBvhTree p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCapsuleShapeDataClass p-instance BtCapsuleShapeDataClass BtCapsuleShapeData-instance BtClass BtCapsuleShapeData where-  withBt (BtCapsuleShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCharIndexTripletDataClass p-instance BtCharIndexTripletDataClass BtCharIndexTripletData-instance BtClass BtCharIndexTripletData where-  withBt (BtCharIndexTripletData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtChunkClass p-instance BtChunkClass BtChunk-instance BtClass BtChunk where-  withBt (BtChunk p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtClockClass p-instance BtClockClass BtClock-instance BtClass BtClock where-  withBt (BtClock p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionAlgorithmClass p-instance BtCollisionAlgorithmClass BtCollisionAlgorithm-instance BtClass BtCollisionAlgorithm where-  withBt (BtCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionAlgorithmConstructionInfoClass p-instance BtCollisionAlgorithmConstructionInfoClass BtCollisionAlgorithmConstructionInfo-instance BtClass BtCollisionAlgorithmConstructionInfo where-  withBt (BtCollisionAlgorithmConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionAlgorithmCreateFuncClass p-instance BtCollisionAlgorithmCreateFuncClass BtCollisionAlgorithmCreateFunc-instance BtClass BtCollisionAlgorithmCreateFunc where-  withBt (BtCollisionAlgorithmCreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionConfigurationClass p-instance BtCollisionConfigurationClass BtCollisionConfiguration-instance BtClass BtCollisionConfiguration where-  withBt (BtCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionObjectClass p-instance BtCollisionObjectClass BtCollisionObject-instance BtClass BtCollisionObject where-  withBt (BtCollisionObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionObjectDoubleDataClass p-instance BtCollisionObjectDoubleDataClass BtCollisionObjectDoubleData-instance BtClass BtCollisionObjectDoubleData where-  withBt (BtCollisionObjectDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionObjectFloatDataClass p-instance BtCollisionObjectFloatDataClass BtCollisionObjectFloatData-instance BtClass BtCollisionObjectFloatData where-  withBt (BtCollisionObjectFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionShapeClass p-instance BtCollisionShapeClass BtCollisionShape-instance BtClass BtCollisionShape where-  withBt (BtCollisionShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionShapeDataClass p-instance BtCollisionShapeDataClass BtCollisionShapeData-instance BtClass BtCollisionShapeData where-  withBt (BtCollisionShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCollisionWorldClass p-instance BtCollisionWorldClass BtCollisionWorld-instance BtClass BtCollisionWorld where-  withBt (BtCollisionWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionShapeClass p => BtCompoundShapeClass p-instance BtCollisionShapeClass BtCompoundShape-instance BtCompoundShapeClass BtCompoundShape-instance BtClass BtCompoundShape where-  withBt (BtCompoundShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCompoundShapeChildClass p-instance BtCompoundShapeChildClass BtCompoundShapeChild-instance BtClass BtCompoundShapeChild where-  withBt (BtCompoundShapeChild p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCompoundShapeChildDataClass p-instance BtCompoundShapeChildDataClass BtCompoundShapeChildData-instance BtClass BtCompoundShapeChildData where-  withBt (BtCompoundShapeChildData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCompoundShapeDataClass p-instance BtCompoundShapeDataClass BtCompoundShapeData-instance BtClass BtCompoundShapeData where-  withBt (BtCompoundShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionShapeClass p => BtConcaveShapeClass p-instance BtCollisionShapeClass BtConcaveShape-instance BtConcaveShapeClass BtConcaveShape-instance BtClass BtConcaveShape where-  withBt (BtConcaveShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConeTwistConstraintDataClass p-instance BtConeTwistConstraintDataClass BtConeTwistConstraintData-instance BtClass BtConeTwistConstraintData where-  withBt (BtConeTwistConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTypedConstraint_btConstraintInfo1Class p-instance BtTypedConstraint_btConstraintInfo1Class BtTypedConstraint_btConstraintInfo1-instance BtClass BtTypedConstraint_btConstraintInfo1 where-  withBt (BtTypedConstraint_btConstraintInfo1 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTypedConstraint_btConstraintInfo2Class p-instance BtTypedConstraint_btConstraintInfo2Class BtTypedConstraint_btConstraintInfo2-instance BtClass BtTypedConstraint_btConstraintInfo2 where-  withBt (BtTypedConstraint_btConstraintInfo2 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConstraintRowClass p-instance BtConstraintRowClass BtConstraintRow-instance BtClass BtConstraintRow where-  withBt (BtConstraintRow p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConstraintSettingClass p-instance BtConstraintSettingClass BtConstraintSetting-instance BtClass BtConstraintSetting where-  withBt (BtConstraintSetting p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConstraintSolverClass p-instance BtConstraintSolverClass BtConstraintSolver-instance BtClass BtConstraintSolver where-  withBt (BtConstraintSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtContactSolverInfoDataClass p-instance BtContactSolverInfoDataClass BtContactSolverInfoData-instance BtClass BtContactSolverInfoData where-  withBt (BtContactSolverInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConvexHullShapeDataClass p-instance BtConvexHullShapeDataClass BtConvexHullShapeData-instance BtClass BtConvexHullShapeData where-  withBt (BtConvexHullShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConvexInternalShapeDataClass p-instance BtConvexInternalShapeDataClass BtConvexInternalShapeData-instance BtClass BtConvexInternalShapeData where-  withBt (BtConvexInternalShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtConvexSeparatingDistanceUtilClass p-instance BtConvexSeparatingDistanceUtilClass BtConvexSeparatingDistanceUtil-instance BtClass BtConvexSeparatingDistanceUtil where-  withBt (BtConvexSeparatingDistanceUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionShapeClass p => BtConvexShapeClass p-instance BtCollisionShapeClass BtConvexShape-instance BtConvexShapeClass BtConvexShape-instance BtClass BtConvexShape where-  withBt (BtConvexShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtCylinderShapeDataClass p-instance BtCylinderShapeDataClass BtCylinderShapeData-instance BtClass BtCylinderShapeData where-  withBt (BtCylinderShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvtClass p-instance BtDbvtClass BtDbvt-instance BtClass BtDbvt where-  withBt (BtDbvt p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvtAabbMmClass p-instance BtDbvtAabbMmClass BtDbvtAabbMm-instance BtClass BtDbvtAabbMm where-  withBt (BtDbvtAabbMm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseInterfaceClass p => BtDbvtBroadphaseClass p-instance BtBroadphaseInterfaceClass BtDbvtBroadphase-instance BtDbvtBroadphaseClass BtDbvtBroadphase-instance BtClass BtDbvtBroadphase where-  withBt (BtDbvtBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvtNodeClass p-instance BtDbvtNodeClass BtDbvtNode-instance BtClass BtDbvtNode where-  withBt (BtDbvtNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseProxyClass p => BtDbvtProxyClass p-instance BtBroadphaseProxyClass BtDbvtProxy-instance BtDbvtProxyClass BtDbvtProxy-instance BtClass BtDbvtProxy where-  withBt (BtDbvtProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionConfigurationClass p => BtDefaultCollisionConfigurationClass p-instance BtCollisionConfigurationClass BtDefaultCollisionConfiguration-instance BtDefaultCollisionConfigurationClass BtDefaultCollisionConfiguration-instance BtClass BtDefaultCollisionConfiguration where-  withBt (BtDefaultCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDefaultCollisionConstructionInfoClass p-instance BtDefaultCollisionConstructionInfoClass BtDefaultCollisionConstructionInfo-instance BtClass BtDefaultCollisionConstructionInfo where-  withBt (BtDefaultCollisionConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDiscreteCollisionDetectorInterfaceClass p-instance BtDiscreteCollisionDetectorInterfaceClass BtDiscreteCollisionDetectorInterface-instance BtClass BtDiscreteCollisionDetectorInterface where-  withBt (BtDiscreteCollisionDetectorInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDispatcherClass p-instance BtDispatcherClass BtDispatcher-instance BtClass BtDispatcher where-  withBt (BtDispatcher p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDispatcherInfoClass p-instance BtDispatcherInfoClass BtDispatcherInfo-instance BtClass BtDispatcherInfo where-  withBt (BtDispatcherInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionWorldClass p => BtDynamicsWorldClass p-instance BtCollisionWorldClass BtDynamicsWorld-instance BtDynamicsWorldClass BtDynamicsWorld-instance BtClass BtDynamicsWorld where-  withBt (BtDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConcaveShapeClass p => BtEmptyShapeClass p-instance BtConcaveShapeClass BtEmptyShape-instance BtCollisionShapeClass BtEmptyShape-instance BtEmptyShapeClass BtEmptyShape-instance BtClass BtEmptyShape where-  withBt (BtEmptyShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGImpactBvhClass p-instance BtGImpactBvhClass BtGImpactBvh-instance BtClass BtGImpactBvh where-  withBt (BtGImpactBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGImpactMeshShapeDataClass p-instance BtGImpactMeshShapeDataClass BtGImpactMeshShapeData-instance BtClass BtGImpactMeshShapeData where-  withBt (BtGImpactMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGImpactQuantizedBvhClass p-instance BtGImpactQuantizedBvhClass BtGImpactQuantizedBvh-instance BtClass BtGImpactQuantizedBvh where-  withBt (BtGImpactQuantizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConcaveShapeClass p => BtGImpactShapeInterfaceClass p-instance BtConcaveShapeClass BtGImpactShapeInterface-instance BtCollisionShapeClass BtGImpactShapeInterface-instance BtGImpactShapeInterfaceClass BtGImpactShapeInterface-instance BtClass BtGImpactShapeInterface where-  withBt (BtGImpactShapeInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGeneric6DofConstraintDataClass p-instance BtGeneric6DofConstraintDataClass BtGeneric6DofConstraintData-instance BtClass BtGeneric6DofConstraintData where-  withBt (BtGeneric6DofConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGeneric6DofSpringConstraintDataClass p-instance BtGeneric6DofSpringConstraintDataClass BtGeneric6DofSpringConstraintData-instance BtClass BtGeneric6DofSpringConstraintData where-  withBt (BtGeneric6DofSpringConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGeometryUtilClass p-instance BtGeometryUtilClass BtGeometryUtil-instance BtClass BtGeometryUtil where-  withBt (BtGeometryUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGjkEpaSolver2Class p-instance BtGjkEpaSolver2Class BtGjkEpaSolver2-instance BtClass BtGjkEpaSolver2 where-  withBt (BtGjkEpaSolver2 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDiscreteCollisionDetectorInterfaceClass p => BtGjkPairDetectorClass p-instance BtDiscreteCollisionDetectorInterfaceClass BtGjkPairDetector-instance BtGjkPairDetectorClass BtGjkPairDetector-instance BtClass BtGjkPairDetector where-  withBt (BtGjkPairDetector p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtHashIntClass p-instance BtHashIntClass BtHashInt-instance BtClass BtHashInt where-  withBt (BtHashInt p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtHashPtrClass p-instance BtHashPtrClass BtHashPtr-instance BtClass BtHashPtr where-  withBt (BtHashPtr p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtHashStringClass p-instance BtHashStringClass BtHashString-instance BtClass BtHashString where-  withBt (BtHashString p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtHingeConstraintDoubleDataClass p-instance BtHingeConstraintDoubleDataClass BtHingeConstraintDoubleData-instance BtClass BtHingeConstraintDoubleData where-  withBt (BtHingeConstraintDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtHingeConstraintFloatDataClass p-instance BtHingeConstraintFloatDataClass BtHingeConstraintFloatData-instance BtClass BtHingeConstraintFloatData where-  withBt (BtHingeConstraintFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtIDebugDrawClass p-instance BtIDebugDrawClass BtIDebugDraw-instance BtClass BtIDebugDraw where-  withBt (BtIDebugDraw p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtIndexedMeshClass p-instance BtIndexedMeshClass BtIndexedMesh-instance BtClass BtIndexedMesh where-  withBt (BtIndexedMesh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtIntIndexDataClass p-instance BtIntIndexDataClass BtIntIndexData-instance BtClass BtIntIndexData where-  withBt (BtIntIndexData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtInternalTriangleIndexCallbackClass p-instance BtInternalTriangleIndexCallbackClass BtInternalTriangleIndexCallback-instance BtClass BtInternalTriangleIndexCallback where-  withBt (BtInternalTriangleIndexCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtJacobianEntryClass p-instance BtJacobianEntryClass BtJacobianEntry-instance BtClass BtJacobianEntry where-  withBt (BtJacobianEntry p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtManifoldPointClass p-instance BtManifoldPointClass BtManifoldPoint-instance BtClass BtManifoldPoint where-  withBt (BtManifoldPoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDiscreteCollisionDetectorInterface_ResultClass p => BtManifoldResultClass p-instance BtDiscreteCollisionDetectorInterface_ResultClass BtManifoldResult-instance BtManifoldResultClass BtManifoldResult-instance BtClass BtManifoldResult where-  withBt (BtManifoldResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtMatrix3x3DoubleDataClass p-instance BtMatrix3x3DoubleDataClass BtMatrix3x3DoubleData-instance BtClass BtMatrix3x3DoubleData where-  withBt (BtMatrix3x3DoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtMatrix3x3FloatDataClass p-instance BtMatrix3x3FloatDataClass BtMatrix3x3FloatData-instance BtClass BtMatrix3x3FloatData where-  withBt (BtMatrix3x3FloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtMeshPartDataClass p-instance BtMeshPartDataClass BtMeshPartData-instance BtClass BtMeshPartData where-  withBt (BtMeshPartData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtMotionStateClass p-instance BtMotionStateClass BtMotionState-instance BtClass BtMotionState where-  withBt (BtMotionState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseInterfaceClass p => BtMultiSapBroadphaseClass p-instance BtBroadphaseInterfaceClass BtMultiSapBroadphase-instance BtMultiSapBroadphaseClass BtMultiSapBroadphase-instance BtClass BtMultiSapBroadphase where-  withBt (BtMultiSapBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseProxyClass p => BtMultiSapBroadphase_btMultiSapProxyClass p-instance BtBroadphaseProxyClass BtMultiSapBroadphase_btMultiSapProxy-instance BtMultiSapBroadphase_btMultiSapProxyClass BtMultiSapBroadphase_btMultiSapProxy-instance BtClass BtMultiSapBroadphase_btMultiSapProxy where-  withBt (BtMultiSapBroadphase_btMultiSapProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtMultiSphereShapeDataClass p-instance BtMultiSphereShapeDataClass BtMultiSphereShapeData-instance BtClass BtMultiSphereShapeData where-  withBt (BtMultiSphereShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtNodeOverlapCallbackClass p-instance BtNodeOverlapCallbackClass BtNodeOverlapCallback-instance BtClass BtNodeOverlapCallback where-  withBt (BtNodeOverlapCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOptimizedBvhNodeClass p-instance BtOptimizedBvhNodeClass BtOptimizedBvhNode-instance BtClass BtOptimizedBvhNode where-  withBt (BtOptimizedBvhNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOptimizedBvhNodeDoubleDataClass p-instance BtOptimizedBvhNodeDoubleDataClass BtOptimizedBvhNodeDoubleData-instance BtClass BtOptimizedBvhNodeDoubleData where-  withBt (BtOptimizedBvhNodeDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOptimizedBvhNodeFloatDataClass p-instance BtOptimizedBvhNodeFloatDataClass BtOptimizedBvhNodeFloatData-instance BtClass BtOptimizedBvhNodeFloatData where-  withBt (BtOptimizedBvhNodeFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOverlapCallbackClass p-instance BtOverlapCallbackClass BtOverlapCallback-instance BtClass BtOverlapCallback where-  withBt (BtOverlapCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOverlapFilterCallbackClass p-instance BtOverlapFilterCallbackClass BtOverlapFilterCallback-instance BtClass BtOverlapFilterCallback where-  withBt (BtOverlapFilterCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtOverlappingPairCallbackClass p-instance BtOverlappingPairCallbackClass BtOverlappingPairCallback-instance BtClass BtOverlappingPairCallback where-  withBt (BtOverlappingPairCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPairSetClass p-instance BtPairSetClass BtPairSet-instance BtClass BtPairSet where-  withBt (BtPairSet p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPoint2PointConstraintDoubleDataClass p-instance BtPoint2PointConstraintDoubleDataClass BtPoint2PointConstraintDoubleData-instance BtClass BtPoint2PointConstraintDoubleData where-  withBt (BtPoint2PointConstraintDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPoint2PointConstraintFloatDataClass p-instance BtPoint2PointConstraintFloatDataClass BtPoint2PointConstraintFloatData-instance BtClass BtPoint2PointConstraintFloatData where-  withBt (BtPoint2PointConstraintFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPointerUidClass p-instance BtPointerUidClass BtPointerUid-instance BtClass BtPointerUid where-  withBt (BtPointerUid p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPositionAndRadiusClass p-instance BtPositionAndRadiusClass BtPositionAndRadius-instance BtClass BtPositionAndRadius where-  withBt (BtPositionAndRadius p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPrimitiveManagerBaseClass p-instance BtPrimitiveManagerBaseClass BtPrimitiveManagerBase-instance BtClass BtPrimitiveManagerBase where-  withBt (BtPrimitiveManagerBase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtPrimitiveTriangleClass p-instance BtPrimitiveTriangleClass BtPrimitiveTriangle-instance BtClass BtPrimitiveTriangle where-  withBt (BtPrimitiveTriangle p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuadWordClass p-instance BtQuadWordClass BtQuadWord-instance BtClass BtQuadWord where-  withBt (BtQuadWord p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhClass p-instance BtQuantizedBvhClass BtQuantizedBvh-instance BtClass BtQuantizedBvh where-  withBt (BtQuantizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhDoubleDataClass p-instance BtQuantizedBvhDoubleDataClass BtQuantizedBvhDoubleData-instance BtClass BtQuantizedBvhDoubleData where-  withBt (BtQuantizedBvhDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhFloatDataClass p-instance BtQuantizedBvhFloatDataClass BtQuantizedBvhFloatData-instance BtClass BtQuantizedBvhFloatData where-  withBt (BtQuantizedBvhFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhNodeClass p-instance BtQuantizedBvhNodeClass BtQuantizedBvhNode-instance BtClass BtQuantizedBvhNode where-  withBt (BtQuantizedBvhNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhNodeDataClass p-instance BtQuantizedBvhNodeDataClass BtQuantizedBvhNodeData-instance BtClass BtQuantizedBvhNodeData where-  withBt (BtQuantizedBvhNodeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtQuantizedBvhTreeClass p-instance BtQuantizedBvhTreeClass BtQuantizedBvhTree-instance BtClass BtQuantizedBvhTree where-  withBt (BtQuantizedBvhTree p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtActionInterfaceClass p => BtRaycastVehicleClass p-instance BtActionInterfaceClass BtRaycastVehicle-instance BtRaycastVehicleClass BtRaycastVehicle-instance BtClass BtRaycastVehicle where-  withBt (BtRaycastVehicle p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionObjectClass p => BtRigidBodyClass p-instance BtCollisionObjectClass BtRigidBody-instance BtRigidBodyClass BtRigidBody-instance BtClass BtRigidBody where-  withBt (BtRigidBody p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtRigidBody_btRigidBodyConstructionInfoClass p-instance BtRigidBody_btRigidBodyConstructionInfoClass BtRigidBody_btRigidBodyConstructionInfo-instance BtClass BtRigidBody_btRigidBodyConstructionInfo where-  withBt (BtRigidBody_btRigidBodyConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtRigidBodyDoubleDataClass p-instance BtRigidBodyDoubleDataClass BtRigidBodyDoubleData-instance BtClass BtRigidBodyDoubleData where-  withBt (BtRigidBodyDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtRigidBodyFloatDataClass p-instance BtRigidBodyFloatDataClass BtRigidBodyFloatData-instance BtClass BtRigidBodyFloatData where-  withBt (BtRigidBodyFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtRotationalLimitMotorClass p-instance BtRotationalLimitMotorClass BtRotationalLimitMotor-instance BtClass BtRotationalLimitMotor where-  withBt (BtRotationalLimitMotor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConcaveShapeClass p => BtScaledBvhTriangleMeshShapeClass p-instance BtConcaveShapeClass BtScaledBvhTriangleMeshShape-instance BtCollisionShapeClass BtScaledBvhTriangleMeshShape-instance BtScaledBvhTriangleMeshShapeClass BtScaledBvhTriangleMeshShape-instance BtClass BtScaledBvhTriangleMeshShape where-  withBt (BtScaledBvhTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtScaledTriangleMeshShapeDataClass p-instance BtScaledTriangleMeshShapeDataClass BtScaledTriangleMeshShapeData-instance BtClass BtScaledTriangleMeshShapeData where-  withBt (BtScaledTriangleMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConstraintSolverClass p => BtSequentialImpulseConstraintSolverClass p-instance BtConstraintSolverClass BtSequentialImpulseConstraintSolver-instance BtSequentialImpulseConstraintSolverClass BtSequentialImpulseConstraintSolver-instance BtClass BtSequentialImpulseConstraintSolver where-  withBt (BtSequentialImpulseConstraintSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSerializerClass p-instance BtSerializerClass BtSerializer-instance BtClass BtSerializer where-  withBt (BtSerializer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtShortIntIndexDataClass p-instance BtShortIntIndexDataClass BtShortIntIndexData-instance BtClass BtShortIntIndexData where-  withBt (BtShortIntIndexData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtShortIntIndexTripletDataClass p-instance BtShortIntIndexTripletDataClass BtShortIntIndexTripletData-instance BtClass BtShortIntIndexTripletData where-  withBt (BtShortIntIndexTripletData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseInterfaceClass p => BtSimpleBroadphaseClass p-instance BtBroadphaseInterfaceClass BtSimpleBroadphase-instance BtSimpleBroadphaseClass BtSimpleBroadphase-instance BtClass BtSimpleBroadphase where-  withBt (BtSimpleBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBroadphaseProxyClass p => BtSimpleBroadphaseProxyClass p-instance BtBroadphaseProxyClass BtSimpleBroadphaseProxy-instance BtSimpleBroadphaseProxyClass BtSimpleBroadphaseProxy-instance BtClass BtSimpleBroadphaseProxy where-  withBt (BtSimpleBroadphaseProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDynamicsWorldClass p => BtSimpleDynamicsWorldClass p-instance BtDynamicsWorldClass BtSimpleDynamicsWorld-instance BtCollisionWorldClass BtSimpleDynamicsWorld-instance BtSimpleDynamicsWorldClass BtSimpleDynamicsWorld-instance BtClass BtSimpleDynamicsWorld where-  withBt (BtSimpleDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSliderConstraintDataClass p-instance BtSliderConstraintDataClass BtSliderConstraintData-instance BtClass BtSliderConstraintData where-  withBt (BtSliderConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionObjectClass p => BtSoftBodyClass p-instance BtCollisionObjectClass BtSoftBody-instance BtSoftBodyClass BtSoftBody-instance BtClass BtSoftBody where-  withBt (BtSoftBody p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBodyHelpersClass p-instance BtSoftBodyHelpersClass BtSoftBodyHelpers-instance BtClass BtSoftBodyHelpers where-  withBt (BtSoftBodyHelpers p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDefaultCollisionConfigurationClass p => BtSoftBodyRigidBodyCollisionConfigurationClass p-instance BtDefaultCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration-instance BtCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration-instance BtSoftBodyRigidBodyCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration-instance BtClass BtSoftBodyRigidBodyCollisionConfiguration where-  withBt (BtSoftBodyRigidBodyCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBodyWorldInfoClass p-instance BtSoftBodyWorldInfoClass BtSoftBodyWorldInfo-instance BtClass BtSoftBodyWorldInfo where-  withBt (BtSoftBodyWorldInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSolverBodyObsoleteClass p-instance BtSolverBodyObsoleteClass BtSolverBodyObsolete-instance BtClass BtSolverBodyObsolete where-  withBt (BtSolverBodyObsolete p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSolverConstraintClass p-instance BtSolverConstraintClass BtSolverConstraint-instance BtClass BtSolverConstraint where-  withBt (BtSolverConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtStackAllocClass p-instance BtStackAllocClass BtStackAlloc-instance BtClass BtStackAlloc where-  withBt (BtStackAlloc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConcaveShapeClass p => BtStaticPlaneShapeClass p-instance BtConcaveShapeClass BtStaticPlaneShape-instance BtCollisionShapeClass BtStaticPlaneShape-instance BtStaticPlaneShapeClass BtStaticPlaneShape-instance BtClass BtStaticPlaneShape where-  withBt (BtStaticPlaneShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtStaticPlaneShapeDataClass p-instance BtStaticPlaneShapeDataClass BtStaticPlaneShapeData-instance BtClass BtStaticPlaneShapeData where-  withBt (BtStaticPlaneShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDiscreteCollisionDetectorInterface_ResultClass p => BtStorageResultClass p-instance BtDiscreteCollisionDetectorInterface_ResultClass BtStorageResult-instance BtStorageResultClass BtStorageResult-instance BtClass BtStorageResult where-  withBt (BtStorageResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtStridingMeshInterfaceClass p-instance BtStridingMeshInterfaceClass BtStridingMeshInterface-instance BtClass BtStridingMeshInterface where-  withBt (BtStridingMeshInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtStridingMeshInterfaceDataClass p-instance BtStridingMeshInterfaceDataClass BtStridingMeshInterfaceData-instance BtClass BtStridingMeshInterfaceData where-  withBt (BtStridingMeshInterfaceData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSubSimplexClosestResultClass p-instance BtSubSimplexClosestResultClass BtSubSimplexClosestResult-instance BtClass BtSubSimplexClosestResult where-  withBt (BtSubSimplexClosestResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTransformDoubleDataClass p-instance BtTransformDoubleDataClass BtTransformDoubleData-instance BtClass BtTransformDoubleData where-  withBt (BtTransformDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTransformFloatDataClass p-instance BtTransformFloatDataClass BtTransformFloatData-instance BtClass BtTransformFloatData where-  withBt (BtTransformFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTransformUtilClass p-instance BtTransformUtilClass BtTransformUtil-instance BtClass BtTransformUtil where-  withBt (BtTransformUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTranslationalLimitMotorClass p-instance BtTranslationalLimitMotorClass BtTranslationalLimitMotor-instance BtClass BtTranslationalLimitMotor where-  withBt (BtTranslationalLimitMotor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleCallbackClass p-instance BtTriangleCallbackClass BtTriangleCallback-instance BtClass BtTriangleCallback where-  withBt (BtTriangleCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtStridingMeshInterfaceClass p => BtTriangleIndexVertexArrayClass p-instance BtStridingMeshInterfaceClass BtTriangleIndexVertexArray-instance BtTriangleIndexVertexArrayClass BtTriangleIndexVertexArray-instance BtClass BtTriangleIndexVertexArray where-  withBt (BtTriangleIndexVertexArray p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleInfoClass p-instance BtTriangleInfoClass BtTriangleInfo-instance BtClass BtTriangleInfo where-  withBt (BtTriangleInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleInfoDataClass p-instance BtTriangleInfoDataClass BtTriangleInfoData-instance BtClass BtTriangleInfoData where-  withBt (BtTriangleInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleInfoMapClass p-instance BtTriangleInfoMapClass BtTriangleInfoMap-instance BtClass BtTriangleInfoMap where-  withBt (BtTriangleInfoMap p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleInfoMapDataClass p-instance BtTriangleInfoMapDataClass BtTriangleInfoMapData-instance BtClass BtTriangleInfoMapData where-  withBt (BtTriangleInfoMapData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTriangleIndexVertexArrayClass p => BtTriangleMeshClass p-instance BtTriangleIndexVertexArrayClass BtTriangleMesh-instance BtStridingMeshInterfaceClass BtTriangleMesh-instance BtTriangleMeshClass BtTriangleMesh-instance BtClass BtTriangleMesh where-  withBt (BtTriangleMesh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConcaveShapeClass p => BtTriangleMeshShapeClass p-instance BtConcaveShapeClass BtTriangleMeshShape-instance BtCollisionShapeClass BtTriangleMeshShape-instance BtTriangleMeshShapeClass BtTriangleMeshShape-instance BtClass BtTriangleMeshShape where-  withBt (BtTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTriangleMeshShapeDataClass p-instance BtTriangleMeshShapeDataClass BtTriangleMeshShapeData-instance BtClass BtTriangleMeshShapeData where-  withBt (BtTriangleMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTypedConstraintDataClass p-instance BtTypedConstraintDataClass BtTypedConstraintData-instance BtClass BtTypedConstraintData where-  withBt (BtTypedConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtTypedObjectClass p-instance BtTypedObjectClass BtTypedObject-instance BtClass BtTypedObject where-  withBt (BtTypedObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexShapeClass p => BtUniformScalingShapeClass p-instance BtConvexShapeClass BtUniformScalingShape-instance BtCollisionShapeClass BtUniformScalingShape-instance BtUniformScalingShapeClass BtUniformScalingShape-instance BtClass BtUniformScalingShape where-  withBt (BtUniformScalingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtUsageBitfieldClass p-instance BtUsageBitfieldClass BtUsageBitfield-instance BtClass BtUsageBitfield where-  withBt (BtUsageBitfield p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtVector3DoubleDataClass p-instance BtVector3DoubleDataClass BtVector3DoubleData-instance BtClass BtVector3DoubleData where-  withBt (BtVector3DoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtVector3FloatDataClass p-instance BtVector3FloatDataClass BtVector3FloatData-instance BtClass BtVector3FloatData where-  withBt (BtVector3FloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtVehicleRaycasterClass p-instance BtVehicleRaycasterClass BtVehicleRaycaster-instance BtClass BtVehicleRaycaster where-  withBt (BtVehicleRaycaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtVehicleRaycaster_btVehicleRaycasterResultClass p-instance BtVehicleRaycaster_btVehicleRaycasterResultClass BtVehicleRaycaster_btVehicleRaycasterResult-instance BtClass BtVehicleRaycaster_btVehicleRaycasterResult where-  withBt (BtVehicleRaycaster_btVehicleRaycasterResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtRaycastVehicle_btVehicleTuningClass p-instance BtRaycastVehicle_btVehicleTuningClass BtRaycastVehicle_btVehicleTuning-instance BtClass BtRaycastVehicle_btVehicleTuning where-  withBt (BtRaycastVehicle_btVehicleTuning p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtVoronoiSimplexSolverClass p-instance BtVoronoiSimplexSolverClass BtVoronoiSimplexSolver-instance BtClass BtVoronoiSimplexSolver where-  withBt (BtVoronoiSimplexSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtWheelInfoClass p-instance BtWheelInfoClass BtWheelInfo-instance BtClass BtWheelInfo where-  withBt (BtWheelInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtWheelInfoConstructionInfoClass p-instance BtWheelInfoConstructionInfoClass BtWheelInfoConstructionInfo-instance BtClass BtWheelInfoConstructionInfo where-  withBt (BtWheelInfoConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_eAeroModelClass p-instance BtSoftBody_eAeroModelClass BtSoftBody_eAeroModel-instance BtClass BtSoftBody_eAeroModel where-  withBt (BtSoftBody_eAeroModel p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_eFeatureClass p-instance BtSoftBody_eFeatureClass BtSoftBody_eFeature-instance BtClass BtSoftBody_eFeature where-  withBt (BtSoftBody_eFeature p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_ePSolverClass p-instance BtSoftBody_ePSolverClass BtSoftBody_ePSolver-instance BtClass BtSoftBody_ePSolver where-  withBt (BtSoftBody_ePSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_eSolverPresetsClass p-instance BtSoftBody_eSolverPresetsClass BtSoftBody_eSolverPresets-instance BtClass BtSoftBody_eSolverPresets where-  withBt (BtSoftBody_eSolverPresets p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_Joint_eTypeClass p-instance BtSoftBody_Joint_eTypeClass BtSoftBody_Joint_eType-instance BtClass BtSoftBody_Joint_eType where-  withBt (BtSoftBody_Joint_eType p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_eVSolverClass p-instance BtSoftBody_eVSolverClass BtSoftBody_eVSolver-instance BtClass BtSoftBody_eVSolver where-  withBt (BtSoftBody_eVSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_fCollisionClass p-instance BtSoftBody_fCollisionClass BtSoftBody_fCollision-instance BtClass BtSoftBody_fCollision where-  withBt (BtSoftBody_fCollision p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => FDrawFlagsClass p-instance FDrawFlagsClass FDrawFlags-instance BtClass FDrawFlags where-  withBt (FDrawFlags p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_fMaterialClass p-instance BtSoftBody_fMaterialClass BtSoftBody_fMaterial-instance BtClass BtSoftBody_fMaterial where-  withBt (BtSoftBody_fMaterial p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_sCtiClass p-instance BtSoftBody_sCtiClass BtSoftBody_sCti-instance BtClass BtSoftBody_sCti where-  withBt (BtSoftBody_sCti p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_sMediumClass p-instance BtSoftBody_sMediumClass BtSoftBody_sMedium-instance BtClass BtSoftBody_sMedium where-  withBt (BtSoftBody_sMedium p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtSoftBody_sRayCastClass p-instance BtSoftBody_sRayCastClass BtSoftBody_sRayCast-instance BtClass BtSoftBody_sRayCast where-  withBt (BtSoftBody_sRayCast p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtGjkEpaSolver2_sResultsClass p-instance BtGjkEpaSolver2_sResultsClass BtGjkEpaSolver2_sResults-instance BtClass BtGjkEpaSolver2_sResults where-  withBt (BtGjkEpaSolver2_sResults p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_sStkCLNClass p-instance BtDbvt_sStkCLNClass BtDbvt_sStkCLN-instance BtClass BtDbvt_sStkCLN where-  withBt (BtDbvt_sStkCLN p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_sStkNNClass p-instance BtDbvt_sStkNNClass BtDbvt_sStkNN-instance BtClass BtDbvt_sStkNN where-  withBt (BtDbvt_sStkNN p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_sStkNPClass p-instance BtDbvt_sStkNPClass BtDbvt_sStkNP-instance BtClass BtDbvt_sStkNP where-  withBt (BtDbvt_sStkNP p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtDbvt_sStkNPSClass p-instance BtDbvt_sStkNPSClass BtDbvt_sStkNPS-instance BtClass BtDbvt_sStkNPS where-  withBt (BtDbvt_sStkNPS p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_JointClass p => BtSoftBody_AJointClass p-instance BtSoftBody_JointClass BtSoftBody_AJoint-instance BtSoftBody_AJointClass BtSoftBody_AJoint-instance BtClass BtSoftBody_AJoint where-  withBt (BtSoftBody_AJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionWorld_RayResultCallbackClass p => BtCollisionWorld_AllHitsRayResultCallbackClass p-instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_AllHitsRayResultCallback-instance BtCollisionWorld_AllHitsRayResultCallbackClass BtCollisionWorld_AllHitsRayResultCallback-instance BtClass BtCollisionWorld_AllHitsRayResultCallback where-  withBt (BtCollisionWorld_AllHitsRayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_JointClass p => BtSoftBody_CJointClass p-instance BtSoftBody_JointClass BtSoftBody_CJoint-instance BtSoftBody_CJointClass BtSoftBody_CJoint-instance BtClass BtSoftBody_CJoint where-  withBt (BtSoftBody_CJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionWorld_ConvexResultCallbackClass p => BtCollisionWorld_ClosestConvexResultCallbackClass p-instance BtCollisionWorld_ConvexResultCallbackClass BtCollisionWorld_ClosestConvexResultCallback-instance BtCollisionWorld_ClosestConvexResultCallbackClass BtCollisionWorld_ClosestConvexResultCallback-instance BtClass BtCollisionWorld_ClosestConvexResultCallback where-  withBt (BtCollisionWorld_ClosestConvexResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionWorld_RayResultCallbackClass p => BtCollisionWorld_ClosestRayResultCallbackClass p-instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_ClosestRayResultCallback-instance BtCollisionWorld_ClosestRayResultCallbackClass BtCollisionWorld_ClosestRayResultCallback-instance BtClass BtCollisionWorld_ClosestRayResultCallback where-  withBt (BtCollisionWorld_ClosestRayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPrimitiveManagerBaseClass p => BtGImpactCompoundShape_CompoundPrimitiveManagerClass p-instance BtPrimitiveManagerBaseClass BtGImpactCompoundShape_CompoundPrimitiveManager-instance BtGImpactCompoundShape_CompoundPrimitiveManagerClass BtGImpactCompoundShape_CompoundPrimitiveManager-instance BtClass BtGImpactCompoundShape_CompoundPrimitiveManager where-  withBt (BtGImpactCompoundShape_CompoundPrimitiveManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionAlgorithmCreateFuncClass p => BtGImpactCollisionAlgorithm_CreateFuncClass p-instance BtCollisionAlgorithmCreateFuncClass BtGImpactCollisionAlgorithm_CreateFunc-instance BtGImpactCollisionAlgorithm_CreateFuncClass BtGImpactCollisionAlgorithm_CreateFunc-instance BtClass BtGImpactCollisionAlgorithm_CreateFunc where-  withBt (BtGImpactCollisionAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionAlgorithmCreateFuncClass p => BtSphereSphereCollisionAlgorithm_CreateFuncClass p-instance BtCollisionAlgorithmCreateFuncClass BtSphereSphereCollisionAlgorithm_CreateFunc-instance BtSphereSphereCollisionAlgorithm_CreateFuncClass BtSphereSphereCollisionAlgorithm_CreateFunc-instance BtClass BtSphereSphereCollisionAlgorithm_CreateFunc where-  withBt (BtSphereSphereCollisionAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionAlgorithmCreateFuncClass p => BtConvexConvexAlgorithm_CreateFuncClass p-instance BtCollisionAlgorithmCreateFuncClass BtConvexConvexAlgorithm_CreateFunc-instance BtConvexConvexAlgorithm_CreateFuncClass BtConvexConvexAlgorithm_CreateFunc-instance BtClass BtConvexConvexAlgorithm_CreateFunc where-  withBt (BtConvexConvexAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSoftBody_FeatureClass p => BtSoftBody_FaceClass p-instance BtSoftBody_FeatureClass BtSoftBody_Face-instance BtSoftBody_ElementClass BtSoftBody_Face-instance BtSoftBody_FaceClass BtSoftBody_Face-instance BtClass BtSoftBody_Face where-  withBt (BtSoftBody_Face p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPrimitiveManagerBaseClass p => BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass p-instance BtPrimitiveManagerBaseClass BtGImpactMeshShapePart_TrimeshPrimitiveManager-instance BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass BtGImpactMeshShapePart_TrimeshPrimitiveManager-instance BtClass BtGImpactMeshShapePart_TrimeshPrimitiveManager where-  withBt (BtGImpactMeshShapePart_TrimeshPrimitiveManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => Bt32BitAxisSweep3Class p-instance Bt32BitAxisSweep3Class Bt32BitAxisSweep3-instance BtClass Bt32BitAxisSweep3 where-  withBt (Bt32BitAxisSweep3 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCollisionAlgorithmClass p => BtActivatingCollisionAlgorithmClass p-instance BtCollisionAlgorithmClass BtActivatingCollisionAlgorithm-instance BtActivatingCollisionAlgorithmClass BtActivatingCollisionAlgorithm-instance BtClass BtActivatingCollisionAlgorithm where-  withBt (BtActivatingCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtClass p => BtAxisSweep3Class p-instance BtAxisSweep3Class BtAxisSweep3-instance BtClass BtAxisSweep3 where-  withBt (BtAxisSweep3 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTriangleMeshShapeClass p => BtBvhTriangleMeshShapeClass p-instance BtTriangleMeshShapeClass BtBvhTriangleMeshShape-instance BtConcaveShapeClass BtBvhTriangleMeshShape-instance BtCollisionShapeClass BtBvhTriangleMeshShape-instance BtBvhTriangleMeshShapeClass BtBvhTriangleMeshShape-instance BtClass BtBvhTriangleMeshShape where-  withBt (BtBvhTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDispatcherClass p => BtCollisionDispatcherClass p-instance BtDispatcherClass BtCollisionDispatcher-instance BtCollisionDispatcherClass BtCollisionDispatcher-instance BtClass BtCollisionDispatcher where-  withBt (BtCollisionDispatcher p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtContactSolverInfoDataClass p => BtContactSolverInfoClass p-instance BtContactSolverInfoDataClass BtContactSolverInfo-instance BtContactSolverInfoClass BtContactSolverInfo-instance BtClass BtContactSolverInfo where-  withBt (BtContactSolverInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtActivatingCollisionAlgorithmClass p => BtConvexConvexAlgorithmClass p-instance BtActivatingCollisionAlgorithmClass BtConvexConvexAlgorithm-instance BtCollisionAlgorithmClass BtConvexConvexAlgorithm-instance BtConvexConvexAlgorithmClass BtConvexConvexAlgorithm-instance BtClass BtConvexConvexAlgorithm where-  withBt (BtConvexConvexAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexShapeClass p => BtConvexInternalShapeClass p-instance BtConvexShapeClass BtConvexInternalShape-instance BtCollisionShapeClass BtConvexInternalShape-instance BtConvexInternalShapeClass BtConvexInternalShape-instance BtClass BtConvexInternalShape where-  withBt (BtConvexInternalShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtCylinderShapeClass p-instance BtConvexInternalShapeClass BtCylinderShape-instance BtConvexShapeClass BtCylinderShape-instance BtCollisionShapeClass BtCylinderShape-instance BtCylinderShapeClass BtCylinderShape-instance BtClass BtCylinderShape where-  withBt (BtCylinderShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCylinderShapeClass p => BtCylinderShapeXClass p-instance BtCylinderShapeClass BtCylinderShapeX-instance BtConvexInternalShapeClass BtCylinderShapeX-instance BtConvexShapeClass BtCylinderShapeX-instance BtCollisionShapeClass BtCylinderShapeX-instance BtCylinderShapeXClass BtCylinderShapeX-instance BtClass BtCylinderShapeX where-  withBt (BtCylinderShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCylinderShapeClass p => BtCylinderShapeZClass p-instance BtCylinderShapeClass BtCylinderShapeZ-instance BtConvexInternalShapeClass BtCylinderShapeZ-instance BtConvexShapeClass BtCylinderShapeZ-instance BtCollisionShapeClass BtCylinderShapeZ-instance BtCylinderShapeZClass BtCylinderShapeZ-instance BtClass BtCylinderShapeZ where-  withBt (BtCylinderShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtMotionStateClass p => BtDefaultMotionStateClass p-instance BtMotionStateClass BtDefaultMotionState-instance BtDefaultMotionStateClass BtDefaultMotionState-instance BtClass BtDefaultMotionState where-  withBt (BtDefaultMotionState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtSerializerClass p => BtDefaultSerializerClass p-instance BtSerializerClass BtDefaultSerializer-instance BtDefaultSerializerClass BtDefaultSerializer-instance BtClass BtDefaultSerializer where-  withBt (BtDefaultSerializer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtVehicleRaycasterClass p => BtDefaultVehicleRaycasterClass p-instance BtVehicleRaycasterClass BtDefaultVehicleRaycaster-instance BtDefaultVehicleRaycasterClass BtDefaultVehicleRaycaster-instance BtClass BtDefaultVehicleRaycaster where-  withBt (BtDefaultVehicleRaycaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDynamicsWorldClass p => BtDiscreteDynamicsWorldClass p-instance BtDynamicsWorldClass BtDiscreteDynamicsWorld-instance BtCollisionWorldClass BtDiscreteDynamicsWorld-instance BtDiscreteDynamicsWorldClass BtDiscreteDynamicsWorld-instance BtClass BtDiscreteDynamicsWorld where-  withBt (BtDiscreteDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtActivatingCollisionAlgorithmClass p => BtGImpactCollisionAlgorithmClass p-instance BtActivatingCollisionAlgorithmClass BtGImpactCollisionAlgorithm-instance BtCollisionAlgorithmClass BtGImpactCollisionAlgorithm-instance BtGImpactCollisionAlgorithmClass BtGImpactCollisionAlgorithm-instance BtClass BtGImpactCollisionAlgorithm where-  withBt (BtGImpactCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGImpactShapeInterfaceClass p => BtGImpactCompoundShapeClass p-instance BtGImpactShapeInterfaceClass BtGImpactCompoundShape-instance BtConcaveShapeClass BtGImpactCompoundShape-instance BtCollisionShapeClass BtGImpactCompoundShape-instance BtGImpactCompoundShapeClass BtGImpactCompoundShape-instance BtClass BtGImpactCompoundShape where-  withBt (BtGImpactCompoundShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGImpactShapeInterfaceClass p => BtGImpactMeshShapeClass p-instance BtGImpactShapeInterfaceClass BtGImpactMeshShape-instance BtConcaveShapeClass BtGImpactMeshShape-instance BtCollisionShapeClass BtGImpactMeshShape-instance BtGImpactMeshShapeClass BtGImpactMeshShape-instance BtClass BtGImpactMeshShape where-  withBt (BtGImpactMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGImpactShapeInterfaceClass p => BtGImpactMeshShapePartClass p-instance BtGImpactShapeInterfaceClass BtGImpactMeshShapePart-instance BtConcaveShapeClass BtGImpactMeshShapePart-instance BtCollisionShapeClass BtGImpactMeshShapePart-instance BtGImpactMeshShapePartClass BtGImpactMeshShapePart-instance BtClass BtGImpactMeshShapePart where-  withBt (BtGImpactMeshShapePart p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtIDebugDrawClass p => BtGLDebugDrawerClass p-instance BtIDebugDrawClass BtGLDebugDrawer-instance BtGLDebugDrawerClass BtGLDebugDrawer-instance BtClass BtGLDebugDrawer where-  withBt (BtGLDebugDrawer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtQuantizedBvhClass p => BtOptimizedBvhClass p-instance BtQuantizedBvhClass BtOptimizedBvh-instance BtOptimizedBvhClass BtOptimizedBvh-instance BtClass BtOptimizedBvh where-  withBt (BtOptimizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtOverlappingPairCallbackClass p => BtOverlappingPairCacheClass p-instance BtOverlappingPairCallbackClass BtOverlappingPairCache-instance BtOverlappingPairCacheClass BtOverlappingPairCache-instance BtClass BtOverlappingPairCache where-  withBt (BtOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedObjectClass p => BtPersistentManifoldClass p-instance BtTypedObjectClass BtPersistentManifold-instance BtPersistentManifoldClass BtPersistentManifold-instance BtClass BtPersistentManifold where-  withBt (BtPersistentManifold p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtPolyhedralConvexShapeClass p-instance BtConvexInternalShapeClass BtPolyhedralConvexShape-instance BtConvexShapeClass BtPolyhedralConvexShape-instance BtCollisionShapeClass BtPolyhedralConvexShape-instance BtPolyhedralConvexShapeClass BtPolyhedralConvexShape-instance BtClass BtPolyhedralConvexShape where-  withBt (BtPolyhedralConvexShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDiscreteDynamicsWorldClass p => BtSoftRigidDynamicsWorldClass p-instance BtDiscreteDynamicsWorldClass BtSoftRigidDynamicsWorld-instance BtDynamicsWorldClass BtSoftRigidDynamicsWorld-instance BtCollisionWorldClass BtSoftRigidDynamicsWorld-instance BtSoftRigidDynamicsWorldClass BtSoftRigidDynamicsWorld-instance BtClass BtSoftRigidDynamicsWorld where-  withBt (BtSoftRigidDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtOverlappingPairCacheClass p => BtSortedOverlappingPairCacheClass p-instance BtOverlappingPairCacheClass BtSortedOverlappingPairCache-instance BtOverlappingPairCallbackClass BtSortedOverlappingPairCache-instance BtSortedOverlappingPairCacheClass BtSortedOverlappingPairCache-instance BtClass BtSortedOverlappingPairCache where-  withBt (BtSortedOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtSphereShapeClass p-instance BtConvexInternalShapeClass BtSphereShape-instance BtConvexShapeClass BtSphereShape-instance BtCollisionShapeClass BtSphereShape-instance BtSphereShapeClass BtSphereShape-instance BtClass BtSphereShape where-  withBt (BtSphereShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtActivatingCollisionAlgorithmClass p => BtSphereSphereCollisionAlgorithmClass p-instance BtActivatingCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm-instance BtCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm-instance BtSphereSphereCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm-instance BtClass BtSphereSphereCollisionAlgorithm where-  withBt (BtSphereSphereCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexShapeClass p => BtTriangleShapeClass p-instance BtPolyhedralConvexShapeClass BtTriangleShape-instance BtConvexInternalShapeClass BtTriangleShape-instance BtConvexShapeClass BtTriangleShape-instance BtCollisionShapeClass BtTriangleShape-instance BtTriangleShapeClass BtTriangleShape-instance BtClass BtTriangleShape where-  withBt (BtTriangleShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTriangleShapeClass p => BtTriangleShapeExClass p-instance BtTriangleShapeClass BtTriangleShapeEx-instance BtPolyhedralConvexShapeClass BtTriangleShapeEx-instance BtConvexInternalShapeClass BtTriangleShapeEx-instance BtConvexShapeClass BtTriangleShapeEx-instance BtCollisionShapeClass BtTriangleShapeEx-instance BtTriangleShapeExClass BtTriangleShapeEx-instance BtClass BtTriangleShapeEx where-  withBt (BtTriangleShapeEx p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedObjectClass p => BtTypedConstraintClass p-instance BtTypedObjectClass BtTypedConstraint-instance BtTypedConstraintClass BtTypedConstraint-instance BtClass BtTypedConstraint where-  withBt (BtTypedConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexShapeClass p => BtBoxShapeClass p-instance BtPolyhedralConvexShapeClass BtBoxShape-instance BtConvexInternalShapeClass BtBoxShape-instance BtConvexShapeClass BtBoxShape-instance BtCollisionShapeClass BtBoxShape-instance BtBoxShapeClass BtBoxShape-instance BtClass BtBoxShape where-  withBt (BtBoxShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtCapsuleShapeClass p-instance BtConvexInternalShapeClass BtCapsuleShape-instance BtConvexShapeClass BtCapsuleShape-instance BtCollisionShapeClass BtCapsuleShape-instance BtCapsuleShapeClass BtCapsuleShape-instance BtClass BtCapsuleShape where-  withBt (BtCapsuleShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCapsuleShapeClass p => BtCapsuleShapeXClass p-instance BtCapsuleShapeClass BtCapsuleShapeX-instance BtConvexInternalShapeClass BtCapsuleShapeX-instance BtConvexShapeClass BtCapsuleShapeX-instance BtCollisionShapeClass BtCapsuleShapeX-instance BtCapsuleShapeXClass BtCapsuleShapeX-instance BtClass BtCapsuleShapeX where-  withBt (BtCapsuleShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtCapsuleShapeClass p => BtCapsuleShapeZClass p-instance BtCapsuleShapeClass BtCapsuleShapeZ-instance BtConvexInternalShapeClass BtCapsuleShapeZ-instance BtConvexShapeClass BtCapsuleShapeZ-instance BtCollisionShapeClass BtCapsuleShapeZ-instance BtCapsuleShapeZClass BtCapsuleShapeZ-instance BtClass BtCapsuleShapeZ where-  withBt (BtCapsuleShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtConeShapeClass p-instance BtConvexInternalShapeClass BtConeShape-instance BtConvexShapeClass BtConeShape-instance BtCollisionShapeClass BtConeShape-instance BtConeShapeClass BtConeShape-instance BtClass BtConeShape where-  withBt (BtConeShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConeShapeClass p => BtConeShapeXClass p-instance BtConeShapeClass BtConeShapeX-instance BtConvexInternalShapeClass BtConeShapeX-instance BtConvexShapeClass BtConeShapeX-instance BtCollisionShapeClass BtConeShapeX-instance BtConeShapeXClass BtConeShapeX-instance BtClass BtConeShapeX where-  withBt (BtConeShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConeShapeClass p => BtConeShapeZClass p-instance BtConeShapeClass BtConeShapeZ-instance BtConvexInternalShapeClass BtConeShapeZ-instance BtConvexShapeClass BtConeShapeZ-instance BtCollisionShapeClass BtConeShapeZ-instance BtConeShapeZClass BtConeShapeZ-instance BtClass BtConeShapeZ where-  withBt (BtConeShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtConeTwistConstraintClass p-instance BtTypedConstraintClass BtConeTwistConstraint-instance BtTypedObjectClass BtConeTwistConstraint-instance BtConeTwistConstraintClass BtConeTwistConstraint-instance BtClass BtConeTwistConstraint where-  withBt (BtConeTwistConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtContactConstraintClass p-instance BtTypedConstraintClass BtContactConstraint-instance BtTypedObjectClass BtContactConstraint-instance BtContactConstraintClass BtContactConstraint-instance BtClass BtContactConstraint where-  withBt (BtContactConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtDiscreteDynamicsWorldClass p => BtContinuousDynamicsWorldClass p-instance BtDiscreteDynamicsWorldClass BtContinuousDynamicsWorld-instance BtDynamicsWorldClass BtContinuousDynamicsWorld-instance BtCollisionWorldClass BtContinuousDynamicsWorld-instance BtContinuousDynamicsWorldClass BtContinuousDynamicsWorld-instance BtClass BtContinuousDynamicsWorld where-  withBt (BtContinuousDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalShapeClass p => BtConvexInternalAabbCachingShapeClass p-instance BtConvexInternalShapeClass BtConvexInternalAabbCachingShape-instance BtConvexShapeClass BtConvexInternalAabbCachingShape-instance BtCollisionShapeClass BtConvexInternalAabbCachingShape-instance BtConvexInternalAabbCachingShapeClass BtConvexInternalAabbCachingShape-instance BtClass BtConvexInternalAabbCachingShape where-  withBt (BtConvexInternalAabbCachingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtGeneric6DofConstraintClass p-instance BtTypedConstraintClass BtGeneric6DofConstraint-instance BtTypedObjectClass BtGeneric6DofConstraint-instance BtGeneric6DofConstraintClass BtGeneric6DofConstraint-instance BtClass BtGeneric6DofConstraint where-  withBt (BtGeneric6DofConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGeneric6DofConstraintClass p => BtGeneric6DofSpringConstraintClass p-instance BtGeneric6DofConstraintClass BtGeneric6DofSpringConstraint-instance BtTypedConstraintClass BtGeneric6DofSpringConstraint-instance BtTypedObjectClass BtGeneric6DofSpringConstraint-instance BtGeneric6DofSpringConstraintClass BtGeneric6DofSpringConstraint-instance BtClass BtGeneric6DofSpringConstraint where-  withBt (BtGeneric6DofSpringConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtOverlappingPairCacheClass p => BtHashedOverlappingPairCacheClass p-instance BtOverlappingPairCacheClass BtHashedOverlappingPairCache-instance BtOverlappingPairCallbackClass BtHashedOverlappingPairCache-instance BtHashedOverlappingPairCacheClass BtHashedOverlappingPairCache-instance BtClass BtHashedOverlappingPairCache where-  withBt (BtHashedOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGeneric6DofSpringConstraintClass p => BtHinge2ConstraintClass p-instance BtGeneric6DofSpringConstraintClass BtHinge2Constraint-instance BtGeneric6DofConstraintClass BtHinge2Constraint-instance BtTypedConstraintClass BtHinge2Constraint-instance BtTypedObjectClass BtHinge2Constraint-instance BtHinge2ConstraintClass BtHinge2Constraint-instance BtClass BtHinge2Constraint where-  withBt (BtHinge2Constraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtHingeConstraintClass p-instance BtTypedConstraintClass BtHingeConstraint-instance BtTypedObjectClass BtHingeConstraint-instance BtHingeConstraintClass BtHingeConstraint-instance BtClass BtHingeConstraint where-  withBt (BtHingeConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtConvexInternalAabbCachingShapeClass p => BtMultiSphereShapeClass p-instance BtConvexInternalAabbCachingShapeClass BtMultiSphereShape-instance BtConvexInternalShapeClass BtMultiSphereShape-instance BtConvexShapeClass BtMultiSphereShape-instance BtCollisionShapeClass BtMultiSphereShape-instance BtMultiSphereShapeClass BtMultiSphereShape-instance BtClass BtMultiSphereShape where-  withBt (BtMultiSphereShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtOverlappingPairCacheClass p => BtNullPairCacheClass p-instance BtOverlappingPairCacheClass BtNullPairCache-instance BtOverlappingPairCallbackClass BtNullPairCache-instance BtNullPairCacheClass BtNullPairCache-instance BtClass BtNullPairCache where-  withBt (BtNullPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtPoint2PointConstraintClass p-instance BtTypedConstraintClass BtPoint2PointConstraint-instance BtTypedObjectClass BtPoint2PointConstraint-instance BtPoint2PointConstraintClass BtPoint2PointConstraint-instance BtClass BtPoint2PointConstraint where-  withBt (BtPoint2PointConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexShapeClass p => BtPolyhedralConvexAabbCachingShapeClass p-instance BtPolyhedralConvexShapeClass BtPolyhedralConvexAabbCachingShape-instance BtConvexInternalShapeClass BtPolyhedralConvexAabbCachingShape-instance BtConvexShapeClass BtPolyhedralConvexAabbCachingShape-instance BtCollisionShapeClass BtPolyhedralConvexAabbCachingShape-instance BtPolyhedralConvexAabbCachingShapeClass BtPolyhedralConvexAabbCachingShape-instance BtClass BtPolyhedralConvexAabbCachingShape where-  withBt (BtPolyhedralConvexAabbCachingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtTypedConstraintClass p => BtSliderConstraintClass p-instance BtTypedConstraintClass BtSliderConstraint-instance BtTypedObjectClass BtSliderConstraint-instance BtSliderConstraintClass BtSliderConstraint-instance BtClass BtSliderConstraint where-  withBt (BtSliderConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtGeneric6DofConstraintClass p => BtUniversalConstraintClass p-instance BtGeneric6DofConstraintClass BtUniversalConstraint-instance BtTypedConstraintClass BtUniversalConstraint-instance BtTypedObjectClass BtUniversalConstraint-instance BtUniversalConstraintClass BtUniversalConstraint-instance BtClass BtUniversalConstraint where-  withBt (BtUniversalConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexAabbCachingShapeClass p => BtBU_Simplex1to4Class p-instance BtPolyhedralConvexAabbCachingShapeClass BtBU_Simplex1to4-instance BtPolyhedralConvexShapeClass BtBU_Simplex1to4-instance BtConvexInternalShapeClass BtBU_Simplex1to4-instance BtConvexShapeClass BtBU_Simplex1to4-instance BtCollisionShapeClass BtBU_Simplex1to4-instance BtBU_Simplex1to4Class BtBU_Simplex1to4-instance BtClass BtBU_Simplex1to4 where-  withBt (BtBU_Simplex1to4 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexAabbCachingShapeClass p => BtConvexHullShapeClass p-instance BtPolyhedralConvexAabbCachingShapeClass BtConvexHullShape-instance BtPolyhedralConvexShapeClass BtConvexHullShape-instance BtConvexInternalShapeClass BtConvexHullShape-instance BtConvexShapeClass BtConvexHullShape-instance BtCollisionShapeClass BtConvexHullShape-instance BtConvexHullShapeClass BtConvexHullShape-instance BtClass BtConvexHullShape where-  withBt (BtConvexHullShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtPolyhedralConvexAabbCachingShapeClass p => BtConvexTriangleMeshShapeClass p-instance BtPolyhedralConvexAabbCachingShapeClass BtConvexTriangleMeshShape-instance BtPolyhedralConvexShapeClass BtConvexTriangleMeshShape-instance BtConvexInternalShapeClass BtConvexTriangleMeshShape-instance BtConvexShapeClass BtConvexTriangleMeshShape-instance BtCollisionShapeClass BtConvexTriangleMeshShape-instance BtConvexTriangleMeshShapeClass BtConvexTriangleMeshShape-instance BtClass BtConvexTriangleMeshShape where-  withBt (BtConvexTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b-class BtBU_Simplex1to4Class p => BtTetrahedronShapeExClass p-instance BtBU_Simplex1to4Class BtTetrahedronShapeEx-instance BtPolyhedralConvexAabbCachingShapeClass BtTetrahedronShapeEx-instance BtPolyhedralConvexShapeClass BtTetrahedronShapeEx-instance BtConvexInternalShapeClass BtTetrahedronShapeEx-instance BtConvexShapeClass BtTetrahedronShapeEx-instance BtCollisionShapeClass BtTetrahedronShapeEx-instance BtTetrahedronShapeExClass BtTetrahedronShapeEx-instance BtClass BtTetrahedronShapeEx where-  withBt (BtTetrahedronShapeEx p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+{-#LANGUAGE ForeignFunctionInterface, GeneralizedNewtypeDeriving#-}+#include "Bullet.h"+module Physics.Bullet.Raw.Class where+import Control.Monad+import Foreign.Marshal.Alloc+import Foreign.ForeignPtr+import Foreign.Ptr+import Physics.Bullet.Raw.C2HS+import Physics.Bullet.Raw.Types+type VoidPtr = Ptr ()+withVoidPtr p f = f p+peekVoidPtr p = return p+mkVoidPtr p = return p+-- * Class Pointer Types+{#pointer O_btSoftBody_AJoint as BtSoftBody_AJoint foreign newtype nocode#}+newtype BtSoftBody_AJoint = BtSoftBody_AJoint (ForeignPtr (BtSoftBody_AJoint)) deriving (Eq,Ord,Show)+withBtSoftBody_AJoint (BtSoftBody_AJoint fptr) = withForeignPtr fptr+mkBtSoftBody_AJoint p = liftM BtSoftBody_AJoint $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_AllHitsRayResultCallback as BtCollisionWorld_AllHitsRayResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_AllHitsRayResultCallback = BtCollisionWorld_AllHitsRayResultCallback (ForeignPtr (BtCollisionWorld_AllHitsRayResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_AllHitsRayResultCallback (BtCollisionWorld_AllHitsRayResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_AllHitsRayResultCallback p = liftM BtCollisionWorld_AllHitsRayResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Anchor as BtSoftBody_Anchor foreign newtype nocode#}+newtype BtSoftBody_Anchor = BtSoftBody_Anchor (ForeignPtr (BtSoftBody_Anchor)) deriving (Eq,Ord,Show)+withBtSoftBody_Anchor (BtSoftBody_Anchor fptr) = withForeignPtr fptr+mkBtSoftBody_Anchor p = liftM BtSoftBody_Anchor $ newForeignPtr_ $ castPtr p+{#pointer O_bT_BOX_BOX_TRANSFORM_CACHE as BT_BOX_BOX_TRANSFORM_CACHE foreign newtype nocode#}+newtype BT_BOX_BOX_TRANSFORM_CACHE = BT_BOX_BOX_TRANSFORM_CACHE (ForeignPtr (BT_BOX_BOX_TRANSFORM_CACHE)) deriving (Eq,Ord,Show)+withBT_BOX_BOX_TRANSFORM_CACHE (BT_BOX_BOX_TRANSFORM_CACHE fptr) = withForeignPtr fptr+mkBT_BOX_BOX_TRANSFORM_CACHE p = liftM BT_BOX_BOX_TRANSFORM_CACHE $ newForeignPtr_ $ castPtr p+{#pointer O_bT_QUANTIZED_BVH_NODE as BT_QUANTIZED_BVH_NODE foreign newtype nocode#}+newtype BT_QUANTIZED_BVH_NODE = BT_QUANTIZED_BVH_NODE (ForeignPtr (BT_QUANTIZED_BVH_NODE)) deriving (Eq,Ord,Show)+withBT_QUANTIZED_BVH_NODE (BT_QUANTIZED_BVH_NODE fptr) = withForeignPtr fptr+mkBT_QUANTIZED_BVH_NODE p = liftM BT_QUANTIZED_BVH_NODE $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Body as BtSoftBody_Body foreign newtype nocode#}+newtype BtSoftBody_Body = BtSoftBody_Body (ForeignPtr (BtSoftBody_Body)) deriving (Eq,Ord,Show)+withBtSoftBody_Body (BtSoftBody_Body fptr) = withForeignPtr fptr+mkBtSoftBody_Body p = liftM BtSoftBody_Body $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_CJoint as BtSoftBody_CJoint foreign newtype nocode#}+newtype BtSoftBody_CJoint = BtSoftBody_CJoint (ForeignPtr (BtSoftBody_CJoint)) deriving (Eq,Ord,Show)+withBtSoftBody_CJoint (BtSoftBody_CJoint fptr) = withForeignPtr fptr+mkBtSoftBody_CJoint p = liftM BtSoftBody_CJoint $ newForeignPtr_ $ castPtr p+{#pointer O_cProfileIterator as CProfileIterator foreign newtype nocode#}+newtype CProfileIterator = CProfileIterator (ForeignPtr (CProfileIterator)) deriving (Eq,Ord,Show)+withCProfileIterator (CProfileIterator fptr) = withForeignPtr fptr+mkCProfileIterator p = liftM CProfileIterator $ newForeignPtr_ $ castPtr p+{#pointer O_cProfileManager as CProfileManager foreign newtype nocode#}+newtype CProfileManager = CProfileManager (ForeignPtr (CProfileManager)) deriving (Eq,Ord,Show)+withCProfileManager (CProfileManager fptr) = withForeignPtr fptr+mkCProfileManager p = liftM CProfileManager $ newForeignPtr_ $ castPtr p+{#pointer O_cProfileNode as CProfileNode foreign newtype nocode#}+newtype CProfileNode = CProfileNode (ForeignPtr (CProfileNode)) deriving (Eq,Ord,Show)+withCProfileNode (CProfileNode fptr) = withForeignPtr fptr+mkCProfileNode p = liftM CProfileNode $ newForeignPtr_ $ castPtr p+{#pointer O_cProfileSample as CProfileSample foreign newtype nocode#}+newtype CProfileSample = CProfileSample (ForeignPtr (CProfileSample)) deriving (Eq,Ord,Show)+withCProfileSample (CProfileSample fptr) = withForeignPtr fptr+mkCProfileSample p = liftM CProfileSample $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_ClosestConvexResultCallback as BtCollisionWorld_ClosestConvexResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_ClosestConvexResultCallback = BtCollisionWorld_ClosestConvexResultCallback (ForeignPtr (BtCollisionWorld_ClosestConvexResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_ClosestConvexResultCallback (BtCollisionWorld_ClosestConvexResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_ClosestConvexResultCallback p = liftM BtCollisionWorld_ClosestConvexResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btDiscreteCollisionDetectorInterface_ClosestPointInput as BtDiscreteCollisionDetectorInterface_ClosestPointInput foreign newtype nocode#}+newtype BtDiscreteCollisionDetectorInterface_ClosestPointInput = BtDiscreteCollisionDetectorInterface_ClosestPointInput (ForeignPtr (BtDiscreteCollisionDetectorInterface_ClosestPointInput)) deriving (Eq,Ord,Show)+withBtDiscreteCollisionDetectorInterface_ClosestPointInput (BtDiscreteCollisionDetectorInterface_ClosestPointInput fptr) = withForeignPtr fptr+mkBtDiscreteCollisionDetectorInterface_ClosestPointInput p = liftM BtDiscreteCollisionDetectorInterface_ClosestPointInput $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_ClosestRayResultCallback as BtCollisionWorld_ClosestRayResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_ClosestRayResultCallback = BtCollisionWorld_ClosestRayResultCallback (ForeignPtr (BtCollisionWorld_ClosestRayResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_ClosestRayResultCallback (BtCollisionWorld_ClosestRayResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_ClosestRayResultCallback p = liftM BtCollisionWorld_ClosestRayResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Cluster as BtSoftBody_Cluster foreign newtype nocode#}+newtype BtSoftBody_Cluster = BtSoftBody_Cluster (ForeignPtr (BtSoftBody_Cluster)) deriving (Eq,Ord,Show)+withBtSoftBody_Cluster (BtSoftBody_Cluster fptr) = withForeignPtr fptr+mkBtSoftBody_Cluster p = liftM BtSoftBody_Cluster $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactCompoundShape_CompoundPrimitiveManager as BtGImpactCompoundShape_CompoundPrimitiveManager foreign newtype nocode#}+newtype BtGImpactCompoundShape_CompoundPrimitiveManager = BtGImpactCompoundShape_CompoundPrimitiveManager (ForeignPtr (BtGImpactCompoundShape_CompoundPrimitiveManager)) deriving (Eq,Ord,Show)+withBtGImpactCompoundShape_CompoundPrimitiveManager (BtGImpactCompoundShape_CompoundPrimitiveManager fptr) = withForeignPtr fptr+mkBtGImpactCompoundShape_CompoundPrimitiveManager p = liftM BtGImpactCompoundShape_CompoundPrimitiveManager $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Config as BtSoftBody_Config foreign newtype nocode#}+newtype BtSoftBody_Config = BtSoftBody_Config (ForeignPtr (BtSoftBody_Config)) deriving (Eq,Ord,Show)+withBtSoftBody_Config (BtSoftBody_Config fptr) = withForeignPtr fptr+mkBtSoftBody_Config p = liftM BtSoftBody_Config $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_ContactResultCallback as BtCollisionWorld_ContactResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_ContactResultCallback = BtCollisionWorld_ContactResultCallback (ForeignPtr (BtCollisionWorld_ContactResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_ContactResultCallback (BtCollisionWorld_ContactResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_ContactResultCallback p = liftM BtCollisionWorld_ContactResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_ConvexResultCallback as BtCollisionWorld_ConvexResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_ConvexResultCallback = BtCollisionWorld_ConvexResultCallback (ForeignPtr (BtCollisionWorld_ConvexResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_ConvexResultCallback (BtCollisionWorld_ConvexResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_ConvexResultCallback p = liftM BtCollisionWorld_ConvexResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactCollisionAlgorithm_CreateFunc as BtGImpactCollisionAlgorithm_CreateFunc foreign newtype nocode#}+newtype BtGImpactCollisionAlgorithm_CreateFunc = BtGImpactCollisionAlgorithm_CreateFunc (ForeignPtr (BtGImpactCollisionAlgorithm_CreateFunc)) deriving (Eq,Ord,Show)+withBtGImpactCollisionAlgorithm_CreateFunc (BtGImpactCollisionAlgorithm_CreateFunc fptr) = withForeignPtr fptr+mkBtGImpactCollisionAlgorithm_CreateFunc p = liftM BtGImpactCollisionAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p+{#pointer O_btSphereSphereCollisionAlgorithm_CreateFunc as BtSphereSphereCollisionAlgorithm_CreateFunc foreign newtype nocode#}+newtype BtSphereSphereCollisionAlgorithm_CreateFunc = BtSphereSphereCollisionAlgorithm_CreateFunc (ForeignPtr (BtSphereSphereCollisionAlgorithm_CreateFunc)) deriving (Eq,Ord,Show)+withBtSphereSphereCollisionAlgorithm_CreateFunc (BtSphereSphereCollisionAlgorithm_CreateFunc fptr) = withForeignPtr fptr+mkBtSphereSphereCollisionAlgorithm_CreateFunc p = liftM BtSphereSphereCollisionAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexConvexAlgorithm_CreateFunc as BtConvexConvexAlgorithm_CreateFunc foreign newtype nocode#}+newtype BtConvexConvexAlgorithm_CreateFunc = BtConvexConvexAlgorithm_CreateFunc (ForeignPtr (BtConvexConvexAlgorithm_CreateFunc)) deriving (Eq,Ord,Show)+withBtConvexConvexAlgorithm_CreateFunc (BtConvexConvexAlgorithm_CreateFunc fptr) = withForeignPtr fptr+mkBtConvexConvexAlgorithm_CreateFunc p = liftM BtConvexConvexAlgorithm_CreateFunc $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Element as BtSoftBody_Element foreign newtype nocode#}+newtype BtSoftBody_Element = BtSoftBody_Element (ForeignPtr (BtSoftBody_Element)) deriving (Eq,Ord,Show)+withBtSoftBody_Element (BtSoftBody_Element fptr) = withForeignPtr fptr+mkBtSoftBody_Element p = liftM BtSoftBody_Element $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Face as BtSoftBody_Face foreign newtype nocode#}+newtype BtSoftBody_Face = BtSoftBody_Face (ForeignPtr (BtSoftBody_Face)) deriving (Eq,Ord,Show)+withBtSoftBody_Face (BtSoftBody_Face fptr) = withForeignPtr fptr+mkBtSoftBody_Face p = liftM BtSoftBody_Face $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Feature as BtSoftBody_Feature foreign newtype nocode#}+newtype BtSoftBody_Feature = BtSoftBody_Feature (ForeignPtr (BtSoftBody_Feature)) deriving (Eq,Ord,Show)+withBtSoftBody_Feature (BtSoftBody_Feature fptr) = withForeignPtr fptr+mkBtSoftBody_Feature p = liftM BtSoftBody_Feature $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_BVH_DATA as GIM_BVH_DATA foreign newtype nocode#}+newtype GIM_BVH_DATA = GIM_BVH_DATA (ForeignPtr (GIM_BVH_DATA)) deriving (Eq,Ord,Show)+withGIM_BVH_DATA (GIM_BVH_DATA fptr) = withForeignPtr fptr+mkGIM_BVH_DATA p = liftM GIM_BVH_DATA $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_BVH_DATA_ARRAY as GIM_BVH_DATA_ARRAY foreign newtype nocode#}+newtype GIM_BVH_DATA_ARRAY = GIM_BVH_DATA_ARRAY (ForeignPtr (GIM_BVH_DATA_ARRAY)) deriving (Eq,Ord,Show)+withGIM_BVH_DATA_ARRAY (GIM_BVH_DATA_ARRAY fptr) = withForeignPtr fptr+mkGIM_BVH_DATA_ARRAY p = liftM GIM_BVH_DATA_ARRAY $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_BVH_TREE_NODE as GIM_BVH_TREE_NODE foreign newtype nocode#}+newtype GIM_BVH_TREE_NODE = GIM_BVH_TREE_NODE (ForeignPtr (GIM_BVH_TREE_NODE)) deriving (Eq,Ord,Show)+withGIM_BVH_TREE_NODE (GIM_BVH_TREE_NODE fptr) = withForeignPtr fptr+mkGIM_BVH_TREE_NODE p = liftM GIM_BVH_TREE_NODE $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_BVH_TREE_NODE_ARRAY as GIM_BVH_TREE_NODE_ARRAY foreign newtype nocode#}+newtype GIM_BVH_TREE_NODE_ARRAY = GIM_BVH_TREE_NODE_ARRAY (ForeignPtr (GIM_BVH_TREE_NODE_ARRAY)) deriving (Eq,Ord,Show)+withGIM_BVH_TREE_NODE_ARRAY (GIM_BVH_TREE_NODE_ARRAY fptr) = withForeignPtr fptr+mkGIM_BVH_TREE_NODE_ARRAY p = liftM GIM_BVH_TREE_NODE_ARRAY $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_PAIR as GIM_PAIR foreign newtype nocode#}+newtype GIM_PAIR = GIM_PAIR (ForeignPtr (GIM_PAIR)) deriving (Eq,Ord,Show)+withGIM_PAIR (GIM_PAIR fptr) = withForeignPtr fptr+mkGIM_PAIR p = liftM GIM_PAIR $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_QUANTIZED_BVH_NODE_ARRAY as GIM_QUANTIZED_BVH_NODE_ARRAY foreign newtype nocode#}+newtype GIM_QUANTIZED_BVH_NODE_ARRAY = GIM_QUANTIZED_BVH_NODE_ARRAY (ForeignPtr (GIM_QUANTIZED_BVH_NODE_ARRAY)) deriving (Eq,Ord,Show)+withGIM_QUANTIZED_BVH_NODE_ARRAY (GIM_QUANTIZED_BVH_NODE_ARRAY fptr) = withForeignPtr fptr+mkGIM_QUANTIZED_BVH_NODE_ARRAY p = liftM GIM_QUANTIZED_BVH_NODE_ARRAY $ newForeignPtr_ $ castPtr p+{#pointer O_gIM_TRIANGLE_CONTACT as GIM_TRIANGLE_CONTACT foreign newtype nocode#}+newtype GIM_TRIANGLE_CONTACT = GIM_TRIANGLE_CONTACT (ForeignPtr (GIM_TRIANGLE_CONTACT)) deriving (Eq,Ord,Show)+withGIM_TRIANGLE_CONTACT (GIM_TRIANGLE_CONTACT fptr) = withForeignPtr fptr+mkGIM_TRIANGLE_CONTACT p = liftM GIM_TRIANGLE_CONTACT $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_IClone as BtDbvt_IClone foreign newtype nocode#}+newtype BtDbvt_IClone = BtDbvt_IClone (ForeignPtr (BtDbvt_IClone)) deriving (Eq,Ord,Show)+withBtDbvt_IClone (BtDbvt_IClone fptr) = withForeignPtr fptr+mkBtDbvt_IClone p = liftM BtDbvt_IClone $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_ICollide as BtDbvt_ICollide foreign newtype nocode#}+newtype BtDbvt_ICollide = BtDbvt_ICollide (ForeignPtr (BtDbvt_ICollide)) deriving (Eq,Ord,Show)+withBtDbvt_ICollide (BtDbvt_ICollide fptr) = withForeignPtr fptr+mkBtDbvt_ICollide p = liftM BtDbvt_ICollide $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_AJoint_IControl as BtSoftBody_AJoint_IControl foreign newtype nocode#}+newtype BtSoftBody_AJoint_IControl = BtSoftBody_AJoint_IControl (ForeignPtr (BtSoftBody_AJoint_IControl)) deriving (Eq,Ord,Show)+withBtSoftBody_AJoint_IControl (BtSoftBody_AJoint_IControl fptr) = withForeignPtr fptr+mkBtSoftBody_AJoint_IControl p = liftM BtSoftBody_AJoint_IControl $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_IWriter as BtDbvt_IWriter foreign newtype nocode#}+newtype BtDbvt_IWriter = BtDbvt_IWriter (ForeignPtr (BtDbvt_IWriter)) deriving (Eq,Ord,Show)+withBtDbvt_IWriter (BtDbvt_IWriter fptr) = withForeignPtr fptr+mkBtDbvt_IWriter p = liftM BtDbvt_IWriter $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_ImplicitFn as BtSoftBody_ImplicitFn foreign newtype nocode#}+newtype BtSoftBody_ImplicitFn = BtSoftBody_ImplicitFn (ForeignPtr (BtSoftBody_ImplicitFn)) deriving (Eq,Ord,Show)+withBtSoftBody_ImplicitFn (BtSoftBody_ImplicitFn fptr) = withForeignPtr fptr+mkBtSoftBody_ImplicitFn p = liftM BtSoftBody_ImplicitFn $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Impulse as BtSoftBody_Impulse foreign newtype nocode#}+newtype BtSoftBody_Impulse = BtSoftBody_Impulse (ForeignPtr (BtSoftBody_Impulse)) deriving (Eq,Ord,Show)+withBtSoftBody_Impulse (BtSoftBody_Impulse fptr) = withForeignPtr fptr+mkBtSoftBody_Impulse p = liftM BtSoftBody_Impulse $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Joint as BtSoftBody_Joint foreign newtype nocode#}+newtype BtSoftBody_Joint = BtSoftBody_Joint (ForeignPtr (BtSoftBody_Joint)) deriving (Eq,Ord,Show)+withBtSoftBody_Joint (BtSoftBody_Joint fptr) = withForeignPtr fptr+mkBtSoftBody_Joint p = liftM BtSoftBody_Joint $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_LJoint as BtSoftBody_LJoint foreign newtype nocode#}+newtype BtSoftBody_LJoint = BtSoftBody_LJoint (ForeignPtr (BtSoftBody_LJoint)) deriving (Eq,Ord,Show)+withBtSoftBody_LJoint (BtSoftBody_LJoint fptr) = withForeignPtr fptr+mkBtSoftBody_LJoint p = liftM BtSoftBody_LJoint $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Link as BtSoftBody_Link foreign newtype nocode#}+newtype BtSoftBody_Link = BtSoftBody_Link (ForeignPtr (BtSoftBody_Link)) deriving (Eq,Ord,Show)+withBtSoftBody_Link (BtSoftBody_Link fptr) = withForeignPtr fptr+mkBtSoftBody_Link p = liftM BtSoftBody_Link $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_LocalConvexResult as BtCollisionWorld_LocalConvexResult foreign newtype nocode#}+newtype BtCollisionWorld_LocalConvexResult = BtCollisionWorld_LocalConvexResult (ForeignPtr (BtCollisionWorld_LocalConvexResult)) deriving (Eq,Ord,Show)+withBtCollisionWorld_LocalConvexResult (BtCollisionWorld_LocalConvexResult fptr) = withForeignPtr fptr+mkBtCollisionWorld_LocalConvexResult p = liftM BtCollisionWorld_LocalConvexResult $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_LocalRayResult as BtCollisionWorld_LocalRayResult foreign newtype nocode#}+newtype BtCollisionWorld_LocalRayResult = BtCollisionWorld_LocalRayResult (ForeignPtr (BtCollisionWorld_LocalRayResult)) deriving (Eq,Ord,Show)+withBtCollisionWorld_LocalRayResult (BtCollisionWorld_LocalRayResult fptr) = withForeignPtr fptr+mkBtCollisionWorld_LocalRayResult p = liftM BtCollisionWorld_LocalRayResult $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_LocalShapeInfo as BtCollisionWorld_LocalShapeInfo foreign newtype nocode#}+newtype BtCollisionWorld_LocalShapeInfo = BtCollisionWorld_LocalShapeInfo (ForeignPtr (BtCollisionWorld_LocalShapeInfo)) deriving (Eq,Ord,Show)+withBtCollisionWorld_LocalShapeInfo (BtCollisionWorld_LocalShapeInfo fptr) = withForeignPtr fptr+mkBtCollisionWorld_LocalShapeInfo p = liftM BtCollisionWorld_LocalShapeInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Material as BtSoftBody_Material foreign newtype nocode#}+newtype BtSoftBody_Material = BtSoftBody_Material (ForeignPtr (BtSoftBody_Material)) deriving (Eq,Ord,Show)+withBtSoftBody_Material (BtSoftBody_Material fptr) = withForeignPtr fptr+mkBtSoftBody_Material p = liftM BtSoftBody_Material $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Node as BtSoftBody_Node foreign newtype nocode#}+newtype BtSoftBody_Node = BtSoftBody_Node (ForeignPtr (BtSoftBody_Node)) deriving (Eq,Ord,Show)+withBtSoftBody_Node (BtSoftBody_Node fptr) = withForeignPtr fptr+mkBtSoftBody_Node p = liftM BtSoftBody_Node $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Note as BtSoftBody_Note foreign newtype nocode#}+newtype BtSoftBody_Note = BtSoftBody_Note (ForeignPtr (BtSoftBody_Note)) deriving (Eq,Ord,Show)+withBtSoftBody_Note (BtSoftBody_Note fptr) = withForeignPtr fptr+mkBtSoftBody_Note p = liftM BtSoftBody_Note $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Pose as BtSoftBody_Pose foreign newtype nocode#}+newtype BtSoftBody_Pose = BtSoftBody_Pose (ForeignPtr (BtSoftBody_Pose)) deriving (Eq,Ord,Show)+withBtSoftBody_Pose (BtSoftBody_Pose fptr) = withForeignPtr fptr+mkBtSoftBody_Pose p = liftM BtSoftBody_Pose $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_RContact as BtSoftBody_RContact foreign newtype nocode#}+newtype BtSoftBody_RContact = BtSoftBody_RContact (ForeignPtr (BtSoftBody_RContact)) deriving (Eq,Ord,Show)+withBtSoftBody_RContact (BtSoftBody_RContact fptr) = withForeignPtr fptr+mkBtSoftBody_RContact p = liftM BtSoftBody_RContact $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_RayFromToCaster as BtSoftBody_RayFromToCaster foreign newtype nocode#}+newtype BtSoftBody_RayFromToCaster = BtSoftBody_RayFromToCaster (ForeignPtr (BtSoftBody_RayFromToCaster)) deriving (Eq,Ord,Show)+withBtSoftBody_RayFromToCaster (BtSoftBody_RayFromToCaster fptr) = withForeignPtr fptr+mkBtSoftBody_RayFromToCaster p = liftM BtSoftBody_RayFromToCaster $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld_RayResultCallback as BtCollisionWorld_RayResultCallback foreign newtype nocode#}+newtype BtCollisionWorld_RayResultCallback = BtCollisionWorld_RayResultCallback (ForeignPtr (BtCollisionWorld_RayResultCallback)) deriving (Eq,Ord,Show)+withBtCollisionWorld_RayResultCallback (BtCollisionWorld_RayResultCallback fptr) = withForeignPtr fptr+mkBtCollisionWorld_RayResultCallback p = liftM BtCollisionWorld_RayResultCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btWheelInfo_RaycastInfo as BtWheelInfo_RaycastInfo foreign newtype nocode#}+newtype BtWheelInfo_RaycastInfo = BtWheelInfo_RaycastInfo (ForeignPtr (BtWheelInfo_RaycastInfo)) deriving (Eq,Ord,Show)+withBtWheelInfo_RaycastInfo (BtWheelInfo_RaycastInfo fptr) = withForeignPtr fptr+mkBtWheelInfo_RaycastInfo p = liftM BtWheelInfo_RaycastInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btDiscreteCollisionDetectorInterface_Result as BtDiscreteCollisionDetectorInterface_Result foreign newtype nocode#}+newtype BtDiscreteCollisionDetectorInterface_Result = BtDiscreteCollisionDetectorInterface_Result (ForeignPtr (BtDiscreteCollisionDetectorInterface_Result)) deriving (Eq,Ord,Show)+withBtDiscreteCollisionDetectorInterface_Result (BtDiscreteCollisionDetectorInterface_Result fptr) = withForeignPtr fptr+mkBtDiscreteCollisionDetectorInterface_Result p = liftM BtDiscreteCollisionDetectorInterface_Result $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_SContact as BtSoftBody_SContact foreign newtype nocode#}+newtype BtSoftBody_SContact = BtSoftBody_SContact (ForeignPtr (BtSoftBody_SContact)) deriving (Eq,Ord,Show)+withBtSoftBody_SContact (BtSoftBody_SContact fptr) = withForeignPtr fptr+mkBtSoftBody_SContact p = liftM BtSoftBody_SContact $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_SolverState as BtSoftBody_SolverState foreign newtype nocode#}+newtype BtSoftBody_SolverState = BtSoftBody_SolverState (ForeignPtr (BtSoftBody_SolverState)) deriving (Eq,Ord,Show)+withBtSoftBody_SolverState (BtSoftBody_SolverState fptr) = withForeignPtr fptr+mkBtSoftBody_SolverState p = liftM BtSoftBody_SolverState $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Joint_Specs as BtSoftBody_Joint_Specs foreign newtype nocode#}+newtype BtSoftBody_Joint_Specs = BtSoftBody_Joint_Specs (ForeignPtr (BtSoftBody_Joint_Specs)) deriving (Eq,Ord,Show)+withBtSoftBody_Joint_Specs (BtSoftBody_Joint_Specs fptr) = withForeignPtr fptr+mkBtSoftBody_Joint_Specs p = liftM BtSoftBody_Joint_Specs $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_LJoint_Specs as BtSoftBody_LJoint_Specs foreign newtype nocode#}+newtype BtSoftBody_LJoint_Specs = BtSoftBody_LJoint_Specs (ForeignPtr (BtSoftBody_LJoint_Specs)) deriving (Eq,Ord,Show)+withBtSoftBody_LJoint_Specs (BtSoftBody_LJoint_Specs fptr) = withForeignPtr fptr+mkBtSoftBody_LJoint_Specs p = liftM BtSoftBody_LJoint_Specs $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_AJoint_Specs as BtSoftBody_AJoint_Specs foreign newtype nocode#}+newtype BtSoftBody_AJoint_Specs = BtSoftBody_AJoint_Specs (ForeignPtr (BtSoftBody_AJoint_Specs)) deriving (Eq,Ord,Show)+withBtSoftBody_AJoint_Specs (BtSoftBody_AJoint_Specs fptr) = withForeignPtr fptr+mkBtSoftBody_AJoint_Specs p = liftM BtSoftBody_AJoint_Specs $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Tetra as BtSoftBody_Tetra foreign newtype nocode#}+newtype BtSoftBody_Tetra = BtSoftBody_Tetra (ForeignPtr (BtSoftBody_Tetra)) deriving (Eq,Ord,Show)+withBtSoftBody_Tetra (BtSoftBody_Tetra fptr) = withForeignPtr fptr+mkBtSoftBody_Tetra p = liftM BtSoftBody_Tetra $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactMeshShapePart_TrimeshPrimitiveManager as BtGImpactMeshShapePart_TrimeshPrimitiveManager foreign newtype nocode#}+newtype BtGImpactMeshShapePart_TrimeshPrimitiveManager = BtGImpactMeshShapePart_TrimeshPrimitiveManager (ForeignPtr (BtGImpactMeshShapePart_TrimeshPrimitiveManager)) deriving (Eq,Ord,Show)+withBtGImpactMeshShapePart_TrimeshPrimitiveManager (BtGImpactMeshShapePart_TrimeshPrimitiveManager fptr) = withForeignPtr fptr+mkBtGImpactMeshShapePart_TrimeshPrimitiveManager p = liftM BtGImpactMeshShapePart_TrimeshPrimitiveManager $ newForeignPtr_ $ castPtr p+{#pointer O_bt32BitAxisSweep3 as Bt32BitAxisSweep3 foreign newtype nocode#}+newtype Bt32BitAxisSweep3 = Bt32BitAxisSweep3 (ForeignPtr (Bt32BitAxisSweep3)) deriving (Eq,Ord,Show)+withBt32BitAxisSweep3 (Bt32BitAxisSweep3 fptr) = withForeignPtr fptr+mkBt32BitAxisSweep3 p = liftM Bt32BitAxisSweep3 $ newForeignPtr_ $ castPtr p+{#pointer O_btAABB as BtAABB foreign newtype nocode#}+newtype BtAABB = BtAABB (ForeignPtr (BtAABB)) deriving (Eq,Ord,Show)+withBtAABB (BtAABB fptr) = withForeignPtr fptr+mkBtAABB p = liftM BtAABB $ newForeignPtr_ $ castPtr p+{#pointer O_btActionInterface as BtActionInterface foreign newtype nocode#}+newtype BtActionInterface = BtActionInterface (ForeignPtr (BtActionInterface)) deriving (Eq,Ord,Show)+withBtActionInterface (BtActionInterface fptr) = withForeignPtr fptr+mkBtActionInterface p = liftM BtActionInterface $ newForeignPtr_ $ castPtr p+{#pointer O_btActivatingCollisionAlgorithm as BtActivatingCollisionAlgorithm foreign newtype nocode#}+newtype BtActivatingCollisionAlgorithm = BtActivatingCollisionAlgorithm (ForeignPtr (BtActivatingCollisionAlgorithm)) deriving (Eq,Ord,Show)+withBtActivatingCollisionAlgorithm (BtActivatingCollisionAlgorithm fptr) = withForeignPtr fptr+mkBtActivatingCollisionAlgorithm p = liftM BtActivatingCollisionAlgorithm $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ as BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ = BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ (ForeignPtr (BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ (BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ p = liftM BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_GIM_BVH_DATA_16u_ as BtAlignedAllocator_GIM_BVH_DATA_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_GIM_BVH_DATA_16u_ = BtAlignedAllocator_GIM_BVH_DATA_16u_ (ForeignPtr (BtAlignedAllocator_GIM_BVH_DATA_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_GIM_BVH_DATA_16u_ (BtAlignedAllocator_GIM_BVH_DATA_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_GIM_BVH_DATA_16u_ p = liftM BtAlignedAllocator_GIM_BVH_DATA_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_GIM_BVH_TREE_NODE_16u_ as BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ = BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ (ForeignPtr (BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ (BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ p = liftM BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_GIM_PAIR_16u_ as BtAlignedAllocator_GIM_PAIR_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_GIM_PAIR_16u_ = BtAlignedAllocator_GIM_PAIR_16u_ (ForeignPtr (BtAlignedAllocator_GIM_PAIR_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_GIM_PAIR_16u_ (BtAlignedAllocator_GIM_PAIR_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_GIM_PAIR_16u_ p = liftM BtAlignedAllocator_GIM_PAIR_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_bool_16u_ as BtAlignedAllocator_bool_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_bool_16u_ = BtAlignedAllocator_bool_16u_ (ForeignPtr (BtAlignedAllocator_bool_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_bool_16u_ (BtAlignedAllocator_bool_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_bool_16u_ p = liftM BtAlignedAllocator_bool_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btActionInterface_ptr_16u_ as BtAlignedAllocator_btActionInterface_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btActionInterface_ptr_16u_ = BtAlignedAllocator_btActionInterface_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btActionInterface_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btActionInterface_ptr_16u_ (BtAlignedAllocator_btActionInterface_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btActionInterface_ptr_16u_ p = liftM BtAlignedAllocator_btActionInterface_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btBroadphaseInterface_ptr_16u_ as BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ = BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btBroadphaseInterface_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btBroadphaseInterface_ptr_16u_ (BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btBroadphaseInterface_ptr_16u_ p = liftM BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btBroadphasePair_16u_ as BtAlignedAllocator_btBroadphasePair_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btBroadphasePair_16u_ = BtAlignedAllocator_btBroadphasePair_16u_ (ForeignPtr (BtAlignedAllocator_btBroadphasePair_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btBroadphasePair_16u_ (BtAlignedAllocator_btBroadphasePair_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btBroadphasePair_16u_ p = liftM BtAlignedAllocator_btBroadphasePair_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btBvhSubtreeInfo_16u_ as BtAlignedAllocator_btBvhSubtreeInfo_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btBvhSubtreeInfo_16u_ = BtAlignedAllocator_btBvhSubtreeInfo_16u_ (ForeignPtr (BtAlignedAllocator_btBvhSubtreeInfo_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btBvhSubtreeInfo_16u_ (BtAlignedAllocator_btBvhSubtreeInfo_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btBvhSubtreeInfo_16u_ p = liftM BtAlignedAllocator_btBvhSubtreeInfo_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btChunk_ptr_16u_ as BtAlignedAllocator_btChunk_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btChunk_ptr_16u_ = BtAlignedAllocator_btChunk_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btChunk_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btChunk_ptr_16u_ (BtAlignedAllocator_btChunk_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btChunk_ptr_16u_ p = liftM BtAlignedAllocator_btChunk_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btCollisionObject_ptr_16u_ as BtAlignedAllocator_btCollisionObject_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btCollisionObject_ptr_16u_ = BtAlignedAllocator_btCollisionObject_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btCollisionObject_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btCollisionObject_ptr_16u_ (BtAlignedAllocator_btCollisionObject_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btCollisionObject_ptr_16u_ p = liftM BtAlignedAllocator_btCollisionObject_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btCollisionShape_ptr_16u_ as BtAlignedAllocator_btCollisionShape_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btCollisionShape_ptr_16u_ = BtAlignedAllocator_btCollisionShape_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btCollisionShape_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btCollisionShape_ptr_16u_ (BtAlignedAllocator_btCollisionShape_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btCollisionShape_ptr_16u_ p = liftM BtAlignedAllocator_btCollisionShape_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btCompoundShapeChild_16u_ as BtAlignedAllocator_btCompoundShapeChild_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btCompoundShapeChild_16u_ = BtAlignedAllocator_btCompoundShapeChild_16u_ (ForeignPtr (BtAlignedAllocator_btCompoundShapeChild_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btCompoundShapeChild_16u_ (BtAlignedAllocator_btCompoundShapeChild_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btCompoundShapeChild_16u_ p = liftM BtAlignedAllocator_btCompoundShapeChild_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btDbvt_sStkNN_16u_ as BtAlignedAllocator_btDbvt_sStkNN_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btDbvt_sStkNN_16u_ = BtAlignedAllocator_btDbvt_sStkNN_16u_ (ForeignPtr (BtAlignedAllocator_btDbvt_sStkNN_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btDbvt_sStkNN_16u_ (BtAlignedAllocator_btDbvt_sStkNN_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btDbvt_sStkNN_16u_ p = liftM BtAlignedAllocator_btDbvt_sStkNN_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btDbvt_sStkNP_16u_ as BtAlignedAllocator_btDbvt_sStkNP_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btDbvt_sStkNP_16u_ = BtAlignedAllocator_btDbvt_sStkNP_16u_ (ForeignPtr (BtAlignedAllocator_btDbvt_sStkNP_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btDbvt_sStkNP_16u_ (BtAlignedAllocator_btDbvt_sStkNP_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btDbvt_sStkNP_16u_ p = liftM BtAlignedAllocator_btDbvt_sStkNP_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btDbvt_sStkNPS_16u_ as BtAlignedAllocator_btDbvt_sStkNPS_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btDbvt_sStkNPS_16u_ = BtAlignedAllocator_btDbvt_sStkNPS_16u_ (ForeignPtr (BtAlignedAllocator_btDbvt_sStkNPS_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btDbvt_sStkNPS_16u_ (BtAlignedAllocator_btDbvt_sStkNPS_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btDbvt_sStkNPS_16u_ p = liftM BtAlignedAllocator_btDbvt_sStkNPS_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btDbvtNodeconst_ptr_16u_ as BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ = BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btDbvtNodeconst_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btDbvtNodeconst_ptr_16u_ (BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btDbvtNodeconst_ptr_16u_ p = liftM BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ as BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ = BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ (BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ p = liftM BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btHashInt_16u_ as BtAlignedAllocator_btHashInt_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btHashInt_16u_ = BtAlignedAllocator_btHashInt_16u_ (ForeignPtr (BtAlignedAllocator_btHashInt_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btHashInt_16u_ (BtAlignedAllocator_btHashInt_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btHashInt_16u_ p = liftM BtAlignedAllocator_btHashInt_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btHashPtr_16u_ as BtAlignedAllocator_btHashPtr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btHashPtr_16u_ = BtAlignedAllocator_btHashPtr_16u_ (ForeignPtr (BtAlignedAllocator_btHashPtr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btHashPtr_16u_ (BtAlignedAllocator_btHashPtr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btHashPtr_16u_ p = liftM BtAlignedAllocator_btHashPtr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btHashString_16u_ as BtAlignedAllocator_btHashString_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btHashString_16u_ = BtAlignedAllocator_btHashString_16u_ (ForeignPtr (BtAlignedAllocator_btHashString_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btHashString_16u_ (BtAlignedAllocator_btHashString_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btHashString_16u_ p = liftM BtAlignedAllocator_btHashString_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btIndexedMesh_16u_ as BtAlignedAllocator_btIndexedMesh_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btIndexedMesh_16u_ = BtAlignedAllocator_btIndexedMesh_16u_ (ForeignPtr (BtAlignedAllocator_btIndexedMesh_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btIndexedMesh_16u_ (BtAlignedAllocator_btIndexedMesh_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btIndexedMesh_16u_ p = liftM BtAlignedAllocator_btIndexedMesh_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ as BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ = BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ (BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ p = liftM BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ as BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ = BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ (BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ p = liftM BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btOptimizedBvhNode_16u_ as BtAlignedAllocator_btOptimizedBvhNode_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btOptimizedBvhNode_16u_ = BtAlignedAllocator_btOptimizedBvhNode_16u_ (ForeignPtr (BtAlignedAllocator_btOptimizedBvhNode_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btOptimizedBvhNode_16u_ (BtAlignedAllocator_btOptimizedBvhNode_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btOptimizedBvhNode_16u_ p = liftM BtAlignedAllocator_btOptimizedBvhNode_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btPersistentManifold_ptr_16u_ as BtAlignedAllocator_btPersistentManifold_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btPersistentManifold_ptr_16u_ = BtAlignedAllocator_btPersistentManifold_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btPersistentManifold_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btPersistentManifold_ptr_16u_ (BtAlignedAllocator_btPersistentManifold_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btPersistentManifold_ptr_16u_ p = liftM BtAlignedAllocator_btPersistentManifold_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btPointerUid_16u_ as BtAlignedAllocator_btPointerUid_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btPointerUid_16u_ = BtAlignedAllocator_btPointerUid_16u_ (ForeignPtr (BtAlignedAllocator_btPointerUid_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btPointerUid_16u_ (BtAlignedAllocator_btPointerUid_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btPointerUid_16u_ p = liftM BtAlignedAllocator_btPointerUid_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btQuantizedBvhNode_16u_ as BtAlignedAllocator_btQuantizedBvhNode_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btQuantizedBvhNode_16u_ = BtAlignedAllocator_btQuantizedBvhNode_16u_ (ForeignPtr (BtAlignedAllocator_btQuantizedBvhNode_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btQuantizedBvhNode_16u_ (BtAlignedAllocator_btQuantizedBvhNode_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btQuantizedBvhNode_16u_ p = liftM BtAlignedAllocator_btQuantizedBvhNode_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btRigidBody_ptr_16u_ as BtAlignedAllocator_btRigidBody_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btRigidBody_ptr_16u_ = BtAlignedAllocator_btRigidBody_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btRigidBody_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btRigidBody_ptr_16u_ (BtAlignedAllocator_btRigidBody_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btRigidBody_ptr_16u_ p = liftM BtAlignedAllocator_btRigidBody_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_ptr_16u_ as BtAlignedAllocator_btSoftBody_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_ptr_16u_ = BtAlignedAllocator_btSoftBody_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_ptr_16u_ (BtAlignedAllocator_btSoftBody_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_ptr_16u_ p = liftM BtAlignedAllocator_btSoftBody_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Anchor_16u_ as BtAlignedAllocator_btSoftBody_Anchor_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Anchor_16u_ = BtAlignedAllocator_btSoftBody_Anchor_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Anchor_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Anchor_16u_ (BtAlignedAllocator_btSoftBody_Anchor_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Anchor_16u_ p = liftM BtAlignedAllocator_btSoftBody_Anchor_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Cluster_ptr_16u_ as BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ = BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ (BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ p = liftM BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Face_16u_ as BtAlignedAllocator_btSoftBody_Face_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Face_16u_ = BtAlignedAllocator_btSoftBody_Face_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Face_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Face_16u_ (BtAlignedAllocator_btSoftBody_Face_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Face_16u_ p = liftM BtAlignedAllocator_btSoftBody_Face_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Joint_ptr_16u_ as BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ = BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Joint_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Joint_ptr_16u_ (BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Joint_ptr_16u_ p = liftM BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Link_16u_ as BtAlignedAllocator_btSoftBody_Link_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Link_16u_ = BtAlignedAllocator_btSoftBody_Link_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Link_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Link_16u_ (BtAlignedAllocator_btSoftBody_Link_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Link_16u_ p = liftM BtAlignedAllocator_btSoftBody_Link_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Material_ptr_16u_ as BtAlignedAllocator_btSoftBody_Material_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Material_ptr_16u_ = BtAlignedAllocator_btSoftBody_Material_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Material_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Material_ptr_16u_ (BtAlignedAllocator_btSoftBody_Material_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Material_ptr_16u_ p = liftM BtAlignedAllocator_btSoftBody_Material_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Node_ptr_16u_ as BtAlignedAllocator_btSoftBody_Node_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Node_ptr_16u_ = BtAlignedAllocator_btSoftBody_Node_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Node_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Node_ptr_16u_ (BtAlignedAllocator_btSoftBody_Node_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Node_ptr_16u_ p = liftM BtAlignedAllocator_btSoftBody_Node_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Node_16u_ as BtAlignedAllocator_btSoftBody_Node_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Node_16u_ = BtAlignedAllocator_btSoftBody_Node_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Node_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Node_16u_ (BtAlignedAllocator_btSoftBody_Node_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Node_16u_ p = liftM BtAlignedAllocator_btSoftBody_Node_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Note_16u_ as BtAlignedAllocator_btSoftBody_Note_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Note_16u_ = BtAlignedAllocator_btSoftBody_Note_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Note_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Note_16u_ (BtAlignedAllocator_btSoftBody_Note_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Note_16u_ p = liftM BtAlignedAllocator_btSoftBody_Note_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_RContact_16u_ as BtAlignedAllocator_btSoftBody_RContact_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_RContact_16u_ = BtAlignedAllocator_btSoftBody_RContact_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_RContact_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_RContact_16u_ (BtAlignedAllocator_btSoftBody_RContact_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_RContact_16u_ p = liftM BtAlignedAllocator_btSoftBody_RContact_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_SContact_16u_ as BtAlignedAllocator_btSoftBody_SContact_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_SContact_16u_ = BtAlignedAllocator_btSoftBody_SContact_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_SContact_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_SContact_16u_ (BtAlignedAllocator_btSoftBody_SContact_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_SContact_16u_ p = liftM BtAlignedAllocator_btSoftBody_SContact_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_Tetra_16u_ as BtAlignedAllocator_btSoftBody_Tetra_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_Tetra_16u_ = BtAlignedAllocator_btSoftBody_Tetra_16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_Tetra_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_Tetra_16u_ (BtAlignedAllocator_btSoftBody_Tetra_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_Tetra_16u_ p = liftM BtAlignedAllocator_btSoftBody_Tetra_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_ePSolver___16u_ as BtAlignedAllocator_btSoftBody_ePSolver___16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_ePSolver___16u_ = BtAlignedAllocator_btSoftBody_ePSolver___16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_ePSolver___16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_ePSolver___16u_ (BtAlignedAllocator_btSoftBody_ePSolver___16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_ePSolver___16u_ p = liftM BtAlignedAllocator_btSoftBody_ePSolver___16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSoftBody_eVSolver___16u_ as BtAlignedAllocator_btSoftBody_eVSolver___16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSoftBody_eVSolver___16u_ = BtAlignedAllocator_btSoftBody_eVSolver___16u_ (ForeignPtr (BtAlignedAllocator_btSoftBody_eVSolver___16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSoftBody_eVSolver___16u_ (BtAlignedAllocator_btSoftBody_eVSolver___16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSoftBody_eVSolver___16u_ p = liftM BtAlignedAllocator_btSoftBody_eVSolver___16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSolverConstraint_16u_ as BtAlignedAllocator_btSolverConstraint_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSolverConstraint_16u_ = BtAlignedAllocator_btSolverConstraint_16u_ (ForeignPtr (BtAlignedAllocator_btSolverConstraint_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSolverConstraint_16u_ (BtAlignedAllocator_btSolverConstraint_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSolverConstraint_16u_ p = liftM BtAlignedAllocator_btSolverConstraint_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ as BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ = BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ (BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ p = liftM BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btTransform_16u_ as BtAlignedAllocator_btTransform_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btTransform_16u_ = BtAlignedAllocator_btTransform_16u_ (ForeignPtr (BtAlignedAllocator_btTransform_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btTransform_16u_ (BtAlignedAllocator_btTransform_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btTransform_16u_ p = liftM BtAlignedAllocator_btTransform_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btTriangleInfo_16u_ as BtAlignedAllocator_btTriangleInfo_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btTriangleInfo_16u_ = BtAlignedAllocator_btTriangleInfo_16u_ (ForeignPtr (BtAlignedAllocator_btTriangleInfo_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btTriangleInfo_16u_ (BtAlignedAllocator_btTriangleInfo_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btTriangleInfo_16u_ p = liftM BtAlignedAllocator_btTriangleInfo_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btTypedConstraint_ptr_16u_ as BtAlignedAllocator_btTypedConstraint_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btTypedConstraint_ptr_16u_ = BtAlignedAllocator_btTypedConstraint_ptr_16u_ (ForeignPtr (BtAlignedAllocator_btTypedConstraint_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btTypedConstraint_ptr_16u_ (BtAlignedAllocator_btTypedConstraint_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btTypedConstraint_ptr_16u_ p = liftM BtAlignedAllocator_btTypedConstraint_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ as BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ = BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ (ForeignPtr (BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ (BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ p = liftM BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btVector3_16u_ as BtAlignedAllocator_btVector3_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btVector3_16u_ = BtAlignedAllocator_btVector3_16u_ (ForeignPtr (BtAlignedAllocator_btVector3_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btVector3_16u_ (BtAlignedAllocator_btVector3_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btVector3_16u_ p = liftM BtAlignedAllocator_btVector3_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_btWheelInfo_16u_ as BtAlignedAllocator_btWheelInfo_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_btWheelInfo_16u_ = BtAlignedAllocator_btWheelInfo_16u_ (ForeignPtr (BtAlignedAllocator_btWheelInfo_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_btWheelInfo_16u_ (BtAlignedAllocator_btWheelInfo_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_btWheelInfo_16u_ p = liftM BtAlignedAllocator_btWheelInfo_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_charconst_ptr_16u_ as BtAlignedAllocator_charconst_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_charconst_ptr_16u_ = BtAlignedAllocator_charconst_ptr_16u_ (ForeignPtr (BtAlignedAllocator_charconst_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_charconst_ptr_16u_ (BtAlignedAllocator_charconst_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_charconst_ptr_16u_ p = liftM BtAlignedAllocator_charconst_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_char_ptr_16u_ as BtAlignedAllocator_char_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_char_ptr_16u_ = BtAlignedAllocator_char_ptr_16u_ (ForeignPtr (BtAlignedAllocator_char_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_char_ptr_16u_ (BtAlignedAllocator_char_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_char_ptr_16u_ p = liftM BtAlignedAllocator_char_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_float_16u_ as BtAlignedAllocator_float_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_float_16u_ = BtAlignedAllocator_float_16u_ (ForeignPtr (BtAlignedAllocator_float_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_float_16u_ (BtAlignedAllocator_float_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_float_16u_ p = liftM BtAlignedAllocator_float_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_int_16u_ as BtAlignedAllocator_int_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_int_16u_ = BtAlignedAllocator_int_16u_ (ForeignPtr (BtAlignedAllocator_int_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_int_16u_ (BtAlignedAllocator_int_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_int_16u_ p = liftM BtAlignedAllocator_int_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_short_ptr_16u_ as BtAlignedAllocator_short_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_short_ptr_16u_ = BtAlignedAllocator_short_ptr_16u_ (ForeignPtr (BtAlignedAllocator_short_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_short_ptr_16u_ (BtAlignedAllocator_short_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_short_ptr_16u_ p = liftM BtAlignedAllocator_short_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_short_16u_ as BtAlignedAllocator_short_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_short_16u_ = BtAlignedAllocator_short_16u_ (ForeignPtr (BtAlignedAllocator_short_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_short_16u_ (BtAlignedAllocator_short_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_short_16u_ p = liftM BtAlignedAllocator_short_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_unsignedint_16u_ as BtAlignedAllocator_unsignedint_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_unsignedint_16u_ = BtAlignedAllocator_unsignedint_16u_ (ForeignPtr (BtAlignedAllocator_unsignedint_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_unsignedint_16u_ (BtAlignedAllocator_unsignedint_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_unsignedint_16u_ p = liftM BtAlignedAllocator_unsignedint_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_unsignedshort_16u_ as BtAlignedAllocator_unsignedshort_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_unsignedshort_16u_ = BtAlignedAllocator_unsignedshort_16u_ (ForeignPtr (BtAlignedAllocator_unsignedshort_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_unsignedshort_16u_ (BtAlignedAllocator_unsignedshort_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_unsignedshort_16u_ p = liftM BtAlignedAllocator_unsignedshort_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedAllocator_void_ptr_16u_ as BtAlignedAllocator_void_ptr_16u_ foreign newtype nocode#}+newtype BtAlignedAllocator_void_ptr_16u_ = BtAlignedAllocator_void_ptr_16u_ (ForeignPtr (BtAlignedAllocator_void_ptr_16u_)) deriving (Eq,Ord,Show)+withBtAlignedAllocator_void_ptr_16u_ (BtAlignedAllocator_void_ptr_16u_ fptr) = withForeignPtr fptr+mkBtAlignedAllocator_void_ptr_16u_ p = liftM BtAlignedAllocator_void_ptr_16u_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ as BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ foreign newtype nocode#}+newtype BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ = BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ (ForeignPtr (BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ (BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ p = liftM BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_GIM_BVH_DATA_ as BtAlignedObjectArray_GIM_BVH_DATA_ foreign newtype nocode#}+newtype BtAlignedObjectArray_GIM_BVH_DATA_ = BtAlignedObjectArray_GIM_BVH_DATA_ (ForeignPtr (BtAlignedObjectArray_GIM_BVH_DATA_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_GIM_BVH_DATA_ (BtAlignedObjectArray_GIM_BVH_DATA_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_GIM_BVH_DATA_ p = liftM BtAlignedObjectArray_GIM_BVH_DATA_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_GIM_BVH_TREE_NODE_ as BtAlignedObjectArray_GIM_BVH_TREE_NODE_ foreign newtype nocode#}+newtype BtAlignedObjectArray_GIM_BVH_TREE_NODE_ = BtAlignedObjectArray_GIM_BVH_TREE_NODE_ (ForeignPtr (BtAlignedObjectArray_GIM_BVH_TREE_NODE_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_GIM_BVH_TREE_NODE_ (BtAlignedObjectArray_GIM_BVH_TREE_NODE_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_GIM_BVH_TREE_NODE_ p = liftM BtAlignedObjectArray_GIM_BVH_TREE_NODE_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_GIM_PAIR_ as BtAlignedObjectArray_GIM_PAIR_ foreign newtype nocode#}+newtype BtAlignedObjectArray_GIM_PAIR_ = BtAlignedObjectArray_GIM_PAIR_ (ForeignPtr (BtAlignedObjectArray_GIM_PAIR_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_GIM_PAIR_ (BtAlignedObjectArray_GIM_PAIR_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_GIM_PAIR_ p = liftM BtAlignedObjectArray_GIM_PAIR_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_bool_ as BtAlignedObjectArray_bool_ foreign newtype nocode#}+newtype BtAlignedObjectArray_bool_ = BtAlignedObjectArray_bool_ (ForeignPtr (BtAlignedObjectArray_bool_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_bool_ (BtAlignedObjectArray_bool_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_bool_ p = liftM BtAlignedObjectArray_bool_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btActionInterface_ptr_ as BtAlignedObjectArray_btActionInterface_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btActionInterface_ptr_ = BtAlignedObjectArray_btActionInterface_ptr_ (ForeignPtr (BtAlignedObjectArray_btActionInterface_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btActionInterface_ptr_ (BtAlignedObjectArray_btActionInterface_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btActionInterface_ptr_ p = liftM BtAlignedObjectArray_btActionInterface_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btBroadphaseInterface_ptr_ as BtAlignedObjectArray_btBroadphaseInterface_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btBroadphaseInterface_ptr_ = BtAlignedObjectArray_btBroadphaseInterface_ptr_ (ForeignPtr (BtAlignedObjectArray_btBroadphaseInterface_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btBroadphaseInterface_ptr_ (BtAlignedObjectArray_btBroadphaseInterface_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btBroadphaseInterface_ptr_ p = liftM BtAlignedObjectArray_btBroadphaseInterface_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btBroadphasePair_ as BtAlignedObjectArray_btBroadphasePair_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btBroadphasePair_ = BtAlignedObjectArray_btBroadphasePair_ (ForeignPtr (BtAlignedObjectArray_btBroadphasePair_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btBroadphasePair_ (BtAlignedObjectArray_btBroadphasePair_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btBroadphasePair_ p = liftM BtAlignedObjectArray_btBroadphasePair_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btBvhSubtreeInfo_ as BtAlignedObjectArray_btBvhSubtreeInfo_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btBvhSubtreeInfo_ = BtAlignedObjectArray_btBvhSubtreeInfo_ (ForeignPtr (BtAlignedObjectArray_btBvhSubtreeInfo_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btBvhSubtreeInfo_ (BtAlignedObjectArray_btBvhSubtreeInfo_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btBvhSubtreeInfo_ p = liftM BtAlignedObjectArray_btBvhSubtreeInfo_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btChunk_ptr_ as BtAlignedObjectArray_btChunk_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btChunk_ptr_ = BtAlignedObjectArray_btChunk_ptr_ (ForeignPtr (BtAlignedObjectArray_btChunk_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btChunk_ptr_ (BtAlignedObjectArray_btChunk_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btChunk_ptr_ p = liftM BtAlignedObjectArray_btChunk_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btCollisionObject_ptr_ as BtAlignedObjectArray_btCollisionObject_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btCollisionObject_ptr_ = BtAlignedObjectArray_btCollisionObject_ptr_ (ForeignPtr (BtAlignedObjectArray_btCollisionObject_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btCollisionObject_ptr_ (BtAlignedObjectArray_btCollisionObject_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btCollisionObject_ptr_ p = liftM BtAlignedObjectArray_btCollisionObject_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btCollisionShape_ptr_ as BtAlignedObjectArray_btCollisionShape_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btCollisionShape_ptr_ = BtAlignedObjectArray_btCollisionShape_ptr_ (ForeignPtr (BtAlignedObjectArray_btCollisionShape_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btCollisionShape_ptr_ (BtAlignedObjectArray_btCollisionShape_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btCollisionShape_ptr_ p = liftM BtAlignedObjectArray_btCollisionShape_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btCompoundShapeChild_ as BtAlignedObjectArray_btCompoundShapeChild_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btCompoundShapeChild_ = BtAlignedObjectArray_btCompoundShapeChild_ (ForeignPtr (BtAlignedObjectArray_btCompoundShapeChild_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btCompoundShapeChild_ (BtAlignedObjectArray_btCompoundShapeChild_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btCompoundShapeChild_ p = liftM BtAlignedObjectArray_btCompoundShapeChild_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btDbvt_sStkNN_ as BtAlignedObjectArray_btDbvt_sStkNN_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btDbvt_sStkNN_ = BtAlignedObjectArray_btDbvt_sStkNN_ (ForeignPtr (BtAlignedObjectArray_btDbvt_sStkNN_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btDbvt_sStkNN_ (BtAlignedObjectArray_btDbvt_sStkNN_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btDbvt_sStkNN_ p = liftM BtAlignedObjectArray_btDbvt_sStkNN_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btDbvt_sStkNP_ as BtAlignedObjectArray_btDbvt_sStkNP_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btDbvt_sStkNP_ = BtAlignedObjectArray_btDbvt_sStkNP_ (ForeignPtr (BtAlignedObjectArray_btDbvt_sStkNP_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btDbvt_sStkNP_ (BtAlignedObjectArray_btDbvt_sStkNP_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btDbvt_sStkNP_ p = liftM BtAlignedObjectArray_btDbvt_sStkNP_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btDbvt_sStkNPS_ as BtAlignedObjectArray_btDbvt_sStkNPS_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btDbvt_sStkNPS_ = BtAlignedObjectArray_btDbvt_sStkNPS_ (ForeignPtr (BtAlignedObjectArray_btDbvt_sStkNPS_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btDbvt_sStkNPS_ (BtAlignedObjectArray_btDbvt_sStkNPS_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btDbvt_sStkNPS_ p = liftM BtAlignedObjectArray_btDbvt_sStkNPS_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btDbvtNodeconst_ptr_ as BtAlignedObjectArray_btDbvtNodeconst_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btDbvtNodeconst_ptr_ = BtAlignedObjectArray_btDbvtNodeconst_ptr_ (ForeignPtr (BtAlignedObjectArray_btDbvtNodeconst_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btDbvtNodeconst_ptr_ (BtAlignedObjectArray_btDbvtNodeconst_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btDbvtNodeconst_ptr_ p = liftM BtAlignedObjectArray_btDbvtNodeconst_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btGImpactMeshShapePart_ptr_ as BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ = BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ (ForeignPtr (BtAlignedObjectArray_btGImpactMeshShapePart_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btGImpactMeshShapePart_ptr_ (BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btGImpactMeshShapePart_ptr_ p = liftM BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btHashInt_ as BtAlignedObjectArray_btHashInt_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btHashInt_ = BtAlignedObjectArray_btHashInt_ (ForeignPtr (BtAlignedObjectArray_btHashInt_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btHashInt_ (BtAlignedObjectArray_btHashInt_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btHashInt_ p = liftM BtAlignedObjectArray_btHashInt_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btHashPtr_ as BtAlignedObjectArray_btHashPtr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btHashPtr_ = BtAlignedObjectArray_btHashPtr_ (ForeignPtr (BtAlignedObjectArray_btHashPtr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btHashPtr_ (BtAlignedObjectArray_btHashPtr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btHashPtr_ p = liftM BtAlignedObjectArray_btHashPtr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btHashString_ as BtAlignedObjectArray_btHashString_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btHashString_ = BtAlignedObjectArray_btHashString_ (ForeignPtr (BtAlignedObjectArray_btHashString_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btHashString_ (BtAlignedObjectArray_btHashString_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btHashString_ p = liftM BtAlignedObjectArray_btHashString_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btIndexedMesh_ as BtAlignedObjectArray_btIndexedMesh_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btIndexedMesh_ = BtAlignedObjectArray_btIndexedMesh_ (ForeignPtr (BtAlignedObjectArray_btIndexedMesh_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btIndexedMesh_ (BtAlignedObjectArray_btIndexedMesh_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btIndexedMesh_ p = liftM BtAlignedObjectArray_btIndexedMesh_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ as BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ = BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ (ForeignPtr (BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ (BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ p = liftM BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ as BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ = BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ (ForeignPtr (BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ (BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ p = liftM BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btOptimizedBvhNode_ as BtAlignedObjectArray_btOptimizedBvhNode_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btOptimizedBvhNode_ = BtAlignedObjectArray_btOptimizedBvhNode_ (ForeignPtr (BtAlignedObjectArray_btOptimizedBvhNode_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btOptimizedBvhNode_ (BtAlignedObjectArray_btOptimizedBvhNode_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btOptimizedBvhNode_ p = liftM BtAlignedObjectArray_btOptimizedBvhNode_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btPersistentManifold_ptr_ as BtAlignedObjectArray_btPersistentManifold_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btPersistentManifold_ptr_ = BtAlignedObjectArray_btPersistentManifold_ptr_ (ForeignPtr (BtAlignedObjectArray_btPersistentManifold_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btPersistentManifold_ptr_ (BtAlignedObjectArray_btPersistentManifold_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btPersistentManifold_ptr_ p = liftM BtAlignedObjectArray_btPersistentManifold_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btPointerUid_ as BtAlignedObjectArray_btPointerUid_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btPointerUid_ = BtAlignedObjectArray_btPointerUid_ (ForeignPtr (BtAlignedObjectArray_btPointerUid_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btPointerUid_ (BtAlignedObjectArray_btPointerUid_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btPointerUid_ p = liftM BtAlignedObjectArray_btPointerUid_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btQuantizedBvhNode_ as BtAlignedObjectArray_btQuantizedBvhNode_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btQuantizedBvhNode_ = BtAlignedObjectArray_btQuantizedBvhNode_ (ForeignPtr (BtAlignedObjectArray_btQuantizedBvhNode_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btQuantizedBvhNode_ (BtAlignedObjectArray_btQuantizedBvhNode_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btQuantizedBvhNode_ p = liftM BtAlignedObjectArray_btQuantizedBvhNode_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btRigidBody_ptr_ as BtAlignedObjectArray_btRigidBody_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btRigidBody_ptr_ = BtAlignedObjectArray_btRigidBody_ptr_ (ForeignPtr (BtAlignedObjectArray_btRigidBody_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btRigidBody_ptr_ (BtAlignedObjectArray_btRigidBody_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btRigidBody_ptr_ p = liftM BtAlignedObjectArray_btRigidBody_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_ptr_ as BtAlignedObjectArray_btSoftBody_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_ptr_ = BtAlignedObjectArray_btSoftBody_ptr_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_ptr_ (BtAlignedObjectArray_btSoftBody_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_ptr_ p = liftM BtAlignedObjectArray_btSoftBody_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Anchor_ as BtAlignedObjectArray_btSoftBody_Anchor_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Anchor_ = BtAlignedObjectArray_btSoftBody_Anchor_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Anchor_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Anchor_ (BtAlignedObjectArray_btSoftBody_Anchor_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Anchor_ p = liftM BtAlignedObjectArray_btSoftBody_Anchor_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Cluster_ptr_ as BtAlignedObjectArray_btSoftBody_Cluster_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Cluster_ptr_ = BtAlignedObjectArray_btSoftBody_Cluster_ptr_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Cluster_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Cluster_ptr_ (BtAlignedObjectArray_btSoftBody_Cluster_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Cluster_ptr_ p = liftM BtAlignedObjectArray_btSoftBody_Cluster_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Face_ as BtAlignedObjectArray_btSoftBody_Face_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Face_ = BtAlignedObjectArray_btSoftBody_Face_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Face_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Face_ (BtAlignedObjectArray_btSoftBody_Face_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Face_ p = liftM BtAlignedObjectArray_btSoftBody_Face_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Joint_ptr_ as BtAlignedObjectArray_btSoftBody_Joint_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Joint_ptr_ = BtAlignedObjectArray_btSoftBody_Joint_ptr_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Joint_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Joint_ptr_ (BtAlignedObjectArray_btSoftBody_Joint_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Joint_ptr_ p = liftM BtAlignedObjectArray_btSoftBody_Joint_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Link_ as BtAlignedObjectArray_btSoftBody_Link_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Link_ = BtAlignedObjectArray_btSoftBody_Link_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Link_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Link_ (BtAlignedObjectArray_btSoftBody_Link_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Link_ p = liftM BtAlignedObjectArray_btSoftBody_Link_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Material_ptr_ as BtAlignedObjectArray_btSoftBody_Material_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Material_ptr_ = BtAlignedObjectArray_btSoftBody_Material_ptr_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Material_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Material_ptr_ (BtAlignedObjectArray_btSoftBody_Material_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Material_ptr_ p = liftM BtAlignedObjectArray_btSoftBody_Material_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Node_ptr_ as BtAlignedObjectArray_btSoftBody_Node_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Node_ptr_ = BtAlignedObjectArray_btSoftBody_Node_ptr_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Node_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Node_ptr_ (BtAlignedObjectArray_btSoftBody_Node_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Node_ptr_ p = liftM BtAlignedObjectArray_btSoftBody_Node_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Node_ as BtAlignedObjectArray_btSoftBody_Node_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Node_ = BtAlignedObjectArray_btSoftBody_Node_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Node_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Node_ (BtAlignedObjectArray_btSoftBody_Node_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Node_ p = liftM BtAlignedObjectArray_btSoftBody_Node_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Note_ as BtAlignedObjectArray_btSoftBody_Note_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Note_ = BtAlignedObjectArray_btSoftBody_Note_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Note_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Note_ (BtAlignedObjectArray_btSoftBody_Note_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Note_ p = liftM BtAlignedObjectArray_btSoftBody_Note_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_RContact_ as BtAlignedObjectArray_btSoftBody_RContact_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_RContact_ = BtAlignedObjectArray_btSoftBody_RContact_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_RContact_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_RContact_ (BtAlignedObjectArray_btSoftBody_RContact_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_RContact_ p = liftM BtAlignedObjectArray_btSoftBody_RContact_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_SContact_ as BtAlignedObjectArray_btSoftBody_SContact_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_SContact_ = BtAlignedObjectArray_btSoftBody_SContact_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_SContact_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_SContact_ (BtAlignedObjectArray_btSoftBody_SContact_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_SContact_ p = liftM BtAlignedObjectArray_btSoftBody_SContact_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_Tetra_ as BtAlignedObjectArray_btSoftBody_Tetra_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_Tetra_ = BtAlignedObjectArray_btSoftBody_Tetra_ (ForeignPtr (BtAlignedObjectArray_btSoftBody_Tetra_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_Tetra_ (BtAlignedObjectArray_btSoftBody_Tetra_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_Tetra_ p = liftM BtAlignedObjectArray_btSoftBody_Tetra_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_ePSolver___ as BtAlignedObjectArray_btSoftBody_ePSolver___ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_ePSolver___ = BtAlignedObjectArray_btSoftBody_ePSolver___ (ForeignPtr (BtAlignedObjectArray_btSoftBody_ePSolver___)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_ePSolver___ (BtAlignedObjectArray_btSoftBody_ePSolver___ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_ePSolver___ p = liftM BtAlignedObjectArray_btSoftBody_ePSolver___ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSoftBody_eVSolver___ as BtAlignedObjectArray_btSoftBody_eVSolver___ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSoftBody_eVSolver___ = BtAlignedObjectArray_btSoftBody_eVSolver___ (ForeignPtr (BtAlignedObjectArray_btSoftBody_eVSolver___)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSoftBody_eVSolver___ (BtAlignedObjectArray_btSoftBody_eVSolver___ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSoftBody_eVSolver___ p = liftM BtAlignedObjectArray_btSoftBody_eVSolver___ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSolverConstraint_ as BtAlignedObjectArray_btSolverConstraint_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSolverConstraint_ = BtAlignedObjectArray_btSolverConstraint_ (ForeignPtr (BtAlignedObjectArray_btSolverConstraint_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSolverConstraint_ (BtAlignedObjectArray_btSolverConstraint_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSolverConstraint_ p = liftM BtAlignedObjectArray_btSolverConstraint_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btSparseSdf_3__Cell_ptr_ as BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ = BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ (ForeignPtr (BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ (BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ p = liftM BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btTransform_ as BtAlignedObjectArray_btTransform_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btTransform_ = BtAlignedObjectArray_btTransform_ (ForeignPtr (BtAlignedObjectArray_btTransform_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btTransform_ (BtAlignedObjectArray_btTransform_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btTransform_ p = liftM BtAlignedObjectArray_btTransform_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btTriangleInfo_ as BtAlignedObjectArray_btTriangleInfo_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btTriangleInfo_ = BtAlignedObjectArray_btTriangleInfo_ (ForeignPtr (BtAlignedObjectArray_btTriangleInfo_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btTriangleInfo_ (BtAlignedObjectArray_btTriangleInfo_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btTriangleInfo_ p = liftM BtAlignedObjectArray_btTriangleInfo_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btTypedConstraint_ptr_ as BtAlignedObjectArray_btTypedConstraint_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btTypedConstraint_ptr_ = BtAlignedObjectArray_btTypedConstraint_ptr_ (ForeignPtr (BtAlignedObjectArray_btTypedConstraint_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btTypedConstraint_ptr_ (BtAlignedObjectArray_btTypedConstraint_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btTypedConstraint_ptr_ p = liftM BtAlignedObjectArray_btTypedConstraint_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ as BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ = BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ (ForeignPtr (BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ (BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ p = liftM BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btVector3_ as BtAlignedObjectArray_btVector3_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btVector3_ = BtAlignedObjectArray_btVector3_ (ForeignPtr (BtAlignedObjectArray_btVector3_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btVector3_ (BtAlignedObjectArray_btVector3_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btVector3_ p = liftM BtAlignedObjectArray_btVector3_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_btWheelInfo_ as BtAlignedObjectArray_btWheelInfo_ foreign newtype nocode#}+newtype BtAlignedObjectArray_btWheelInfo_ = BtAlignedObjectArray_btWheelInfo_ (ForeignPtr (BtAlignedObjectArray_btWheelInfo_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_btWheelInfo_ (BtAlignedObjectArray_btWheelInfo_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_btWheelInfo_ p = liftM BtAlignedObjectArray_btWheelInfo_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_charconst_ptr_ as BtAlignedObjectArray_charconst_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_charconst_ptr_ = BtAlignedObjectArray_charconst_ptr_ (ForeignPtr (BtAlignedObjectArray_charconst_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_charconst_ptr_ (BtAlignedObjectArray_charconst_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_charconst_ptr_ p = liftM BtAlignedObjectArray_charconst_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_char_ptr_ as BtAlignedObjectArray_char_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_char_ptr_ = BtAlignedObjectArray_char_ptr_ (ForeignPtr (BtAlignedObjectArray_char_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_char_ptr_ (BtAlignedObjectArray_char_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_char_ptr_ p = liftM BtAlignedObjectArray_char_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_float_ as BtAlignedObjectArray_float_ foreign newtype nocode#}+newtype BtAlignedObjectArray_float_ = BtAlignedObjectArray_float_ (ForeignPtr (BtAlignedObjectArray_float_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_float_ (BtAlignedObjectArray_float_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_float_ p = liftM BtAlignedObjectArray_float_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_int_ as BtAlignedObjectArray_int_ foreign newtype nocode#}+newtype BtAlignedObjectArray_int_ = BtAlignedObjectArray_int_ (ForeignPtr (BtAlignedObjectArray_int_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_int_ (BtAlignedObjectArray_int_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_int_ p = liftM BtAlignedObjectArray_int_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_short_ptr_ as BtAlignedObjectArray_short_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_short_ptr_ = BtAlignedObjectArray_short_ptr_ (ForeignPtr (BtAlignedObjectArray_short_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_short_ptr_ (BtAlignedObjectArray_short_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_short_ptr_ p = liftM BtAlignedObjectArray_short_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_short_ as BtAlignedObjectArray_short_ foreign newtype nocode#}+newtype BtAlignedObjectArray_short_ = BtAlignedObjectArray_short_ (ForeignPtr (BtAlignedObjectArray_short_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_short_ (BtAlignedObjectArray_short_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_short_ p = liftM BtAlignedObjectArray_short_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_unsignedint_ as BtAlignedObjectArray_unsignedint_ foreign newtype nocode#}+newtype BtAlignedObjectArray_unsignedint_ = BtAlignedObjectArray_unsignedint_ (ForeignPtr (BtAlignedObjectArray_unsignedint_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_unsignedint_ (BtAlignedObjectArray_unsignedint_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_unsignedint_ p = liftM BtAlignedObjectArray_unsignedint_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_unsignedshort_ as BtAlignedObjectArray_unsignedshort_ foreign newtype nocode#}+newtype BtAlignedObjectArray_unsignedshort_ = BtAlignedObjectArray_unsignedshort_ (ForeignPtr (BtAlignedObjectArray_unsignedshort_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_unsignedshort_ (BtAlignedObjectArray_unsignedshort_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_unsignedshort_ p = liftM BtAlignedObjectArray_unsignedshort_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAlignedObjectArray_void_ptr_ as BtAlignedObjectArray_void_ptr_ foreign newtype nocode#}+newtype BtAlignedObjectArray_void_ptr_ = BtAlignedObjectArray_void_ptr_ (ForeignPtr (BtAlignedObjectArray_void_ptr_)) deriving (Eq,Ord,Show)+withBtAlignedObjectArray_void_ptr_ (BtAlignedObjectArray_void_ptr_ fptr) = withForeignPtr fptr+mkBtAlignedObjectArray_void_ptr_ p = liftM BtAlignedObjectArray_void_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAngularLimit as BtAngularLimit foreign newtype nocode#}+newtype BtAngularLimit = BtAngularLimit (ForeignPtr (BtAngularLimit)) deriving (Eq,Ord,Show)+withBtAngularLimit (BtAngularLimit fptr) = withForeignPtr fptr+mkBtAngularLimit p = liftM BtAngularLimit $ newForeignPtr_ $ castPtr p+{#pointer O_btAxisSweep3 as BtAxisSweep3 foreign newtype nocode#}+newtype BtAxisSweep3 = BtAxisSweep3 (ForeignPtr (BtAxisSweep3)) deriving (Eq,Ord,Show)+withBtAxisSweep3 (BtAxisSweep3 fptr) = withForeignPtr fptr+mkBtAxisSweep3 p = liftM BtAxisSweep3 $ newForeignPtr_ $ castPtr p+{#pointer O_btAxisSweep3Internal_unsignedint_ as BtAxisSweep3Internal_unsignedint_ foreign newtype nocode#}+newtype BtAxisSweep3Internal_unsignedint_ = BtAxisSweep3Internal_unsignedint_ (ForeignPtr (BtAxisSweep3Internal_unsignedint_)) deriving (Eq,Ord,Show)+withBtAxisSweep3Internal_unsignedint_ (BtAxisSweep3Internal_unsignedint_ fptr) = withForeignPtr fptr+mkBtAxisSweep3Internal_unsignedint_ p = liftM BtAxisSweep3Internal_unsignedint_ $ newForeignPtr_ $ castPtr p+{#pointer O_btAxisSweep3Internal_unsignedshort_ as BtAxisSweep3Internal_unsignedshort_ foreign newtype nocode#}+newtype BtAxisSweep3Internal_unsignedshort_ = BtAxisSweep3Internal_unsignedshort_ (ForeignPtr (BtAxisSweep3Internal_unsignedshort_)) deriving (Eq,Ord,Show)+withBtAxisSweep3Internal_unsignedshort_ (BtAxisSweep3Internal_unsignedshort_ fptr) = withForeignPtr fptr+mkBtAxisSweep3Internal_unsignedshort_ p = liftM BtAxisSweep3Internal_unsignedshort_ $ newForeignPtr_ $ castPtr p+{#pointer O_btBU_Simplex1to4 as BtBU_Simplex1to4 foreign newtype nocode#}+newtype BtBU_Simplex1to4 = BtBU_Simplex1to4 (ForeignPtr (BtBU_Simplex1to4)) deriving (Eq,Ord,Show)+withBtBU_Simplex1to4 (BtBU_Simplex1to4 fptr) = withForeignPtr fptr+mkBtBU_Simplex1to4 p = liftM BtBU_Simplex1to4 $ newForeignPtr_ $ castPtr p+{#pointer O_btBlock as BtBlock foreign newtype nocode#}+newtype BtBlock = BtBlock (ForeignPtr (BtBlock)) deriving (Eq,Ord,Show)+withBtBlock (BtBlock fptr) = withForeignPtr fptr+mkBtBlock p = liftM BtBlock $ newForeignPtr_ $ castPtr p+{#pointer O_btBoxShape as BtBoxShape foreign newtype nocode#}+newtype BtBoxShape = BtBoxShape (ForeignPtr (BtBoxShape)) deriving (Eq,Ord,Show)+withBtBoxShape (BtBoxShape fptr) = withForeignPtr fptr+mkBtBoxShape p = liftM BtBoxShape $ newForeignPtr_ $ castPtr p+{#pointer O_btMultiSapBroadphase_btBridgeProxy as BtMultiSapBroadphase_btBridgeProxy foreign newtype nocode#}+newtype BtMultiSapBroadphase_btBridgeProxy = BtMultiSapBroadphase_btBridgeProxy (ForeignPtr (BtMultiSapBroadphase_btBridgeProxy)) deriving (Eq,Ord,Show)+withBtMultiSapBroadphase_btBridgeProxy (BtMultiSapBroadphase_btBridgeProxy fptr) = withForeignPtr fptr+mkBtMultiSapBroadphase_btBridgeProxy p = liftM BtMultiSapBroadphase_btBridgeProxy $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphaseAabbCallback as BtBroadphaseAabbCallback foreign newtype nocode#}+newtype BtBroadphaseAabbCallback = BtBroadphaseAabbCallback (ForeignPtr (BtBroadphaseAabbCallback)) deriving (Eq,Ord,Show)+withBtBroadphaseAabbCallback (BtBroadphaseAabbCallback fptr) = withForeignPtr fptr+mkBtBroadphaseAabbCallback p = liftM BtBroadphaseAabbCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphaseInterface as BtBroadphaseInterface foreign newtype nocode#}+newtype BtBroadphaseInterface = BtBroadphaseInterface (ForeignPtr (BtBroadphaseInterface)) deriving (Eq,Ord,Show)+withBtBroadphaseInterface (BtBroadphaseInterface fptr) = withForeignPtr fptr+mkBtBroadphaseInterface p = liftM BtBroadphaseInterface $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphasePair as BtBroadphasePair foreign newtype nocode#}+newtype BtBroadphasePair = BtBroadphasePair (ForeignPtr (BtBroadphasePair)) deriving (Eq,Ord,Show)+withBtBroadphasePair (BtBroadphasePair fptr) = withForeignPtr fptr+mkBtBroadphasePair p = liftM BtBroadphasePair $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphasePairSortPredicate as BtBroadphasePairSortPredicate foreign newtype nocode#}+newtype BtBroadphasePairSortPredicate = BtBroadphasePairSortPredicate (ForeignPtr (BtBroadphasePairSortPredicate)) deriving (Eq,Ord,Show)+withBtBroadphasePairSortPredicate (BtBroadphasePairSortPredicate fptr) = withForeignPtr fptr+mkBtBroadphasePairSortPredicate p = liftM BtBroadphasePairSortPredicate $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphaseProxy as BtBroadphaseProxy foreign newtype nocode#}+newtype BtBroadphaseProxy = BtBroadphaseProxy (ForeignPtr (BtBroadphaseProxy)) deriving (Eq,Ord,Show)+withBtBroadphaseProxy (BtBroadphaseProxy fptr) = withForeignPtr fptr+mkBtBroadphaseProxy p = liftM BtBroadphaseProxy $ newForeignPtr_ $ castPtr p+{#pointer O_btBroadphaseRayCallback as BtBroadphaseRayCallback foreign newtype nocode#}+newtype BtBroadphaseRayCallback = BtBroadphaseRayCallback (ForeignPtr (BtBroadphaseRayCallback)) deriving (Eq,Ord,Show)+withBtBroadphaseRayCallback (BtBroadphaseRayCallback fptr) = withForeignPtr fptr+mkBtBroadphaseRayCallback p = liftM BtBroadphaseRayCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btBvhSubtreeInfo as BtBvhSubtreeInfo foreign newtype nocode#}+newtype BtBvhSubtreeInfo = BtBvhSubtreeInfo (ForeignPtr (BtBvhSubtreeInfo)) deriving (Eq,Ord,Show)+withBtBvhSubtreeInfo (BtBvhSubtreeInfo fptr) = withForeignPtr fptr+mkBtBvhSubtreeInfo p = liftM BtBvhSubtreeInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btBvhSubtreeInfoData as BtBvhSubtreeInfoData foreign newtype nocode#}+newtype BtBvhSubtreeInfoData = BtBvhSubtreeInfoData (ForeignPtr (BtBvhSubtreeInfoData)) deriving (Eq,Ord,Show)+withBtBvhSubtreeInfoData (BtBvhSubtreeInfoData fptr) = withForeignPtr fptr+mkBtBvhSubtreeInfoData p = liftM BtBvhSubtreeInfoData $ newForeignPtr_ $ castPtr p+{#pointer O_btBvhTree as BtBvhTree foreign newtype nocode#}+newtype BtBvhTree = BtBvhTree (ForeignPtr (BtBvhTree)) deriving (Eq,Ord,Show)+withBtBvhTree (BtBvhTree fptr) = withForeignPtr fptr+mkBtBvhTree p = liftM BtBvhTree $ newForeignPtr_ $ castPtr p+{#pointer O_btBvhTriangleMeshShape as BtBvhTriangleMeshShape foreign newtype nocode#}+newtype BtBvhTriangleMeshShape = BtBvhTriangleMeshShape (ForeignPtr (BtBvhTriangleMeshShape)) deriving (Eq,Ord,Show)+withBtBvhTriangleMeshShape (BtBvhTriangleMeshShape fptr) = withForeignPtr fptr+mkBtBvhTriangleMeshShape p = liftM BtBvhTriangleMeshShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCapsuleShape as BtCapsuleShape foreign newtype nocode#}+newtype BtCapsuleShape = BtCapsuleShape (ForeignPtr (BtCapsuleShape)) deriving (Eq,Ord,Show)+withBtCapsuleShape (BtCapsuleShape fptr) = withForeignPtr fptr+mkBtCapsuleShape p = liftM BtCapsuleShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCapsuleShapeData as BtCapsuleShapeData foreign newtype nocode#}+newtype BtCapsuleShapeData = BtCapsuleShapeData (ForeignPtr (BtCapsuleShapeData)) deriving (Eq,Ord,Show)+withBtCapsuleShapeData (BtCapsuleShapeData fptr) = withForeignPtr fptr+mkBtCapsuleShapeData p = liftM BtCapsuleShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btCapsuleShapeX as BtCapsuleShapeX foreign newtype nocode#}+newtype BtCapsuleShapeX = BtCapsuleShapeX (ForeignPtr (BtCapsuleShapeX)) deriving (Eq,Ord,Show)+withBtCapsuleShapeX (BtCapsuleShapeX fptr) = withForeignPtr fptr+mkBtCapsuleShapeX p = liftM BtCapsuleShapeX $ newForeignPtr_ $ castPtr p+{#pointer O_btCapsuleShapeZ as BtCapsuleShapeZ foreign newtype nocode#}+newtype BtCapsuleShapeZ = BtCapsuleShapeZ (ForeignPtr (BtCapsuleShapeZ)) deriving (Eq,Ord,Show)+withBtCapsuleShapeZ (BtCapsuleShapeZ fptr) = withForeignPtr fptr+mkBtCapsuleShapeZ p = liftM BtCapsuleShapeZ $ newForeignPtr_ $ castPtr p+{#pointer O_btCharIndexTripletData as BtCharIndexTripletData foreign newtype nocode#}+newtype BtCharIndexTripletData = BtCharIndexTripletData (ForeignPtr (BtCharIndexTripletData)) deriving (Eq,Ord,Show)+withBtCharIndexTripletData (BtCharIndexTripletData fptr) = withForeignPtr fptr+mkBtCharIndexTripletData p = liftM BtCharIndexTripletData $ newForeignPtr_ $ castPtr p+{#pointer O_btChunk as BtChunk foreign newtype nocode#}+newtype BtChunk = BtChunk (ForeignPtr (BtChunk)) deriving (Eq,Ord,Show)+withBtChunk (BtChunk fptr) = withForeignPtr fptr+mkBtChunk p = liftM BtChunk $ newForeignPtr_ $ castPtr p+{#pointer O_btClock as BtClock foreign newtype nocode#}+newtype BtClock = BtClock (ForeignPtr (BtClock)) deriving (Eq,Ord,Show)+withBtClock (BtClock fptr) = withForeignPtr fptr+mkBtClock p = liftM BtClock $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionAlgorithm as BtCollisionAlgorithm foreign newtype nocode#}+newtype BtCollisionAlgorithm = BtCollisionAlgorithm (ForeignPtr (BtCollisionAlgorithm)) deriving (Eq,Ord,Show)+withBtCollisionAlgorithm (BtCollisionAlgorithm fptr) = withForeignPtr fptr+mkBtCollisionAlgorithm p = liftM BtCollisionAlgorithm $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionAlgorithmConstructionInfo as BtCollisionAlgorithmConstructionInfo foreign newtype nocode#}+newtype BtCollisionAlgorithmConstructionInfo = BtCollisionAlgorithmConstructionInfo (ForeignPtr (BtCollisionAlgorithmConstructionInfo)) deriving (Eq,Ord,Show)+withBtCollisionAlgorithmConstructionInfo (BtCollisionAlgorithmConstructionInfo fptr) = withForeignPtr fptr+mkBtCollisionAlgorithmConstructionInfo p = liftM BtCollisionAlgorithmConstructionInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionAlgorithmCreateFunc as BtCollisionAlgorithmCreateFunc foreign newtype nocode#}+newtype BtCollisionAlgorithmCreateFunc = BtCollisionAlgorithmCreateFunc (ForeignPtr (BtCollisionAlgorithmCreateFunc)) deriving (Eq,Ord,Show)+withBtCollisionAlgorithmCreateFunc (BtCollisionAlgorithmCreateFunc fptr) = withForeignPtr fptr+mkBtCollisionAlgorithmCreateFunc p = liftM BtCollisionAlgorithmCreateFunc $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionConfiguration as BtCollisionConfiguration foreign newtype nocode#}+newtype BtCollisionConfiguration = BtCollisionConfiguration (ForeignPtr (BtCollisionConfiguration)) deriving (Eq,Ord,Show)+withBtCollisionConfiguration (BtCollisionConfiguration fptr) = withForeignPtr fptr+mkBtCollisionConfiguration p = liftM BtCollisionConfiguration $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionDispatcher as BtCollisionDispatcher foreign newtype nocode#}+newtype BtCollisionDispatcher = BtCollisionDispatcher (ForeignPtr (BtCollisionDispatcher)) deriving (Eq,Ord,Show)+withBtCollisionDispatcher (BtCollisionDispatcher fptr) = withForeignPtr fptr+mkBtCollisionDispatcher p = liftM BtCollisionDispatcher $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionObject as BtCollisionObject foreign newtype nocode#}+newtype BtCollisionObject = BtCollisionObject (ForeignPtr (BtCollisionObject)) deriving (Eq,Ord,Show)+withBtCollisionObject (BtCollisionObject fptr) = withForeignPtr fptr+mkBtCollisionObject p = liftM BtCollisionObject $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionObjectDoubleData as BtCollisionObjectDoubleData foreign newtype nocode#}+newtype BtCollisionObjectDoubleData = BtCollisionObjectDoubleData (ForeignPtr (BtCollisionObjectDoubleData)) deriving (Eq,Ord,Show)+withBtCollisionObjectDoubleData (BtCollisionObjectDoubleData fptr) = withForeignPtr fptr+mkBtCollisionObjectDoubleData p = liftM BtCollisionObjectDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionObjectFloatData as BtCollisionObjectFloatData foreign newtype nocode#}+newtype BtCollisionObjectFloatData = BtCollisionObjectFloatData (ForeignPtr (BtCollisionObjectFloatData)) deriving (Eq,Ord,Show)+withBtCollisionObjectFloatData (BtCollisionObjectFloatData fptr) = withForeignPtr fptr+mkBtCollisionObjectFloatData p = liftM BtCollisionObjectFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionShape as BtCollisionShape foreign newtype nocode#}+newtype BtCollisionShape = BtCollisionShape (ForeignPtr (BtCollisionShape)) deriving (Eq,Ord,Show)+withBtCollisionShape (BtCollisionShape fptr) = withForeignPtr fptr+mkBtCollisionShape p = liftM BtCollisionShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionShapeData as BtCollisionShapeData foreign newtype nocode#}+newtype BtCollisionShapeData = BtCollisionShapeData (ForeignPtr (BtCollisionShapeData)) deriving (Eq,Ord,Show)+withBtCollisionShapeData (BtCollisionShapeData fptr) = withForeignPtr fptr+mkBtCollisionShapeData p = liftM BtCollisionShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btCollisionWorld as BtCollisionWorld foreign newtype nocode#}+newtype BtCollisionWorld = BtCollisionWorld (ForeignPtr (BtCollisionWorld)) deriving (Eq,Ord,Show)+withBtCollisionWorld (BtCollisionWorld fptr) = withForeignPtr fptr+mkBtCollisionWorld p = liftM BtCollisionWorld $ newForeignPtr_ $ castPtr p+{#pointer O_btCompoundShape as BtCompoundShape foreign newtype nocode#}+newtype BtCompoundShape = BtCompoundShape (ForeignPtr (BtCompoundShape)) deriving (Eq,Ord,Show)+withBtCompoundShape (BtCompoundShape fptr) = withForeignPtr fptr+mkBtCompoundShape p = liftM BtCompoundShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCompoundShapeChild as BtCompoundShapeChild foreign newtype nocode#}+newtype BtCompoundShapeChild = BtCompoundShapeChild (ForeignPtr (BtCompoundShapeChild)) deriving (Eq,Ord,Show)+withBtCompoundShapeChild (BtCompoundShapeChild fptr) = withForeignPtr fptr+mkBtCompoundShapeChild p = liftM BtCompoundShapeChild $ newForeignPtr_ $ castPtr p+{#pointer O_btCompoundShapeChildData as BtCompoundShapeChildData foreign newtype nocode#}+newtype BtCompoundShapeChildData = BtCompoundShapeChildData (ForeignPtr (BtCompoundShapeChildData)) deriving (Eq,Ord,Show)+withBtCompoundShapeChildData (BtCompoundShapeChildData fptr) = withForeignPtr fptr+mkBtCompoundShapeChildData p = liftM BtCompoundShapeChildData $ newForeignPtr_ $ castPtr p+{#pointer O_btCompoundShapeData as BtCompoundShapeData foreign newtype nocode#}+newtype BtCompoundShapeData = BtCompoundShapeData (ForeignPtr (BtCompoundShapeData)) deriving (Eq,Ord,Show)+withBtCompoundShapeData (BtCompoundShapeData fptr) = withForeignPtr fptr+mkBtCompoundShapeData p = liftM BtCompoundShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btConcaveShape as BtConcaveShape foreign newtype nocode#}+newtype BtConcaveShape = BtConcaveShape (ForeignPtr (BtConcaveShape)) deriving (Eq,Ord,Show)+withBtConcaveShape (BtConcaveShape fptr) = withForeignPtr fptr+mkBtConcaveShape p = liftM BtConcaveShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConeShape as BtConeShape foreign newtype nocode#}+newtype BtConeShape = BtConeShape (ForeignPtr (BtConeShape)) deriving (Eq,Ord,Show)+withBtConeShape (BtConeShape fptr) = withForeignPtr fptr+mkBtConeShape p = liftM BtConeShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConeShapeX as BtConeShapeX foreign newtype nocode#}+newtype BtConeShapeX = BtConeShapeX (ForeignPtr (BtConeShapeX)) deriving (Eq,Ord,Show)+withBtConeShapeX (BtConeShapeX fptr) = withForeignPtr fptr+mkBtConeShapeX p = liftM BtConeShapeX $ newForeignPtr_ $ castPtr p+{#pointer O_btConeShapeZ as BtConeShapeZ foreign newtype nocode#}+newtype BtConeShapeZ = BtConeShapeZ (ForeignPtr (BtConeShapeZ)) deriving (Eq,Ord,Show)+withBtConeShapeZ (BtConeShapeZ fptr) = withForeignPtr fptr+mkBtConeShapeZ p = liftM BtConeShapeZ $ newForeignPtr_ $ castPtr p+{#pointer O_btConeTwistConstraint as BtConeTwistConstraint foreign newtype nocode#}+newtype BtConeTwistConstraint = BtConeTwistConstraint (ForeignPtr (BtConeTwistConstraint)) deriving (Eq,Ord,Show)+withBtConeTwistConstraint (BtConeTwistConstraint fptr) = withForeignPtr fptr+mkBtConeTwistConstraint p = liftM BtConeTwistConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btConeTwistConstraintData as BtConeTwistConstraintData foreign newtype nocode#}+newtype BtConeTwistConstraintData = BtConeTwistConstraintData (ForeignPtr (BtConeTwistConstraintData)) deriving (Eq,Ord,Show)+withBtConeTwistConstraintData (BtConeTwistConstraintData fptr) = withForeignPtr fptr+mkBtConeTwistConstraintData p = liftM BtConeTwistConstraintData $ newForeignPtr_ $ castPtr p+{#pointer O_btTypedConstraint_btConstraintInfo1 as BtTypedConstraint_btConstraintInfo1 foreign newtype nocode#}+newtype BtTypedConstraint_btConstraintInfo1 = BtTypedConstraint_btConstraintInfo1 (ForeignPtr (BtTypedConstraint_btConstraintInfo1)) deriving (Eq,Ord,Show)+withBtTypedConstraint_btConstraintInfo1 (BtTypedConstraint_btConstraintInfo1 fptr) = withForeignPtr fptr+mkBtTypedConstraint_btConstraintInfo1 p = liftM BtTypedConstraint_btConstraintInfo1 $ newForeignPtr_ $ castPtr p+{#pointer O_btTypedConstraint_btConstraintInfo2 as BtTypedConstraint_btConstraintInfo2 foreign newtype nocode#}+newtype BtTypedConstraint_btConstraintInfo2 = BtTypedConstraint_btConstraintInfo2 (ForeignPtr (BtTypedConstraint_btConstraintInfo2)) deriving (Eq,Ord,Show)+withBtTypedConstraint_btConstraintInfo2 (BtTypedConstraint_btConstraintInfo2 fptr) = withForeignPtr fptr+mkBtTypedConstraint_btConstraintInfo2 p = liftM BtTypedConstraint_btConstraintInfo2 $ newForeignPtr_ $ castPtr p+{#pointer O_btConstraintRow as BtConstraintRow foreign newtype nocode#}+newtype BtConstraintRow = BtConstraintRow (ForeignPtr (BtConstraintRow)) deriving (Eq,Ord,Show)+withBtConstraintRow (BtConstraintRow fptr) = withForeignPtr fptr+mkBtConstraintRow p = liftM BtConstraintRow $ newForeignPtr_ $ castPtr p+{#pointer O_btConstraintSetting as BtConstraintSetting foreign newtype nocode#}+newtype BtConstraintSetting = BtConstraintSetting (ForeignPtr (BtConstraintSetting)) deriving (Eq,Ord,Show)+withBtConstraintSetting (BtConstraintSetting fptr) = withForeignPtr fptr+mkBtConstraintSetting p = liftM BtConstraintSetting $ newForeignPtr_ $ castPtr p+{#pointer O_btConstraintSolver as BtConstraintSolver foreign newtype nocode#}+newtype BtConstraintSolver = BtConstraintSolver (ForeignPtr (BtConstraintSolver)) deriving (Eq,Ord,Show)+withBtConstraintSolver (BtConstraintSolver fptr) = withForeignPtr fptr+mkBtConstraintSolver p = liftM BtConstraintSolver $ newForeignPtr_ $ castPtr p+{#pointer O_btContactConstraint as BtContactConstraint foreign newtype nocode#}+newtype BtContactConstraint = BtContactConstraint (ForeignPtr (BtContactConstraint)) deriving (Eq,Ord,Show)+withBtContactConstraint (BtContactConstraint fptr) = withForeignPtr fptr+mkBtContactConstraint p = liftM BtContactConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btContactSolverInfo as BtContactSolverInfo foreign newtype nocode#}+newtype BtContactSolverInfo = BtContactSolverInfo (ForeignPtr (BtContactSolverInfo)) deriving (Eq,Ord,Show)+withBtContactSolverInfo (BtContactSolverInfo fptr) = withForeignPtr fptr+mkBtContactSolverInfo p = liftM BtContactSolverInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btContactSolverInfoData as BtContactSolverInfoData foreign newtype nocode#}+newtype BtContactSolverInfoData = BtContactSolverInfoData (ForeignPtr (BtContactSolverInfoData)) deriving (Eq,Ord,Show)+withBtContactSolverInfoData (BtContactSolverInfoData fptr) = withForeignPtr fptr+mkBtContactSolverInfoData p = liftM BtContactSolverInfoData $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexConvexAlgorithm as BtConvexConvexAlgorithm foreign newtype nocode#}+newtype BtConvexConvexAlgorithm = BtConvexConvexAlgorithm (ForeignPtr (BtConvexConvexAlgorithm)) deriving (Eq,Ord,Show)+withBtConvexConvexAlgorithm (BtConvexConvexAlgorithm fptr) = withForeignPtr fptr+mkBtConvexConvexAlgorithm p = liftM BtConvexConvexAlgorithm $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexHullShape as BtConvexHullShape foreign newtype nocode#}+newtype BtConvexHullShape = BtConvexHullShape (ForeignPtr (BtConvexHullShape)) deriving (Eq,Ord,Show)+withBtConvexHullShape (BtConvexHullShape fptr) = withForeignPtr fptr+mkBtConvexHullShape p = liftM BtConvexHullShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexHullShapeData as BtConvexHullShapeData foreign newtype nocode#}+newtype BtConvexHullShapeData = BtConvexHullShapeData (ForeignPtr (BtConvexHullShapeData)) deriving (Eq,Ord,Show)+withBtConvexHullShapeData (BtConvexHullShapeData fptr) = withForeignPtr fptr+mkBtConvexHullShapeData p = liftM BtConvexHullShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexInternalAabbCachingShape as BtConvexInternalAabbCachingShape foreign newtype nocode#}+newtype BtConvexInternalAabbCachingShape = BtConvexInternalAabbCachingShape (ForeignPtr (BtConvexInternalAabbCachingShape)) deriving (Eq,Ord,Show)+withBtConvexInternalAabbCachingShape (BtConvexInternalAabbCachingShape fptr) = withForeignPtr fptr+mkBtConvexInternalAabbCachingShape p = liftM BtConvexInternalAabbCachingShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexInternalShape as BtConvexInternalShape foreign newtype nocode#}+newtype BtConvexInternalShape = BtConvexInternalShape (ForeignPtr (BtConvexInternalShape)) deriving (Eq,Ord,Show)+withBtConvexInternalShape (BtConvexInternalShape fptr) = withForeignPtr fptr+mkBtConvexInternalShape p = liftM BtConvexInternalShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexInternalShapeData as BtConvexInternalShapeData foreign newtype nocode#}+newtype BtConvexInternalShapeData = BtConvexInternalShapeData (ForeignPtr (BtConvexInternalShapeData)) deriving (Eq,Ord,Show)+withBtConvexInternalShapeData (BtConvexInternalShapeData fptr) = withForeignPtr fptr+mkBtConvexInternalShapeData p = liftM BtConvexInternalShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexSeparatingDistanceUtil as BtConvexSeparatingDistanceUtil foreign newtype nocode#}+newtype BtConvexSeparatingDistanceUtil = BtConvexSeparatingDistanceUtil (ForeignPtr (BtConvexSeparatingDistanceUtil)) deriving (Eq,Ord,Show)+withBtConvexSeparatingDistanceUtil (BtConvexSeparatingDistanceUtil fptr) = withForeignPtr fptr+mkBtConvexSeparatingDistanceUtil p = liftM BtConvexSeparatingDistanceUtil $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexShape as BtConvexShape foreign newtype nocode#}+newtype BtConvexShape = BtConvexShape (ForeignPtr (BtConvexShape)) deriving (Eq,Ord,Show)+withBtConvexShape (BtConvexShape fptr) = withForeignPtr fptr+mkBtConvexShape p = liftM BtConvexShape $ newForeignPtr_ $ castPtr p+{#pointer O_btConvexTriangleMeshShape as BtConvexTriangleMeshShape foreign newtype nocode#}+newtype BtConvexTriangleMeshShape = BtConvexTriangleMeshShape (ForeignPtr (BtConvexTriangleMeshShape)) deriving (Eq,Ord,Show)+withBtConvexTriangleMeshShape (BtConvexTriangleMeshShape fptr) = withForeignPtr fptr+mkBtConvexTriangleMeshShape p = liftM BtConvexTriangleMeshShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCylinderShape as BtCylinderShape foreign newtype nocode#}+newtype BtCylinderShape = BtCylinderShape (ForeignPtr (BtCylinderShape)) deriving (Eq,Ord,Show)+withBtCylinderShape (BtCylinderShape fptr) = withForeignPtr fptr+mkBtCylinderShape p = liftM BtCylinderShape $ newForeignPtr_ $ castPtr p+{#pointer O_btCylinderShapeData as BtCylinderShapeData foreign newtype nocode#}+newtype BtCylinderShapeData = BtCylinderShapeData (ForeignPtr (BtCylinderShapeData)) deriving (Eq,Ord,Show)+withBtCylinderShapeData (BtCylinderShapeData fptr) = withForeignPtr fptr+mkBtCylinderShapeData p = liftM BtCylinderShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btCylinderShapeX as BtCylinderShapeX foreign newtype nocode#}+newtype BtCylinderShapeX = BtCylinderShapeX (ForeignPtr (BtCylinderShapeX)) deriving (Eq,Ord,Show)+withBtCylinderShapeX (BtCylinderShapeX fptr) = withForeignPtr fptr+mkBtCylinderShapeX p = liftM BtCylinderShapeX $ newForeignPtr_ $ castPtr p+{#pointer O_btCylinderShapeZ as BtCylinderShapeZ foreign newtype nocode#}+newtype BtCylinderShapeZ = BtCylinderShapeZ (ForeignPtr (BtCylinderShapeZ)) deriving (Eq,Ord,Show)+withBtCylinderShapeZ (BtCylinderShapeZ fptr) = withForeignPtr fptr+mkBtCylinderShapeZ p = liftM BtCylinderShapeZ $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt as BtDbvt foreign newtype nocode#}+newtype BtDbvt = BtDbvt (ForeignPtr (BtDbvt)) deriving (Eq,Ord,Show)+withBtDbvt (BtDbvt fptr) = withForeignPtr fptr+mkBtDbvt p = liftM BtDbvt $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvtAabbMm as BtDbvtAabbMm foreign newtype nocode#}+newtype BtDbvtAabbMm = BtDbvtAabbMm (ForeignPtr (BtDbvtAabbMm)) deriving (Eq,Ord,Show)+withBtDbvtAabbMm (BtDbvtAabbMm fptr) = withForeignPtr fptr+mkBtDbvtAabbMm p = liftM BtDbvtAabbMm $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvtBroadphase as BtDbvtBroadphase foreign newtype nocode#}+newtype BtDbvtBroadphase = BtDbvtBroadphase (ForeignPtr (BtDbvtBroadphase)) deriving (Eq,Ord,Show)+withBtDbvtBroadphase (BtDbvtBroadphase fptr) = withForeignPtr fptr+mkBtDbvtBroadphase p = liftM BtDbvtBroadphase $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvtNode as BtDbvtNode foreign newtype nocode#}+newtype BtDbvtNode = BtDbvtNode (ForeignPtr (BtDbvtNode)) deriving (Eq,Ord,Show)+withBtDbvtNode (BtDbvtNode fptr) = withForeignPtr fptr+mkBtDbvtNode p = liftM BtDbvtNode $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvtProxy as BtDbvtProxy foreign newtype nocode#}+newtype BtDbvtProxy = BtDbvtProxy (ForeignPtr (BtDbvtProxy)) deriving (Eq,Ord,Show)+withBtDbvtProxy (BtDbvtProxy fptr) = withForeignPtr fptr+mkBtDbvtProxy p = liftM BtDbvtProxy $ newForeignPtr_ $ castPtr p+{#pointer O_btDefaultCollisionConfiguration as BtDefaultCollisionConfiguration foreign newtype nocode#}+newtype BtDefaultCollisionConfiguration = BtDefaultCollisionConfiguration (ForeignPtr (BtDefaultCollisionConfiguration)) deriving (Eq,Ord,Show)+withBtDefaultCollisionConfiguration (BtDefaultCollisionConfiguration fptr) = withForeignPtr fptr+mkBtDefaultCollisionConfiguration p = liftM BtDefaultCollisionConfiguration $ newForeignPtr_ $ castPtr p+{#pointer O_btDefaultCollisionConstructionInfo as BtDefaultCollisionConstructionInfo foreign newtype nocode#}+newtype BtDefaultCollisionConstructionInfo = BtDefaultCollisionConstructionInfo (ForeignPtr (BtDefaultCollisionConstructionInfo)) deriving (Eq,Ord,Show)+withBtDefaultCollisionConstructionInfo (BtDefaultCollisionConstructionInfo fptr) = withForeignPtr fptr+mkBtDefaultCollisionConstructionInfo p = liftM BtDefaultCollisionConstructionInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btDefaultMotionState as BtDefaultMotionState foreign newtype nocode#}+newtype BtDefaultMotionState = BtDefaultMotionState (ForeignPtr (BtDefaultMotionState)) deriving (Eq,Ord,Show)+withBtDefaultMotionState (BtDefaultMotionState fptr) = withForeignPtr fptr+mkBtDefaultMotionState p = liftM BtDefaultMotionState $ newForeignPtr_ $ castPtr p+{#pointer O_btDefaultSerializer as BtDefaultSerializer foreign newtype nocode#}+newtype BtDefaultSerializer = BtDefaultSerializer (ForeignPtr (BtDefaultSerializer)) deriving (Eq,Ord,Show)+withBtDefaultSerializer (BtDefaultSerializer fptr) = withForeignPtr fptr+mkBtDefaultSerializer p = liftM BtDefaultSerializer $ newForeignPtr_ $ castPtr p+{#pointer O_btDefaultVehicleRaycaster as BtDefaultVehicleRaycaster foreign newtype nocode#}+newtype BtDefaultVehicleRaycaster = BtDefaultVehicleRaycaster (ForeignPtr (BtDefaultVehicleRaycaster)) deriving (Eq,Ord,Show)+withBtDefaultVehicleRaycaster (BtDefaultVehicleRaycaster fptr) = withForeignPtr fptr+mkBtDefaultVehicleRaycaster p = liftM BtDefaultVehicleRaycaster $ newForeignPtr_ $ castPtr p+{#pointer O_btDiscreteCollisionDetectorInterface as BtDiscreteCollisionDetectorInterface foreign newtype nocode#}+newtype BtDiscreteCollisionDetectorInterface = BtDiscreteCollisionDetectorInterface (ForeignPtr (BtDiscreteCollisionDetectorInterface)) deriving (Eq,Ord,Show)+withBtDiscreteCollisionDetectorInterface (BtDiscreteCollisionDetectorInterface fptr) = withForeignPtr fptr+mkBtDiscreteCollisionDetectorInterface p = liftM BtDiscreteCollisionDetectorInterface $ newForeignPtr_ $ castPtr p+{#pointer O_btDiscreteDynamicsWorld as BtDiscreteDynamicsWorld foreign newtype nocode#}+newtype BtDiscreteDynamicsWorld = BtDiscreteDynamicsWorld (ForeignPtr (BtDiscreteDynamicsWorld)) deriving (Eq,Ord,Show)+withBtDiscreteDynamicsWorld (BtDiscreteDynamicsWorld fptr) = withForeignPtr fptr+mkBtDiscreteDynamicsWorld p = liftM BtDiscreteDynamicsWorld $ newForeignPtr_ $ castPtr p+{#pointer O_btDispatcher as BtDispatcher foreign newtype nocode#}+newtype BtDispatcher = BtDispatcher (ForeignPtr (BtDispatcher)) deriving (Eq,Ord,Show)+withBtDispatcher (BtDispatcher fptr) = withForeignPtr fptr+mkBtDispatcher p = liftM BtDispatcher $ newForeignPtr_ $ castPtr p+{#pointer O_btDispatcherInfo as BtDispatcherInfo foreign newtype nocode#}+newtype BtDispatcherInfo = BtDispatcherInfo (ForeignPtr (BtDispatcherInfo)) deriving (Eq,Ord,Show)+withBtDispatcherInfo (BtDispatcherInfo fptr) = withForeignPtr fptr+mkBtDispatcherInfo p = liftM BtDispatcherInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btDynamicsWorld as BtDynamicsWorld foreign newtype nocode#}+newtype BtDynamicsWorld = BtDynamicsWorld (ForeignPtr (BtDynamicsWorld)) deriving (Eq,Ord,Show)+withBtDynamicsWorld (BtDynamicsWorld fptr) = withForeignPtr fptr+mkBtDynamicsWorld p = liftM BtDynamicsWorld $ newForeignPtr_ $ castPtr p+{#pointer O_btEmptyShape as BtEmptyShape foreign newtype nocode#}+newtype BtEmptyShape = BtEmptyShape (ForeignPtr (BtEmptyShape)) deriving (Eq,Ord,Show)+withBtEmptyShape (BtEmptyShape fptr) = withForeignPtr fptr+mkBtEmptyShape p = liftM BtEmptyShape $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactBvh as BtGImpactBvh foreign newtype nocode#}+newtype BtGImpactBvh = BtGImpactBvh (ForeignPtr (BtGImpactBvh)) deriving (Eq,Ord,Show)+withBtGImpactBvh (BtGImpactBvh fptr) = withForeignPtr fptr+mkBtGImpactBvh p = liftM BtGImpactBvh $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactCollisionAlgorithm as BtGImpactCollisionAlgorithm foreign newtype nocode#}+newtype BtGImpactCollisionAlgorithm = BtGImpactCollisionAlgorithm (ForeignPtr (BtGImpactCollisionAlgorithm)) deriving (Eq,Ord,Show)+withBtGImpactCollisionAlgorithm (BtGImpactCollisionAlgorithm fptr) = withForeignPtr fptr+mkBtGImpactCollisionAlgorithm p = liftM BtGImpactCollisionAlgorithm $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactCompoundShape as BtGImpactCompoundShape foreign newtype nocode#}+newtype BtGImpactCompoundShape = BtGImpactCompoundShape (ForeignPtr (BtGImpactCompoundShape)) deriving (Eq,Ord,Show)+withBtGImpactCompoundShape (BtGImpactCompoundShape fptr) = withForeignPtr fptr+mkBtGImpactCompoundShape p = liftM BtGImpactCompoundShape $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactMeshShape as BtGImpactMeshShape foreign newtype nocode#}+newtype BtGImpactMeshShape = BtGImpactMeshShape (ForeignPtr (BtGImpactMeshShape)) deriving (Eq,Ord,Show)+withBtGImpactMeshShape (BtGImpactMeshShape fptr) = withForeignPtr fptr+mkBtGImpactMeshShape p = liftM BtGImpactMeshShape $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactMeshShapeData as BtGImpactMeshShapeData foreign newtype nocode#}+newtype BtGImpactMeshShapeData = BtGImpactMeshShapeData (ForeignPtr (BtGImpactMeshShapeData)) deriving (Eq,Ord,Show)+withBtGImpactMeshShapeData (BtGImpactMeshShapeData fptr) = withForeignPtr fptr+mkBtGImpactMeshShapeData p = liftM BtGImpactMeshShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactMeshShapePart as BtGImpactMeshShapePart foreign newtype nocode#}+newtype BtGImpactMeshShapePart = BtGImpactMeshShapePart (ForeignPtr (BtGImpactMeshShapePart)) deriving (Eq,Ord,Show)+withBtGImpactMeshShapePart (BtGImpactMeshShapePart fptr) = withForeignPtr fptr+mkBtGImpactMeshShapePart p = liftM BtGImpactMeshShapePart $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactQuantizedBvh as BtGImpactQuantizedBvh foreign newtype nocode#}+newtype BtGImpactQuantizedBvh = BtGImpactQuantizedBvh (ForeignPtr (BtGImpactQuantizedBvh)) deriving (Eq,Ord,Show)+withBtGImpactQuantizedBvh (BtGImpactQuantizedBvh fptr) = withForeignPtr fptr+mkBtGImpactQuantizedBvh p = liftM BtGImpactQuantizedBvh $ newForeignPtr_ $ castPtr p+{#pointer O_btGImpactShapeInterface as BtGImpactShapeInterface foreign newtype nocode#}+newtype BtGImpactShapeInterface = BtGImpactShapeInterface (ForeignPtr (BtGImpactShapeInterface)) deriving (Eq,Ord,Show)+withBtGImpactShapeInterface (BtGImpactShapeInterface fptr) = withForeignPtr fptr+mkBtGImpactShapeInterface p = liftM BtGImpactShapeInterface $ newForeignPtr_ $ castPtr p+{#pointer O_btGLDebugDrawer as BtGLDebugDrawer foreign newtype nocode#}+newtype BtGLDebugDrawer = BtGLDebugDrawer (ForeignPtr (BtGLDebugDrawer)) deriving (Eq,Ord,Show)+withBtGLDebugDrawer (BtGLDebugDrawer fptr) = withForeignPtr fptr+mkBtGLDebugDrawer p = liftM BtGLDebugDrawer $ newForeignPtr_ $ castPtr p+{#pointer O_btGeneric6DofConstraint as BtGeneric6DofConstraint foreign newtype nocode#}+newtype BtGeneric6DofConstraint = BtGeneric6DofConstraint (ForeignPtr (BtGeneric6DofConstraint)) deriving (Eq,Ord,Show)+withBtGeneric6DofConstraint (BtGeneric6DofConstraint fptr) = withForeignPtr fptr+mkBtGeneric6DofConstraint p = liftM BtGeneric6DofConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btGeneric6DofConstraintData as BtGeneric6DofConstraintData foreign newtype nocode#}+newtype BtGeneric6DofConstraintData = BtGeneric6DofConstraintData (ForeignPtr (BtGeneric6DofConstraintData)) deriving (Eq,Ord,Show)+withBtGeneric6DofConstraintData (BtGeneric6DofConstraintData fptr) = withForeignPtr fptr+mkBtGeneric6DofConstraintData p = liftM BtGeneric6DofConstraintData $ newForeignPtr_ $ castPtr p+{#pointer O_btGeneric6DofSpringConstraint as BtGeneric6DofSpringConstraint foreign newtype nocode#}+newtype BtGeneric6DofSpringConstraint = BtGeneric6DofSpringConstraint (ForeignPtr (BtGeneric6DofSpringConstraint)) deriving (Eq,Ord,Show)+withBtGeneric6DofSpringConstraint (BtGeneric6DofSpringConstraint fptr) = withForeignPtr fptr+mkBtGeneric6DofSpringConstraint p = liftM BtGeneric6DofSpringConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btGeneric6DofSpringConstraintData as BtGeneric6DofSpringConstraintData foreign newtype nocode#}+newtype BtGeneric6DofSpringConstraintData = BtGeneric6DofSpringConstraintData (ForeignPtr (BtGeneric6DofSpringConstraintData)) deriving (Eq,Ord,Show)+withBtGeneric6DofSpringConstraintData (BtGeneric6DofSpringConstraintData fptr) = withForeignPtr fptr+mkBtGeneric6DofSpringConstraintData p = liftM BtGeneric6DofSpringConstraintData $ newForeignPtr_ $ castPtr p+{#pointer O_btGeometryUtil as BtGeometryUtil foreign newtype nocode#}+newtype BtGeometryUtil = BtGeometryUtil (ForeignPtr (BtGeometryUtil)) deriving (Eq,Ord,Show)+withBtGeometryUtil (BtGeometryUtil fptr) = withForeignPtr fptr+mkBtGeometryUtil p = liftM BtGeometryUtil $ newForeignPtr_ $ castPtr p+{#pointer O_btGhostObject as BtGhostObject foreign newtype nocode#}+newtype BtGhostObject = BtGhostObject (ForeignPtr (BtGhostObject)) deriving (Eq,Ord,Show)+withBtGhostObject (BtGhostObject fptr) = withForeignPtr fptr+mkBtGhostObject p = liftM BtGhostObject $ newForeignPtr_ $ castPtr p+{#pointer O_btGhostPairCallback as BtGhostPairCallback foreign newtype nocode#}+newtype BtGhostPairCallback = BtGhostPairCallback (ForeignPtr (BtGhostPairCallback)) deriving (Eq,Ord,Show)+withBtGhostPairCallback (BtGhostPairCallback fptr) = withForeignPtr fptr+mkBtGhostPairCallback p = liftM BtGhostPairCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btGjkEpaSolver2 as BtGjkEpaSolver2 foreign newtype nocode#}+newtype BtGjkEpaSolver2 = BtGjkEpaSolver2 (ForeignPtr (BtGjkEpaSolver2)) deriving (Eq,Ord,Show)+withBtGjkEpaSolver2 (BtGjkEpaSolver2 fptr) = withForeignPtr fptr+mkBtGjkEpaSolver2 p = liftM BtGjkEpaSolver2 $ newForeignPtr_ $ castPtr p+{#pointer O_btGjkPairDetector as BtGjkPairDetector foreign newtype nocode#}+newtype BtGjkPairDetector = BtGjkPairDetector (ForeignPtr (BtGjkPairDetector)) deriving (Eq,Ord,Show)+withBtGjkPairDetector (BtGjkPairDetector fptr) = withForeignPtr fptr+mkBtGjkPairDetector p = liftM BtGjkPairDetector $ newForeignPtr_ $ castPtr p+{#pointer O_btHashInt as BtHashInt foreign newtype nocode#}+newtype BtHashInt = BtHashInt (ForeignPtr (BtHashInt)) deriving (Eq,Ord,Show)+withBtHashInt (BtHashInt fptr) = withForeignPtr fptr+mkBtHashInt p = liftM BtHashInt $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashInt_btTriangleInfo_ as BtHashMap_btHashInt_btTriangleInfo_ foreign newtype nocode#}+newtype BtHashMap_btHashInt_btTriangleInfo_ = BtHashMap_btHashInt_btTriangleInfo_ (ForeignPtr (BtHashMap_btHashInt_btTriangleInfo_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashInt_btTriangleInfo_ (BtHashMap_btHashInt_btTriangleInfo_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashInt_btTriangleInfo_ p = liftM BtHashMap_btHashInt_btTriangleInfo_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashInt_int_ as BtHashMap_btHashInt_int_ foreign newtype nocode#}+newtype BtHashMap_btHashInt_int_ = BtHashMap_btHashInt_int_ (ForeignPtr (BtHashMap_btHashInt_int_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashInt_int_ (BtHashMap_btHashInt_int_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashInt_int_ p = liftM BtHashMap_btHashInt_int_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashPtr_btPointerUid_ as BtHashMap_btHashPtr_btPointerUid_ foreign newtype nocode#}+newtype BtHashMap_btHashPtr_btPointerUid_ = BtHashMap_btHashPtr_btPointerUid_ (ForeignPtr (BtHashMap_btHashPtr_btPointerUid_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashPtr_btPointerUid_ (BtHashMap_btHashPtr_btPointerUid_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashPtr_btPointerUid_ p = liftM BtHashMap_btHashPtr_btPointerUid_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashPtr_charconst_ptr_ as BtHashMap_btHashPtr_charconst_ptr_ foreign newtype nocode#}+newtype BtHashMap_btHashPtr_charconst_ptr_ = BtHashMap_btHashPtr_charconst_ptr_ (ForeignPtr (BtHashMap_btHashPtr_charconst_ptr_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashPtr_charconst_ptr_ (BtHashMap_btHashPtr_charconst_ptr_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashPtr_charconst_ptr_ p = liftM BtHashMap_btHashPtr_charconst_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashPtr_void_ptr_ as BtHashMap_btHashPtr_void_ptr_ foreign newtype nocode#}+newtype BtHashMap_btHashPtr_void_ptr_ = BtHashMap_btHashPtr_void_ptr_ (ForeignPtr (BtHashMap_btHashPtr_void_ptr_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashPtr_void_ptr_ (BtHashMap_btHashPtr_void_ptr_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashPtr_void_ptr_ p = liftM BtHashMap_btHashPtr_void_ptr_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashMap_btHashString_int_ as BtHashMap_btHashString_int_ foreign newtype nocode#}+newtype BtHashMap_btHashString_int_ = BtHashMap_btHashString_int_ (ForeignPtr (BtHashMap_btHashString_int_)) deriving (Eq,Ord,Show)+withBtHashMap_btHashString_int_ (BtHashMap_btHashString_int_ fptr) = withForeignPtr fptr+mkBtHashMap_btHashString_int_ p = liftM BtHashMap_btHashString_int_ $ newForeignPtr_ $ castPtr p+{#pointer O_btHashPtr as BtHashPtr foreign newtype nocode#}+newtype BtHashPtr = BtHashPtr (ForeignPtr (BtHashPtr)) deriving (Eq,Ord,Show)+withBtHashPtr (BtHashPtr fptr) = withForeignPtr fptr+mkBtHashPtr p = liftM BtHashPtr $ newForeignPtr_ $ castPtr p+{#pointer O_btHashString as BtHashString foreign newtype nocode#}+newtype BtHashString = BtHashString (ForeignPtr (BtHashString)) deriving (Eq,Ord,Show)+withBtHashString (BtHashString fptr) = withForeignPtr fptr+mkBtHashString p = liftM BtHashString $ newForeignPtr_ $ castPtr p+{#pointer O_btHashedOverlappingPairCache as BtHashedOverlappingPairCache foreign newtype nocode#}+newtype BtHashedOverlappingPairCache = BtHashedOverlappingPairCache (ForeignPtr (BtHashedOverlappingPairCache)) deriving (Eq,Ord,Show)+withBtHashedOverlappingPairCache (BtHashedOverlappingPairCache fptr) = withForeignPtr fptr+mkBtHashedOverlappingPairCache p = liftM BtHashedOverlappingPairCache $ newForeignPtr_ $ castPtr p+{#pointer O_btHinge2Constraint as BtHinge2Constraint foreign newtype nocode#}+newtype BtHinge2Constraint = BtHinge2Constraint (ForeignPtr (BtHinge2Constraint)) deriving (Eq,Ord,Show)+withBtHinge2Constraint (BtHinge2Constraint fptr) = withForeignPtr fptr+mkBtHinge2Constraint p = liftM BtHinge2Constraint $ newForeignPtr_ $ castPtr p+{#pointer O_btHingeConstraint as BtHingeConstraint foreign newtype nocode#}+newtype BtHingeConstraint = BtHingeConstraint (ForeignPtr (BtHingeConstraint)) deriving (Eq,Ord,Show)+withBtHingeConstraint (BtHingeConstraint fptr) = withForeignPtr fptr+mkBtHingeConstraint p = liftM BtHingeConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btHingeConstraintDoubleData as BtHingeConstraintDoubleData foreign newtype nocode#}+newtype BtHingeConstraintDoubleData = BtHingeConstraintDoubleData (ForeignPtr (BtHingeConstraintDoubleData)) deriving (Eq,Ord,Show)+withBtHingeConstraintDoubleData (BtHingeConstraintDoubleData fptr) = withForeignPtr fptr+mkBtHingeConstraintDoubleData p = liftM BtHingeConstraintDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btHingeConstraintFloatData as BtHingeConstraintFloatData foreign newtype nocode#}+newtype BtHingeConstraintFloatData = BtHingeConstraintFloatData (ForeignPtr (BtHingeConstraintFloatData)) deriving (Eq,Ord,Show)+withBtHingeConstraintFloatData (BtHingeConstraintFloatData fptr) = withForeignPtr fptr+mkBtHingeConstraintFloatData p = liftM BtHingeConstraintFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btIDebugDraw as BtIDebugDraw foreign newtype nocode#}+newtype BtIDebugDraw = BtIDebugDraw (ForeignPtr (BtIDebugDraw)) deriving (Eq,Ord,Show)+withBtIDebugDraw (BtIDebugDraw fptr) = withForeignPtr fptr+mkBtIDebugDraw p = liftM BtIDebugDraw $ newForeignPtr_ $ castPtr p+{#pointer O_btIndexedMesh as BtIndexedMesh foreign newtype nocode#}+newtype BtIndexedMesh = BtIndexedMesh (ForeignPtr (BtIndexedMesh)) deriving (Eq,Ord,Show)+withBtIndexedMesh (BtIndexedMesh fptr) = withForeignPtr fptr+mkBtIndexedMesh p = liftM BtIndexedMesh $ newForeignPtr_ $ castPtr p+{#pointer O_btIntIndexData as BtIntIndexData foreign newtype nocode#}+newtype BtIntIndexData = BtIntIndexData (ForeignPtr (BtIntIndexData)) deriving (Eq,Ord,Show)+withBtIntIndexData (BtIntIndexData fptr) = withForeignPtr fptr+mkBtIntIndexData p = liftM BtIntIndexData $ newForeignPtr_ $ castPtr p+{#pointer O_btInternalTriangleIndexCallback as BtInternalTriangleIndexCallback foreign newtype nocode#}+newtype BtInternalTriangleIndexCallback = BtInternalTriangleIndexCallback (ForeignPtr (BtInternalTriangleIndexCallback)) deriving (Eq,Ord,Show)+withBtInternalTriangleIndexCallback (BtInternalTriangleIndexCallback fptr) = withForeignPtr fptr+mkBtInternalTriangleIndexCallback p = liftM BtInternalTriangleIndexCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btJacobianEntry as BtJacobianEntry foreign newtype nocode#}+newtype BtJacobianEntry = BtJacobianEntry (ForeignPtr (BtJacobianEntry)) deriving (Eq,Ord,Show)+withBtJacobianEntry (BtJacobianEntry fptr) = withForeignPtr fptr+mkBtJacobianEntry p = liftM BtJacobianEntry $ newForeignPtr_ $ castPtr p+{#pointer O_btManifoldPoint as BtManifoldPoint foreign newtype nocode#}+newtype BtManifoldPoint = BtManifoldPoint (ForeignPtr (BtManifoldPoint)) deriving (Eq,Ord,Show)+withBtManifoldPoint (BtManifoldPoint fptr) = withForeignPtr fptr+mkBtManifoldPoint p = liftM BtManifoldPoint $ newForeignPtr_ $ castPtr p+{#pointer O_btManifoldResult as BtManifoldResult foreign newtype nocode#}+newtype BtManifoldResult = BtManifoldResult (ForeignPtr (BtManifoldResult)) deriving (Eq,Ord,Show)+withBtManifoldResult (BtManifoldResult fptr) = withForeignPtr fptr+mkBtManifoldResult p = liftM BtManifoldResult $ newForeignPtr_ $ castPtr p+{#pointer O_btMatrix3x3DoubleData as BtMatrix3x3DoubleData foreign newtype nocode#}+newtype BtMatrix3x3DoubleData = BtMatrix3x3DoubleData (ForeignPtr (BtMatrix3x3DoubleData)) deriving (Eq,Ord,Show)+withBtMatrix3x3DoubleData (BtMatrix3x3DoubleData fptr) = withForeignPtr fptr+mkBtMatrix3x3DoubleData p = liftM BtMatrix3x3DoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btMatrix3x3FloatData as BtMatrix3x3FloatData foreign newtype nocode#}+newtype BtMatrix3x3FloatData = BtMatrix3x3FloatData (ForeignPtr (BtMatrix3x3FloatData)) deriving (Eq,Ord,Show)+withBtMatrix3x3FloatData (BtMatrix3x3FloatData fptr) = withForeignPtr fptr+mkBtMatrix3x3FloatData p = liftM BtMatrix3x3FloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btMeshPartData as BtMeshPartData foreign newtype nocode#}+newtype BtMeshPartData = BtMeshPartData (ForeignPtr (BtMeshPartData)) deriving (Eq,Ord,Show)+withBtMeshPartData (BtMeshPartData fptr) = withForeignPtr fptr+mkBtMeshPartData p = liftM BtMeshPartData $ newForeignPtr_ $ castPtr p+{#pointer O_btMotionState as BtMotionState foreign newtype nocode#}+newtype BtMotionState = BtMotionState (ForeignPtr (BtMotionState)) deriving (Eq,Ord,Show)+withBtMotionState (BtMotionState fptr) = withForeignPtr fptr+mkBtMotionState p = liftM BtMotionState $ newForeignPtr_ $ castPtr p+{#pointer O_btMultiSapBroadphase as BtMultiSapBroadphase foreign newtype nocode#}+newtype BtMultiSapBroadphase = BtMultiSapBroadphase (ForeignPtr (BtMultiSapBroadphase)) deriving (Eq,Ord,Show)+withBtMultiSapBroadphase (BtMultiSapBroadphase fptr) = withForeignPtr fptr+mkBtMultiSapBroadphase p = liftM BtMultiSapBroadphase $ newForeignPtr_ $ castPtr p+{#pointer O_btMultiSapBroadphase_btMultiSapProxy as BtMultiSapBroadphase_btMultiSapProxy foreign newtype nocode#}+newtype BtMultiSapBroadphase_btMultiSapProxy = BtMultiSapBroadphase_btMultiSapProxy (ForeignPtr (BtMultiSapBroadphase_btMultiSapProxy)) deriving (Eq,Ord,Show)+withBtMultiSapBroadphase_btMultiSapProxy (BtMultiSapBroadphase_btMultiSapProxy fptr) = withForeignPtr fptr+mkBtMultiSapBroadphase_btMultiSapProxy p = liftM BtMultiSapBroadphase_btMultiSapProxy $ newForeignPtr_ $ castPtr p+{#pointer O_btMultiSphereShape as BtMultiSphereShape foreign newtype nocode#}+newtype BtMultiSphereShape = BtMultiSphereShape (ForeignPtr (BtMultiSphereShape)) deriving (Eq,Ord,Show)+withBtMultiSphereShape (BtMultiSphereShape fptr) = withForeignPtr fptr+mkBtMultiSphereShape p = liftM BtMultiSphereShape $ newForeignPtr_ $ castPtr p+{#pointer O_btMultiSphereShapeData as BtMultiSphereShapeData foreign newtype nocode#}+newtype BtMultiSphereShapeData = BtMultiSphereShapeData (ForeignPtr (BtMultiSphereShapeData)) deriving (Eq,Ord,Show)+withBtMultiSphereShapeData (BtMultiSphereShapeData fptr) = withForeignPtr fptr+mkBtMultiSphereShapeData p = liftM BtMultiSphereShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btNodeOverlapCallback as BtNodeOverlapCallback foreign newtype nocode#}+newtype BtNodeOverlapCallback = BtNodeOverlapCallback (ForeignPtr (BtNodeOverlapCallback)) deriving (Eq,Ord,Show)+withBtNodeOverlapCallback (BtNodeOverlapCallback fptr) = withForeignPtr fptr+mkBtNodeOverlapCallback p = liftM BtNodeOverlapCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btNullPairCache as BtNullPairCache foreign newtype nocode#}+newtype BtNullPairCache = BtNullPairCache (ForeignPtr (BtNullPairCache)) deriving (Eq,Ord,Show)+withBtNullPairCache (BtNullPairCache fptr) = withForeignPtr fptr+mkBtNullPairCache p = liftM BtNullPairCache $ newForeignPtr_ $ castPtr p+{#pointer O_btOptimizedBvh as BtOptimizedBvh foreign newtype nocode#}+newtype BtOptimizedBvh = BtOptimizedBvh (ForeignPtr (BtOptimizedBvh)) deriving (Eq,Ord,Show)+withBtOptimizedBvh (BtOptimizedBvh fptr) = withForeignPtr fptr+mkBtOptimizedBvh p = liftM BtOptimizedBvh $ newForeignPtr_ $ castPtr p+{#pointer O_btOptimizedBvhNode as BtOptimizedBvhNode foreign newtype nocode#}+newtype BtOptimizedBvhNode = BtOptimizedBvhNode (ForeignPtr (BtOptimizedBvhNode)) deriving (Eq,Ord,Show)+withBtOptimizedBvhNode (BtOptimizedBvhNode fptr) = withForeignPtr fptr+mkBtOptimizedBvhNode p = liftM BtOptimizedBvhNode $ newForeignPtr_ $ castPtr p+{#pointer O_btOptimizedBvhNodeDoubleData as BtOptimizedBvhNodeDoubleData foreign newtype nocode#}+newtype BtOptimizedBvhNodeDoubleData = BtOptimizedBvhNodeDoubleData (ForeignPtr (BtOptimizedBvhNodeDoubleData)) deriving (Eq,Ord,Show)+withBtOptimizedBvhNodeDoubleData (BtOptimizedBvhNodeDoubleData fptr) = withForeignPtr fptr+mkBtOptimizedBvhNodeDoubleData p = liftM BtOptimizedBvhNodeDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btOptimizedBvhNodeFloatData as BtOptimizedBvhNodeFloatData foreign newtype nocode#}+newtype BtOptimizedBvhNodeFloatData = BtOptimizedBvhNodeFloatData (ForeignPtr (BtOptimizedBvhNodeFloatData)) deriving (Eq,Ord,Show)+withBtOptimizedBvhNodeFloatData (BtOptimizedBvhNodeFloatData fptr) = withForeignPtr fptr+mkBtOptimizedBvhNodeFloatData p = liftM BtOptimizedBvhNodeFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btOverlapCallback as BtOverlapCallback foreign newtype nocode#}+newtype BtOverlapCallback = BtOverlapCallback (ForeignPtr (BtOverlapCallback)) deriving (Eq,Ord,Show)+withBtOverlapCallback (BtOverlapCallback fptr) = withForeignPtr fptr+mkBtOverlapCallback p = liftM BtOverlapCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btOverlapFilterCallback as BtOverlapFilterCallback foreign newtype nocode#}+newtype BtOverlapFilterCallback = BtOverlapFilterCallback (ForeignPtr (BtOverlapFilterCallback)) deriving (Eq,Ord,Show)+withBtOverlapFilterCallback (BtOverlapFilterCallback fptr) = withForeignPtr fptr+mkBtOverlapFilterCallback p = liftM BtOverlapFilterCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btOverlappingPairCache as BtOverlappingPairCache foreign newtype nocode#}+newtype BtOverlappingPairCache = BtOverlappingPairCache (ForeignPtr (BtOverlappingPairCache)) deriving (Eq,Ord,Show)+withBtOverlappingPairCache (BtOverlappingPairCache fptr) = withForeignPtr fptr+mkBtOverlappingPairCache p = liftM BtOverlappingPairCache $ newForeignPtr_ $ castPtr p+{#pointer O_btOverlappingPairCallback as BtOverlappingPairCallback foreign newtype nocode#}+newtype BtOverlappingPairCallback = BtOverlappingPairCallback (ForeignPtr (BtOverlappingPairCallback)) deriving (Eq,Ord,Show)+withBtOverlappingPairCallback (BtOverlappingPairCallback fptr) = withForeignPtr fptr+mkBtOverlappingPairCallback p = liftM BtOverlappingPairCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btPairCachingGhostObject as BtPairCachingGhostObject foreign newtype nocode#}+newtype BtPairCachingGhostObject = BtPairCachingGhostObject (ForeignPtr (BtPairCachingGhostObject)) deriving (Eq,Ord,Show)+withBtPairCachingGhostObject (BtPairCachingGhostObject fptr) = withForeignPtr fptr+mkBtPairCachingGhostObject p = liftM BtPairCachingGhostObject $ newForeignPtr_ $ castPtr p+{#pointer O_btPairSet as BtPairSet foreign newtype nocode#}+newtype BtPairSet = BtPairSet (ForeignPtr (BtPairSet)) deriving (Eq,Ord,Show)+withBtPairSet (BtPairSet fptr) = withForeignPtr fptr+mkBtPairSet p = liftM BtPairSet $ newForeignPtr_ $ castPtr p+{#pointer O_btPersistentManifold as BtPersistentManifold foreign newtype nocode#}+newtype BtPersistentManifold = BtPersistentManifold (ForeignPtr (BtPersistentManifold)) deriving (Eq,Ord,Show)+withBtPersistentManifold (BtPersistentManifold fptr) = withForeignPtr fptr+mkBtPersistentManifold p = liftM BtPersistentManifold $ newForeignPtr_ $ castPtr p+{#pointer O_btPoint2PointConstraint as BtPoint2PointConstraint foreign newtype nocode#}+newtype BtPoint2PointConstraint = BtPoint2PointConstraint (ForeignPtr (BtPoint2PointConstraint)) deriving (Eq,Ord,Show)+withBtPoint2PointConstraint (BtPoint2PointConstraint fptr) = withForeignPtr fptr+mkBtPoint2PointConstraint p = liftM BtPoint2PointConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btPoint2PointConstraintDoubleData as BtPoint2PointConstraintDoubleData foreign newtype nocode#}+newtype BtPoint2PointConstraintDoubleData = BtPoint2PointConstraintDoubleData (ForeignPtr (BtPoint2PointConstraintDoubleData)) deriving (Eq,Ord,Show)+withBtPoint2PointConstraintDoubleData (BtPoint2PointConstraintDoubleData fptr) = withForeignPtr fptr+mkBtPoint2PointConstraintDoubleData p = liftM BtPoint2PointConstraintDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btPoint2PointConstraintFloatData as BtPoint2PointConstraintFloatData foreign newtype nocode#}+newtype BtPoint2PointConstraintFloatData = BtPoint2PointConstraintFloatData (ForeignPtr (BtPoint2PointConstraintFloatData)) deriving (Eq,Ord,Show)+withBtPoint2PointConstraintFloatData (BtPoint2PointConstraintFloatData fptr) = withForeignPtr fptr+mkBtPoint2PointConstraintFloatData p = liftM BtPoint2PointConstraintFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btPointerUid as BtPointerUid foreign newtype nocode#}+newtype BtPointerUid = BtPointerUid (ForeignPtr (BtPointerUid)) deriving (Eq,Ord,Show)+withBtPointerUid (BtPointerUid fptr) = withForeignPtr fptr+mkBtPointerUid p = liftM BtPointerUid $ newForeignPtr_ $ castPtr p+{#pointer O_btPolyhedralConvexAabbCachingShape as BtPolyhedralConvexAabbCachingShape foreign newtype nocode#}+newtype BtPolyhedralConvexAabbCachingShape = BtPolyhedralConvexAabbCachingShape (ForeignPtr (BtPolyhedralConvexAabbCachingShape)) deriving (Eq,Ord,Show)+withBtPolyhedralConvexAabbCachingShape (BtPolyhedralConvexAabbCachingShape fptr) = withForeignPtr fptr+mkBtPolyhedralConvexAabbCachingShape p = liftM BtPolyhedralConvexAabbCachingShape $ newForeignPtr_ $ castPtr p+{#pointer O_btPolyhedralConvexShape as BtPolyhedralConvexShape foreign newtype nocode#}+newtype BtPolyhedralConvexShape = BtPolyhedralConvexShape (ForeignPtr (BtPolyhedralConvexShape)) deriving (Eq,Ord,Show)+withBtPolyhedralConvexShape (BtPolyhedralConvexShape fptr) = withForeignPtr fptr+mkBtPolyhedralConvexShape p = liftM BtPolyhedralConvexShape $ newForeignPtr_ $ castPtr p+{#pointer O_btPositionAndRadius as BtPositionAndRadius foreign newtype nocode#}+newtype BtPositionAndRadius = BtPositionAndRadius (ForeignPtr (BtPositionAndRadius)) deriving (Eq,Ord,Show)+withBtPositionAndRadius (BtPositionAndRadius fptr) = withForeignPtr fptr+mkBtPositionAndRadius p = liftM BtPositionAndRadius $ newForeignPtr_ $ castPtr p+{#pointer O_btPrimitiveManagerBase as BtPrimitiveManagerBase foreign newtype nocode#}+newtype BtPrimitiveManagerBase = BtPrimitiveManagerBase (ForeignPtr (BtPrimitiveManagerBase)) deriving (Eq,Ord,Show)+withBtPrimitiveManagerBase (BtPrimitiveManagerBase fptr) = withForeignPtr fptr+mkBtPrimitiveManagerBase p = liftM BtPrimitiveManagerBase $ newForeignPtr_ $ castPtr p+{#pointer O_btPrimitiveTriangle as BtPrimitiveTriangle foreign newtype nocode#}+newtype BtPrimitiveTriangle = BtPrimitiveTriangle (ForeignPtr (BtPrimitiveTriangle)) deriving (Eq,Ord,Show)+withBtPrimitiveTriangle (BtPrimitiveTriangle fptr) = withForeignPtr fptr+mkBtPrimitiveTriangle p = liftM BtPrimitiveTriangle $ newForeignPtr_ $ castPtr p+{#pointer O_btQuadWord as BtQuadWord foreign newtype nocode#}+newtype BtQuadWord = BtQuadWord (ForeignPtr (BtQuadWord)) deriving (Eq,Ord,Show)+withBtQuadWord (BtQuadWord fptr) = withForeignPtr fptr+mkBtQuadWord p = liftM BtQuadWord $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvh as BtQuantizedBvh foreign newtype nocode#}+newtype BtQuantizedBvh = BtQuantizedBvh (ForeignPtr (BtQuantizedBvh)) deriving (Eq,Ord,Show)+withBtQuantizedBvh (BtQuantizedBvh fptr) = withForeignPtr fptr+mkBtQuantizedBvh p = liftM BtQuantizedBvh $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvhDoubleData as BtQuantizedBvhDoubleData foreign newtype nocode#}+newtype BtQuantizedBvhDoubleData = BtQuantizedBvhDoubleData (ForeignPtr (BtQuantizedBvhDoubleData)) deriving (Eq,Ord,Show)+withBtQuantizedBvhDoubleData (BtQuantizedBvhDoubleData fptr) = withForeignPtr fptr+mkBtQuantizedBvhDoubleData p = liftM BtQuantizedBvhDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvhFloatData as BtQuantizedBvhFloatData foreign newtype nocode#}+newtype BtQuantizedBvhFloatData = BtQuantizedBvhFloatData (ForeignPtr (BtQuantizedBvhFloatData)) deriving (Eq,Ord,Show)+withBtQuantizedBvhFloatData (BtQuantizedBvhFloatData fptr) = withForeignPtr fptr+mkBtQuantizedBvhFloatData p = liftM BtQuantizedBvhFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvhNode as BtQuantizedBvhNode foreign newtype nocode#}+newtype BtQuantizedBvhNode = BtQuantizedBvhNode (ForeignPtr (BtQuantizedBvhNode)) deriving (Eq,Ord,Show)+withBtQuantizedBvhNode (BtQuantizedBvhNode fptr) = withForeignPtr fptr+mkBtQuantizedBvhNode p = liftM BtQuantizedBvhNode $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvhNodeData as BtQuantizedBvhNodeData foreign newtype nocode#}+newtype BtQuantizedBvhNodeData = BtQuantizedBvhNodeData (ForeignPtr (BtQuantizedBvhNodeData)) deriving (Eq,Ord,Show)+withBtQuantizedBvhNodeData (BtQuantizedBvhNodeData fptr) = withForeignPtr fptr+mkBtQuantizedBvhNodeData p = liftM BtQuantizedBvhNodeData $ newForeignPtr_ $ castPtr p+{#pointer O_btQuantizedBvhTree as BtQuantizedBvhTree foreign newtype nocode#}+newtype BtQuantizedBvhTree = BtQuantizedBvhTree (ForeignPtr (BtQuantizedBvhTree)) deriving (Eq,Ord,Show)+withBtQuantizedBvhTree (BtQuantizedBvhTree fptr) = withForeignPtr fptr+mkBtQuantizedBvhTree p = liftM BtQuantizedBvhTree $ newForeignPtr_ $ castPtr p+{#pointer O_btRaycastVehicle as BtRaycastVehicle foreign newtype nocode#}+newtype BtRaycastVehicle = BtRaycastVehicle (ForeignPtr (BtRaycastVehicle)) deriving (Eq,Ord,Show)+withBtRaycastVehicle (BtRaycastVehicle fptr) = withForeignPtr fptr+mkBtRaycastVehicle p = liftM BtRaycastVehicle $ newForeignPtr_ $ castPtr p+{#pointer O_btRigidBody as BtRigidBody foreign newtype nocode#}+newtype BtRigidBody = BtRigidBody (ForeignPtr (BtRigidBody)) deriving (Eq,Ord,Show)+withBtRigidBody (BtRigidBody fptr) = withForeignPtr fptr+mkBtRigidBody p = liftM BtRigidBody $ newForeignPtr_ $ castPtr p+{#pointer O_btRigidBody_btRigidBodyConstructionInfo as BtRigidBody_btRigidBodyConstructionInfo foreign newtype nocode#}+newtype BtRigidBody_btRigidBodyConstructionInfo = BtRigidBody_btRigidBodyConstructionInfo (ForeignPtr (BtRigidBody_btRigidBodyConstructionInfo)) deriving (Eq,Ord,Show)+withBtRigidBody_btRigidBodyConstructionInfo (BtRigidBody_btRigidBodyConstructionInfo fptr) = withForeignPtr fptr+mkBtRigidBody_btRigidBodyConstructionInfo p = liftM BtRigidBody_btRigidBodyConstructionInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btRigidBodyDoubleData as BtRigidBodyDoubleData foreign newtype nocode#}+newtype BtRigidBodyDoubleData = BtRigidBodyDoubleData (ForeignPtr (BtRigidBodyDoubleData)) deriving (Eq,Ord,Show)+withBtRigidBodyDoubleData (BtRigidBodyDoubleData fptr) = withForeignPtr fptr+mkBtRigidBodyDoubleData p = liftM BtRigidBodyDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btRigidBodyFloatData as BtRigidBodyFloatData foreign newtype nocode#}+newtype BtRigidBodyFloatData = BtRigidBodyFloatData (ForeignPtr (BtRigidBodyFloatData)) deriving (Eq,Ord,Show)+withBtRigidBodyFloatData (BtRigidBodyFloatData fptr) = withForeignPtr fptr+mkBtRigidBodyFloatData p = liftM BtRigidBodyFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btRotationalLimitMotor as BtRotationalLimitMotor foreign newtype nocode#}+newtype BtRotationalLimitMotor = BtRotationalLimitMotor (ForeignPtr (BtRotationalLimitMotor)) deriving (Eq,Ord,Show)+withBtRotationalLimitMotor (BtRotationalLimitMotor fptr) = withForeignPtr fptr+mkBtRotationalLimitMotor p = liftM BtRotationalLimitMotor $ newForeignPtr_ $ castPtr p+{#pointer O_btScaledBvhTriangleMeshShape as BtScaledBvhTriangleMeshShape foreign newtype nocode#}+newtype BtScaledBvhTriangleMeshShape = BtScaledBvhTriangleMeshShape (ForeignPtr (BtScaledBvhTriangleMeshShape)) deriving (Eq,Ord,Show)+withBtScaledBvhTriangleMeshShape (BtScaledBvhTriangleMeshShape fptr) = withForeignPtr fptr+mkBtScaledBvhTriangleMeshShape p = liftM BtScaledBvhTriangleMeshShape $ newForeignPtr_ $ castPtr p+{#pointer O_btScaledTriangleMeshShapeData as BtScaledTriangleMeshShapeData foreign newtype nocode#}+newtype BtScaledTriangleMeshShapeData = BtScaledTriangleMeshShapeData (ForeignPtr (BtScaledTriangleMeshShapeData)) deriving (Eq,Ord,Show)+withBtScaledTriangleMeshShapeData (BtScaledTriangleMeshShapeData fptr) = withForeignPtr fptr+mkBtScaledTriangleMeshShapeData p = liftM BtScaledTriangleMeshShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btSequentialImpulseConstraintSolver as BtSequentialImpulseConstraintSolver foreign newtype nocode#}+newtype BtSequentialImpulseConstraintSolver = BtSequentialImpulseConstraintSolver (ForeignPtr (BtSequentialImpulseConstraintSolver)) deriving (Eq,Ord,Show)+withBtSequentialImpulseConstraintSolver (BtSequentialImpulseConstraintSolver fptr) = withForeignPtr fptr+mkBtSequentialImpulseConstraintSolver p = liftM BtSequentialImpulseConstraintSolver $ newForeignPtr_ $ castPtr p+{#pointer O_btSerializer as BtSerializer foreign newtype nocode#}+newtype BtSerializer = BtSerializer (ForeignPtr (BtSerializer)) deriving (Eq,Ord,Show)+withBtSerializer (BtSerializer fptr) = withForeignPtr fptr+mkBtSerializer p = liftM BtSerializer $ newForeignPtr_ $ castPtr p+{#pointer O_btShortIntIndexData as BtShortIntIndexData foreign newtype nocode#}+newtype BtShortIntIndexData = BtShortIntIndexData (ForeignPtr (BtShortIntIndexData)) deriving (Eq,Ord,Show)+withBtShortIntIndexData (BtShortIntIndexData fptr) = withForeignPtr fptr+mkBtShortIntIndexData p = liftM BtShortIntIndexData $ newForeignPtr_ $ castPtr p+{#pointer O_btShortIntIndexTripletData as BtShortIntIndexTripletData foreign newtype nocode#}+newtype BtShortIntIndexTripletData = BtShortIntIndexTripletData (ForeignPtr (BtShortIntIndexTripletData)) deriving (Eq,Ord,Show)+withBtShortIntIndexTripletData (BtShortIntIndexTripletData fptr) = withForeignPtr fptr+mkBtShortIntIndexTripletData p = liftM BtShortIntIndexTripletData $ newForeignPtr_ $ castPtr p+{#pointer O_btSimpleBroadphase as BtSimpleBroadphase foreign newtype nocode#}+newtype BtSimpleBroadphase = BtSimpleBroadphase (ForeignPtr (BtSimpleBroadphase)) deriving (Eq,Ord,Show)+withBtSimpleBroadphase (BtSimpleBroadphase fptr) = withForeignPtr fptr+mkBtSimpleBroadphase p = liftM BtSimpleBroadphase $ newForeignPtr_ $ castPtr p+{#pointer O_btSimpleBroadphaseProxy as BtSimpleBroadphaseProxy foreign newtype nocode#}+newtype BtSimpleBroadphaseProxy = BtSimpleBroadphaseProxy (ForeignPtr (BtSimpleBroadphaseProxy)) deriving (Eq,Ord,Show)+withBtSimpleBroadphaseProxy (BtSimpleBroadphaseProxy fptr) = withForeignPtr fptr+mkBtSimpleBroadphaseProxy p = liftM BtSimpleBroadphaseProxy $ newForeignPtr_ $ castPtr p+{#pointer O_btSimpleDynamicsWorld as BtSimpleDynamicsWorld foreign newtype nocode#}+newtype BtSimpleDynamicsWorld = BtSimpleDynamicsWorld (ForeignPtr (BtSimpleDynamicsWorld)) deriving (Eq,Ord,Show)+withBtSimpleDynamicsWorld (BtSimpleDynamicsWorld fptr) = withForeignPtr fptr+mkBtSimpleDynamicsWorld p = liftM BtSimpleDynamicsWorld $ newForeignPtr_ $ castPtr p+{#pointer O_btSliderConstraint as BtSliderConstraint foreign newtype nocode#}+newtype BtSliderConstraint = BtSliderConstraint (ForeignPtr (BtSliderConstraint)) deriving (Eq,Ord,Show)+withBtSliderConstraint (BtSliderConstraint fptr) = withForeignPtr fptr+mkBtSliderConstraint p = liftM BtSliderConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btSliderConstraintData as BtSliderConstraintData foreign newtype nocode#}+newtype BtSliderConstraintData = BtSliderConstraintData (ForeignPtr (BtSliderConstraintData)) deriving (Eq,Ord,Show)+withBtSliderConstraintData (BtSliderConstraintData fptr) = withForeignPtr fptr+mkBtSliderConstraintData p = liftM BtSliderConstraintData $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody as BtSoftBody foreign newtype nocode#}+newtype BtSoftBody = BtSoftBody (ForeignPtr (BtSoftBody)) deriving (Eq,Ord,Show)+withBtSoftBody (BtSoftBody fptr) = withForeignPtr fptr+mkBtSoftBody p = liftM BtSoftBody $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBodyHelpers as BtSoftBodyHelpers foreign newtype nocode#}+newtype BtSoftBodyHelpers = BtSoftBodyHelpers (ForeignPtr (BtSoftBodyHelpers)) deriving (Eq,Ord,Show)+withBtSoftBodyHelpers (BtSoftBodyHelpers fptr) = withForeignPtr fptr+mkBtSoftBodyHelpers p = liftM BtSoftBodyHelpers $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBodyRigidBodyCollisionConfiguration as BtSoftBodyRigidBodyCollisionConfiguration foreign newtype nocode#}+newtype BtSoftBodyRigidBodyCollisionConfiguration = BtSoftBodyRigidBodyCollisionConfiguration (ForeignPtr (BtSoftBodyRigidBodyCollisionConfiguration)) deriving (Eq,Ord,Show)+withBtSoftBodyRigidBodyCollisionConfiguration (BtSoftBodyRigidBodyCollisionConfiguration fptr) = withForeignPtr fptr+mkBtSoftBodyRigidBodyCollisionConfiguration p = liftM BtSoftBodyRigidBodyCollisionConfiguration $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBodyWorldInfo as BtSoftBodyWorldInfo foreign newtype nocode#}+newtype BtSoftBodyWorldInfo = BtSoftBodyWorldInfo (ForeignPtr (BtSoftBodyWorldInfo)) deriving (Eq,Ord,Show)+withBtSoftBodyWorldInfo (BtSoftBodyWorldInfo fptr) = withForeignPtr fptr+mkBtSoftBodyWorldInfo p = liftM BtSoftBodyWorldInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftRigidDynamicsWorld as BtSoftRigidDynamicsWorld foreign newtype nocode#}+newtype BtSoftRigidDynamicsWorld = BtSoftRigidDynamicsWorld (ForeignPtr (BtSoftRigidDynamicsWorld)) deriving (Eq,Ord,Show)+withBtSoftRigidDynamicsWorld (BtSoftRigidDynamicsWorld fptr) = withForeignPtr fptr+mkBtSoftRigidDynamicsWorld p = liftM BtSoftRigidDynamicsWorld $ newForeignPtr_ $ castPtr p+{#pointer O_btSolverBodyObsolete as BtSolverBodyObsolete foreign newtype nocode#}+newtype BtSolverBodyObsolete = BtSolverBodyObsolete (ForeignPtr (BtSolverBodyObsolete)) deriving (Eq,Ord,Show)+withBtSolverBodyObsolete (BtSolverBodyObsolete fptr) = withForeignPtr fptr+mkBtSolverBodyObsolete p = liftM BtSolverBodyObsolete $ newForeignPtr_ $ castPtr p+{#pointer O_btSolverConstraint as BtSolverConstraint foreign newtype nocode#}+newtype BtSolverConstraint = BtSolverConstraint (ForeignPtr (BtSolverConstraint)) deriving (Eq,Ord,Show)+withBtSolverConstraint (BtSolverConstraint fptr) = withForeignPtr fptr+mkBtSolverConstraint p = liftM BtSolverConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btSortedOverlappingPairCache as BtSortedOverlappingPairCache foreign newtype nocode#}+newtype BtSortedOverlappingPairCache = BtSortedOverlappingPairCache (ForeignPtr (BtSortedOverlappingPairCache)) deriving (Eq,Ord,Show)+withBtSortedOverlappingPairCache (BtSortedOverlappingPairCache fptr) = withForeignPtr fptr+mkBtSortedOverlappingPairCache p = liftM BtSortedOverlappingPairCache $ newForeignPtr_ $ castPtr p+{#pointer O_btSparseSdf_3_ as BtSparseSdf_3_ foreign newtype nocode#}+newtype BtSparseSdf_3_ = BtSparseSdf_3_ (ForeignPtr (BtSparseSdf_3_)) deriving (Eq,Ord,Show)+withBtSparseSdf_3_ (BtSparseSdf_3_ fptr) = withForeignPtr fptr+mkBtSparseSdf_3_ p = liftM BtSparseSdf_3_ $ newForeignPtr_ $ castPtr p+{#pointer O_btSphereShape as BtSphereShape foreign newtype nocode#}+newtype BtSphereShape = BtSphereShape (ForeignPtr (BtSphereShape)) deriving (Eq,Ord,Show)+withBtSphereShape (BtSphereShape fptr) = withForeignPtr fptr+mkBtSphereShape p = liftM BtSphereShape $ newForeignPtr_ $ castPtr p+{#pointer O_btSphereSphereCollisionAlgorithm as BtSphereSphereCollisionAlgorithm foreign newtype nocode#}+newtype BtSphereSphereCollisionAlgorithm = BtSphereSphereCollisionAlgorithm (ForeignPtr (BtSphereSphereCollisionAlgorithm)) deriving (Eq,Ord,Show)+withBtSphereSphereCollisionAlgorithm (BtSphereSphereCollisionAlgorithm fptr) = withForeignPtr fptr+mkBtSphereSphereCollisionAlgorithm p = liftM BtSphereSphereCollisionAlgorithm $ newForeignPtr_ $ castPtr p+{#pointer O_btStackAlloc as BtStackAlloc foreign newtype nocode#}+newtype BtStackAlloc = BtStackAlloc (ForeignPtr (BtStackAlloc)) deriving (Eq,Ord,Show)+withBtStackAlloc (BtStackAlloc fptr) = withForeignPtr fptr+mkBtStackAlloc p = liftM BtStackAlloc $ newForeignPtr_ $ castPtr p+{#pointer O_btStaticPlaneShape as BtStaticPlaneShape foreign newtype nocode#}+newtype BtStaticPlaneShape = BtStaticPlaneShape (ForeignPtr (BtStaticPlaneShape)) deriving (Eq,Ord,Show)+withBtStaticPlaneShape (BtStaticPlaneShape fptr) = withForeignPtr fptr+mkBtStaticPlaneShape p = liftM BtStaticPlaneShape $ newForeignPtr_ $ castPtr p+{#pointer O_btStaticPlaneShapeData as BtStaticPlaneShapeData foreign newtype nocode#}+newtype BtStaticPlaneShapeData = BtStaticPlaneShapeData (ForeignPtr (BtStaticPlaneShapeData)) deriving (Eq,Ord,Show)+withBtStaticPlaneShapeData (BtStaticPlaneShapeData fptr) = withForeignPtr fptr+mkBtStaticPlaneShapeData p = liftM BtStaticPlaneShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btStorageResult as BtStorageResult foreign newtype nocode#}+newtype BtStorageResult = BtStorageResult (ForeignPtr (BtStorageResult)) deriving (Eq,Ord,Show)+withBtStorageResult (BtStorageResult fptr) = withForeignPtr fptr+mkBtStorageResult p = liftM BtStorageResult $ newForeignPtr_ $ castPtr p+{#pointer O_btStridingMeshInterface as BtStridingMeshInterface foreign newtype nocode#}+newtype BtStridingMeshInterface = BtStridingMeshInterface (ForeignPtr (BtStridingMeshInterface)) deriving (Eq,Ord,Show)+withBtStridingMeshInterface (BtStridingMeshInterface fptr) = withForeignPtr fptr+mkBtStridingMeshInterface p = liftM BtStridingMeshInterface $ newForeignPtr_ $ castPtr p+{#pointer O_btStridingMeshInterfaceData as BtStridingMeshInterfaceData foreign newtype nocode#}+newtype BtStridingMeshInterfaceData = BtStridingMeshInterfaceData (ForeignPtr (BtStridingMeshInterfaceData)) deriving (Eq,Ord,Show)+withBtStridingMeshInterfaceData (BtStridingMeshInterfaceData fptr) = withForeignPtr fptr+mkBtStridingMeshInterfaceData p = liftM BtStridingMeshInterfaceData $ newForeignPtr_ $ castPtr p+{#pointer O_btSubSimplexClosestResult as BtSubSimplexClosestResult foreign newtype nocode#}+newtype BtSubSimplexClosestResult = BtSubSimplexClosestResult (ForeignPtr (BtSubSimplexClosestResult)) deriving (Eq,Ord,Show)+withBtSubSimplexClosestResult (BtSubSimplexClosestResult fptr) = withForeignPtr fptr+mkBtSubSimplexClosestResult p = liftM BtSubSimplexClosestResult $ newForeignPtr_ $ castPtr p+{#pointer O_btTetrahedronShapeEx as BtTetrahedronShapeEx foreign newtype nocode#}+newtype BtTetrahedronShapeEx = BtTetrahedronShapeEx (ForeignPtr (BtTetrahedronShapeEx)) deriving (Eq,Ord,Show)+withBtTetrahedronShapeEx (BtTetrahedronShapeEx fptr) = withForeignPtr fptr+mkBtTetrahedronShapeEx p = liftM BtTetrahedronShapeEx $ newForeignPtr_ $ castPtr p+{#pointer O_btTransformDoubleData as BtTransformDoubleData foreign newtype nocode#}+newtype BtTransformDoubleData = BtTransformDoubleData (ForeignPtr (BtTransformDoubleData)) deriving (Eq,Ord,Show)+withBtTransformDoubleData (BtTransformDoubleData fptr) = withForeignPtr fptr+mkBtTransformDoubleData p = liftM BtTransformDoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btTransformFloatData as BtTransformFloatData foreign newtype nocode#}+newtype BtTransformFloatData = BtTransformFloatData (ForeignPtr (BtTransformFloatData)) deriving (Eq,Ord,Show)+withBtTransformFloatData (BtTransformFloatData fptr) = withForeignPtr fptr+mkBtTransformFloatData p = liftM BtTransformFloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btTransformUtil as BtTransformUtil foreign newtype nocode#}+newtype BtTransformUtil = BtTransformUtil (ForeignPtr (BtTransformUtil)) deriving (Eq,Ord,Show)+withBtTransformUtil (BtTransformUtil fptr) = withForeignPtr fptr+mkBtTransformUtil p = liftM BtTransformUtil $ newForeignPtr_ $ castPtr p+{#pointer O_btTranslationalLimitMotor as BtTranslationalLimitMotor foreign newtype nocode#}+newtype BtTranslationalLimitMotor = BtTranslationalLimitMotor (ForeignPtr (BtTranslationalLimitMotor)) deriving (Eq,Ord,Show)+withBtTranslationalLimitMotor (BtTranslationalLimitMotor fptr) = withForeignPtr fptr+mkBtTranslationalLimitMotor p = liftM BtTranslationalLimitMotor $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleCallback as BtTriangleCallback foreign newtype nocode#}+newtype BtTriangleCallback = BtTriangleCallback (ForeignPtr (BtTriangleCallback)) deriving (Eq,Ord,Show)+withBtTriangleCallback (BtTriangleCallback fptr) = withForeignPtr fptr+mkBtTriangleCallback p = liftM BtTriangleCallback $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleIndexVertexArray as BtTriangleIndexVertexArray foreign newtype nocode#}+newtype BtTriangleIndexVertexArray = BtTriangleIndexVertexArray (ForeignPtr (BtTriangleIndexVertexArray)) deriving (Eq,Ord,Show)+withBtTriangleIndexVertexArray (BtTriangleIndexVertexArray fptr) = withForeignPtr fptr+mkBtTriangleIndexVertexArray p = liftM BtTriangleIndexVertexArray $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleInfo as BtTriangleInfo foreign newtype nocode#}+newtype BtTriangleInfo = BtTriangleInfo (ForeignPtr (BtTriangleInfo)) deriving (Eq,Ord,Show)+withBtTriangleInfo (BtTriangleInfo fptr) = withForeignPtr fptr+mkBtTriangleInfo p = liftM BtTriangleInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleInfoData as BtTriangleInfoData foreign newtype nocode#}+newtype BtTriangleInfoData = BtTriangleInfoData (ForeignPtr (BtTriangleInfoData)) deriving (Eq,Ord,Show)+withBtTriangleInfoData (BtTriangleInfoData fptr) = withForeignPtr fptr+mkBtTriangleInfoData p = liftM BtTriangleInfoData $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleInfoMap as BtTriangleInfoMap foreign newtype nocode#}+newtype BtTriangleInfoMap = BtTriangleInfoMap (ForeignPtr (BtTriangleInfoMap)) deriving (Eq,Ord,Show)+withBtTriangleInfoMap (BtTriangleInfoMap fptr) = withForeignPtr fptr+mkBtTriangleInfoMap p = liftM BtTriangleInfoMap $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleInfoMapData as BtTriangleInfoMapData foreign newtype nocode#}+newtype BtTriangleInfoMapData = BtTriangleInfoMapData (ForeignPtr (BtTriangleInfoMapData)) deriving (Eq,Ord,Show)+withBtTriangleInfoMapData (BtTriangleInfoMapData fptr) = withForeignPtr fptr+mkBtTriangleInfoMapData p = liftM BtTriangleInfoMapData $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleMesh as BtTriangleMesh foreign newtype nocode#}+newtype BtTriangleMesh = BtTriangleMesh (ForeignPtr (BtTriangleMesh)) deriving (Eq,Ord,Show)+withBtTriangleMesh (BtTriangleMesh fptr) = withForeignPtr fptr+mkBtTriangleMesh p = liftM BtTriangleMesh $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleMeshShape as BtTriangleMeshShape foreign newtype nocode#}+newtype BtTriangleMeshShape = BtTriangleMeshShape (ForeignPtr (BtTriangleMeshShape)) deriving (Eq,Ord,Show)+withBtTriangleMeshShape (BtTriangleMeshShape fptr) = withForeignPtr fptr+mkBtTriangleMeshShape p = liftM BtTriangleMeshShape $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleMeshShapeData as BtTriangleMeshShapeData foreign newtype nocode#}+newtype BtTriangleMeshShapeData = BtTriangleMeshShapeData (ForeignPtr (BtTriangleMeshShapeData)) deriving (Eq,Ord,Show)+withBtTriangleMeshShapeData (BtTriangleMeshShapeData fptr) = withForeignPtr fptr+mkBtTriangleMeshShapeData p = liftM BtTriangleMeshShapeData $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleShape as BtTriangleShape foreign newtype nocode#}+newtype BtTriangleShape = BtTriangleShape (ForeignPtr (BtTriangleShape)) deriving (Eq,Ord,Show)+withBtTriangleShape (BtTriangleShape fptr) = withForeignPtr fptr+mkBtTriangleShape p = liftM BtTriangleShape $ newForeignPtr_ $ castPtr p+{#pointer O_btTriangleShapeEx as BtTriangleShapeEx foreign newtype nocode#}+newtype BtTriangleShapeEx = BtTriangleShapeEx (ForeignPtr (BtTriangleShapeEx)) deriving (Eq,Ord,Show)+withBtTriangleShapeEx (BtTriangleShapeEx fptr) = withForeignPtr fptr+mkBtTriangleShapeEx p = liftM BtTriangleShapeEx $ newForeignPtr_ $ castPtr p+{#pointer O_btTypedConstraint as BtTypedConstraint foreign newtype nocode#}+newtype BtTypedConstraint = BtTypedConstraint (ForeignPtr (BtTypedConstraint)) deriving (Eq,Ord,Show)+withBtTypedConstraint (BtTypedConstraint fptr) = withForeignPtr fptr+mkBtTypedConstraint p = liftM BtTypedConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btTypedConstraintData as BtTypedConstraintData foreign newtype nocode#}+newtype BtTypedConstraintData = BtTypedConstraintData (ForeignPtr (BtTypedConstraintData)) deriving (Eq,Ord,Show)+withBtTypedConstraintData (BtTypedConstraintData fptr) = withForeignPtr fptr+mkBtTypedConstraintData p = liftM BtTypedConstraintData $ newForeignPtr_ $ castPtr p+{#pointer O_btTypedObject as BtTypedObject foreign newtype nocode#}+newtype BtTypedObject = BtTypedObject (ForeignPtr (BtTypedObject)) deriving (Eq,Ord,Show)+withBtTypedObject (BtTypedObject fptr) = withForeignPtr fptr+mkBtTypedObject p = liftM BtTypedObject $ newForeignPtr_ $ castPtr p+{#pointer O_btUniformScalingShape as BtUniformScalingShape foreign newtype nocode#}+newtype BtUniformScalingShape = BtUniformScalingShape (ForeignPtr (BtUniformScalingShape)) deriving (Eq,Ord,Show)+withBtUniformScalingShape (BtUniformScalingShape fptr) = withForeignPtr fptr+mkBtUniformScalingShape p = liftM BtUniformScalingShape $ newForeignPtr_ $ castPtr p+{#pointer O_btUniversalConstraint as BtUniversalConstraint foreign newtype nocode#}+newtype BtUniversalConstraint = BtUniversalConstraint (ForeignPtr (BtUniversalConstraint)) deriving (Eq,Ord,Show)+withBtUniversalConstraint (BtUniversalConstraint fptr) = withForeignPtr fptr+mkBtUniversalConstraint p = liftM BtUniversalConstraint $ newForeignPtr_ $ castPtr p+{#pointer O_btUsageBitfield as BtUsageBitfield foreign newtype nocode#}+newtype BtUsageBitfield = BtUsageBitfield (ForeignPtr (BtUsageBitfield)) deriving (Eq,Ord,Show)+withBtUsageBitfield (BtUsageBitfield fptr) = withForeignPtr fptr+mkBtUsageBitfield p = liftM BtUsageBitfield $ newForeignPtr_ $ castPtr p+{#pointer O_btVector3DoubleData as BtVector3DoubleData foreign newtype nocode#}+newtype BtVector3DoubleData = BtVector3DoubleData (ForeignPtr (BtVector3DoubleData)) deriving (Eq,Ord,Show)+withBtVector3DoubleData (BtVector3DoubleData fptr) = withForeignPtr fptr+mkBtVector3DoubleData p = liftM BtVector3DoubleData $ newForeignPtr_ $ castPtr p+{#pointer O_btVector3FloatData as BtVector3FloatData foreign newtype nocode#}+newtype BtVector3FloatData = BtVector3FloatData (ForeignPtr (BtVector3FloatData)) deriving (Eq,Ord,Show)+withBtVector3FloatData (BtVector3FloatData fptr) = withForeignPtr fptr+mkBtVector3FloatData p = liftM BtVector3FloatData $ newForeignPtr_ $ castPtr p+{#pointer O_btVehicleRaycaster as BtVehicleRaycaster foreign newtype nocode#}+newtype BtVehicleRaycaster = BtVehicleRaycaster (ForeignPtr (BtVehicleRaycaster)) deriving (Eq,Ord,Show)+withBtVehicleRaycaster (BtVehicleRaycaster fptr) = withForeignPtr fptr+mkBtVehicleRaycaster p = liftM BtVehicleRaycaster $ newForeignPtr_ $ castPtr p+{#pointer O_btVehicleRaycaster_btVehicleRaycasterResult as BtVehicleRaycaster_btVehicleRaycasterResult foreign newtype nocode#}+newtype BtVehicleRaycaster_btVehicleRaycasterResult = BtVehicleRaycaster_btVehicleRaycasterResult (ForeignPtr (BtVehicleRaycaster_btVehicleRaycasterResult)) deriving (Eq,Ord,Show)+withBtVehicleRaycaster_btVehicleRaycasterResult (BtVehicleRaycaster_btVehicleRaycasterResult fptr) = withForeignPtr fptr+mkBtVehicleRaycaster_btVehicleRaycasterResult p = liftM BtVehicleRaycaster_btVehicleRaycasterResult $ newForeignPtr_ $ castPtr p+{#pointer O_btRaycastVehicle_btVehicleTuning as BtRaycastVehicle_btVehicleTuning foreign newtype nocode#}+newtype BtRaycastVehicle_btVehicleTuning = BtRaycastVehicle_btVehicleTuning (ForeignPtr (BtRaycastVehicle_btVehicleTuning)) deriving (Eq,Ord,Show)+withBtRaycastVehicle_btVehicleTuning (BtRaycastVehicle_btVehicleTuning fptr) = withForeignPtr fptr+mkBtRaycastVehicle_btVehicleTuning p = liftM BtRaycastVehicle_btVehicleTuning $ newForeignPtr_ $ castPtr p+{#pointer O_btVoronoiSimplexSolver as BtVoronoiSimplexSolver foreign newtype nocode#}+newtype BtVoronoiSimplexSolver = BtVoronoiSimplexSolver (ForeignPtr (BtVoronoiSimplexSolver)) deriving (Eq,Ord,Show)+withBtVoronoiSimplexSolver (BtVoronoiSimplexSolver fptr) = withForeignPtr fptr+mkBtVoronoiSimplexSolver p = liftM BtVoronoiSimplexSolver $ newForeignPtr_ $ castPtr p+{#pointer O_btWheelInfo as BtWheelInfo foreign newtype nocode#}+newtype BtWheelInfo = BtWheelInfo (ForeignPtr (BtWheelInfo)) deriving (Eq,Ord,Show)+withBtWheelInfo (BtWheelInfo fptr) = withForeignPtr fptr+mkBtWheelInfo p = liftM BtWheelInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btWheelInfoConstructionInfo as BtWheelInfoConstructionInfo foreign newtype nocode#}+newtype BtWheelInfoConstructionInfo = BtWheelInfoConstructionInfo (ForeignPtr (BtWheelInfoConstructionInfo)) deriving (Eq,Ord,Show)+withBtWheelInfoConstructionInfo (BtWheelInfoConstructionInfo fptr) = withForeignPtr fptr+mkBtWheelInfoConstructionInfo p = liftM BtWheelInfoConstructionInfo $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_eAeroModel as BtSoftBody_eAeroModel foreign newtype nocode#}+newtype BtSoftBody_eAeroModel = BtSoftBody_eAeroModel (ForeignPtr (BtSoftBody_eAeroModel)) deriving (Eq,Ord,Show)+withBtSoftBody_eAeroModel (BtSoftBody_eAeroModel fptr) = withForeignPtr fptr+mkBtSoftBody_eAeroModel p = liftM BtSoftBody_eAeroModel $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_eFeature as BtSoftBody_eFeature foreign newtype nocode#}+newtype BtSoftBody_eFeature = BtSoftBody_eFeature (ForeignPtr (BtSoftBody_eFeature)) deriving (Eq,Ord,Show)+withBtSoftBody_eFeature (BtSoftBody_eFeature fptr) = withForeignPtr fptr+mkBtSoftBody_eFeature p = liftM BtSoftBody_eFeature $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_ePSolver as BtSoftBody_ePSolver foreign newtype nocode#}+newtype BtSoftBody_ePSolver = BtSoftBody_ePSolver (ForeignPtr (BtSoftBody_ePSolver)) deriving (Eq,Ord,Show)+withBtSoftBody_ePSolver (BtSoftBody_ePSolver fptr) = withForeignPtr fptr+mkBtSoftBody_ePSolver p = liftM BtSoftBody_ePSolver $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_eSolverPresets as BtSoftBody_eSolverPresets foreign newtype nocode#}+newtype BtSoftBody_eSolverPresets = BtSoftBody_eSolverPresets (ForeignPtr (BtSoftBody_eSolverPresets)) deriving (Eq,Ord,Show)+withBtSoftBody_eSolverPresets (BtSoftBody_eSolverPresets fptr) = withForeignPtr fptr+mkBtSoftBody_eSolverPresets p = liftM BtSoftBody_eSolverPresets $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_Joint_eType as BtSoftBody_Joint_eType foreign newtype nocode#}+newtype BtSoftBody_Joint_eType = BtSoftBody_Joint_eType (ForeignPtr (BtSoftBody_Joint_eType)) deriving (Eq,Ord,Show)+withBtSoftBody_Joint_eType (BtSoftBody_Joint_eType fptr) = withForeignPtr fptr+mkBtSoftBody_Joint_eType p = liftM BtSoftBody_Joint_eType $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_eVSolver as BtSoftBody_eVSolver foreign newtype nocode#}+newtype BtSoftBody_eVSolver = BtSoftBody_eVSolver (ForeignPtr (BtSoftBody_eVSolver)) deriving (Eq,Ord,Show)+withBtSoftBody_eVSolver (BtSoftBody_eVSolver fptr) = withForeignPtr fptr+mkBtSoftBody_eVSolver p = liftM BtSoftBody_eVSolver $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_fCollision as BtSoftBody_fCollision foreign newtype nocode#}+newtype BtSoftBody_fCollision = BtSoftBody_fCollision (ForeignPtr (BtSoftBody_fCollision)) deriving (Eq,Ord,Show)+withBtSoftBody_fCollision (BtSoftBody_fCollision fptr) = withForeignPtr fptr+mkBtSoftBody_fCollision p = liftM BtSoftBody_fCollision $ newForeignPtr_ $ castPtr p+{#pointer O_fDrawFlags as FDrawFlags foreign newtype nocode#}+newtype FDrawFlags = FDrawFlags (ForeignPtr (FDrawFlags)) deriving (Eq,Ord,Show)+withFDrawFlags (FDrawFlags fptr) = withForeignPtr fptr+mkFDrawFlags p = liftM FDrawFlags $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_fMaterial as BtSoftBody_fMaterial foreign newtype nocode#}+newtype BtSoftBody_fMaterial = BtSoftBody_fMaterial (ForeignPtr (BtSoftBody_fMaterial)) deriving (Eq,Ord,Show)+withBtSoftBody_fMaterial (BtSoftBody_fMaterial fptr) = withForeignPtr fptr+mkBtSoftBody_fMaterial p = liftM BtSoftBody_fMaterial $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_sCti as BtSoftBody_sCti foreign newtype nocode#}+newtype BtSoftBody_sCti = BtSoftBody_sCti (ForeignPtr (BtSoftBody_sCti)) deriving (Eq,Ord,Show)+withBtSoftBody_sCti (BtSoftBody_sCti fptr) = withForeignPtr fptr+mkBtSoftBody_sCti p = liftM BtSoftBody_sCti $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_sMedium as BtSoftBody_sMedium foreign newtype nocode#}+newtype BtSoftBody_sMedium = BtSoftBody_sMedium (ForeignPtr (BtSoftBody_sMedium)) deriving (Eq,Ord,Show)+withBtSoftBody_sMedium (BtSoftBody_sMedium fptr) = withForeignPtr fptr+mkBtSoftBody_sMedium p = liftM BtSoftBody_sMedium $ newForeignPtr_ $ castPtr p+{#pointer O_btSoftBody_sRayCast as BtSoftBody_sRayCast foreign newtype nocode#}+newtype BtSoftBody_sRayCast = BtSoftBody_sRayCast (ForeignPtr (BtSoftBody_sRayCast)) deriving (Eq,Ord,Show)+withBtSoftBody_sRayCast (BtSoftBody_sRayCast fptr) = withForeignPtr fptr+mkBtSoftBody_sRayCast p = liftM BtSoftBody_sRayCast $ newForeignPtr_ $ castPtr p+{#pointer O_btGjkEpaSolver2_sResults as BtGjkEpaSolver2_sResults foreign newtype nocode#}+newtype BtGjkEpaSolver2_sResults = BtGjkEpaSolver2_sResults (ForeignPtr (BtGjkEpaSolver2_sResults)) deriving (Eq,Ord,Show)+withBtGjkEpaSolver2_sResults (BtGjkEpaSolver2_sResults fptr) = withForeignPtr fptr+mkBtGjkEpaSolver2_sResults p = liftM BtGjkEpaSolver2_sResults $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_sStkCLN as BtDbvt_sStkCLN foreign newtype nocode#}+newtype BtDbvt_sStkCLN = BtDbvt_sStkCLN (ForeignPtr (BtDbvt_sStkCLN)) deriving (Eq,Ord,Show)+withBtDbvt_sStkCLN (BtDbvt_sStkCLN fptr) = withForeignPtr fptr+mkBtDbvt_sStkCLN p = liftM BtDbvt_sStkCLN $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_sStkNN as BtDbvt_sStkNN foreign newtype nocode#}+newtype BtDbvt_sStkNN = BtDbvt_sStkNN (ForeignPtr (BtDbvt_sStkNN)) deriving (Eq,Ord,Show)+withBtDbvt_sStkNN (BtDbvt_sStkNN fptr) = withForeignPtr fptr+mkBtDbvt_sStkNN p = liftM BtDbvt_sStkNN $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_sStkNP as BtDbvt_sStkNP foreign newtype nocode#}+newtype BtDbvt_sStkNP = BtDbvt_sStkNP (ForeignPtr (BtDbvt_sStkNP)) deriving (Eq,Ord,Show)+withBtDbvt_sStkNP (BtDbvt_sStkNP fptr) = withForeignPtr fptr+mkBtDbvt_sStkNP p = liftM BtDbvt_sStkNP $ newForeignPtr_ $ castPtr p+{#pointer O_btDbvt_sStkNPS as BtDbvt_sStkNPS foreign newtype nocode#}+newtype BtDbvt_sStkNPS = BtDbvt_sStkNPS (ForeignPtr (BtDbvt_sStkNPS)) deriving (Eq,Ord,Show)+withBtDbvt_sStkNPS (BtDbvt_sStkNPS fptr) = withForeignPtr fptr+mkBtDbvt_sStkNPS p = liftM BtDbvt_sStkNPS $ newForeignPtr_ $ castPtr p+-- * Class Hierarchy+class BtClass p where+  withBt :: p -> (Ptr a -> IO b) -> IO b+  btToPtr :: p -> Ptr ()+class BtClass p => BtSoftBody_AnchorClass p+instance BtSoftBody_AnchorClass BtSoftBody_Anchor+instance BtClass BtSoftBody_Anchor where+  withBt (BtSoftBody_Anchor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Anchor p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BT_BOX_BOX_TRANSFORM_CACHEClass p+instance BT_BOX_BOX_TRANSFORM_CACHEClass BT_BOX_BOX_TRANSFORM_CACHE+instance BtClass BT_BOX_BOX_TRANSFORM_CACHE where+  withBt (BT_BOX_BOX_TRANSFORM_CACHE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BT_BOX_BOX_TRANSFORM_CACHE p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BT_QUANTIZED_BVH_NODEClass p+instance BT_QUANTIZED_BVH_NODEClass BT_QUANTIZED_BVH_NODE+instance BtClass BT_QUANTIZED_BVH_NODE where+  withBt (BT_QUANTIZED_BVH_NODE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BT_QUANTIZED_BVH_NODE p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_BodyClass p+instance BtSoftBody_BodyClass BtSoftBody_Body+instance BtClass BtSoftBody_Body where+  withBt (BtSoftBody_Body p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Body p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => CProfileIteratorClass p+instance CProfileIteratorClass CProfileIterator+instance BtClass CProfileIterator where+  withBt (CProfileIterator p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (CProfileIterator p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => CProfileManagerClass p+instance CProfileManagerClass CProfileManager+instance BtClass CProfileManager where+  withBt (CProfileManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (CProfileManager p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => CProfileNodeClass p+instance CProfileNodeClass CProfileNode+instance BtClass CProfileNode where+  withBt (CProfileNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (CProfileNode p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => CProfileSampleClass p+instance CProfileSampleClass CProfileSample+instance BtClass CProfileSample where+  withBt (CProfileSample p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (CProfileSample p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDiscreteCollisionDetectorInterface_ClosestPointInputClass p+instance BtDiscreteCollisionDetectorInterface_ClosestPointInputClass BtDiscreteCollisionDetectorInterface_ClosestPointInput+instance BtClass BtDiscreteCollisionDetectorInterface_ClosestPointInput where+  withBt (BtDiscreteCollisionDetectorInterface_ClosestPointInput p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDiscreteCollisionDetectorInterface_ClosestPointInput p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ClusterClass p+instance BtSoftBody_ClusterClass BtSoftBody_Cluster+instance BtClass BtSoftBody_Cluster where+  withBt (BtSoftBody_Cluster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Cluster p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ConfigClass p+instance BtSoftBody_ConfigClass BtSoftBody_Config+instance BtClass BtSoftBody_Config where+  withBt (BtSoftBody_Config p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Config p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_ContactResultCallbackClass p+instance BtCollisionWorld_ContactResultCallbackClass BtCollisionWorld_ContactResultCallback+instance BtClass BtCollisionWorld_ContactResultCallback where+  withBt (BtCollisionWorld_ContactResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_ContactResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_ConvexResultCallbackClass p+instance BtCollisionWorld_ConvexResultCallbackClass BtCollisionWorld_ConvexResultCallback+instance BtClass BtCollisionWorld_ConvexResultCallback where+  withBt (BtCollisionWorld_ConvexResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_ConvexResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ElementClass p+instance BtSoftBody_ElementClass BtSoftBody_Element+instance BtClass BtSoftBody_Element where+  withBt (BtSoftBody_Element p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Element p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_ElementClass p => BtSoftBody_FeatureClass p+instance BtSoftBody_ElementClass BtSoftBody_Feature+instance BtSoftBody_FeatureClass BtSoftBody_Feature+instance BtClass BtSoftBody_Feature where+  withBt (BtSoftBody_Feature p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Feature p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => GIM_BVH_DATAClass p+instance GIM_BVH_DATAClass GIM_BVH_DATA+instance BtClass GIM_BVH_DATA where+  withBt (GIM_BVH_DATA p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_BVH_DATA p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => GIM_BVH_TREE_NODEClass p+instance GIM_BVH_TREE_NODEClass GIM_BVH_TREE_NODE+instance BtClass GIM_BVH_TREE_NODE where+  withBt (GIM_BVH_TREE_NODE p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_BVH_TREE_NODE p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => GIM_PAIRClass p+instance GIM_PAIRClass GIM_PAIR+instance BtClass GIM_PAIR where+  withBt (GIM_PAIR p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_PAIR p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => GIM_TRIANGLE_CONTACTClass p+instance GIM_TRIANGLE_CONTACTClass GIM_TRIANGLE_CONTACT+instance BtClass GIM_TRIANGLE_CONTACT where+  withBt (GIM_TRIANGLE_CONTACT p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_TRIANGLE_CONTACT p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_ICloneClass p+instance BtDbvt_ICloneClass BtDbvt_IClone+instance BtClass BtDbvt_IClone where+  withBt (BtDbvt_IClone p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_IClone p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_ICollideClass p+instance BtDbvt_ICollideClass BtDbvt_ICollide+instance BtClass BtDbvt_ICollide where+  withBt (BtDbvt_ICollide p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_ICollide p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_AJoint_IControlClass p+instance BtSoftBody_AJoint_IControlClass BtSoftBody_AJoint_IControl+instance BtClass BtSoftBody_AJoint_IControl where+  withBt (BtSoftBody_AJoint_IControl p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_AJoint_IControl p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_IWriterClass p+instance BtDbvt_IWriterClass BtDbvt_IWriter+instance BtClass BtDbvt_IWriter where+  withBt (BtDbvt_IWriter p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_IWriter p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ImplicitFnClass p+instance BtSoftBody_ImplicitFnClass BtSoftBody_ImplicitFn+instance BtClass BtSoftBody_ImplicitFn where+  withBt (BtSoftBody_ImplicitFn p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_ImplicitFn p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ImpulseClass p+instance BtSoftBody_ImpulseClass BtSoftBody_Impulse+instance BtClass BtSoftBody_Impulse where+  withBt (BtSoftBody_Impulse p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Impulse p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_JointClass p+instance BtSoftBody_JointClass BtSoftBody_Joint+instance BtClass BtSoftBody_Joint where+  withBt (BtSoftBody_Joint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Joint p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_JointClass p => BtSoftBody_LJointClass p+instance BtSoftBody_JointClass BtSoftBody_LJoint+instance BtSoftBody_LJointClass BtSoftBody_LJoint+instance BtClass BtSoftBody_LJoint where+  withBt (BtSoftBody_LJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_LJoint p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_FeatureClass p => BtSoftBody_LinkClass p+instance BtSoftBody_FeatureClass BtSoftBody_Link+instance BtSoftBody_ElementClass BtSoftBody_Link+instance BtSoftBody_LinkClass BtSoftBody_Link+instance BtClass BtSoftBody_Link where+  withBt (BtSoftBody_Link p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Link p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_LocalConvexResultClass p+instance BtCollisionWorld_LocalConvexResultClass BtCollisionWorld_LocalConvexResult+instance BtClass BtCollisionWorld_LocalConvexResult where+  withBt (BtCollisionWorld_LocalConvexResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_LocalConvexResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_LocalRayResultClass p+instance BtCollisionWorld_LocalRayResultClass BtCollisionWorld_LocalRayResult+instance BtClass BtCollisionWorld_LocalRayResult where+  withBt (BtCollisionWorld_LocalRayResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_LocalRayResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_LocalShapeInfoClass p+instance BtCollisionWorld_LocalShapeInfoClass BtCollisionWorld_LocalShapeInfo+instance BtClass BtCollisionWorld_LocalShapeInfo where+  withBt (BtCollisionWorld_LocalShapeInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_LocalShapeInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_ElementClass p => BtSoftBody_MaterialClass p+instance BtSoftBody_ElementClass BtSoftBody_Material+instance BtSoftBody_MaterialClass BtSoftBody_Material+instance BtClass BtSoftBody_Material where+  withBt (BtSoftBody_Material p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Material p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_FeatureClass p => BtSoftBody_NodeClass p+instance BtSoftBody_FeatureClass BtSoftBody_Node+instance BtSoftBody_ElementClass BtSoftBody_Node+instance BtSoftBody_NodeClass BtSoftBody_Node+instance BtClass BtSoftBody_Node where+  withBt (BtSoftBody_Node p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Node p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_ElementClass p => BtSoftBody_NoteClass p+instance BtSoftBody_ElementClass BtSoftBody_Note+instance BtSoftBody_NoteClass BtSoftBody_Note+instance BtClass BtSoftBody_Note where+  withBt (BtSoftBody_Note p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Note p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_PoseClass p+instance BtSoftBody_PoseClass BtSoftBody_Pose+instance BtClass BtSoftBody_Pose where+  withBt (BtSoftBody_Pose p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Pose p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_RContactClass p+instance BtSoftBody_RContactClass BtSoftBody_RContact+instance BtClass BtSoftBody_RContact where+  withBt (BtSoftBody_RContact p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_RContact p) = castPtr $ unsafeForeignPtrToPtr p+class BtDbvt_ICollideClass p => BtSoftBody_RayFromToCasterClass p+instance BtDbvt_ICollideClass BtSoftBody_RayFromToCaster+instance BtSoftBody_RayFromToCasterClass BtSoftBody_RayFromToCaster+instance BtClass BtSoftBody_RayFromToCaster where+  withBt (BtSoftBody_RayFromToCaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_RayFromToCaster p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorld_RayResultCallbackClass p+instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_RayResultCallback+instance BtClass BtCollisionWorld_RayResultCallback where+  withBt (BtCollisionWorld_RayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_RayResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtWheelInfo_RaycastInfoClass p+instance BtWheelInfo_RaycastInfoClass BtWheelInfo_RaycastInfo+instance BtClass BtWheelInfo_RaycastInfo where+  withBt (BtWheelInfo_RaycastInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtWheelInfo_RaycastInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDiscreteCollisionDetectorInterface_ResultClass p+instance BtDiscreteCollisionDetectorInterface_ResultClass BtDiscreteCollisionDetectorInterface_Result+instance BtClass BtDiscreteCollisionDetectorInterface_Result where+  withBt (BtDiscreteCollisionDetectorInterface_Result p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDiscreteCollisionDetectorInterface_Result p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_SContactClass p+instance BtSoftBody_SContactClass BtSoftBody_SContact+instance BtClass BtSoftBody_SContact where+  withBt (BtSoftBody_SContact p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_SContact p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_SolverStateClass p+instance BtSoftBody_SolverStateClass BtSoftBody_SolverState+instance BtClass BtSoftBody_SolverState where+  withBt (BtSoftBody_SolverState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_SolverState p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_Joint_SpecsClass p+instance BtSoftBody_Joint_SpecsClass BtSoftBody_Joint_Specs+instance BtClass BtSoftBody_Joint_Specs where+  withBt (BtSoftBody_Joint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Joint_Specs p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_Joint_SpecsClass p => BtSoftBody_LJoint_SpecsClass p+instance BtSoftBody_Joint_SpecsClass BtSoftBody_LJoint_Specs+instance BtSoftBody_LJoint_SpecsClass BtSoftBody_LJoint_Specs+instance BtClass BtSoftBody_LJoint_Specs where+  withBt (BtSoftBody_LJoint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_LJoint_Specs p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_Joint_SpecsClass p => BtSoftBody_AJoint_SpecsClass p+instance BtSoftBody_Joint_SpecsClass BtSoftBody_AJoint_Specs+instance BtSoftBody_AJoint_SpecsClass BtSoftBody_AJoint_Specs+instance BtClass BtSoftBody_AJoint_Specs where+  withBt (BtSoftBody_AJoint_Specs p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_AJoint_Specs p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_FeatureClass p => BtSoftBody_TetraClass p+instance BtSoftBody_FeatureClass BtSoftBody_Tetra+instance BtSoftBody_ElementClass BtSoftBody_Tetra+instance BtSoftBody_TetraClass BtSoftBody_Tetra+instance BtClass BtSoftBody_Tetra where+  withBt (BtSoftBody_Tetra p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Tetra p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAABBClass p+instance BtAABBClass BtAABB+instance BtClass BtAABB where+  withBt (BtAABB p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAABB p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtActionInterfaceClass p+instance BtActionInterfaceClass BtActionInterface+instance BtClass BtActionInterface where+  withBt (BtActionInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtActionInterface p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class p+instance BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_+instance BtClass BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ where+  withBt (BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_GIM_BVH_DATA_16u_Class p+instance BtAlignedAllocator_GIM_BVH_DATA_16u_Class BtAlignedAllocator_GIM_BVH_DATA_16u_+instance BtClass BtAlignedAllocator_GIM_BVH_DATA_16u_ where+  withBt (BtAlignedAllocator_GIM_BVH_DATA_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_GIM_BVH_DATA_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class p+instance BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_+instance BtClass BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ where+  withBt (BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_GIM_PAIR_16u_Class p+instance BtAlignedAllocator_GIM_PAIR_16u_Class BtAlignedAllocator_GIM_PAIR_16u_+instance BtClass BtAlignedAllocator_GIM_PAIR_16u_ where+  withBt (BtAlignedAllocator_GIM_PAIR_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_GIM_PAIR_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_bool_16u_Class p+instance BtAlignedAllocator_bool_16u_Class BtAlignedAllocator_bool_16u_+instance BtClass BtAlignedAllocator_bool_16u_ where+  withBt (BtAlignedAllocator_bool_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_bool_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btActionInterface_ptr_16u_Class p+instance BtAlignedAllocator_btActionInterface_ptr_16u_Class BtAlignedAllocator_btActionInterface_ptr_16u_+instance BtClass BtAlignedAllocator_btActionInterface_ptr_16u_ where+  withBt (BtAlignedAllocator_btActionInterface_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btActionInterface_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btBroadphaseInterface_ptr_16u_Class p+instance BtAlignedAllocator_btBroadphaseInterface_ptr_16u_Class BtAlignedAllocator_btBroadphaseInterface_ptr_16u_+instance BtClass BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ where+  withBt (BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btBroadphaseInterface_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btBroadphasePair_16u_Class p+instance BtAlignedAllocator_btBroadphasePair_16u_Class BtAlignedAllocator_btBroadphasePair_16u_+instance BtClass BtAlignedAllocator_btBroadphasePair_16u_ where+  withBt (BtAlignedAllocator_btBroadphasePair_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btBroadphasePair_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btBvhSubtreeInfo_16u_Class p+instance BtAlignedAllocator_btBvhSubtreeInfo_16u_Class BtAlignedAllocator_btBvhSubtreeInfo_16u_+instance BtClass BtAlignedAllocator_btBvhSubtreeInfo_16u_ where+  withBt (BtAlignedAllocator_btBvhSubtreeInfo_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btBvhSubtreeInfo_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btChunk_ptr_16u_Class p+instance BtAlignedAllocator_btChunk_ptr_16u_Class BtAlignedAllocator_btChunk_ptr_16u_+instance BtClass BtAlignedAllocator_btChunk_ptr_16u_ where+  withBt (BtAlignedAllocator_btChunk_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btChunk_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btCollisionObject_ptr_16u_Class p+instance BtAlignedAllocator_btCollisionObject_ptr_16u_Class BtAlignedAllocator_btCollisionObject_ptr_16u_+instance BtClass BtAlignedAllocator_btCollisionObject_ptr_16u_ where+  withBt (BtAlignedAllocator_btCollisionObject_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btCollisionObject_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btCollisionShape_ptr_16u_Class p+instance BtAlignedAllocator_btCollisionShape_ptr_16u_Class BtAlignedAllocator_btCollisionShape_ptr_16u_+instance BtClass BtAlignedAllocator_btCollisionShape_ptr_16u_ where+  withBt (BtAlignedAllocator_btCollisionShape_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btCollisionShape_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btCompoundShapeChild_16u_Class p+instance BtAlignedAllocator_btCompoundShapeChild_16u_Class BtAlignedAllocator_btCompoundShapeChild_16u_+instance BtClass BtAlignedAllocator_btCompoundShapeChild_16u_ where+  withBt (BtAlignedAllocator_btCompoundShapeChild_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btCompoundShapeChild_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btDbvt_sStkNN_16u_Class p+instance BtAlignedAllocator_btDbvt_sStkNN_16u_Class BtAlignedAllocator_btDbvt_sStkNN_16u_+instance BtClass BtAlignedAllocator_btDbvt_sStkNN_16u_ where+  withBt (BtAlignedAllocator_btDbvt_sStkNN_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btDbvt_sStkNN_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btDbvt_sStkNP_16u_Class p+instance BtAlignedAllocator_btDbvt_sStkNP_16u_Class BtAlignedAllocator_btDbvt_sStkNP_16u_+instance BtClass BtAlignedAllocator_btDbvt_sStkNP_16u_ where+  withBt (BtAlignedAllocator_btDbvt_sStkNP_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btDbvt_sStkNP_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btDbvt_sStkNPS_16u_Class p+instance BtAlignedAllocator_btDbvt_sStkNPS_16u_Class BtAlignedAllocator_btDbvt_sStkNPS_16u_+instance BtClass BtAlignedAllocator_btDbvt_sStkNPS_16u_ where+  withBt (BtAlignedAllocator_btDbvt_sStkNPS_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btDbvt_sStkNPS_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btDbvtNodeconst_ptr_16u_Class p+instance BtAlignedAllocator_btDbvtNodeconst_ptr_16u_Class BtAlignedAllocator_btDbvtNodeconst_ptr_16u_+instance BtClass BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ where+  withBt (BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btDbvtNodeconst_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_Class p+instance BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_Class BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_+instance BtClass BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ where+  withBt (BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btHashInt_16u_Class p+instance BtAlignedAllocator_btHashInt_16u_Class BtAlignedAllocator_btHashInt_16u_+instance BtClass BtAlignedAllocator_btHashInt_16u_ where+  withBt (BtAlignedAllocator_btHashInt_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btHashInt_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btHashPtr_16u_Class p+instance BtAlignedAllocator_btHashPtr_16u_Class BtAlignedAllocator_btHashPtr_16u_+instance BtClass BtAlignedAllocator_btHashPtr_16u_ where+  withBt (BtAlignedAllocator_btHashPtr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btHashPtr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btHashString_16u_Class p+instance BtAlignedAllocator_btHashString_16u_Class BtAlignedAllocator_btHashString_16u_+instance BtClass BtAlignedAllocator_btHashString_16u_ where+  withBt (BtAlignedAllocator_btHashString_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btHashString_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btIndexedMesh_16u_Class p+instance BtAlignedAllocator_btIndexedMesh_16u_Class BtAlignedAllocator_btIndexedMesh_16u_+instance BtClass BtAlignedAllocator_btIndexedMesh_16u_ where+  withBt (BtAlignedAllocator_btIndexedMesh_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btIndexedMesh_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_Class p+instance BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_Class BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_+instance BtClass BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ where+  withBt (BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_Class p+instance BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_Class BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_+instance BtClass BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ where+  withBt (BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btOptimizedBvhNode_16u_Class p+instance BtAlignedAllocator_btOptimizedBvhNode_16u_Class BtAlignedAllocator_btOptimizedBvhNode_16u_+instance BtClass BtAlignedAllocator_btOptimizedBvhNode_16u_ where+  withBt (BtAlignedAllocator_btOptimizedBvhNode_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btOptimizedBvhNode_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btPersistentManifold_ptr_16u_Class p+instance BtAlignedAllocator_btPersistentManifold_ptr_16u_Class BtAlignedAllocator_btPersistentManifold_ptr_16u_+instance BtClass BtAlignedAllocator_btPersistentManifold_ptr_16u_ where+  withBt (BtAlignedAllocator_btPersistentManifold_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btPersistentManifold_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btPointerUid_16u_Class p+instance BtAlignedAllocator_btPointerUid_16u_Class BtAlignedAllocator_btPointerUid_16u_+instance BtClass BtAlignedAllocator_btPointerUid_16u_ where+  withBt (BtAlignedAllocator_btPointerUid_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btPointerUid_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btQuantizedBvhNode_16u_Class p+instance BtAlignedAllocator_btQuantizedBvhNode_16u_Class BtAlignedAllocator_btQuantizedBvhNode_16u_+instance BtClass BtAlignedAllocator_btQuantizedBvhNode_16u_ where+  withBt (BtAlignedAllocator_btQuantizedBvhNode_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btQuantizedBvhNode_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btRigidBody_ptr_16u_Class p+instance BtAlignedAllocator_btRigidBody_ptr_16u_Class BtAlignedAllocator_btRigidBody_ptr_16u_+instance BtClass BtAlignedAllocator_btRigidBody_ptr_16u_ where+  withBt (BtAlignedAllocator_btRigidBody_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btRigidBody_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_ptr_16u_Class p+instance BtAlignedAllocator_btSoftBody_ptr_16u_Class BtAlignedAllocator_btSoftBody_ptr_16u_+instance BtClass BtAlignedAllocator_btSoftBody_ptr_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Anchor_16u_Class p+instance BtAlignedAllocator_btSoftBody_Anchor_16u_Class BtAlignedAllocator_btSoftBody_Anchor_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Anchor_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Anchor_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Anchor_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_Class p+instance BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_Class BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Face_16u_Class p+instance BtAlignedAllocator_btSoftBody_Face_16u_Class BtAlignedAllocator_btSoftBody_Face_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Face_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Face_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Face_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Joint_ptr_16u_Class p+instance BtAlignedAllocator_btSoftBody_Joint_ptr_16u_Class BtAlignedAllocator_btSoftBody_Joint_ptr_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Joint_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Link_16u_Class p+instance BtAlignedAllocator_btSoftBody_Link_16u_Class BtAlignedAllocator_btSoftBody_Link_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Link_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Link_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Link_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Material_ptr_16u_Class p+instance BtAlignedAllocator_btSoftBody_Material_ptr_16u_Class BtAlignedAllocator_btSoftBody_Material_ptr_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Material_ptr_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Material_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Material_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Node_ptr_16u_Class p+instance BtAlignedAllocator_btSoftBody_Node_ptr_16u_Class BtAlignedAllocator_btSoftBody_Node_ptr_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Node_ptr_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Node_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Node_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Node_16u_Class p+instance BtAlignedAllocator_btSoftBody_Node_16u_Class BtAlignedAllocator_btSoftBody_Node_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Node_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Node_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Node_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Note_16u_Class p+instance BtAlignedAllocator_btSoftBody_Note_16u_Class BtAlignedAllocator_btSoftBody_Note_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Note_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Note_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Note_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_RContact_16u_Class p+instance BtAlignedAllocator_btSoftBody_RContact_16u_Class BtAlignedAllocator_btSoftBody_RContact_16u_+instance BtClass BtAlignedAllocator_btSoftBody_RContact_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_RContact_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_RContact_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_SContact_16u_Class p+instance BtAlignedAllocator_btSoftBody_SContact_16u_Class BtAlignedAllocator_btSoftBody_SContact_16u_+instance BtClass BtAlignedAllocator_btSoftBody_SContact_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_SContact_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_SContact_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_Tetra_16u_Class p+instance BtAlignedAllocator_btSoftBody_Tetra_16u_Class BtAlignedAllocator_btSoftBody_Tetra_16u_+instance BtClass BtAlignedAllocator_btSoftBody_Tetra_16u_ where+  withBt (BtAlignedAllocator_btSoftBody_Tetra_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_Tetra_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_ePSolver___16u_Class p+instance BtAlignedAllocator_btSoftBody_ePSolver___16u_Class BtAlignedAllocator_btSoftBody_ePSolver___16u_+instance BtClass BtAlignedAllocator_btSoftBody_ePSolver___16u_ where+  withBt (BtAlignedAllocator_btSoftBody_ePSolver___16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_ePSolver___16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSoftBody_eVSolver___16u_Class p+instance BtAlignedAllocator_btSoftBody_eVSolver___16u_Class BtAlignedAllocator_btSoftBody_eVSolver___16u_+instance BtClass BtAlignedAllocator_btSoftBody_eVSolver___16u_ where+  withBt (BtAlignedAllocator_btSoftBody_eVSolver___16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSoftBody_eVSolver___16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSolverConstraint_16u_Class p+instance BtAlignedAllocator_btSolverConstraint_16u_Class BtAlignedAllocator_btSolverConstraint_16u_+instance BtClass BtAlignedAllocator_btSolverConstraint_16u_ where+  withBt (BtAlignedAllocator_btSolverConstraint_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSolverConstraint_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_Class p+instance BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_Class BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_+instance BtClass BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ where+  withBt (BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btTransform_16u_Class p+instance BtAlignedAllocator_btTransform_16u_Class BtAlignedAllocator_btTransform_16u_+instance BtClass BtAlignedAllocator_btTransform_16u_ where+  withBt (BtAlignedAllocator_btTransform_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btTransform_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btTriangleInfo_16u_Class p+instance BtAlignedAllocator_btTriangleInfo_16u_Class BtAlignedAllocator_btTriangleInfo_16u_+instance BtClass BtAlignedAllocator_btTriangleInfo_16u_ where+  withBt (BtAlignedAllocator_btTriangleInfo_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btTriangleInfo_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btTypedConstraint_ptr_16u_Class p+instance BtAlignedAllocator_btTypedConstraint_ptr_16u_Class BtAlignedAllocator_btTypedConstraint_ptr_16u_+instance BtClass BtAlignedAllocator_btTypedConstraint_ptr_16u_ where+  withBt (BtAlignedAllocator_btTypedConstraint_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btTypedConstraint_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class p+instance BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_+instance BtClass BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ where+  withBt (BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btVector3_16u_Class p+instance BtAlignedAllocator_btVector3_16u_Class BtAlignedAllocator_btVector3_16u_+instance BtClass BtAlignedAllocator_btVector3_16u_ where+  withBt (BtAlignedAllocator_btVector3_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btVector3_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_btWheelInfo_16u_Class p+instance BtAlignedAllocator_btWheelInfo_16u_Class BtAlignedAllocator_btWheelInfo_16u_+instance BtClass BtAlignedAllocator_btWheelInfo_16u_ where+  withBt (BtAlignedAllocator_btWheelInfo_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_btWheelInfo_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_charconst_ptr_16u_Class p+instance BtAlignedAllocator_charconst_ptr_16u_Class BtAlignedAllocator_charconst_ptr_16u_+instance BtClass BtAlignedAllocator_charconst_ptr_16u_ where+  withBt (BtAlignedAllocator_charconst_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_charconst_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_char_ptr_16u_Class p+instance BtAlignedAllocator_char_ptr_16u_Class BtAlignedAllocator_char_ptr_16u_+instance BtClass BtAlignedAllocator_char_ptr_16u_ where+  withBt (BtAlignedAllocator_char_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_char_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_float_16u_Class p+instance BtAlignedAllocator_float_16u_Class BtAlignedAllocator_float_16u_+instance BtClass BtAlignedAllocator_float_16u_ where+  withBt (BtAlignedAllocator_float_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_float_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_int_16u_Class p+instance BtAlignedAllocator_int_16u_Class BtAlignedAllocator_int_16u_+instance BtClass BtAlignedAllocator_int_16u_ where+  withBt (BtAlignedAllocator_int_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_int_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_short_ptr_16u_Class p+instance BtAlignedAllocator_short_ptr_16u_Class BtAlignedAllocator_short_ptr_16u_+instance BtClass BtAlignedAllocator_short_ptr_16u_ where+  withBt (BtAlignedAllocator_short_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_short_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_short_16u_Class p+instance BtAlignedAllocator_short_16u_Class BtAlignedAllocator_short_16u_+instance BtClass BtAlignedAllocator_short_16u_ where+  withBt (BtAlignedAllocator_short_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_short_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_unsignedint_16u_Class p+instance BtAlignedAllocator_unsignedint_16u_Class BtAlignedAllocator_unsignedint_16u_+instance BtClass BtAlignedAllocator_unsignedint_16u_ where+  withBt (BtAlignedAllocator_unsignedint_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_unsignedint_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_unsignedshort_16u_Class p+instance BtAlignedAllocator_unsignedshort_16u_Class BtAlignedAllocator_unsignedshort_16u_+instance BtClass BtAlignedAllocator_unsignedshort_16u_ where+  withBt (BtAlignedAllocator_unsignedshort_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_unsignedshort_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedAllocator_void_ptr_16u_Class p+instance BtAlignedAllocator_void_ptr_16u_Class BtAlignedAllocator_void_ptr_16u_+instance BtClass BtAlignedAllocator_void_ptr_16u_ where+  withBt (BtAlignedAllocator_void_ptr_16u_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedAllocator_void_ptr_16u_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class p+instance BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_+instance BtClass BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ where+  withBt (BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_GIM_BVH_DATA_Class p+instance BtAlignedObjectArray_GIM_BVH_DATA_Class BtAlignedObjectArray_GIM_BVH_DATA_+instance BtClass BtAlignedObjectArray_GIM_BVH_DATA_ where+  withBt (BtAlignedObjectArray_GIM_BVH_DATA_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_GIM_BVH_DATA_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class p+instance BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class BtAlignedObjectArray_GIM_BVH_TREE_NODE_+instance BtClass BtAlignedObjectArray_GIM_BVH_TREE_NODE_ where+  withBt (BtAlignedObjectArray_GIM_BVH_TREE_NODE_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_GIM_BVH_TREE_NODE_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_GIM_PAIR_Class p+instance BtAlignedObjectArray_GIM_PAIR_Class BtAlignedObjectArray_GIM_PAIR_+instance BtClass BtAlignedObjectArray_GIM_PAIR_ where+  withBt (BtAlignedObjectArray_GIM_PAIR_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_GIM_PAIR_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_bool_Class p+instance BtAlignedObjectArray_bool_Class BtAlignedObjectArray_bool_+instance BtClass BtAlignedObjectArray_bool_ where+  withBt (BtAlignedObjectArray_bool_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_bool_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btActionInterface_ptr_Class p+instance BtAlignedObjectArray_btActionInterface_ptr_Class BtAlignedObjectArray_btActionInterface_ptr_+instance BtClass BtAlignedObjectArray_btActionInterface_ptr_ where+  withBt (BtAlignedObjectArray_btActionInterface_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btActionInterface_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btBroadphaseInterface_ptr_Class p+instance BtAlignedObjectArray_btBroadphaseInterface_ptr_Class BtAlignedObjectArray_btBroadphaseInterface_ptr_+instance BtClass BtAlignedObjectArray_btBroadphaseInterface_ptr_ where+  withBt (BtAlignedObjectArray_btBroadphaseInterface_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btBroadphaseInterface_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btBroadphasePair_Class p+instance BtAlignedObjectArray_btBroadphasePair_Class BtAlignedObjectArray_btBroadphasePair_+instance BtClass BtAlignedObjectArray_btBroadphasePair_ where+  withBt (BtAlignedObjectArray_btBroadphasePair_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btBroadphasePair_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btBvhSubtreeInfo_Class p+instance BtAlignedObjectArray_btBvhSubtreeInfo_Class BtAlignedObjectArray_btBvhSubtreeInfo_+instance BtClass BtAlignedObjectArray_btBvhSubtreeInfo_ where+  withBt (BtAlignedObjectArray_btBvhSubtreeInfo_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btBvhSubtreeInfo_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btChunk_ptr_Class p+instance BtAlignedObjectArray_btChunk_ptr_Class BtAlignedObjectArray_btChunk_ptr_+instance BtClass BtAlignedObjectArray_btChunk_ptr_ where+  withBt (BtAlignedObjectArray_btChunk_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btChunk_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btCollisionObject_ptr_Class p+instance BtAlignedObjectArray_btCollisionObject_ptr_Class BtAlignedObjectArray_btCollisionObject_ptr_+instance BtClass BtAlignedObjectArray_btCollisionObject_ptr_ where+  withBt (BtAlignedObjectArray_btCollisionObject_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btCollisionObject_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btCollisionShape_ptr_Class p+instance BtAlignedObjectArray_btCollisionShape_ptr_Class BtAlignedObjectArray_btCollisionShape_ptr_+instance BtClass BtAlignedObjectArray_btCollisionShape_ptr_ where+  withBt (BtAlignedObjectArray_btCollisionShape_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btCollisionShape_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btCompoundShapeChild_Class p+instance BtAlignedObjectArray_btCompoundShapeChild_Class BtAlignedObjectArray_btCompoundShapeChild_+instance BtClass BtAlignedObjectArray_btCompoundShapeChild_ where+  withBt (BtAlignedObjectArray_btCompoundShapeChild_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btCompoundShapeChild_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btDbvt_sStkNN_Class p+instance BtAlignedObjectArray_btDbvt_sStkNN_Class BtAlignedObjectArray_btDbvt_sStkNN_+instance BtClass BtAlignedObjectArray_btDbvt_sStkNN_ where+  withBt (BtAlignedObjectArray_btDbvt_sStkNN_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btDbvt_sStkNN_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btDbvt_sStkNP_Class p+instance BtAlignedObjectArray_btDbvt_sStkNP_Class BtAlignedObjectArray_btDbvt_sStkNP_+instance BtClass BtAlignedObjectArray_btDbvt_sStkNP_ where+  withBt (BtAlignedObjectArray_btDbvt_sStkNP_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btDbvt_sStkNP_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btDbvt_sStkNPS_Class p+instance BtAlignedObjectArray_btDbvt_sStkNPS_Class BtAlignedObjectArray_btDbvt_sStkNPS_+instance BtClass BtAlignedObjectArray_btDbvt_sStkNPS_ where+  withBt (BtAlignedObjectArray_btDbvt_sStkNPS_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btDbvt_sStkNPS_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btDbvtNodeconst_ptr_Class p+instance BtAlignedObjectArray_btDbvtNodeconst_ptr_Class BtAlignedObjectArray_btDbvtNodeconst_ptr_+instance BtClass BtAlignedObjectArray_btDbvtNodeconst_ptr_ where+  withBt (BtAlignedObjectArray_btDbvtNodeconst_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btDbvtNodeconst_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class p+instance BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class BtAlignedObjectArray_btGImpactMeshShapePart_ptr_+instance BtClass BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ where+  withBt (BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btGImpactMeshShapePart_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btHashInt_Class p+instance BtAlignedObjectArray_btHashInt_Class BtAlignedObjectArray_btHashInt_+instance BtClass BtAlignedObjectArray_btHashInt_ where+  withBt (BtAlignedObjectArray_btHashInt_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btHashInt_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btHashPtr_Class p+instance BtAlignedObjectArray_btHashPtr_Class BtAlignedObjectArray_btHashPtr_+instance BtClass BtAlignedObjectArray_btHashPtr_ where+  withBt (BtAlignedObjectArray_btHashPtr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btHashPtr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btHashString_Class p+instance BtAlignedObjectArray_btHashString_Class BtAlignedObjectArray_btHashString_+instance BtClass BtAlignedObjectArray_btHashString_ where+  withBt (BtAlignedObjectArray_btHashString_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btHashString_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btIndexedMesh_Class p+instance BtAlignedObjectArray_btIndexedMesh_Class BtAlignedObjectArray_btIndexedMesh_+instance BtClass BtAlignedObjectArray_btIndexedMesh_ where+  withBt (BtAlignedObjectArray_btIndexedMesh_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btIndexedMesh_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class p+instance BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_+instance BtClass BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ where+  withBt (BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class p+instance BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_+instance BtClass BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ where+  withBt (BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btOptimizedBvhNode_Class p+instance BtAlignedObjectArray_btOptimizedBvhNode_Class BtAlignedObjectArray_btOptimizedBvhNode_+instance BtClass BtAlignedObjectArray_btOptimizedBvhNode_ where+  withBt (BtAlignedObjectArray_btOptimizedBvhNode_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btOptimizedBvhNode_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btPersistentManifold_ptr_Class p+instance BtAlignedObjectArray_btPersistentManifold_ptr_Class BtAlignedObjectArray_btPersistentManifold_ptr_+instance BtClass BtAlignedObjectArray_btPersistentManifold_ptr_ where+  withBt (BtAlignedObjectArray_btPersistentManifold_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btPersistentManifold_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btPointerUid_Class p+instance BtAlignedObjectArray_btPointerUid_Class BtAlignedObjectArray_btPointerUid_+instance BtClass BtAlignedObjectArray_btPointerUid_ where+  withBt (BtAlignedObjectArray_btPointerUid_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btPointerUid_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btQuantizedBvhNode_Class p+instance BtAlignedObjectArray_btQuantizedBvhNode_Class BtAlignedObjectArray_btQuantizedBvhNode_+instance BtClass BtAlignedObjectArray_btQuantizedBvhNode_ where+  withBt (BtAlignedObjectArray_btQuantizedBvhNode_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btQuantizedBvhNode_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btRigidBody_ptr_Class p+instance BtAlignedObjectArray_btRigidBody_ptr_Class BtAlignedObjectArray_btRigidBody_ptr_+instance BtClass BtAlignedObjectArray_btRigidBody_ptr_ where+  withBt (BtAlignedObjectArray_btRigidBody_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btRigidBody_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_ptr_Class p+instance BtAlignedObjectArray_btSoftBody_ptr_Class BtAlignedObjectArray_btSoftBody_ptr_+instance BtClass BtAlignedObjectArray_btSoftBody_ptr_ where+  withBt (BtAlignedObjectArray_btSoftBody_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Anchor_Class p+instance BtAlignedObjectArray_btSoftBody_Anchor_Class BtAlignedObjectArray_btSoftBody_Anchor_+instance BtClass BtAlignedObjectArray_btSoftBody_Anchor_ where+  withBt (BtAlignedObjectArray_btSoftBody_Anchor_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Anchor_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class p+instance BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class BtAlignedObjectArray_btSoftBody_Cluster_ptr_+instance BtClass BtAlignedObjectArray_btSoftBody_Cluster_ptr_ where+  withBt (BtAlignedObjectArray_btSoftBody_Cluster_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Cluster_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Face_Class p+instance BtAlignedObjectArray_btSoftBody_Face_Class BtAlignedObjectArray_btSoftBody_Face_+instance BtClass BtAlignedObjectArray_btSoftBody_Face_ where+  withBt (BtAlignedObjectArray_btSoftBody_Face_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Face_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Joint_ptr_Class p+instance BtAlignedObjectArray_btSoftBody_Joint_ptr_Class BtAlignedObjectArray_btSoftBody_Joint_ptr_+instance BtClass BtAlignedObjectArray_btSoftBody_Joint_ptr_ where+  withBt (BtAlignedObjectArray_btSoftBody_Joint_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Joint_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Link_Class p+instance BtAlignedObjectArray_btSoftBody_Link_Class BtAlignedObjectArray_btSoftBody_Link_+instance BtClass BtAlignedObjectArray_btSoftBody_Link_ where+  withBt (BtAlignedObjectArray_btSoftBody_Link_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Link_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Material_ptr_Class p+instance BtAlignedObjectArray_btSoftBody_Material_ptr_Class BtAlignedObjectArray_btSoftBody_Material_ptr_+instance BtClass BtAlignedObjectArray_btSoftBody_Material_ptr_ where+  withBt (BtAlignedObjectArray_btSoftBody_Material_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Material_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Node_ptr_Class p+instance BtAlignedObjectArray_btSoftBody_Node_ptr_Class BtAlignedObjectArray_btSoftBody_Node_ptr_+instance BtClass BtAlignedObjectArray_btSoftBody_Node_ptr_ where+  withBt (BtAlignedObjectArray_btSoftBody_Node_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Node_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Node_Class p+instance BtAlignedObjectArray_btSoftBody_Node_Class BtAlignedObjectArray_btSoftBody_Node_+instance BtClass BtAlignedObjectArray_btSoftBody_Node_ where+  withBt (BtAlignedObjectArray_btSoftBody_Node_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Node_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Note_Class p+instance BtAlignedObjectArray_btSoftBody_Note_Class BtAlignedObjectArray_btSoftBody_Note_+instance BtClass BtAlignedObjectArray_btSoftBody_Note_ where+  withBt (BtAlignedObjectArray_btSoftBody_Note_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Note_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_RContact_Class p+instance BtAlignedObjectArray_btSoftBody_RContact_Class BtAlignedObjectArray_btSoftBody_RContact_+instance BtClass BtAlignedObjectArray_btSoftBody_RContact_ where+  withBt (BtAlignedObjectArray_btSoftBody_RContact_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_RContact_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_SContact_Class p+instance BtAlignedObjectArray_btSoftBody_SContact_Class BtAlignedObjectArray_btSoftBody_SContact_+instance BtClass BtAlignedObjectArray_btSoftBody_SContact_ where+  withBt (BtAlignedObjectArray_btSoftBody_SContact_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_SContact_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_Tetra_Class p+instance BtAlignedObjectArray_btSoftBody_Tetra_Class BtAlignedObjectArray_btSoftBody_Tetra_+instance BtClass BtAlignedObjectArray_btSoftBody_Tetra_ where+  withBt (BtAlignedObjectArray_btSoftBody_Tetra_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_Tetra_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_ePSolver___Class p+instance BtAlignedObjectArray_btSoftBody_ePSolver___Class BtAlignedObjectArray_btSoftBody_ePSolver___+instance BtClass BtAlignedObjectArray_btSoftBody_ePSolver___ where+  withBt (BtAlignedObjectArray_btSoftBody_ePSolver___ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_ePSolver___ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSoftBody_eVSolver___Class p+instance BtAlignedObjectArray_btSoftBody_eVSolver___Class BtAlignedObjectArray_btSoftBody_eVSolver___+instance BtClass BtAlignedObjectArray_btSoftBody_eVSolver___ where+  withBt (BtAlignedObjectArray_btSoftBody_eVSolver___ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSoftBody_eVSolver___ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSolverConstraint_Class p+instance BtAlignedObjectArray_btSolverConstraint_Class BtAlignedObjectArray_btSolverConstraint_+instance BtClass BtAlignedObjectArray_btSolverConstraint_ where+  withBt (BtAlignedObjectArray_btSolverConstraint_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSolverConstraint_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class p+instance BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_+instance BtClass BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ where+  withBt (BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btTransform_Class p+instance BtAlignedObjectArray_btTransform_Class BtAlignedObjectArray_btTransform_+instance BtClass BtAlignedObjectArray_btTransform_ where+  withBt (BtAlignedObjectArray_btTransform_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btTransform_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btTriangleInfo_Class p+instance BtAlignedObjectArray_btTriangleInfo_Class BtAlignedObjectArray_btTriangleInfo_+instance BtClass BtAlignedObjectArray_btTriangleInfo_ where+  withBt (BtAlignedObjectArray_btTriangleInfo_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btTriangleInfo_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btTypedConstraint_ptr_Class p+instance BtAlignedObjectArray_btTypedConstraint_ptr_Class BtAlignedObjectArray_btTypedConstraint_ptr_+instance BtClass BtAlignedObjectArray_btTypedConstraint_ptr_ where+  withBt (BtAlignedObjectArray_btTypedConstraint_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btTypedConstraint_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class p+instance BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_+instance BtClass BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ where+  withBt (BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btVector3_Class p+instance BtAlignedObjectArray_btVector3_Class BtAlignedObjectArray_btVector3_+instance BtClass BtAlignedObjectArray_btVector3_ where+  withBt (BtAlignedObjectArray_btVector3_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btVector3_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_btWheelInfo_Class p+instance BtAlignedObjectArray_btWheelInfo_Class BtAlignedObjectArray_btWheelInfo_+instance BtClass BtAlignedObjectArray_btWheelInfo_ where+  withBt (BtAlignedObjectArray_btWheelInfo_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_btWheelInfo_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_charconst_ptr_Class p+instance BtAlignedObjectArray_charconst_ptr_Class BtAlignedObjectArray_charconst_ptr_+instance BtClass BtAlignedObjectArray_charconst_ptr_ where+  withBt (BtAlignedObjectArray_charconst_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_charconst_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_char_ptr_Class p+instance BtAlignedObjectArray_char_ptr_Class BtAlignedObjectArray_char_ptr_+instance BtClass BtAlignedObjectArray_char_ptr_ where+  withBt (BtAlignedObjectArray_char_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_char_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_float_Class p+instance BtAlignedObjectArray_float_Class BtAlignedObjectArray_float_+instance BtClass BtAlignedObjectArray_float_ where+  withBt (BtAlignedObjectArray_float_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_float_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_int_Class p+instance BtAlignedObjectArray_int_Class BtAlignedObjectArray_int_+instance BtClass BtAlignedObjectArray_int_ where+  withBt (BtAlignedObjectArray_int_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_int_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_short_ptr_Class p+instance BtAlignedObjectArray_short_ptr_Class BtAlignedObjectArray_short_ptr_+instance BtClass BtAlignedObjectArray_short_ptr_ where+  withBt (BtAlignedObjectArray_short_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_short_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_short_Class p+instance BtAlignedObjectArray_short_Class BtAlignedObjectArray_short_+instance BtClass BtAlignedObjectArray_short_ where+  withBt (BtAlignedObjectArray_short_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_short_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_unsignedint_Class p+instance BtAlignedObjectArray_unsignedint_Class BtAlignedObjectArray_unsignedint_+instance BtClass BtAlignedObjectArray_unsignedint_ where+  withBt (BtAlignedObjectArray_unsignedint_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_unsignedint_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_unsignedshort_Class p+instance BtAlignedObjectArray_unsignedshort_Class BtAlignedObjectArray_unsignedshort_+instance BtClass BtAlignedObjectArray_unsignedshort_ where+  withBt (BtAlignedObjectArray_unsignedshort_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_unsignedshort_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAlignedObjectArray_void_ptr_Class p+instance BtAlignedObjectArray_void_ptr_Class BtAlignedObjectArray_void_ptr_+instance BtClass BtAlignedObjectArray_void_ptr_ where+  withBt (BtAlignedObjectArray_void_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAlignedObjectArray_void_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtAngularLimitClass p+instance BtAngularLimitClass BtAngularLimit+instance BtClass BtAngularLimit where+  withBt (BtAngularLimit p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAngularLimit p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBlockClass p+instance BtBlockClass BtBlock+instance BtClass BtBlock where+  withBt (BtBlock p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBlock p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMultiSapBroadphase_btBridgeProxyClass p+instance BtMultiSapBroadphase_btBridgeProxyClass BtMultiSapBroadphase_btBridgeProxy+instance BtClass BtMultiSapBroadphase_btBridgeProxy where+  withBt (BtMultiSapBroadphase_btBridgeProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMultiSapBroadphase_btBridgeProxy p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBroadphaseAabbCallbackClass p+instance BtBroadphaseAabbCallbackClass BtBroadphaseAabbCallback+instance BtClass BtBroadphaseAabbCallback where+  withBt (BtBroadphaseAabbCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphaseAabbCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBroadphaseInterfaceClass p+instance BtBroadphaseInterfaceClass BtBroadphaseInterface+instance BtClass BtBroadphaseInterface where+  withBt (BtBroadphaseInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphaseInterface p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBroadphasePairClass p+instance BtBroadphasePairClass BtBroadphasePair+instance BtClass BtBroadphasePair where+  withBt (BtBroadphasePair p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphasePair p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBroadphasePairSortPredicateClass p+instance BtBroadphasePairSortPredicateClass BtBroadphasePairSortPredicate+instance BtClass BtBroadphasePairSortPredicate where+  withBt (BtBroadphasePairSortPredicate p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphasePairSortPredicate p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBroadphaseProxyClass p+instance BtBroadphaseProxyClass BtBroadphaseProxy+instance BtClass BtBroadphaseProxy where+  withBt (BtBroadphaseProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphaseProxy p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseAabbCallbackClass p => BtBroadphaseRayCallbackClass p+instance BtBroadphaseAabbCallbackClass BtBroadphaseRayCallback+instance BtBroadphaseRayCallbackClass BtBroadphaseRayCallback+instance BtClass BtBroadphaseRayCallback where+  withBt (BtBroadphaseRayCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBroadphaseRayCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBvhSubtreeInfoClass p+instance BtBvhSubtreeInfoClass BtBvhSubtreeInfo+instance BtClass BtBvhSubtreeInfo where+  withBt (BtBvhSubtreeInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBvhSubtreeInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBvhSubtreeInfoDataClass p+instance BtBvhSubtreeInfoDataClass BtBvhSubtreeInfoData+instance BtClass BtBvhSubtreeInfoData where+  withBt (BtBvhSubtreeInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBvhSubtreeInfoData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtBvhTreeClass p+instance BtBvhTreeClass BtBvhTree+instance BtClass BtBvhTree where+  withBt (BtBvhTree p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBvhTree p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCapsuleShapeDataClass p+instance BtCapsuleShapeDataClass BtCapsuleShapeData+instance BtClass BtCapsuleShapeData where+  withBt (BtCapsuleShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCapsuleShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCharIndexTripletDataClass p+instance BtCharIndexTripletDataClass BtCharIndexTripletData+instance BtClass BtCharIndexTripletData where+  withBt (BtCharIndexTripletData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCharIndexTripletData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtChunkClass p+instance BtChunkClass BtChunk+instance BtClass BtChunk where+  withBt (BtChunk p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtChunk p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtClockClass p+instance BtClockClass BtClock+instance BtClass BtClock where+  withBt (BtClock p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtClock p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionAlgorithmClass p+instance BtCollisionAlgorithmClass BtCollisionAlgorithm+instance BtClass BtCollisionAlgorithm where+  withBt (BtCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionAlgorithm p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionAlgorithmConstructionInfoClass p+instance BtCollisionAlgorithmConstructionInfoClass BtCollisionAlgorithmConstructionInfo+instance BtClass BtCollisionAlgorithmConstructionInfo where+  withBt (BtCollisionAlgorithmConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionAlgorithmConstructionInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionAlgorithmCreateFuncClass p+instance BtCollisionAlgorithmCreateFuncClass BtCollisionAlgorithmCreateFunc+instance BtClass BtCollisionAlgorithmCreateFunc where+  withBt (BtCollisionAlgorithmCreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionAlgorithmCreateFunc p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionConfigurationClass p+instance BtCollisionConfigurationClass BtCollisionConfiguration+instance BtClass BtCollisionConfiguration where+  withBt (BtCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionConfiguration p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionObjectClass p+instance BtCollisionObjectClass BtCollisionObject+instance BtClass BtCollisionObject where+  withBt (BtCollisionObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionObject p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionObjectDoubleDataClass p+instance BtCollisionObjectDoubleDataClass BtCollisionObjectDoubleData+instance BtClass BtCollisionObjectDoubleData where+  withBt (BtCollisionObjectDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionObjectDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionObjectFloatDataClass p+instance BtCollisionObjectFloatDataClass BtCollisionObjectFloatData+instance BtClass BtCollisionObjectFloatData where+  withBt (BtCollisionObjectFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionObjectFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionShapeClass p+instance BtCollisionShapeClass BtCollisionShape+instance BtClass BtCollisionShape where+  withBt (BtCollisionShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionShapeDataClass p+instance BtCollisionShapeDataClass BtCollisionShapeData+instance BtClass BtCollisionShapeData where+  withBt (BtCollisionShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCollisionWorldClass p+instance BtCollisionWorldClass BtCollisionWorld+instance BtClass BtCollisionWorld where+  withBt (BtCollisionWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionShapeClass p => BtCompoundShapeClass p+instance BtCollisionShapeClass BtCompoundShape+instance BtCompoundShapeClass BtCompoundShape+instance BtClass BtCompoundShape where+  withBt (BtCompoundShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCompoundShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCompoundShapeChildClass p+instance BtCompoundShapeChildClass BtCompoundShapeChild+instance BtClass BtCompoundShapeChild where+  withBt (BtCompoundShapeChild p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCompoundShapeChild p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCompoundShapeChildDataClass p+instance BtCompoundShapeChildDataClass BtCompoundShapeChildData+instance BtClass BtCompoundShapeChildData where+  withBt (BtCompoundShapeChildData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCompoundShapeChildData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCompoundShapeDataClass p+instance BtCompoundShapeDataClass BtCompoundShapeData+instance BtClass BtCompoundShapeData where+  withBt (BtCompoundShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCompoundShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionShapeClass p => BtConcaveShapeClass p+instance BtCollisionShapeClass BtConcaveShape+instance BtConcaveShapeClass BtConcaveShape+instance BtClass BtConcaveShape where+  withBt (BtConcaveShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConcaveShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConeTwistConstraintDataClass p+instance BtConeTwistConstraintDataClass BtConeTwistConstraintData+instance BtClass BtConeTwistConstraintData where+  withBt (BtConeTwistConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConeTwistConstraintData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTypedConstraint_btConstraintInfo1Class p+instance BtTypedConstraint_btConstraintInfo1Class BtTypedConstraint_btConstraintInfo1+instance BtClass BtTypedConstraint_btConstraintInfo1 where+  withBt (BtTypedConstraint_btConstraintInfo1 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTypedConstraint_btConstraintInfo1 p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTypedConstraint_btConstraintInfo2Class p+instance BtTypedConstraint_btConstraintInfo2Class BtTypedConstraint_btConstraintInfo2+instance BtClass BtTypedConstraint_btConstraintInfo2 where+  withBt (BtTypedConstraint_btConstraintInfo2 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTypedConstraint_btConstraintInfo2 p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConstraintRowClass p+instance BtConstraintRowClass BtConstraintRow+instance BtClass BtConstraintRow where+  withBt (BtConstraintRow p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConstraintRow p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConstraintSettingClass p+instance BtConstraintSettingClass BtConstraintSetting+instance BtClass BtConstraintSetting where+  withBt (BtConstraintSetting p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConstraintSetting p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConstraintSolverClass p+instance BtConstraintSolverClass BtConstraintSolver+instance BtClass BtConstraintSolver where+  withBt (BtConstraintSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConstraintSolver p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtContactSolverInfoDataClass p+instance BtContactSolverInfoDataClass BtContactSolverInfoData+instance BtClass BtContactSolverInfoData where+  withBt (BtContactSolverInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtContactSolverInfoData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConvexHullShapeDataClass p+instance BtConvexHullShapeDataClass BtConvexHullShapeData+instance BtClass BtConvexHullShapeData where+  withBt (BtConvexHullShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexHullShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConvexInternalShapeDataClass p+instance BtConvexInternalShapeDataClass BtConvexInternalShapeData+instance BtClass BtConvexInternalShapeData where+  withBt (BtConvexInternalShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexInternalShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtConvexSeparatingDistanceUtilClass p+instance BtConvexSeparatingDistanceUtilClass BtConvexSeparatingDistanceUtil+instance BtClass BtConvexSeparatingDistanceUtil where+  withBt (BtConvexSeparatingDistanceUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexSeparatingDistanceUtil p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionShapeClass p => BtConvexShapeClass p+instance BtCollisionShapeClass BtConvexShape+instance BtConvexShapeClass BtConvexShape+instance BtClass BtConvexShape where+  withBt (BtConvexShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtCylinderShapeDataClass p+instance BtCylinderShapeDataClass BtCylinderShapeData+instance BtClass BtCylinderShapeData where+  withBt (BtCylinderShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCylinderShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvtClass p+instance BtDbvtClass BtDbvt+instance BtClass BtDbvt where+  withBt (BtDbvt p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvtAabbMmClass p+instance BtDbvtAabbMmClass BtDbvtAabbMm+instance BtClass BtDbvtAabbMm where+  withBt (BtDbvtAabbMm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvtAabbMm p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseInterfaceClass p => BtDbvtBroadphaseClass p+instance BtBroadphaseInterfaceClass BtDbvtBroadphase+instance BtDbvtBroadphaseClass BtDbvtBroadphase+instance BtClass BtDbvtBroadphase where+  withBt (BtDbvtBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvtBroadphase p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvtNodeClass p+instance BtDbvtNodeClass BtDbvtNode+instance BtClass BtDbvtNode where+  withBt (BtDbvtNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvtNode p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseProxyClass p => BtDbvtProxyClass p+instance BtBroadphaseProxyClass BtDbvtProxy+instance BtDbvtProxyClass BtDbvtProxy+instance BtClass BtDbvtProxy where+  withBt (BtDbvtProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvtProxy p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionConfigurationClass p => BtDefaultCollisionConfigurationClass p+instance BtCollisionConfigurationClass BtDefaultCollisionConfiguration+instance BtDefaultCollisionConfigurationClass BtDefaultCollisionConfiguration+instance BtClass BtDefaultCollisionConfiguration where+  withBt (BtDefaultCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDefaultCollisionConfiguration p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDefaultCollisionConstructionInfoClass p+instance BtDefaultCollisionConstructionInfoClass BtDefaultCollisionConstructionInfo+instance BtClass BtDefaultCollisionConstructionInfo where+  withBt (BtDefaultCollisionConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDefaultCollisionConstructionInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDiscreteCollisionDetectorInterfaceClass p+instance BtDiscreteCollisionDetectorInterfaceClass BtDiscreteCollisionDetectorInterface+instance BtClass BtDiscreteCollisionDetectorInterface where+  withBt (BtDiscreteCollisionDetectorInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDiscreteCollisionDetectorInterface p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDispatcherClass p+instance BtDispatcherClass BtDispatcher+instance BtClass BtDispatcher where+  withBt (BtDispatcher p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDispatcher p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDispatcherInfoClass p+instance BtDispatcherInfoClass BtDispatcherInfo+instance BtClass BtDispatcherInfo where+  withBt (BtDispatcherInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDispatcherInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionWorldClass p => BtDynamicsWorldClass p+instance BtCollisionWorldClass BtDynamicsWorld+instance BtDynamicsWorldClass BtDynamicsWorld+instance BtClass BtDynamicsWorld where+  withBt (BtDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDynamicsWorld p) = castPtr $ unsafeForeignPtrToPtr p+class BtConcaveShapeClass p => BtEmptyShapeClass p+instance BtConcaveShapeClass BtEmptyShape+instance BtCollisionShapeClass BtEmptyShape+instance BtEmptyShapeClass BtEmptyShape+instance BtClass BtEmptyShape where+  withBt (BtEmptyShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtEmptyShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGImpactBvhClass p+instance BtGImpactBvhClass BtGImpactBvh+instance BtClass BtGImpactBvh where+  withBt (BtGImpactBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactBvh p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGImpactMeshShapeDataClass p+instance BtGImpactMeshShapeDataClass BtGImpactMeshShapeData+instance BtClass BtGImpactMeshShapeData where+  withBt (BtGImpactMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactMeshShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGImpactQuantizedBvhClass p+instance BtGImpactQuantizedBvhClass BtGImpactQuantizedBvh+instance BtClass BtGImpactQuantizedBvh where+  withBt (BtGImpactQuantizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactQuantizedBvh p) = castPtr $ unsafeForeignPtrToPtr p+class BtConcaveShapeClass p => BtGImpactShapeInterfaceClass p+instance BtConcaveShapeClass BtGImpactShapeInterface+instance BtCollisionShapeClass BtGImpactShapeInterface+instance BtGImpactShapeInterfaceClass BtGImpactShapeInterface+instance BtClass BtGImpactShapeInterface where+  withBt (BtGImpactShapeInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactShapeInterface p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGeneric6DofConstraintDataClass p+instance BtGeneric6DofConstraintDataClass BtGeneric6DofConstraintData+instance BtClass BtGeneric6DofConstraintData where+  withBt (BtGeneric6DofConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGeneric6DofConstraintData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGeneric6DofSpringConstraintDataClass p+instance BtGeneric6DofSpringConstraintDataClass BtGeneric6DofSpringConstraintData+instance BtClass BtGeneric6DofSpringConstraintData where+  withBt (BtGeneric6DofSpringConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGeneric6DofSpringConstraintData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGeometryUtilClass p+instance BtGeometryUtilClass BtGeometryUtil+instance BtClass BtGeometryUtil where+  withBt (BtGeometryUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGeometryUtil p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionObjectClass p => BtGhostObjectClass p+instance BtCollisionObjectClass BtGhostObject+instance BtGhostObjectClass BtGhostObject+instance BtClass BtGhostObject where+  withBt (BtGhostObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGhostObject p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGjkEpaSolver2Class p+instance BtGjkEpaSolver2Class BtGjkEpaSolver2+instance BtClass BtGjkEpaSolver2 where+  withBt (BtGjkEpaSolver2 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGjkEpaSolver2 p) = castPtr $ unsafeForeignPtrToPtr p+class BtDiscreteCollisionDetectorInterfaceClass p => BtGjkPairDetectorClass p+instance BtDiscreteCollisionDetectorInterfaceClass BtGjkPairDetector+instance BtGjkPairDetectorClass BtGjkPairDetector+instance BtClass BtGjkPairDetector where+  withBt (BtGjkPairDetector p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGjkPairDetector p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashIntClass p+instance BtHashIntClass BtHashInt+instance BtClass BtHashInt where+  withBt (BtHashInt p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashInt p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashInt_btTriangleInfo_Class p+instance BtHashMap_btHashInt_btTriangleInfo_Class BtHashMap_btHashInt_btTriangleInfo_+instance BtClass BtHashMap_btHashInt_btTriangleInfo_ where+  withBt (BtHashMap_btHashInt_btTriangleInfo_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashInt_btTriangleInfo_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashInt_int_Class p+instance BtHashMap_btHashInt_int_Class BtHashMap_btHashInt_int_+instance BtClass BtHashMap_btHashInt_int_ where+  withBt (BtHashMap_btHashInt_int_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashInt_int_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashPtr_btPointerUid_Class p+instance BtHashMap_btHashPtr_btPointerUid_Class BtHashMap_btHashPtr_btPointerUid_+instance BtClass BtHashMap_btHashPtr_btPointerUid_ where+  withBt (BtHashMap_btHashPtr_btPointerUid_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashPtr_btPointerUid_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashPtr_charconst_ptr_Class p+instance BtHashMap_btHashPtr_charconst_ptr_Class BtHashMap_btHashPtr_charconst_ptr_+instance BtClass BtHashMap_btHashPtr_charconst_ptr_ where+  withBt (BtHashMap_btHashPtr_charconst_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashPtr_charconst_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashPtr_void_ptr_Class p+instance BtHashMap_btHashPtr_void_ptr_Class BtHashMap_btHashPtr_void_ptr_+instance BtClass BtHashMap_btHashPtr_void_ptr_ where+  withBt (BtHashMap_btHashPtr_void_ptr_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashPtr_void_ptr_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashMap_btHashString_int_Class p+instance BtHashMap_btHashString_int_Class BtHashMap_btHashString_int_+instance BtClass BtHashMap_btHashString_int_ where+  withBt (BtHashMap_btHashString_int_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashMap_btHashString_int_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashPtrClass p+instance BtHashPtrClass BtHashPtr+instance BtClass BtHashPtr where+  withBt (BtHashPtr p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashPtr p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHashStringClass p+instance BtHashStringClass BtHashString+instance BtClass BtHashString where+  withBt (BtHashString p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashString p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHingeConstraintDoubleDataClass p+instance BtHingeConstraintDoubleDataClass BtHingeConstraintDoubleData+instance BtClass BtHingeConstraintDoubleData where+  withBt (BtHingeConstraintDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHingeConstraintDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtHingeConstraintFloatDataClass p+instance BtHingeConstraintFloatDataClass BtHingeConstraintFloatData+instance BtClass BtHingeConstraintFloatData where+  withBt (BtHingeConstraintFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHingeConstraintFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtIDebugDrawClass p+instance BtIDebugDrawClass BtIDebugDraw+instance BtClass BtIDebugDraw where+  withBt (BtIDebugDraw p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtIDebugDraw p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtIndexedMeshClass p+instance BtIndexedMeshClass BtIndexedMesh+instance BtClass BtIndexedMesh where+  withBt (BtIndexedMesh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtIndexedMesh p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtIntIndexDataClass p+instance BtIntIndexDataClass BtIntIndexData+instance BtClass BtIntIndexData where+  withBt (BtIntIndexData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtIntIndexData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtInternalTriangleIndexCallbackClass p+instance BtInternalTriangleIndexCallbackClass BtInternalTriangleIndexCallback+instance BtClass BtInternalTriangleIndexCallback where+  withBt (BtInternalTriangleIndexCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtInternalTriangleIndexCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtJacobianEntryClass p+instance BtJacobianEntryClass BtJacobianEntry+instance BtClass BtJacobianEntry where+  withBt (BtJacobianEntry p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtJacobianEntry p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtManifoldPointClass p+instance BtManifoldPointClass BtManifoldPoint+instance BtClass BtManifoldPoint where+  withBt (BtManifoldPoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtManifoldPoint p) = castPtr $ unsafeForeignPtrToPtr p+class BtDiscreteCollisionDetectorInterface_ResultClass p => BtManifoldResultClass p+instance BtDiscreteCollisionDetectorInterface_ResultClass BtManifoldResult+instance BtManifoldResultClass BtManifoldResult+instance BtClass BtManifoldResult where+  withBt (BtManifoldResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtManifoldResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMatrix3x3DoubleDataClass p+instance BtMatrix3x3DoubleDataClass BtMatrix3x3DoubleData+instance BtClass BtMatrix3x3DoubleData where+  withBt (BtMatrix3x3DoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMatrix3x3DoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMatrix3x3FloatDataClass p+instance BtMatrix3x3FloatDataClass BtMatrix3x3FloatData+instance BtClass BtMatrix3x3FloatData where+  withBt (BtMatrix3x3FloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMatrix3x3FloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMeshPartDataClass p+instance BtMeshPartDataClass BtMeshPartData+instance BtClass BtMeshPartData where+  withBt (BtMeshPartData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMeshPartData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMotionStateClass p+instance BtMotionStateClass BtMotionState+instance BtClass BtMotionState where+  withBt (BtMotionState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMotionState p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseInterfaceClass p => BtMultiSapBroadphaseClass p+instance BtBroadphaseInterfaceClass BtMultiSapBroadphase+instance BtMultiSapBroadphaseClass BtMultiSapBroadphase+instance BtClass BtMultiSapBroadphase where+  withBt (BtMultiSapBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMultiSapBroadphase p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseProxyClass p => BtMultiSapBroadphase_btMultiSapProxyClass p+instance BtBroadphaseProxyClass BtMultiSapBroadphase_btMultiSapProxy+instance BtMultiSapBroadphase_btMultiSapProxyClass BtMultiSapBroadphase_btMultiSapProxy+instance BtClass BtMultiSapBroadphase_btMultiSapProxy where+  withBt (BtMultiSapBroadphase_btMultiSapProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMultiSapBroadphase_btMultiSapProxy p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtMultiSphereShapeDataClass p+instance BtMultiSphereShapeDataClass BtMultiSphereShapeData+instance BtClass BtMultiSphereShapeData where+  withBt (BtMultiSphereShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMultiSphereShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtNodeOverlapCallbackClass p+instance BtNodeOverlapCallbackClass BtNodeOverlapCallback+instance BtClass BtNodeOverlapCallback where+  withBt (BtNodeOverlapCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtNodeOverlapCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOptimizedBvhNodeClass p+instance BtOptimizedBvhNodeClass BtOptimizedBvhNode+instance BtClass BtOptimizedBvhNode where+  withBt (BtOptimizedBvhNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOptimizedBvhNode p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOptimizedBvhNodeDoubleDataClass p+instance BtOptimizedBvhNodeDoubleDataClass BtOptimizedBvhNodeDoubleData+instance BtClass BtOptimizedBvhNodeDoubleData where+  withBt (BtOptimizedBvhNodeDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOptimizedBvhNodeDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOptimizedBvhNodeFloatDataClass p+instance BtOptimizedBvhNodeFloatDataClass BtOptimizedBvhNodeFloatData+instance BtClass BtOptimizedBvhNodeFloatData where+  withBt (BtOptimizedBvhNodeFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOptimizedBvhNodeFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOverlapCallbackClass p+instance BtOverlapCallbackClass BtOverlapCallback+instance BtClass BtOverlapCallback where+  withBt (BtOverlapCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOverlapCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOverlapFilterCallbackClass p+instance BtOverlapFilterCallbackClass BtOverlapFilterCallback+instance BtClass BtOverlapFilterCallback where+  withBt (BtOverlapFilterCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOverlapFilterCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtOverlappingPairCallbackClass p+instance BtOverlappingPairCallbackClass BtOverlappingPairCallback+instance BtClass BtOverlappingPairCallback where+  withBt (BtOverlappingPairCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOverlappingPairCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtGhostObjectClass p => BtPairCachingGhostObjectClass p+instance BtGhostObjectClass BtPairCachingGhostObject+instance BtCollisionObjectClass BtPairCachingGhostObject+instance BtPairCachingGhostObjectClass BtPairCachingGhostObject+instance BtClass BtPairCachingGhostObject where+  withBt (BtPairCachingGhostObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPairCachingGhostObject p) = castPtr $ unsafeForeignPtrToPtr p+class BtAlignedObjectArray_GIM_PAIR_Class p => BtPairSetClass p+instance BtAlignedObjectArray_GIM_PAIR_Class BtPairSet+instance BtPairSetClass BtPairSet+instance BtClass BtPairSet where+  withBt (BtPairSet p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPairSet p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPoint2PointConstraintDoubleDataClass p+instance BtPoint2PointConstraintDoubleDataClass BtPoint2PointConstraintDoubleData+instance BtClass BtPoint2PointConstraintDoubleData where+  withBt (BtPoint2PointConstraintDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPoint2PointConstraintDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPoint2PointConstraintFloatDataClass p+instance BtPoint2PointConstraintFloatDataClass BtPoint2PointConstraintFloatData+instance BtClass BtPoint2PointConstraintFloatData where+  withBt (BtPoint2PointConstraintFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPoint2PointConstraintFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPointerUidClass p+instance BtPointerUidClass BtPointerUid+instance BtClass BtPointerUid where+  withBt (BtPointerUid p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPointerUid p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPositionAndRadiusClass p+instance BtPositionAndRadiusClass BtPositionAndRadius+instance BtClass BtPositionAndRadius where+  withBt (BtPositionAndRadius p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPositionAndRadius p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPrimitiveManagerBaseClass p+instance BtPrimitiveManagerBaseClass BtPrimitiveManagerBase+instance BtClass BtPrimitiveManagerBase where+  withBt (BtPrimitiveManagerBase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPrimitiveManagerBase p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtPrimitiveTriangleClass p+instance BtPrimitiveTriangleClass BtPrimitiveTriangle+instance BtClass BtPrimitiveTriangle where+  withBt (BtPrimitiveTriangle p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPrimitiveTriangle p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuadWordClass p+instance BtQuadWordClass BtQuadWord+instance BtClass BtQuadWord where+  withBt (BtQuadWord p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuadWord p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhClass p+instance BtQuantizedBvhClass BtQuantizedBvh+instance BtClass BtQuantizedBvh where+  withBt (BtQuantizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvh p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhDoubleDataClass p+instance BtQuantizedBvhDoubleDataClass BtQuantizedBvhDoubleData+instance BtClass BtQuantizedBvhDoubleData where+  withBt (BtQuantizedBvhDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvhDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhFloatDataClass p+instance BtQuantizedBvhFloatDataClass BtQuantizedBvhFloatData+instance BtClass BtQuantizedBvhFloatData where+  withBt (BtQuantizedBvhFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvhFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhNodeClass p+instance BtQuantizedBvhNodeClass BtQuantizedBvhNode+instance BtClass BtQuantizedBvhNode where+  withBt (BtQuantizedBvhNode p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvhNode p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhNodeDataClass p+instance BtQuantizedBvhNodeDataClass BtQuantizedBvhNodeData+instance BtClass BtQuantizedBvhNodeData where+  withBt (BtQuantizedBvhNodeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvhNodeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtQuantizedBvhTreeClass p+instance BtQuantizedBvhTreeClass BtQuantizedBvhTree+instance BtClass BtQuantizedBvhTree where+  withBt (BtQuantizedBvhTree p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtQuantizedBvhTree p) = castPtr $ unsafeForeignPtrToPtr p+class BtActionInterfaceClass p => BtRaycastVehicleClass p+instance BtActionInterfaceClass BtRaycastVehicle+instance BtRaycastVehicleClass BtRaycastVehicle+instance BtClass BtRaycastVehicle where+  withBt (BtRaycastVehicle p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRaycastVehicle p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionObjectClass p => BtRigidBodyClass p+instance BtCollisionObjectClass BtRigidBody+instance BtRigidBodyClass BtRigidBody+instance BtClass BtRigidBody where+  withBt (BtRigidBody p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRigidBody p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtRigidBody_btRigidBodyConstructionInfoClass p+instance BtRigidBody_btRigidBodyConstructionInfoClass BtRigidBody_btRigidBodyConstructionInfo+instance BtClass BtRigidBody_btRigidBodyConstructionInfo where+  withBt (BtRigidBody_btRigidBodyConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRigidBody_btRigidBodyConstructionInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtRigidBodyDoubleDataClass p+instance BtRigidBodyDoubleDataClass BtRigidBodyDoubleData+instance BtClass BtRigidBodyDoubleData where+  withBt (BtRigidBodyDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRigidBodyDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtRigidBodyFloatDataClass p+instance BtRigidBodyFloatDataClass BtRigidBodyFloatData+instance BtClass BtRigidBodyFloatData where+  withBt (BtRigidBodyFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRigidBodyFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtRotationalLimitMotorClass p+instance BtRotationalLimitMotorClass BtRotationalLimitMotor+instance BtClass BtRotationalLimitMotor where+  withBt (BtRotationalLimitMotor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRotationalLimitMotor p) = castPtr $ unsafeForeignPtrToPtr p+class BtConcaveShapeClass p => BtScaledBvhTriangleMeshShapeClass p+instance BtConcaveShapeClass BtScaledBvhTriangleMeshShape+instance BtCollisionShapeClass BtScaledBvhTriangleMeshShape+instance BtScaledBvhTriangleMeshShapeClass BtScaledBvhTriangleMeshShape+instance BtClass BtScaledBvhTriangleMeshShape where+  withBt (BtScaledBvhTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtScaledBvhTriangleMeshShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtScaledTriangleMeshShapeDataClass p+instance BtScaledTriangleMeshShapeDataClass BtScaledTriangleMeshShapeData+instance BtClass BtScaledTriangleMeshShapeData where+  withBt (BtScaledTriangleMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtScaledTriangleMeshShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtConstraintSolverClass p => BtSequentialImpulseConstraintSolverClass p+instance BtConstraintSolverClass BtSequentialImpulseConstraintSolver+instance BtSequentialImpulseConstraintSolverClass BtSequentialImpulseConstraintSolver+instance BtClass BtSequentialImpulseConstraintSolver where+  withBt (BtSequentialImpulseConstraintSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSequentialImpulseConstraintSolver p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSerializerClass p+instance BtSerializerClass BtSerializer+instance BtClass BtSerializer where+  withBt (BtSerializer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSerializer p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtShortIntIndexDataClass p+instance BtShortIntIndexDataClass BtShortIntIndexData+instance BtClass BtShortIntIndexData where+  withBt (BtShortIntIndexData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtShortIntIndexData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtShortIntIndexTripletDataClass p+instance BtShortIntIndexTripletDataClass BtShortIntIndexTripletData+instance BtClass BtShortIntIndexTripletData where+  withBt (BtShortIntIndexTripletData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtShortIntIndexTripletData p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseInterfaceClass p => BtSimpleBroadphaseClass p+instance BtBroadphaseInterfaceClass BtSimpleBroadphase+instance BtSimpleBroadphaseClass BtSimpleBroadphase+instance BtClass BtSimpleBroadphase where+  withBt (BtSimpleBroadphase p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSimpleBroadphase p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseProxyClass p => BtSimpleBroadphaseProxyClass p+instance BtBroadphaseProxyClass BtSimpleBroadphaseProxy+instance BtSimpleBroadphaseProxyClass BtSimpleBroadphaseProxy+instance BtClass BtSimpleBroadphaseProxy where+  withBt (BtSimpleBroadphaseProxy p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSimpleBroadphaseProxy p) = castPtr $ unsafeForeignPtrToPtr p+class BtDynamicsWorldClass p => BtSimpleDynamicsWorldClass p+instance BtDynamicsWorldClass BtSimpleDynamicsWorld+instance BtCollisionWorldClass BtSimpleDynamicsWorld+instance BtSimpleDynamicsWorldClass BtSimpleDynamicsWorld+instance BtClass BtSimpleDynamicsWorld where+  withBt (BtSimpleDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSimpleDynamicsWorld p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSliderConstraintDataClass p+instance BtSliderConstraintDataClass BtSliderConstraintData+instance BtClass BtSliderConstraintData where+  withBt (BtSliderConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSliderConstraintData p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionObjectClass p => BtSoftBodyClass p+instance BtCollisionObjectClass BtSoftBody+instance BtSoftBodyClass BtSoftBody+instance BtClass BtSoftBody where+  withBt (BtSoftBody p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBodyHelpersClass p+instance BtSoftBodyHelpersClass BtSoftBodyHelpers+instance BtClass BtSoftBodyHelpers where+  withBt (BtSoftBodyHelpers p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBodyHelpers p) = castPtr $ unsafeForeignPtrToPtr p+class BtDefaultCollisionConfigurationClass p => BtSoftBodyRigidBodyCollisionConfigurationClass p+instance BtDefaultCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration+instance BtCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration+instance BtSoftBodyRigidBodyCollisionConfigurationClass BtSoftBodyRigidBodyCollisionConfiguration+instance BtClass BtSoftBodyRigidBodyCollisionConfiguration where+  withBt (BtSoftBodyRigidBodyCollisionConfiguration p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBodyRigidBodyCollisionConfiguration p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBodyWorldInfoClass p+instance BtSoftBodyWorldInfoClass BtSoftBodyWorldInfo+instance BtClass BtSoftBodyWorldInfo where+  withBt (BtSoftBodyWorldInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBodyWorldInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSolverBodyObsoleteClass p+instance BtSolverBodyObsoleteClass BtSolverBodyObsolete+instance BtClass BtSolverBodyObsolete where+  withBt (BtSolverBodyObsolete p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSolverBodyObsolete p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSolverConstraintClass p+instance BtSolverConstraintClass BtSolverConstraint+instance BtClass BtSolverConstraint where+  withBt (BtSolverConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSolverConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSparseSdf_3_Class p+instance BtSparseSdf_3_Class BtSparseSdf_3_+instance BtClass BtSparseSdf_3_ where+  withBt (BtSparseSdf_3_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSparseSdf_3_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtStackAllocClass p+instance BtStackAllocClass BtStackAlloc+instance BtClass BtStackAlloc where+  withBt (BtStackAlloc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStackAlloc p) = castPtr $ unsafeForeignPtrToPtr p+class BtConcaveShapeClass p => BtStaticPlaneShapeClass p+instance BtConcaveShapeClass BtStaticPlaneShape+instance BtCollisionShapeClass BtStaticPlaneShape+instance BtStaticPlaneShapeClass BtStaticPlaneShape+instance BtClass BtStaticPlaneShape where+  withBt (BtStaticPlaneShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStaticPlaneShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtStaticPlaneShapeDataClass p+instance BtStaticPlaneShapeDataClass BtStaticPlaneShapeData+instance BtClass BtStaticPlaneShapeData where+  withBt (BtStaticPlaneShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStaticPlaneShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtDiscreteCollisionDetectorInterface_ResultClass p => BtStorageResultClass p+instance BtDiscreteCollisionDetectorInterface_ResultClass BtStorageResult+instance BtStorageResultClass BtStorageResult+instance BtClass BtStorageResult where+  withBt (BtStorageResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStorageResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtStridingMeshInterfaceClass p+instance BtStridingMeshInterfaceClass BtStridingMeshInterface+instance BtClass BtStridingMeshInterface where+  withBt (BtStridingMeshInterface p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStridingMeshInterface p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtStridingMeshInterfaceDataClass p+instance BtStridingMeshInterfaceDataClass BtStridingMeshInterfaceData+instance BtClass BtStridingMeshInterfaceData where+  withBt (BtStridingMeshInterfaceData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtStridingMeshInterfaceData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSubSimplexClosestResultClass p+instance BtSubSimplexClosestResultClass BtSubSimplexClosestResult+instance BtClass BtSubSimplexClosestResult where+  withBt (BtSubSimplexClosestResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSubSimplexClosestResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTransformDoubleDataClass p+instance BtTransformDoubleDataClass BtTransformDoubleData+instance BtClass BtTransformDoubleData where+  withBt (BtTransformDoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTransformDoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTransformFloatDataClass p+instance BtTransformFloatDataClass BtTransformFloatData+instance BtClass BtTransformFloatData where+  withBt (BtTransformFloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTransformFloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTransformUtilClass p+instance BtTransformUtilClass BtTransformUtil+instance BtClass BtTransformUtil where+  withBt (BtTransformUtil p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTransformUtil p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTranslationalLimitMotorClass p+instance BtTranslationalLimitMotorClass BtTranslationalLimitMotor+instance BtClass BtTranslationalLimitMotor where+  withBt (BtTranslationalLimitMotor p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTranslationalLimitMotor p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTriangleCallbackClass p+instance BtTriangleCallbackClass BtTriangleCallback+instance BtClass BtTriangleCallback where+  withBt (BtTriangleCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtStridingMeshInterfaceClass p => BtTriangleIndexVertexArrayClass p+instance BtStridingMeshInterfaceClass BtTriangleIndexVertexArray+instance BtTriangleIndexVertexArrayClass BtTriangleIndexVertexArray+instance BtClass BtTriangleIndexVertexArray where+  withBt (BtTriangleIndexVertexArray p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleIndexVertexArray p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTriangleInfoClass p+instance BtTriangleInfoClass BtTriangleInfo+instance BtClass BtTriangleInfo where+  withBt (BtTriangleInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTriangleInfoDataClass p+instance BtTriangleInfoDataClass BtTriangleInfoData+instance BtClass BtTriangleInfoData where+  withBt (BtTriangleInfoData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleInfoData p) = castPtr $ unsafeForeignPtrToPtr p+class BtHashMap_btHashInt_btTriangleInfo_Class p => BtTriangleInfoMapClass p+instance BtHashMap_btHashInt_btTriangleInfo_Class BtTriangleInfoMap+instance BtTriangleInfoMapClass BtTriangleInfoMap+instance BtClass BtTriangleInfoMap where+  withBt (BtTriangleInfoMap p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleInfoMap p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTriangleInfoMapDataClass p+instance BtTriangleInfoMapDataClass BtTriangleInfoMapData+instance BtClass BtTriangleInfoMapData where+  withBt (BtTriangleInfoMapData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleInfoMapData p) = castPtr $ unsafeForeignPtrToPtr p+class BtTriangleIndexVertexArrayClass p => BtTriangleMeshClass p+instance BtTriangleIndexVertexArrayClass BtTriangleMesh+instance BtStridingMeshInterfaceClass BtTriangleMesh+instance BtTriangleMeshClass BtTriangleMesh+instance BtClass BtTriangleMesh where+  withBt (BtTriangleMesh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleMesh p) = castPtr $ unsafeForeignPtrToPtr p+class BtConcaveShapeClass p => BtTriangleMeshShapeClass p+instance BtConcaveShapeClass BtTriangleMeshShape+instance BtCollisionShapeClass BtTriangleMeshShape+instance BtTriangleMeshShapeClass BtTriangleMeshShape+instance BtClass BtTriangleMeshShape where+  withBt (BtTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleMeshShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTriangleMeshShapeDataClass p+instance BtTriangleMeshShapeDataClass BtTriangleMeshShapeData+instance BtClass BtTriangleMeshShapeData where+  withBt (BtTriangleMeshShapeData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleMeshShapeData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTypedConstraintDataClass p+instance BtTypedConstraintDataClass BtTypedConstraintData+instance BtClass BtTypedConstraintData where+  withBt (BtTypedConstraintData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTypedConstraintData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtTypedObjectClass p+instance BtTypedObjectClass BtTypedObject+instance BtClass BtTypedObject where+  withBt (BtTypedObject p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTypedObject p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexShapeClass p => BtUniformScalingShapeClass p+instance BtConvexShapeClass BtUniformScalingShape+instance BtCollisionShapeClass BtUniformScalingShape+instance BtUniformScalingShapeClass BtUniformScalingShape+instance BtClass BtUniformScalingShape where+  withBt (BtUniformScalingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtUniformScalingShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtUsageBitfieldClass p+instance BtUsageBitfieldClass BtUsageBitfield+instance BtClass BtUsageBitfield where+  withBt (BtUsageBitfield p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtUsageBitfield p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtVector3DoubleDataClass p+instance BtVector3DoubleDataClass BtVector3DoubleData+instance BtClass BtVector3DoubleData where+  withBt (BtVector3DoubleData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtVector3DoubleData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtVector3FloatDataClass p+instance BtVector3FloatDataClass BtVector3FloatData+instance BtClass BtVector3FloatData where+  withBt (BtVector3FloatData p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtVector3FloatData p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtVehicleRaycasterClass p+instance BtVehicleRaycasterClass BtVehicleRaycaster+instance BtClass BtVehicleRaycaster where+  withBt (BtVehicleRaycaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtVehicleRaycaster p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtVehicleRaycaster_btVehicleRaycasterResultClass p+instance BtVehicleRaycaster_btVehicleRaycasterResultClass BtVehicleRaycaster_btVehicleRaycasterResult+instance BtClass BtVehicleRaycaster_btVehicleRaycasterResult where+  withBt (BtVehicleRaycaster_btVehicleRaycasterResult p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtVehicleRaycaster_btVehicleRaycasterResult p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtRaycastVehicle_btVehicleTuningClass p+instance BtRaycastVehicle_btVehicleTuningClass BtRaycastVehicle_btVehicleTuning+instance BtClass BtRaycastVehicle_btVehicleTuning where+  withBt (BtRaycastVehicle_btVehicleTuning p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtRaycastVehicle_btVehicleTuning p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtVoronoiSimplexSolverClass p+instance BtVoronoiSimplexSolverClass BtVoronoiSimplexSolver+instance BtClass BtVoronoiSimplexSolver where+  withBt (BtVoronoiSimplexSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtVoronoiSimplexSolver p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtWheelInfoClass p+instance BtWheelInfoClass BtWheelInfo+instance BtClass BtWheelInfo where+  withBt (BtWheelInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtWheelInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtWheelInfoConstructionInfoClass p+instance BtWheelInfoConstructionInfoClass BtWheelInfoConstructionInfo+instance BtClass BtWheelInfoConstructionInfo where+  withBt (BtWheelInfoConstructionInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtWheelInfoConstructionInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_eAeroModelClass p+instance BtSoftBody_eAeroModelClass BtSoftBody_eAeroModel+instance BtClass BtSoftBody_eAeroModel where+  withBt (BtSoftBody_eAeroModel p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_eAeroModel p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_eFeatureClass p+instance BtSoftBody_eFeatureClass BtSoftBody_eFeature+instance BtClass BtSoftBody_eFeature where+  withBt (BtSoftBody_eFeature p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_eFeature p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_ePSolverClass p+instance BtSoftBody_ePSolverClass BtSoftBody_ePSolver+instance BtClass BtSoftBody_ePSolver where+  withBt (BtSoftBody_ePSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_ePSolver p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_eSolverPresetsClass p+instance BtSoftBody_eSolverPresetsClass BtSoftBody_eSolverPresets+instance BtClass BtSoftBody_eSolverPresets where+  withBt (BtSoftBody_eSolverPresets p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_eSolverPresets p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_Joint_eTypeClass p+instance BtSoftBody_Joint_eTypeClass BtSoftBody_Joint_eType+instance BtClass BtSoftBody_Joint_eType where+  withBt (BtSoftBody_Joint_eType p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Joint_eType p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_eVSolverClass p+instance BtSoftBody_eVSolverClass BtSoftBody_eVSolver+instance BtClass BtSoftBody_eVSolver where+  withBt (BtSoftBody_eVSolver p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_eVSolver p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_fCollisionClass p+instance BtSoftBody_fCollisionClass BtSoftBody_fCollision+instance BtClass BtSoftBody_fCollision where+  withBt (BtSoftBody_fCollision p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_fCollision p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => FDrawFlagsClass p+instance FDrawFlagsClass FDrawFlags+instance BtClass FDrawFlags where+  withBt (FDrawFlags p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (FDrawFlags p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_fMaterialClass p+instance BtSoftBody_fMaterialClass BtSoftBody_fMaterial+instance BtClass BtSoftBody_fMaterial where+  withBt (BtSoftBody_fMaterial p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_fMaterial p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_sCtiClass p+instance BtSoftBody_sCtiClass BtSoftBody_sCti+instance BtClass BtSoftBody_sCti where+  withBt (BtSoftBody_sCti p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_sCti p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_sMediumClass p+instance BtSoftBody_sMediumClass BtSoftBody_sMedium+instance BtClass BtSoftBody_sMedium where+  withBt (BtSoftBody_sMedium p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_sMedium p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtSoftBody_sRayCastClass p+instance BtSoftBody_sRayCastClass BtSoftBody_sRayCast+instance BtClass BtSoftBody_sRayCast where+  withBt (BtSoftBody_sRayCast p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_sRayCast p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtGjkEpaSolver2_sResultsClass p+instance BtGjkEpaSolver2_sResultsClass BtGjkEpaSolver2_sResults+instance BtClass BtGjkEpaSolver2_sResults where+  withBt (BtGjkEpaSolver2_sResults p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGjkEpaSolver2_sResults p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_sStkCLNClass p+instance BtDbvt_sStkCLNClass BtDbvt_sStkCLN+instance BtClass BtDbvt_sStkCLN where+  withBt (BtDbvt_sStkCLN p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_sStkCLN p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_sStkNNClass p+instance BtDbvt_sStkNNClass BtDbvt_sStkNN+instance BtClass BtDbvt_sStkNN where+  withBt (BtDbvt_sStkNN p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_sStkNN p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_sStkNPClass p+instance BtDbvt_sStkNPClass BtDbvt_sStkNP+instance BtClass BtDbvt_sStkNP where+  withBt (BtDbvt_sStkNP p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_sStkNP p) = castPtr $ unsafeForeignPtrToPtr p+class BtClass p => BtDbvt_sStkNPSClass p+instance BtDbvt_sStkNPSClass BtDbvt_sStkNPS+instance BtClass BtDbvt_sStkNPS where+  withBt (BtDbvt_sStkNPS p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDbvt_sStkNPS p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_JointClass p => BtSoftBody_AJointClass p+instance BtSoftBody_JointClass BtSoftBody_AJoint+instance BtSoftBody_AJointClass BtSoftBody_AJoint+instance BtClass BtSoftBody_AJoint where+  withBt (BtSoftBody_AJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_AJoint p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionWorld_RayResultCallbackClass p => BtCollisionWorld_AllHitsRayResultCallbackClass p+instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_AllHitsRayResultCallback+instance BtCollisionWorld_AllHitsRayResultCallbackClass BtCollisionWorld_AllHitsRayResultCallback+instance BtClass BtCollisionWorld_AllHitsRayResultCallback where+  withBt (BtCollisionWorld_AllHitsRayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_AllHitsRayResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_JointClass p => BtSoftBody_CJointClass p+instance BtSoftBody_JointClass BtSoftBody_CJoint+instance BtSoftBody_CJointClass BtSoftBody_CJoint+instance BtClass BtSoftBody_CJoint where+  withBt (BtSoftBody_CJoint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_CJoint p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionWorld_ConvexResultCallbackClass p => BtCollisionWorld_ClosestConvexResultCallbackClass p+instance BtCollisionWorld_ConvexResultCallbackClass BtCollisionWorld_ClosestConvexResultCallback+instance BtCollisionWorld_ClosestConvexResultCallbackClass BtCollisionWorld_ClosestConvexResultCallback+instance BtClass BtCollisionWorld_ClosestConvexResultCallback where+  withBt (BtCollisionWorld_ClosestConvexResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_ClosestConvexResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionWorld_RayResultCallbackClass p => BtCollisionWorld_ClosestRayResultCallbackClass p+instance BtCollisionWorld_RayResultCallbackClass BtCollisionWorld_ClosestRayResultCallback+instance BtCollisionWorld_ClosestRayResultCallbackClass BtCollisionWorld_ClosestRayResultCallback+instance BtClass BtCollisionWorld_ClosestRayResultCallback where+  withBt (BtCollisionWorld_ClosestRayResultCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionWorld_ClosestRayResultCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtPrimitiveManagerBaseClass p => BtGImpactCompoundShape_CompoundPrimitiveManagerClass p+instance BtPrimitiveManagerBaseClass BtGImpactCompoundShape_CompoundPrimitiveManager+instance BtGImpactCompoundShape_CompoundPrimitiveManagerClass BtGImpactCompoundShape_CompoundPrimitiveManager+instance BtClass BtGImpactCompoundShape_CompoundPrimitiveManager where+  withBt (BtGImpactCompoundShape_CompoundPrimitiveManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactCompoundShape_CompoundPrimitiveManager p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionAlgorithmCreateFuncClass p => BtGImpactCollisionAlgorithm_CreateFuncClass p+instance BtCollisionAlgorithmCreateFuncClass BtGImpactCollisionAlgorithm_CreateFunc+instance BtGImpactCollisionAlgorithm_CreateFuncClass BtGImpactCollisionAlgorithm_CreateFunc+instance BtClass BtGImpactCollisionAlgorithm_CreateFunc where+  withBt (BtGImpactCollisionAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactCollisionAlgorithm_CreateFunc p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionAlgorithmCreateFuncClass p => BtSphereSphereCollisionAlgorithm_CreateFuncClass p+instance BtCollisionAlgorithmCreateFuncClass BtSphereSphereCollisionAlgorithm_CreateFunc+instance BtSphereSphereCollisionAlgorithm_CreateFuncClass BtSphereSphereCollisionAlgorithm_CreateFunc+instance BtClass BtSphereSphereCollisionAlgorithm_CreateFunc where+  withBt (BtSphereSphereCollisionAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSphereSphereCollisionAlgorithm_CreateFunc p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionAlgorithmCreateFuncClass p => BtConvexConvexAlgorithm_CreateFuncClass p+instance BtCollisionAlgorithmCreateFuncClass BtConvexConvexAlgorithm_CreateFunc+instance BtConvexConvexAlgorithm_CreateFuncClass BtConvexConvexAlgorithm_CreateFunc+instance BtClass BtConvexConvexAlgorithm_CreateFunc where+  withBt (BtConvexConvexAlgorithm_CreateFunc p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexConvexAlgorithm_CreateFunc p) = castPtr $ unsafeForeignPtrToPtr p+class BtSoftBody_FeatureClass p => BtSoftBody_FaceClass p+instance BtSoftBody_FeatureClass BtSoftBody_Face+instance BtSoftBody_ElementClass BtSoftBody_Face+instance BtSoftBody_FaceClass BtSoftBody_Face+instance BtClass BtSoftBody_Face where+  withBt (BtSoftBody_Face p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftBody_Face p) = castPtr $ unsafeForeignPtrToPtr p+class BtAlignedObjectArray_GIM_BVH_DATA_Class p => GIM_BVH_DATA_ARRAYClass p+instance BtAlignedObjectArray_GIM_BVH_DATA_Class GIM_BVH_DATA_ARRAY+instance GIM_BVH_DATA_ARRAYClass GIM_BVH_DATA_ARRAY+instance BtClass GIM_BVH_DATA_ARRAY where+  withBt (GIM_BVH_DATA_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_BVH_DATA_ARRAY p) = castPtr $ unsafeForeignPtrToPtr p+class BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class p => GIM_BVH_TREE_NODE_ARRAYClass p+instance BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class GIM_BVH_TREE_NODE_ARRAY+instance GIM_BVH_TREE_NODE_ARRAYClass GIM_BVH_TREE_NODE_ARRAY+instance BtClass GIM_BVH_TREE_NODE_ARRAY where+  withBt (GIM_BVH_TREE_NODE_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_BVH_TREE_NODE_ARRAY p) = castPtr $ unsafeForeignPtrToPtr p+class BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class p => GIM_QUANTIZED_BVH_NODE_ARRAYClass p+instance BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class GIM_QUANTIZED_BVH_NODE_ARRAY+instance GIM_QUANTIZED_BVH_NODE_ARRAYClass GIM_QUANTIZED_BVH_NODE_ARRAY+instance BtClass GIM_QUANTIZED_BVH_NODE_ARRAY where+  withBt (GIM_QUANTIZED_BVH_NODE_ARRAY p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (GIM_QUANTIZED_BVH_NODE_ARRAY p) = castPtr $ unsafeForeignPtrToPtr p+class BtPrimitiveManagerBaseClass p => BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass p+instance BtPrimitiveManagerBaseClass BtGImpactMeshShapePart_TrimeshPrimitiveManager+instance BtGImpactMeshShapePart_TrimeshPrimitiveManagerClass BtGImpactMeshShapePart_TrimeshPrimitiveManager+instance BtClass BtGImpactMeshShapePart_TrimeshPrimitiveManager where+  withBt (BtGImpactMeshShapePart_TrimeshPrimitiveManager p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactMeshShapePart_TrimeshPrimitiveManager p) = castPtr $ unsafeForeignPtrToPtr p+class BtCollisionAlgorithmClass p => BtActivatingCollisionAlgorithmClass p+instance BtCollisionAlgorithmClass BtActivatingCollisionAlgorithm+instance BtActivatingCollisionAlgorithmClass BtActivatingCollisionAlgorithm+instance BtClass BtActivatingCollisionAlgorithm where+  withBt (BtActivatingCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtActivatingCollisionAlgorithm p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseInterfaceClass p => BtAxisSweep3Internal_unsignedint_Class p+instance BtBroadphaseInterfaceClass BtAxisSweep3Internal_unsignedint_+instance BtAxisSweep3Internal_unsignedint_Class BtAxisSweep3Internal_unsignedint_+instance BtClass BtAxisSweep3Internal_unsignedint_ where+  withBt (BtAxisSweep3Internal_unsignedint_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAxisSweep3Internal_unsignedint_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtBroadphaseInterfaceClass p => BtAxisSweep3Internal_unsignedshort_Class p+instance BtBroadphaseInterfaceClass BtAxisSweep3Internal_unsignedshort_+instance BtAxisSweep3Internal_unsignedshort_Class BtAxisSweep3Internal_unsignedshort_+instance BtClass BtAxisSweep3Internal_unsignedshort_ where+  withBt (BtAxisSweep3Internal_unsignedshort_ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAxisSweep3Internal_unsignedshort_ p) = castPtr $ unsafeForeignPtrToPtr p+class BtTriangleMeshShapeClass p => BtBvhTriangleMeshShapeClass p+instance BtTriangleMeshShapeClass BtBvhTriangleMeshShape+instance BtConcaveShapeClass BtBvhTriangleMeshShape+instance BtCollisionShapeClass BtBvhTriangleMeshShape+instance BtBvhTriangleMeshShapeClass BtBvhTriangleMeshShape+instance BtClass BtBvhTriangleMeshShape where+  withBt (BtBvhTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBvhTriangleMeshShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtDispatcherClass p => BtCollisionDispatcherClass p+instance BtDispatcherClass BtCollisionDispatcher+instance BtCollisionDispatcherClass BtCollisionDispatcher+instance BtClass BtCollisionDispatcher where+  withBt (BtCollisionDispatcher p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCollisionDispatcher p) = castPtr $ unsafeForeignPtrToPtr p+class BtContactSolverInfoDataClass p => BtContactSolverInfoClass p+instance BtContactSolverInfoDataClass BtContactSolverInfo+instance BtContactSolverInfoClass BtContactSolverInfo+instance BtClass BtContactSolverInfo where+  withBt (BtContactSolverInfo p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtContactSolverInfo p) = castPtr $ unsafeForeignPtrToPtr p+class BtActivatingCollisionAlgorithmClass p => BtConvexConvexAlgorithmClass p+instance BtActivatingCollisionAlgorithmClass BtConvexConvexAlgorithm+instance BtCollisionAlgorithmClass BtConvexConvexAlgorithm+instance BtConvexConvexAlgorithmClass BtConvexConvexAlgorithm+instance BtClass BtConvexConvexAlgorithm where+  withBt (BtConvexConvexAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexConvexAlgorithm p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexShapeClass p => BtConvexInternalShapeClass p+instance BtConvexShapeClass BtConvexInternalShape+instance BtCollisionShapeClass BtConvexInternalShape+instance BtConvexInternalShapeClass BtConvexInternalShape+instance BtClass BtConvexInternalShape where+  withBt (BtConvexInternalShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexInternalShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtCylinderShapeClass p+instance BtConvexInternalShapeClass BtCylinderShape+instance BtConvexShapeClass BtCylinderShape+instance BtCollisionShapeClass BtCylinderShape+instance BtCylinderShapeClass BtCylinderShape+instance BtClass BtCylinderShape where+  withBt (BtCylinderShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCylinderShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtCylinderShapeClass p => BtCylinderShapeXClass p+instance BtCylinderShapeClass BtCylinderShapeX+instance BtConvexInternalShapeClass BtCylinderShapeX+instance BtConvexShapeClass BtCylinderShapeX+instance BtCollisionShapeClass BtCylinderShapeX+instance BtCylinderShapeXClass BtCylinderShapeX+instance BtClass BtCylinderShapeX where+  withBt (BtCylinderShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCylinderShapeX p) = castPtr $ unsafeForeignPtrToPtr p+class BtCylinderShapeClass p => BtCylinderShapeZClass p+instance BtCylinderShapeClass BtCylinderShapeZ+instance BtConvexInternalShapeClass BtCylinderShapeZ+instance BtConvexShapeClass BtCylinderShapeZ+instance BtCollisionShapeClass BtCylinderShapeZ+instance BtCylinderShapeZClass BtCylinderShapeZ+instance BtClass BtCylinderShapeZ where+  withBt (BtCylinderShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCylinderShapeZ p) = castPtr $ unsafeForeignPtrToPtr p+class BtMotionStateClass p => BtDefaultMotionStateClass p+instance BtMotionStateClass BtDefaultMotionState+instance BtDefaultMotionStateClass BtDefaultMotionState+instance BtClass BtDefaultMotionState where+  withBt (BtDefaultMotionState p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDefaultMotionState p) = castPtr $ unsafeForeignPtrToPtr p+class BtSerializerClass p => BtDefaultSerializerClass p+instance BtSerializerClass BtDefaultSerializer+instance BtDefaultSerializerClass BtDefaultSerializer+instance BtClass BtDefaultSerializer where+  withBt (BtDefaultSerializer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDefaultSerializer p) = castPtr $ unsafeForeignPtrToPtr p+class BtVehicleRaycasterClass p => BtDefaultVehicleRaycasterClass p+instance BtVehicleRaycasterClass BtDefaultVehicleRaycaster+instance BtDefaultVehicleRaycasterClass BtDefaultVehicleRaycaster+instance BtClass BtDefaultVehicleRaycaster where+  withBt (BtDefaultVehicleRaycaster p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDefaultVehicleRaycaster p) = castPtr $ unsafeForeignPtrToPtr p+class BtDynamicsWorldClass p => BtDiscreteDynamicsWorldClass p+instance BtDynamicsWorldClass BtDiscreteDynamicsWorld+instance BtCollisionWorldClass BtDiscreteDynamicsWorld+instance BtDiscreteDynamicsWorldClass BtDiscreteDynamicsWorld+instance BtClass BtDiscreteDynamicsWorld where+  withBt (BtDiscreteDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtDiscreteDynamicsWorld p) = castPtr $ unsafeForeignPtrToPtr p+class BtActivatingCollisionAlgorithmClass p => BtGImpactCollisionAlgorithmClass p+instance BtActivatingCollisionAlgorithmClass BtGImpactCollisionAlgorithm+instance BtCollisionAlgorithmClass BtGImpactCollisionAlgorithm+instance BtGImpactCollisionAlgorithmClass BtGImpactCollisionAlgorithm+instance BtClass BtGImpactCollisionAlgorithm where+  withBt (BtGImpactCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactCollisionAlgorithm p) = castPtr $ unsafeForeignPtrToPtr p+class BtGImpactShapeInterfaceClass p => BtGImpactCompoundShapeClass p+instance BtGImpactShapeInterfaceClass BtGImpactCompoundShape+instance BtConcaveShapeClass BtGImpactCompoundShape+instance BtCollisionShapeClass BtGImpactCompoundShape+instance BtGImpactCompoundShapeClass BtGImpactCompoundShape+instance BtClass BtGImpactCompoundShape where+  withBt (BtGImpactCompoundShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactCompoundShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtGImpactShapeInterfaceClass p => BtGImpactMeshShapeClass p+instance BtGImpactShapeInterfaceClass BtGImpactMeshShape+instance BtConcaveShapeClass BtGImpactMeshShape+instance BtCollisionShapeClass BtGImpactMeshShape+instance BtGImpactMeshShapeClass BtGImpactMeshShape+instance BtClass BtGImpactMeshShape where+  withBt (BtGImpactMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactMeshShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtGImpactShapeInterfaceClass p => BtGImpactMeshShapePartClass p+instance BtGImpactShapeInterfaceClass BtGImpactMeshShapePart+instance BtConcaveShapeClass BtGImpactMeshShapePart+instance BtCollisionShapeClass BtGImpactMeshShapePart+instance BtGImpactMeshShapePartClass BtGImpactMeshShapePart+instance BtClass BtGImpactMeshShapePart where+  withBt (BtGImpactMeshShapePart p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGImpactMeshShapePart p) = castPtr $ unsafeForeignPtrToPtr p+class BtIDebugDrawClass p => BtGLDebugDrawerClass p+instance BtIDebugDrawClass BtGLDebugDrawer+instance BtGLDebugDrawerClass BtGLDebugDrawer+instance BtClass BtGLDebugDrawer where+  withBt (BtGLDebugDrawer p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGLDebugDrawer p) = castPtr $ unsafeForeignPtrToPtr p+class BtOverlappingPairCallbackClass p => BtGhostPairCallbackClass p+instance BtOverlappingPairCallbackClass BtGhostPairCallback+instance BtGhostPairCallbackClass BtGhostPairCallback+instance BtClass BtGhostPairCallback where+  withBt (BtGhostPairCallback p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGhostPairCallback p) = castPtr $ unsafeForeignPtrToPtr p+class BtQuantizedBvhClass p => BtOptimizedBvhClass p+instance BtQuantizedBvhClass BtOptimizedBvh+instance BtOptimizedBvhClass BtOptimizedBvh+instance BtClass BtOptimizedBvh where+  withBt (BtOptimizedBvh p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOptimizedBvh p) = castPtr $ unsafeForeignPtrToPtr p+class BtOverlappingPairCallbackClass p => BtOverlappingPairCacheClass p+instance BtOverlappingPairCallbackClass BtOverlappingPairCache+instance BtOverlappingPairCacheClass BtOverlappingPairCache+instance BtClass BtOverlappingPairCache where+  withBt (BtOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtOverlappingPairCache p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedObjectClass p => BtPersistentManifoldClass p+instance BtTypedObjectClass BtPersistentManifold+instance BtPersistentManifoldClass BtPersistentManifold+instance BtClass BtPersistentManifold where+  withBt (BtPersistentManifold p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPersistentManifold p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtPolyhedralConvexShapeClass p+instance BtConvexInternalShapeClass BtPolyhedralConvexShape+instance BtConvexShapeClass BtPolyhedralConvexShape+instance BtCollisionShapeClass BtPolyhedralConvexShape+instance BtPolyhedralConvexShapeClass BtPolyhedralConvexShape+instance BtClass BtPolyhedralConvexShape where+  withBt (BtPolyhedralConvexShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPolyhedralConvexShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtDiscreteDynamicsWorldClass p => BtSoftRigidDynamicsWorldClass p+instance BtDiscreteDynamicsWorldClass BtSoftRigidDynamicsWorld+instance BtDynamicsWorldClass BtSoftRigidDynamicsWorld+instance BtCollisionWorldClass BtSoftRigidDynamicsWorld+instance BtSoftRigidDynamicsWorldClass BtSoftRigidDynamicsWorld+instance BtClass BtSoftRigidDynamicsWorld where+  withBt (BtSoftRigidDynamicsWorld p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSoftRigidDynamicsWorld p) = castPtr $ unsafeForeignPtrToPtr p+class BtOverlappingPairCacheClass p => BtSortedOverlappingPairCacheClass p+instance BtOverlappingPairCacheClass BtSortedOverlappingPairCache+instance BtOverlappingPairCallbackClass BtSortedOverlappingPairCache+instance BtSortedOverlappingPairCacheClass BtSortedOverlappingPairCache+instance BtClass BtSortedOverlappingPairCache where+  withBt (BtSortedOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSortedOverlappingPairCache p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtSphereShapeClass p+instance BtConvexInternalShapeClass BtSphereShape+instance BtConvexShapeClass BtSphereShape+instance BtCollisionShapeClass BtSphereShape+instance BtSphereShapeClass BtSphereShape+instance BtClass BtSphereShape where+  withBt (BtSphereShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSphereShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtActivatingCollisionAlgorithmClass p => BtSphereSphereCollisionAlgorithmClass p+instance BtActivatingCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm+instance BtCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm+instance BtSphereSphereCollisionAlgorithmClass BtSphereSphereCollisionAlgorithm+instance BtClass BtSphereSphereCollisionAlgorithm where+  withBt (BtSphereSphereCollisionAlgorithm p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSphereSphereCollisionAlgorithm p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexShapeClass p => BtTriangleShapeClass p+instance BtPolyhedralConvexShapeClass BtTriangleShape+instance BtConvexInternalShapeClass BtTriangleShape+instance BtConvexShapeClass BtTriangleShape+instance BtCollisionShapeClass BtTriangleShape+instance BtTriangleShapeClass BtTriangleShape+instance BtClass BtTriangleShape where+  withBt (BtTriangleShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtTriangleShapeClass p => BtTriangleShapeExClass p+instance BtTriangleShapeClass BtTriangleShapeEx+instance BtPolyhedralConvexShapeClass BtTriangleShapeEx+instance BtConvexInternalShapeClass BtTriangleShapeEx+instance BtConvexShapeClass BtTriangleShapeEx+instance BtCollisionShapeClass BtTriangleShapeEx+instance BtTriangleShapeExClass BtTriangleShapeEx+instance BtClass BtTriangleShapeEx where+  withBt (BtTriangleShapeEx p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTriangleShapeEx p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedObjectClass p => BtTypedConstraintClass p+instance BtTypedObjectClass BtTypedConstraint+instance BtTypedConstraintClass BtTypedConstraint+instance BtClass BtTypedConstraint where+  withBt (BtTypedConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTypedConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtAxisSweep3Internal_unsignedint_Class p => Bt32BitAxisSweep3Class p+instance BtAxisSweep3Internal_unsignedint_Class Bt32BitAxisSweep3+instance BtBroadphaseInterfaceClass Bt32BitAxisSweep3+instance Bt32BitAxisSweep3Class Bt32BitAxisSweep3+instance BtClass Bt32BitAxisSweep3 where+  withBt (Bt32BitAxisSweep3 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (Bt32BitAxisSweep3 p) = castPtr $ unsafeForeignPtrToPtr p+class BtAxisSweep3Internal_unsignedshort_Class p => BtAxisSweep3Class p+instance BtAxisSweep3Internal_unsignedshort_Class BtAxisSweep3+instance BtBroadphaseInterfaceClass BtAxisSweep3+instance BtAxisSweep3Class BtAxisSweep3+instance BtClass BtAxisSweep3 where+  withBt (BtAxisSweep3 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtAxisSweep3 p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexShapeClass p => BtBoxShapeClass p+instance BtPolyhedralConvexShapeClass BtBoxShape+instance BtConvexInternalShapeClass BtBoxShape+instance BtConvexShapeClass BtBoxShape+instance BtCollisionShapeClass BtBoxShape+instance BtBoxShapeClass BtBoxShape+instance BtClass BtBoxShape where+  withBt (BtBoxShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBoxShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtCapsuleShapeClass p+instance BtConvexInternalShapeClass BtCapsuleShape+instance BtConvexShapeClass BtCapsuleShape+instance BtCollisionShapeClass BtCapsuleShape+instance BtCapsuleShapeClass BtCapsuleShape+instance BtClass BtCapsuleShape where+  withBt (BtCapsuleShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCapsuleShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtCapsuleShapeClass p => BtCapsuleShapeXClass p+instance BtCapsuleShapeClass BtCapsuleShapeX+instance BtConvexInternalShapeClass BtCapsuleShapeX+instance BtConvexShapeClass BtCapsuleShapeX+instance BtCollisionShapeClass BtCapsuleShapeX+instance BtCapsuleShapeXClass BtCapsuleShapeX+instance BtClass BtCapsuleShapeX where+  withBt (BtCapsuleShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCapsuleShapeX p) = castPtr $ unsafeForeignPtrToPtr p+class BtCapsuleShapeClass p => BtCapsuleShapeZClass p+instance BtCapsuleShapeClass BtCapsuleShapeZ+instance BtConvexInternalShapeClass BtCapsuleShapeZ+instance BtConvexShapeClass BtCapsuleShapeZ+instance BtCollisionShapeClass BtCapsuleShapeZ+instance BtCapsuleShapeZClass BtCapsuleShapeZ+instance BtClass BtCapsuleShapeZ where+  withBt (BtCapsuleShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtCapsuleShapeZ p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtConeShapeClass p+instance BtConvexInternalShapeClass BtConeShape+instance BtConvexShapeClass BtConeShape+instance BtCollisionShapeClass BtConeShape+instance BtConeShapeClass BtConeShape+instance BtClass BtConeShape where+  withBt (BtConeShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConeShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtConeShapeClass p => BtConeShapeXClass p+instance BtConeShapeClass BtConeShapeX+instance BtConvexInternalShapeClass BtConeShapeX+instance BtConvexShapeClass BtConeShapeX+instance BtCollisionShapeClass BtConeShapeX+instance BtConeShapeXClass BtConeShapeX+instance BtClass BtConeShapeX where+  withBt (BtConeShapeX p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConeShapeX p) = castPtr $ unsafeForeignPtrToPtr p+class BtConeShapeClass p => BtConeShapeZClass p+instance BtConeShapeClass BtConeShapeZ+instance BtConvexInternalShapeClass BtConeShapeZ+instance BtConvexShapeClass BtConeShapeZ+instance BtCollisionShapeClass BtConeShapeZ+instance BtConeShapeZClass BtConeShapeZ+instance BtClass BtConeShapeZ where+  withBt (BtConeShapeZ p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConeShapeZ p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtConeTwistConstraintClass p+instance BtTypedConstraintClass BtConeTwistConstraint+instance BtTypedObjectClass BtConeTwistConstraint+instance BtConeTwistConstraintClass BtConeTwistConstraint+instance BtClass BtConeTwistConstraint where+  withBt (BtConeTwistConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConeTwistConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtContactConstraintClass p+instance BtTypedConstraintClass BtContactConstraint+instance BtTypedObjectClass BtContactConstraint+instance BtContactConstraintClass BtContactConstraint+instance BtClass BtContactConstraint where+  withBt (BtContactConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtContactConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalShapeClass p => BtConvexInternalAabbCachingShapeClass p+instance BtConvexInternalShapeClass BtConvexInternalAabbCachingShape+instance BtConvexShapeClass BtConvexInternalAabbCachingShape+instance BtCollisionShapeClass BtConvexInternalAabbCachingShape+instance BtConvexInternalAabbCachingShapeClass BtConvexInternalAabbCachingShape+instance BtClass BtConvexInternalAabbCachingShape where+  withBt (BtConvexInternalAabbCachingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexInternalAabbCachingShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtGeneric6DofConstraintClass p+instance BtTypedConstraintClass BtGeneric6DofConstraint+instance BtTypedObjectClass BtGeneric6DofConstraint+instance BtGeneric6DofConstraintClass BtGeneric6DofConstraint+instance BtClass BtGeneric6DofConstraint where+  withBt (BtGeneric6DofConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGeneric6DofConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtGeneric6DofConstraintClass p => BtGeneric6DofSpringConstraintClass p+instance BtGeneric6DofConstraintClass BtGeneric6DofSpringConstraint+instance BtTypedConstraintClass BtGeneric6DofSpringConstraint+instance BtTypedObjectClass BtGeneric6DofSpringConstraint+instance BtGeneric6DofSpringConstraintClass BtGeneric6DofSpringConstraint+instance BtClass BtGeneric6DofSpringConstraint where+  withBt (BtGeneric6DofSpringConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtGeneric6DofSpringConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtOverlappingPairCacheClass p => BtHashedOverlappingPairCacheClass p+instance BtOverlappingPairCacheClass BtHashedOverlappingPairCache+instance BtOverlappingPairCallbackClass BtHashedOverlappingPairCache+instance BtHashedOverlappingPairCacheClass BtHashedOverlappingPairCache+instance BtClass BtHashedOverlappingPairCache where+  withBt (BtHashedOverlappingPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHashedOverlappingPairCache p) = castPtr $ unsafeForeignPtrToPtr p+class BtGeneric6DofSpringConstraintClass p => BtHinge2ConstraintClass p+instance BtGeneric6DofSpringConstraintClass BtHinge2Constraint+instance BtGeneric6DofConstraintClass BtHinge2Constraint+instance BtTypedConstraintClass BtHinge2Constraint+instance BtTypedObjectClass BtHinge2Constraint+instance BtHinge2ConstraintClass BtHinge2Constraint+instance BtClass BtHinge2Constraint where+  withBt (BtHinge2Constraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHinge2Constraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtHingeConstraintClass p+instance BtTypedConstraintClass BtHingeConstraint+instance BtTypedObjectClass BtHingeConstraint+instance BtHingeConstraintClass BtHingeConstraint+instance BtClass BtHingeConstraint where+  withBt (BtHingeConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtHingeConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtConvexInternalAabbCachingShapeClass p => BtMultiSphereShapeClass p+instance BtConvexInternalAabbCachingShapeClass BtMultiSphereShape+instance BtConvexInternalShapeClass BtMultiSphereShape+instance BtConvexShapeClass BtMultiSphereShape+instance BtCollisionShapeClass BtMultiSphereShape+instance BtMultiSphereShapeClass BtMultiSphereShape+instance BtClass BtMultiSphereShape where+  withBt (BtMultiSphereShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtMultiSphereShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtOverlappingPairCacheClass p => BtNullPairCacheClass p+instance BtOverlappingPairCacheClass BtNullPairCache+instance BtOverlappingPairCallbackClass BtNullPairCache+instance BtNullPairCacheClass BtNullPairCache+instance BtClass BtNullPairCache where+  withBt (BtNullPairCache p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtNullPairCache p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtPoint2PointConstraintClass p+instance BtTypedConstraintClass BtPoint2PointConstraint+instance BtTypedObjectClass BtPoint2PointConstraint+instance BtPoint2PointConstraintClass BtPoint2PointConstraint+instance BtClass BtPoint2PointConstraint where+  withBt (BtPoint2PointConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPoint2PointConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexShapeClass p => BtPolyhedralConvexAabbCachingShapeClass p+instance BtPolyhedralConvexShapeClass BtPolyhedralConvexAabbCachingShape+instance BtConvexInternalShapeClass BtPolyhedralConvexAabbCachingShape+instance BtConvexShapeClass BtPolyhedralConvexAabbCachingShape+instance BtCollisionShapeClass BtPolyhedralConvexAabbCachingShape+instance BtPolyhedralConvexAabbCachingShapeClass BtPolyhedralConvexAabbCachingShape+instance BtClass BtPolyhedralConvexAabbCachingShape where+  withBt (BtPolyhedralConvexAabbCachingShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtPolyhedralConvexAabbCachingShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtTypedConstraintClass p => BtSliderConstraintClass p+instance BtTypedConstraintClass BtSliderConstraint+instance BtTypedObjectClass BtSliderConstraint+instance BtSliderConstraintClass BtSliderConstraint+instance BtClass BtSliderConstraint where+  withBt (BtSliderConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtSliderConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtGeneric6DofConstraintClass p => BtUniversalConstraintClass p+instance BtGeneric6DofConstraintClass BtUniversalConstraint+instance BtTypedConstraintClass BtUniversalConstraint+instance BtTypedObjectClass BtUniversalConstraint+instance BtUniversalConstraintClass BtUniversalConstraint+instance BtClass BtUniversalConstraint where+  withBt (BtUniversalConstraint p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtUniversalConstraint p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexAabbCachingShapeClass p => BtBU_Simplex1to4Class p+instance BtPolyhedralConvexAabbCachingShapeClass BtBU_Simplex1to4+instance BtPolyhedralConvexShapeClass BtBU_Simplex1to4+instance BtConvexInternalShapeClass BtBU_Simplex1to4+instance BtConvexShapeClass BtBU_Simplex1to4+instance BtCollisionShapeClass BtBU_Simplex1to4+instance BtBU_Simplex1to4Class BtBU_Simplex1to4+instance BtClass BtBU_Simplex1to4 where+  withBt (BtBU_Simplex1to4 p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtBU_Simplex1to4 p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexAabbCachingShapeClass p => BtConvexHullShapeClass p+instance BtPolyhedralConvexAabbCachingShapeClass BtConvexHullShape+instance BtPolyhedralConvexShapeClass BtConvexHullShape+instance BtConvexInternalShapeClass BtConvexHullShape+instance BtConvexShapeClass BtConvexHullShape+instance BtCollisionShapeClass BtConvexHullShape+instance BtConvexHullShapeClass BtConvexHullShape+instance BtClass BtConvexHullShape where+  withBt (BtConvexHullShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexHullShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtPolyhedralConvexAabbCachingShapeClass p => BtConvexTriangleMeshShapeClass p+instance BtPolyhedralConvexAabbCachingShapeClass BtConvexTriangleMeshShape+instance BtPolyhedralConvexShapeClass BtConvexTriangleMeshShape+instance BtConvexInternalShapeClass BtConvexTriangleMeshShape+instance BtConvexShapeClass BtConvexTriangleMeshShape+instance BtCollisionShapeClass BtConvexTriangleMeshShape+instance BtConvexTriangleMeshShapeClass BtConvexTriangleMeshShape+instance BtClass BtConvexTriangleMeshShape where+  withBt (BtConvexTriangleMeshShape p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtConvexTriangleMeshShape p) = castPtr $ unsafeForeignPtrToPtr p+class BtBU_Simplex1to4Class p => BtTetrahedronShapeExClass p+instance BtBU_Simplex1to4Class BtTetrahedronShapeEx+instance BtPolyhedralConvexAabbCachingShapeClass BtTetrahedronShapeEx+instance BtPolyhedralConvexShapeClass BtTetrahedronShapeEx+instance BtConvexInternalShapeClass BtTetrahedronShapeEx+instance BtConvexShapeClass BtTetrahedronShapeEx+instance BtCollisionShapeClass BtTetrahedronShapeEx+instance BtTetrahedronShapeExClass BtTetrahedronShapeEx+instance BtClass BtTetrahedronShapeEx where+  withBt (BtTetrahedronShapeEx p) b = (withForeignPtr p (\a -> return $ castPtr a)) >>= b+  btToPtr (BtTetrahedronShapeEx p) = castPtr $ unsafeForeignPtrToPtr p+-- enum: ::btDbvt+e_btDbvt_SIMPLE_STACKSIZE = 64 :: Int+e_btDbvt_DOUBLE_STACKSIZE = 128 :: Int+-- enum: ::btDbvtBroadphase+e_btDbvtBroadphase_DYNAMIC_SET = 0 :: Int+e_btDbvtBroadphase_FIXED_SET = 1 :: Int+e_btDbvtBroadphase_STAGECOUNT = 2 :: Int+-- enum: ::BroadphaseNativeTypes+e_BroadphaseNativeTypes_BOX_SHAPE_PROXYTYPE = 0 :: Int+e_BroadphaseNativeTypes_TRIANGLE_SHAPE_PROXYTYPE = 1 :: Int+e_BroadphaseNativeTypes_TETRAHEDRAL_SHAPE_PROXYTYPE = 2 :: Int+e_BroadphaseNativeTypes_CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE = 3 :: Int+e_BroadphaseNativeTypes_CONVEX_HULL_SHAPE_PROXYTYPE = 4 :: Int+e_BroadphaseNativeTypes_CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE = 5 :: Int+e_BroadphaseNativeTypes_CUSTOM_POLYHEDRAL_SHAPE_TYPE = 6 :: Int+e_BroadphaseNativeTypes_IMPLICIT_CONVEX_SHAPES_START_HERE = 7 :: Int+e_BroadphaseNativeTypes_SPHERE_SHAPE_PROXYTYPE = 8 :: Int+e_BroadphaseNativeTypes_MULTI_SPHERE_SHAPE_PROXYTYPE = 9 :: Int+e_BroadphaseNativeTypes_CAPSULE_SHAPE_PROXYTYPE = 10 :: Int+e_BroadphaseNativeTypes_CONE_SHAPE_PROXYTYPE = 11 :: Int+e_BroadphaseNativeTypes_CONVEX_SHAPE_PROXYTYPE = 12 :: Int+e_BroadphaseNativeTypes_CYLINDER_SHAPE_PROXYTYPE = 13 :: Int+e_BroadphaseNativeTypes_UNIFORM_SCALING_SHAPE_PROXYTYPE = 14 :: Int+e_BroadphaseNativeTypes_MINKOWSKI_SUM_SHAPE_PROXYTYPE = 15 :: Int+e_BroadphaseNativeTypes_MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE = 16 :: Int+e_BroadphaseNativeTypes_BOX_2D_SHAPE_PROXYTYPE = 17 :: Int+e_BroadphaseNativeTypes_CONVEX_2D_SHAPE_PROXYTYPE = 18 :: Int+e_BroadphaseNativeTypes_CUSTOM_CONVEX_SHAPE_TYPE = 19 :: Int+e_BroadphaseNativeTypes_CONCAVE_SHAPES_START_HERE = 20 :: Int+e_BroadphaseNativeTypes_TRIANGLE_MESH_SHAPE_PROXYTYPE = 21 :: Int+e_BroadphaseNativeTypes_SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE = 22 :: Int+e_BroadphaseNativeTypes_FAST_CONCAVE_MESH_PROXYTYPE = 23 :: Int+e_BroadphaseNativeTypes_TERRAIN_SHAPE_PROXYTYPE = 24 :: Int+e_BroadphaseNativeTypes_GIMPACT_SHAPE_PROXYTYPE = 25 :: Int+e_BroadphaseNativeTypes_MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE = 26 :: Int+e_BroadphaseNativeTypes_EMPTY_SHAPE_PROXYTYPE = 27 :: Int+e_BroadphaseNativeTypes_STATIC_PLANE_PROXYTYPE = 28 :: Int+e_BroadphaseNativeTypes_CUSTOM_CONCAVE_SHAPE_TYPE = 29 :: Int+e_BroadphaseNativeTypes_CONCAVE_SHAPES_END_HERE = 30 :: Int+e_BroadphaseNativeTypes_COMPOUND_SHAPE_PROXYTYPE = 31 :: Int+e_BroadphaseNativeTypes_SOFTBODY_SHAPE_PROXYTYPE = 32 :: Int+e_BroadphaseNativeTypes_HFFLUID_SHAPE_PROXYTYPE = 33 :: Int+e_BroadphaseNativeTypes_HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE = 34 :: Int+e_BroadphaseNativeTypes_INVALID_SHAPE_PROXYTYPE = 35 :: Int+e_BroadphaseNativeTypes_MAX_BROADPHASE_COLLISION_TYPES = 36 :: Int+-- enum: ::btBroadphaseProxy::CollisionFilterGroups+e_btBroadphaseProxy_CollisionFilterGroups_DefaultFilter = 1 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_StaticFilter = 2 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_KinematicFilter = 4 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_DebrisFilter = 8 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_SensorTrigger = 16 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_CharacterFilter = 32 :: Int+e_btBroadphaseProxy_CollisionFilterGroups_AllFilter = -1 :: Int+-- enum: ::btCollisionObject::CollisionFlags+e_btCollisionObject_CollisionFlags_CF_STATIC_OBJECT = 1 :: Int+e_btCollisionObject_CollisionFlags_CF_KINEMATIC_OBJECT = 2 :: Int+e_btCollisionObject_CollisionFlags_CF_NO_CONTACT_RESPONSE = 4 :: Int+e_btCollisionObject_CollisionFlags_CF_CUSTOM_MATERIAL_CALLBACK = 8 :: Int+e_btCollisionObject_CollisionFlags_CF_CHARACTER_OBJECT = 16 :: Int+e_btCollisionObject_CollisionFlags_CF_DISABLE_VISUALIZE_OBJECT = 32 :: Int+e_btCollisionObject_CollisionFlags_CF_DISABLE_SPU_COLLISION_PROCESSING = 64 :: Int+-- enum: ::btCollisionObject::CollisionObjectTypes+e_btCollisionObject_CollisionObjectTypes_CO_COLLISION_OBJECT = 1 :: Int+e_btCollisionObject_CollisionObjectTypes_CO_RIGID_BODY = 2 :: Int+e_btCollisionObject_CollisionObjectTypes_CO_GHOST_OBJECT = 4 :: Int+e_btCollisionObject_CollisionObjectTypes_CO_SOFT_BODY = 8 :: Int+e_btCollisionObject_CollisionObjectTypes_CO_HF_FLUID = 16 :: Int+e_btCollisionObject_CollisionObjectTypes_CO_USER_TYPE = 32 :: Int+-- enum: ::btIDebugDraw::DebugDrawModes+e_btIDebugDraw_DebugDrawModes_DBG_NoDebug = 0 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawWireframe = 1 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawAabb = 2 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawFeaturesText = 4 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawContactPoints = 8 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_NoDeactivation = 16 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_NoHelpText = 32 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawText = 64 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_ProfileTimings = 128 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_EnableSatComparison = 256 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DisableBulletLCP = 512 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_EnableCCD = 1024 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawConstraints = 2048 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_DrawConstraintLimits = 4096 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_FastWireframe = 8192 :: Int+e_btIDebugDraw_DebugDrawModes_DBG_MAX_DEBUG_DRAW_MODE = 8193 :: Int+-- enum: ::btDispatcherInfo::DispatchFunc+e_btDispatcherInfo_DispatchFunc_DISPATCH_DISCRETE = 1 :: Int+e_btDispatcherInfo_DispatchFunc_DISPATCH_CONTINUOUS = 2 :: Int+-- enum: ::btCollisionDispatcher::DispatcherFlags+e_btCollisionDispatcher_DispatcherFlags_CD_STATIC_STATIC_REPORTED = 1 :: Int+e_btCollisionDispatcher_DispatcherFlags_CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD = 2 :: Int+e_btCollisionDispatcher_DispatcherFlags_CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION = 4 :: Int+-- enum: ::PHY_ScalarType+e_PHY_ScalarType_PHY_FLOAT = 0 :: Int+e_PHY_ScalarType_PHY_DOUBLE = 1 :: Int+e_PHY_ScalarType_PHY_INTEGER = 2 :: Int+e_PHY_ScalarType_PHY_SHORT = 3 :: Int+e_PHY_ScalarType_PHY_FIXEDPOINT88 = 4 :: Int+e_PHY_ScalarType_PHY_UCHAR = 5 :: Int+-- enum: ::fDrawFlags::_+e_fDrawFlags___Nodes = 1 :: Int+e_fDrawFlags___Links = 2 :: Int+e_fDrawFlags___Faces = 4 :: Int+e_fDrawFlags___Tetras = 8 :: Int+e_fDrawFlags___Normals = 16 :: Int+e_fDrawFlags___Contacts = 32 :: Int+e_fDrawFlags___Anchors = 64 :: Int+e_fDrawFlags___Notes = 128 :: Int+e_fDrawFlags___Clusters = 256 :: Int+e_fDrawFlags___NodeTree = 512 :: Int+e_fDrawFlags___FaceTree = 1024 :: Int+e_fDrawFlags___ClusterTree = 2048 :: Int+e_fDrawFlags___Joints = 4096 :: Int+e_fDrawFlags___Std = 4302 :: Int+e_fDrawFlags___StdTetra = 4306 :: Int+-- enum: ::btSoftBody::eAeroModel::_+e_btSoftBody_eAeroModel___V_Point = 0 :: Int+e_btSoftBody_eAeroModel___V_TwoSided = 1 :: Int+e_btSoftBody_eAeroModel___V_TwoSidedLiftDrag = 2 :: Int+e_btSoftBody_eAeroModel___V_OneSided = 3 :: Int+e_btSoftBody_eAeroModel___F_TwoSided = 4 :: Int+e_btSoftBody_eAeroModel___F_TwoSidedLiftDrag = 5 :: Int+e_btSoftBody_eAeroModel___F_OneSided = 6 :: Int+e_btSoftBody_eAeroModel___END = 7 :: Int+-- enum: ::btSoftBody::eVSolver::_+e_btSoftBody_eVSolver___Linear = 0 :: Int+e_btSoftBody_eVSolver___END = 1 :: Int+-- enum: ::btSoftBody::ePSolver::_+e_btSoftBody_ePSolver___Linear = 0 :: Int+e_btSoftBody_ePSolver___Anchors = 1 :: Int+e_btSoftBody_ePSolver___RContacts = 2 :: Int+e_btSoftBody_ePSolver___SContacts = 3 :: Int+e_btSoftBody_ePSolver___END = 4 :: Int+-- enum: ::btSoftBody::eSolverPresets::_+e_btSoftBody_eSolverPresets___Positions = 0 :: Int+e_btSoftBody_eSolverPresets___Velocities = 1 :: Int+e_btSoftBody_eSolverPresets___Default = 0 :: Int+e_btSoftBody_eSolverPresets___END = 1 :: Int+-- enum: ::btSoftBody::eFeature::_+e_btSoftBody_eFeature___None = 0 :: Int+e_btSoftBody_eFeature___Node = 1 :: Int+e_btSoftBody_eFeature___Link = 2 :: Int+e_btSoftBody_eFeature___Face = 3 :: Int+e_btSoftBody_eFeature___Tetra = 4 :: Int+e_btSoftBody_eFeature___END = 5 :: Int+-- enum: ::btSoftBody::fCollision::_+e_btSoftBody_fCollision___RVSmask = 15 :: Int+e_btSoftBody_fCollision___SDF_RS = 1 :: Int+e_btSoftBody_fCollision___CL_RS = 2 :: Int+e_btSoftBody_fCollision___SVSmask = 48 :: Int+e_btSoftBody_fCollision___VF_SS = 16 :: Int+e_btSoftBody_fCollision___CL_SS = 32 :: Int+e_btSoftBody_fCollision___CL_SELF = 64 :: Int+e_btSoftBody_fCollision___Default = 1 :: Int+e_btSoftBody_fCollision___END = 2 :: Int+-- enum: ::btSoftBody::fMaterial::_+e_btSoftBody_fMaterial___DebugDraw = 1 :: Int+e_btSoftBody_fMaterial___Default = 1 :: Int+e_btSoftBody_fMaterial___END = 2 :: Int+-- enum: ::btSoftBody::Joint::eType::_+e_btSoftBody_Joint_eType___Linear = 0 :: Int+e_btSoftBody_Joint_eType___Angular = 1 :: Int+e_btSoftBody_Joint_eType___Contact = 2 :: Int+-- enum: ::bt6DofFlags+e_bt6DofFlags_BT_6DOF_FLAGS_CFM_NORM = 1 :: Int+e_bt6DofFlags_BT_6DOF_FLAGS_CFM_STOP = 2 :: Int+e_bt6DofFlags_BT_6DOF_FLAGS_ERP_STOP = 4 :: Int+-- enum: ::btConeTwistFlags+e_btConeTwistFlags_BT_CONETWIST_FLAGS_LIN_CFM = 1 :: Int+e_btConeTwistFlags_BT_CONETWIST_FLAGS_LIN_ERP = 2 :: Int+e_btConeTwistFlags_BT_CONETWIST_FLAGS_ANG_CFM = 4 :: Int+-- enum: ::btConstraintParams+e_btConstraintParams_BT_CONSTRAINT_ERP = 1 :: Int+e_btConstraintParams_BT_CONSTRAINT_STOP_ERP = 2 :: Int+e_btConstraintParams_BT_CONSTRAINT_CFM = 3 :: Int+e_btConstraintParams_BT_CONSTRAINT_STOP_CFM = 4 :: Int+-- enum: ::btContactManifoldTypes+e_btContactManifoldTypes_MIN_CONTACT_MANIFOLD_TYPE = 1024 :: Int+e_btContactManifoldTypes_BT_PERSISTENT_MANIFOLD_TYPE = 1025 :: Int+-- enum: ::btDynamicsWorldType+e_btDynamicsWorldType_BT_SIMPLE_DYNAMICS_WORLD = 1 :: Int+e_btDynamicsWorldType_BT_DISCRETE_DYNAMICS_WORLD = 2 :: Int+e_btDynamicsWorldType_BT_CONTINUOUS_DYNAMICS_WORLD = 3 :: Int+e_btDynamicsWorldType_BT_SOFT_RIGID_DYNAMICS_WORLD = 4 :: Int+-- enum: ::btHingeFlags+e_btHingeFlags_BT_HINGE_FLAGS_CFM_STOP = 1 :: Int+e_btHingeFlags_BT_HINGE_FLAGS_ERP_STOP = 2 :: Int+e_btHingeFlags_BT_HINGE_FLAGS_CFM_NORM = 4 :: Int+-- enum: ::btPoint2PointFlags+e_btPoint2PointFlags_BT_P2P_FLAGS_ERP = 1 :: Int+e_btPoint2PointFlags_BT_P2P_FLAGS_CFM = 2 :: Int+-- enum: ::btRigidBodyFlags+e_btRigidBodyFlags_BT_DISABLE_WORLD_GRAVITY = 1 :: Int+-- enum: ::btSerializationFlags+e_btSerializationFlags_BT_SERIALIZE_NO_BVH = 1 :: Int+e_btSerializationFlags_BT_SERIALIZE_NO_TRIANGLEINFOMAP = 2 :: Int+e_btSerializationFlags_BT_SERIALIZE_NO_DUPLICATE_ASSERT = 4 :: Int+-- enum: ::btSliderFlags+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_DIRLIN = 1 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_DIRLIN = 2 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_DIRANG = 4 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_DIRANG = 8 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_ORTLIN = 16 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_ORTLIN = 32 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_ORTANG = 64 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_ORTANG = 128 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_LIMLIN = 256 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_LIMLIN = 512 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_CFM_LIMANG = 1024 :: Int+e_btSliderFlags_BT_SLIDER_FLAGS_ERP_LIMANG = 2048 :: Int+-- enum: ::btSolverConstraint::btSolverConstraintType+e_btSolverConstraint_btSolverConstraintType_BT_SOLVER_CONTACT_1D = 0 :: Int+e_btSolverConstraint_btSolverConstraintType_BT_SOLVER_FRICTION_1D = 1 :: Int+-- enum: ::btSolverMode+e_btSolverMode_SOLVER_RANDMIZE_ORDER = 1 :: Int+e_btSolverMode_SOLVER_FRICTION_SEPARATE = 2 :: Int+e_btSolverMode_SOLVER_USE_WARMSTARTING = 4 :: Int+e_btSolverMode_SOLVER_USE_FRICTION_WARMSTARTING = 8 :: Int+e_btSolverMode_SOLVER_USE_2_FRICTION_DIRECTIONS = 16 :: Int+e_btSolverMode_SOLVER_ENABLE_FRICTION_DIRECTION_CACHING = 32 :: Int+e_btSolverMode_SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION = 64 :: Int+e_btSolverMode_SOLVER_CACHE_FRIENDLY = 128 :: Int+e_btSolverMode_SOLVER_SIMD = 256 :: Int+e_btSolverMode_SOLVER_CUDA = 512 :: Int+-- enum: ::btQuantizedBvh::btTraversalMode+e_btQuantizedBvh_btTraversalMode_TRAVERSAL_STACKLESS = 0 :: Int+e_btQuantizedBvh_btTraversalMode_TRAVERSAL_STACKLESS_CACHE_FRIENDLY = 1 :: Int+e_btQuantizedBvh_btTraversalMode_TRAVERSAL_RECURSIVE = 2 :: Int+-- enum: ::btTypedConstraintType+e_btTypedConstraintType_POINT2POINT_CONSTRAINT_TYPE = 3 :: Int+e_btTypedConstraintType_HINGE_CONSTRAINT_TYPE = 4 :: Int+e_btTypedConstraintType_CONETWIST_CONSTRAINT_TYPE = 5 :: Int+e_btTypedConstraintType_D6_CONSTRAINT_TYPE = 6 :: Int+e_btTypedConstraintType_SLIDER_CONSTRAINT_TYPE = 7 :: Int+e_btTypedConstraintType_CONTACT_CONSTRAINT_TYPE = 8 :: Int+e_btTypedConstraintType_D6_SPRING_CONSTRAINT_TYPE = 9 :: Int+e_btTypedConstraintType_MAX_CONSTRAINT_TYPE = 10 :: Int+-- enum: ::eBT_PLANE_INTERSECTION_TYPE+e_eBT_PLANE_INTERSECTION_TYPE_BT_CONST_BACK_PLANE = 0 :: Int+e_eBT_PLANE_INTERSECTION_TYPE_BT_CONST_COLLIDE_PLANE = 1 :: Int+e_eBT_PLANE_INTERSECTION_TYPE_BT_CONST_FRONT_PLANE = 2 :: Int+-- enum: ::eGIMPACT_SHAPE_TYPE+e_eGIMPACT_SHAPE_TYPE_CONST_GIMPACT_COMPOUND_SHAPE = 0 :: Int+e_eGIMPACT_SHAPE_TYPE_CONST_GIMPACT_TRIMESH_SHAPE_PART = 1 :: Int+e_eGIMPACT_SHAPE_TYPE_CONST_GIMPACT_TRIMESH_SHAPE = 2 :: Int+-- enum: ::btGjkEpaSolver2::sResults::eStatus+e_btGjkEpaSolver2_sResults_eStatus_Separated = 0 :: Int+e_btGjkEpaSolver2_sResults_eStatus_Penetrating = 1 :: Int+e_btGjkEpaSolver2_sResults_eStatus_GJK_Failed = 2 :: Int+e_btGjkEpaSolver2_sResults_eStatus_EPA_Failed = 3 :: Int
Physics/Bullet/Raw/LinearMath.chs view
@@ -11,1227 +11,12757 @@ import Physics.Bullet.Raw.Types import Physics.Bullet.Raw.Class -- * CProfileIterator-{#fun cProfileIterator_free    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Name as cProfileIterator_Get_Current_Name    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#115>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Total_Calls as cProfileIterator_Get_Current_Total_Calls    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Total_Time as cProfileIterator_Get_Current_Total_Time    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#109>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Enter_Child as cProfileIterator_Enter_Child    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ index- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#106>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Is_Done as cProfileIterator_Is_Done    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#105>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Next as cProfileIterator_Next    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#107>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Is_Root as cProfileIterator_Is_Root    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#119>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Parent_Name as cProfileIterator_Get_Current_Parent_Name    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#120>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Parent_Total_Calls as cProfileIterator_Get_Current_Parent_Total_Calls    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Get_Current_Parent_Total_Time as cProfileIterator_Get_Current_Parent_Total_Time    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#111>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_Enter_Parent as cProfileIterator_Enter_Parent    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#104>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileIterator_First as cProfileIterator_First    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}--- * CProfileManager-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#134>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_new as cProfileManager    {  } -> `CProfileManager' mkCProfileManager* #}-{#fun cProfileManager_free    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#144>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Reset as cProfileManager_Reset    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#158>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_dumpAll as cProfileManager_dumpAll    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#146>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Get_Frame_Count_Since_Reset as cProfileManager_Get_Frame_Count_Since_Reset    `( )' =>     {  } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#154>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Release_Iterator as cProfileManager_Release_Iterator    `(  CProfileIteratorClass p0 )' =>     {  withBt* `p0'  -- ^ iterator- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#137>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Stop_Profile as cProfileManager_Stop_Profile    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_CleanupMemory as cProfileManager_CleanupMemory    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Get_Time_Since_Reset as cProfileManager_Get_Time_Since_Reset    `( )' =>     {  } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#136>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Start_Profile as cProfileManager_Start_Profile    `( )' =>     {   `String'  -- ^ name- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#145>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Increment_Frame_Counter as cProfileManager_Increment_Frame_Counter    `( )' =>     {  } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#156>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_dumpRecursive as cProfileManager_dumpRecursive    `(  CProfileIteratorClass p0 )' =>     {  withBt* `p0'  -- ^ profileIterator-,  `Int'  -- ^ spacing- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#149>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileManager_Get_Iterator as cProfileManager_Get_Iterator    `( )' =>     {  } ->  `CProfileIterator' mkCProfileIterator*  #}--- * CProfileNode-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#68>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_new as cProfileNode    `( CProfileNodeClass p1 )' =>     {   `String' , withBt* `p1'  } -> `CProfileNode' mkCProfileNode* #}-{#fun cProfileNode_free    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Reset as cProfileNode_Reset    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#80>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Return as cProfileNode_Return    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Sub_Node as cProfileNode_Get_Sub_Node    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ name- } ->  `CProfileNode' mkCProfileNode*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_CleanupMemory as cProfileNode_CleanupMemory    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Parent as cProfileNode_Get_Parent    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `CProfileNode' mkCProfileNode*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#83>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Total_Calls as cProfileNode_Get_Total_Calls    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Name as cProfileNode_Get_Name    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `String'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#84>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Total_Time as cProfileNode_Get_Total_Time    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#79>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Call as cProfileNode_Call    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#74>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Sibling as cProfileNode_Get_Sibling    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `CProfileNode' mkCProfileNode*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileNode_Get_Child as cProfileNode_Get_Child    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `CProfileNode' mkCProfileNode*  #}--- * CProfileSample-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#172>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun cProfileSample_new as cProfileSample    {   `String'  } -> `CProfileSample' mkCProfileSample* #}-{#fun cProfileSample_free    `( CProfileSampleClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btBlock-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btBlock_new as btBlock    {  } -> `BtBlock' mkBtBlock* #}-{#fun btBlock_free    `( BtBlockClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#29>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btBlock_previous_set    `( BtBlockClass bc , BtBlockClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}--- * btChunk-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#53>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_new as btChunk    {  } -> `BtChunk' mkBtChunk* #}-{#fun btChunk_free    `( BtChunkClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_chunkCode_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#55>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_chunkCode_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_length_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_length_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_dna_nr_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#58>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_dna_nr_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_number_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btChunk_m_number_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}--- * btClock-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun btClock_new as btClock    {  } -> `BtClock' mkBtClock* #}-{#fun btClock_free    `( BtClockClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#46>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun btClock_reset as btClock_reset    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#50>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun btClock_getTimeMilliseconds as btClock_getTimeMilliseconds    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word64'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>--}-{#fun btClock_getTimeMicroseconds as btClock_getTimeMicroseconds    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word64'  #}--- * btConvexSeparatingDistanceUtil-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#161>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_new as btConvexSeparatingDistanceUtil    {   `Float' ,  `Float'  } -> `BtConvexSeparatingDistanceUtil' mkBtConvexSeparatingDistanceUtil* #}-{#fun btConvexSeparatingDistanceUtil_free    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#173>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_updateSeparatingDistance as btConvexSeparatingDistanceUtil_updateSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#173>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_updateSeparatingDistance as btConvexSeparatingDistanceUtil_updateSeparatingDistance'    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance as btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_initSeparatingDistance as btConvexSeparatingDistanceUtil_initSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ separatingVector-,  `Float'  -- ^ separatingDistance-, withTransform* `Transform'  peekTransform* -- ^ transA-, withTransform* `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#205>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btConvexSeparatingDistanceUtil_initSeparatingDistance as btConvexSeparatingDistanceUtil_initSeparatingDistance'    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ separatingVector-,  `Float'  -- ^ separatingDistance-, allocaTransform-  `Transform'  peekTransform* -- ^ transA-, allocaTransform-  `Transform'  peekTransform* -- ^ transB- } ->  `()'  #}--- * btDefaultMotionState-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#14>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_new as btDefaultMotionState    {  withTransform* `Transform' , withTransform* `Transform'  } -> `BtDefaultMotionState' mkBtDefaultMotionState* #}-{#fun btDefaultMotionState_free    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#31>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_setWorldTransform as btDefaultMotionState_setWorldTransform    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ centerOfMassWorldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#31>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_setWorldTransform as btDefaultMotionState_setWorldTransform'    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ centerOfMassWorldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#24>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_getWorldTransform as btDefaultMotionState_getWorldTransform    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ centerOfMassWorldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#24>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_getWorldTransform as btDefaultMotionState_getWorldTransform'    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ centerOfMassWorldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#9>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_graphicsWorldTrans_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#9>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_graphicsWorldTrans_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#10>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_centerOfMassOffset_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#10>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_centerOfMassOffset_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#11>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_startWorldTrans_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#11>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>--}-{#fun btDefaultMotionState_m_startWorldTrans_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}--- * btDefaultSerializer-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#377>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_new as btDefaultSerializer    {   `Int'  } -> `BtDefaultSerializer' mkBtDefaultSerializer* #}-{#fun btDefaultSerializer_free    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#646>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_setSerializationFlags as btDefaultSerializer_setSerializationFlags    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ flags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#461>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_startSerialization as btDefaultSerializer_startSerialization    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#641>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_getSerializationFlags as btDefaultSerializer_getSerializationFlags    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#472>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_finishSerialization as btDefaultSerializer_finishSerialization    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#536>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_getCurrentBufferSize as btDefaultSerializer_getCurrentBufferSize    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#612>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btDefaultSerializer_serializeName as btDefaultSerializer_serializeName    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ name- } ->  `()'  #}--- * btGeometryUtil-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#24>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>--}-{#fun btGeometryUtil_new as btGeometryUtil    {  } -> `BtGeometryUtil' mkBtGeometryUtil* #}-{#fun btGeometryUtil_free    `( BtGeometryUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btHashInt-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashInt_new as btHashInt    {   `Int'  } -> `BtHashInt' mkBtHashInt* #}-{#fun btHashInt_free    `( BtHashIntClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#86>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashInt_getUid1 as btHashInt_getUid1    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashInt_getHash as btHashInt_getHash    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word32'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#91>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashInt_setUid1 as btHashInt_setUid1    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ uid- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashInt_equals as btHashInt_equals    `( BtHashIntClass bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}--- * btHashPtr-{#fun btHashPtr_free    `( BtHashPtrClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashPtr_getHash as btHashPtr_getHash    `( BtHashPtrClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word32'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#133>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashPtr_equals as btHashPtr_equals    `( BtHashPtrClass bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}--- * btHashString-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#33>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_new as btHashString    {   `String'  } -> `BtHashString' mkBtHashString* #}-{#fun btHashString_free    `( BtHashStringClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#28>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_getHash as btHashString_getHash    `( BtHashStringClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Word32'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#66>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_equals as btHashString_equals    `( BtHashStringClass bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `Bool'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#51>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_portableStringCompare as btHashString_portableStringCompare    `( BtHashStringClass bc )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ src-,  `String'  -- ^ dst- } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#26>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_m_hash_set    `( BtHashStringClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#26>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_m_hash_get    `( BtHashStringClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#25>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_m_string_set    `( BtHashStringClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#25>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>--}-{#fun btHashString_m_string_get    `( BtHashStringClass bc )' =>     { withBt* `bc'  } ->  `String'   #}--- * btIDebugDraw-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_draw3dText as btIDebugDraw_draw3dText    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ location-,  `String'  -- ^ textString- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_draw3dText as btIDebugDraw_draw3dText'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ location-,  `String'  -- ^ textString- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ bbMin-, withVector3* `Vector3'  peekVector3* -- ^ bbMax-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMax-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ bbMin-, withVector3* `Vector3'  peekVector3* -- ^ bbMax-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMax-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox1 as btIDebugDraw_drawBox1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ bbMin-, withVector3* `Vector3'  peekVector3* -- ^ bbMax-, withTransform* `Transform'  peekTransform* -- ^ trans-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#297>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawBox1 as btIDebugDraw_drawBox1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMin-, allocaVector3-  `Vector3'  peekVector3* -- ^ bbMax-, allocaTransform-  `Transform'  peekTransform* -- ^ trans-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCone as btIDebugDraw_drawCone    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ height-,  `Int'  -- ^ upAxis-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#375>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCone as btIDebugDraw_drawCone'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ height-,  `Int'  -- ^ upAxis-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#313>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCapsule as btIDebugDraw_drawCapsule    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ halfHeight-,  `Int'  -- ^ upAxis-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#313>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCapsule as btIDebugDraw_drawCapsule'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ halfHeight-,  `Int'  -- ^ upAxis-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#156>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawArc as btIDebugDraw_drawArc    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ center-, withVector3* `Vector3'  peekVector3* -- ^ normal-, withVector3* `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ radiusA-,  `Float'  -- ^ radiusB-,  `Float'  -- ^ minAngle-,  `Float'  -- ^ maxAngle-, withVector3* `Vector3'  peekVector3* -- ^ color-,  `Bool'  -- ^ drawSect-,  `Float'  -- ^ stepDegrees- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#156>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawArc as btIDebugDraw_drawArc'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ center-, allocaVector3-  `Vector3'  peekVector3* -- ^ normal-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ radiusA-,  `Float'  -- ^ radiusB-,  `Float'  -- ^ minAngle-,  `Float'  -- ^ maxAngle-, allocaVector3-  `Vector3'  peekVector3* -- ^ color-,  `Bool'  -- ^ drawSect-,  `Float'  -- ^ stepDegrees- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#356>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCylinder as btIDebugDraw_drawCylinder    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ halfHeight-,  `Int'  -- ^ upAxis-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#356>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawCylinder as btIDebugDraw_drawCylinder'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-,  `Float'  -- ^ halfHeight-,  `Int'  -- ^ upAxis-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#110>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_reportErrorWarning as btIDebugDraw_reportErrorWarning    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ warningString- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v0-, withVector3* `Vector3'  peekVector3* -- ^ v1-, withVector3* `Vector3'  peekVector3* -- ^ v2-, withVector3* `Vector3'  peekVector3* -- ^ arg3-, withVector3* `Vector3'  peekVector3* -- ^ arg4-, withVector3* `Vector3'  peekVector3* -- ^ arg5-, withVector3* `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ alpha- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v0-, allocaVector3-  `Vector3'  peekVector3* -- ^ v1-, allocaVector3-  `Vector3'  peekVector3* -- ^ v2-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg3-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg4-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg5-, allocaVector3-  `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ alpha- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v0-, withVector3* `Vector3'  peekVector3* -- ^ v1-, withVector3* `Vector3'  peekVector3* -- ^ v2-, withVector3* `Vector3'  peekVector3* -- ^ arg3-, withVector3* `Vector3'  peekVector3* -- ^ arg4-, withVector3* `Vector3'  peekVector3* -- ^ arg5-, withVector3* `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ alpha- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v0-, allocaVector3-  `Vector3'  peekVector3* -- ^ v1-, allocaVector3-  `Vector3'  peekVector3* -- ^ v2-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg3-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg4-, allocaVector3-  `Vector3'  peekVector3* -- ^ arg5-, allocaVector3-  `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ alpha- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle1 as btIDebugDraw_drawTriangle1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ v0-, withVector3* `Vector3'  peekVector3* -- ^ v1-, withVector3* `Vector3'  peekVector3* -- ^ v2-, withVector3* `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ arg4- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#101>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTriangle1 as btIDebugDraw_drawTriangle1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ v0-, allocaVector3-  `Vector3'  peekVector3* -- ^ v1-, allocaVector3-  `Vector3'  peekVector3* -- ^ v2-, allocaVector3-  `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ arg4- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#116>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_getDebugMode as btIDebugDraw_getDebugMode    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine1 as btIDebugDraw_drawLine1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ fromColor-, withVector3* `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#56>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawLine1 as btIDebugDraw_drawLine1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ fromColor-, allocaVector3-  `Vector3'  peekVector3* -- ^ toColor- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTransform as btIDebugDraw_drawTransform    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ transform-,  `Float'  -- ^ orthoLen- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#147>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawTransform as btIDebugDraw_drawTransform'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ transform-,  `Float'  -- ^ orthoLen- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawAabb as btIDebugDraw_drawAabb    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ from-, withVector3* `Vector3'  peekVector3* -- ^ to-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#118>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawAabb as btIDebugDraw_drawAabb'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ from-, allocaVector3-  `Vector3'  peekVector3* -- ^ to-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#400>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawPlane as btIDebugDraw_drawPlane    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ planeNormal-,  `Float'  -- ^ planeConst-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#400>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawPlane as btIDebugDraw_drawPlane'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ planeNormal-,  `Float'  -- ^ planeConst-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawContactPoint as btIDebugDraw_drawContactPoint    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ PointOnB-, withVector3* `Vector3'  peekVector3* -- ^ normalOnB-,  `Float'  -- ^ distance-,  `Int'  -- ^ lifeTime-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#108>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawContactPoint as btIDebugDraw_drawContactPoint'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ PointOnB-, allocaVector3-  `Vector3'  peekVector3* -- ^ normalOnB-,  `Float'  -- ^ distance-,  `Int'  -- ^ lifeTime-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#114>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_setDebugMode as btIDebugDraw_setDebugMode    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ debugMode- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#181>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSpherePatch as btIDebugDraw_drawSpherePatch    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ center-, withVector3* `Vector3'  peekVector3* -- ^ up-, withVector3* `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ radius-,  `Float'  -- ^ minTh-,  `Float'  -- ^ maxTh-,  `Float'  -- ^ minPs-,  `Float'  -- ^ maxPs-, withVector3* `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ stepDegrees- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#181>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSpherePatch as btIDebugDraw_drawSpherePatch'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ center-, allocaVector3-  `Vector3'  peekVector3* -- ^ up-, allocaVector3-  `Vector3'  peekVector3* -- ^ axis-,  `Float'  -- ^ radius-,  `Float'  -- ^ minTh-,  `Float'  -- ^ maxTh-,  `Float'  -- ^ minPs-,  `Float'  -- ^ maxPs-, allocaVector3-  `Vector3'  peekVector3* -- ^ color-,  `Float'  -- ^ stepDegrees- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-, withTransform* `Transform'  peekTransform* -- ^ transform-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ radius-, allocaTransform-  `Transform'  peekTransform* -- ^ transform-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere1 as btIDebugDraw_drawSphere1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, withVector3* `Vector3'  peekVector3* -- ^ p-,  `Float'  -- ^ radius-, withVector3* `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>--}-{#fun btIDebugDraw_drawSphere1 as btIDebugDraw_drawSphere1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ -, allocaVector3-  `Vector3'  peekVector3* -- ^ p-,  `Float'  -- ^ radius-, allocaVector3-  `Vector3'  peekVector3* -- ^ color- } ->  `()'  #}--- * btMatrix3x3DoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.h?r=2223#732>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.cpp?r=2223>--}-{#fun btMatrix3x3DoubleData_new as btMatrix3x3DoubleData    {  } -> `BtMatrix3x3DoubleData' mkBtMatrix3x3DoubleData* #}-{#fun btMatrix3x3DoubleData_free    `( BtMatrix3x3DoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btMatrix3x3FloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.h?r=2223#726>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.cpp?r=2223>--}-{#fun btMatrix3x3FloatData_new as btMatrix3x3FloatData    {  } -> `BtMatrix3x3FloatData' mkBtMatrix3x3FloatData* #}-{#fun btMatrix3x3FloatData_free    `( BtMatrix3x3FloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btMotionState-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#35>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>--}-{#fun btMotionState_setWorldTransform as btMotionState_setWorldTransform    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#35>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>--}-{#fun btMotionState_setWorldTransform as btMotionState_setWorldTransform'    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>--}-{#fun btMotionState_getWorldTransform as btMotionState_getWorldTransform    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, withTransform* `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#32>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>--}-{#fun btMotionState_getWorldTransform as btMotionState_getWorldTransform'    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ -, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans- } ->  `()'  #}--- * btPointerUid-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#129>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btPointerUid_new as btPointerUid    {  } -> `BtPointerUid' mkBtPointerUid* #}-{#fun btPointerUid_free    `( BtPointerUidClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btQuadWord-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#129>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_new0 as btQuadWord0    {  } -> `BtQuadWord' mkBtQuadWord* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#139>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_new1 as btQuadWord1    {   `Float' ,  `Float' ,  `Float'  } -> `BtQuadWord' mkBtQuadWord* #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#150>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_new2 as btQuadWord2    {   `Float' ,  `Float' ,  `Float' ,  `Float'  } -> `BtQuadWord' mkBtQuadWord* #}-{#fun btQuadWord_free    `( BtQuadWordClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#168>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setMin as btQuadWord_setMin    `( BtQuadWordClass bc , BtQuadWordClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setValue0 as btQuadWord_setValue    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ x-,  `Float'  -- ^ y-,  `Float'  -- ^ z- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setValue0 as btQuadWord_setValue0    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ x-,  `Float'  -- ^ y-,  `Float'  -- ^ z- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#121>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setValue1 as btQuadWord_setValue1    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ x-,  `Float'  -- ^ y-,  `Float'  -- ^ z-,  `Float'  -- ^ w- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#158>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setMax as btQuadWord_setMax    `( BtQuadWordClass bc , BtQuadWordClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ other- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#57>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_getX as btQuadWord_getX    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#59>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_getY as btQuadWord_getY    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#61>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_getZ as btQuadWord_getZ    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#69>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setW as btQuadWord_setW    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ w- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#77>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_w as btQuadWord_w    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#73>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_y as btQuadWord_y    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#71>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_x as btQuadWord_x    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#75>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_z as btQuadWord_z    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Float'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setX as btQuadWord_setX    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ x- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#65>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setY as btQuadWord_setY    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ y- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#67>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>--}-{#fun btQuadWord_setZ as btQuadWord_setZ    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ -,  `Float'  -- ^ z- } ->  `()'  #}--- * btSerializer-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#100>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_setSerializationFlags as btSerializer_setSerializationFlags    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ -,  `Int'  -- ^ flags- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#78>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_getCurrentBufferSize as btSerializer_getCurrentBufferSize    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#88>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_startSerialization as btSerializer_startSerialization    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#98>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_getSerializationFlags as btSerializer_getSerializationFlags    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#90>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_finishSerialization as btSerializer_finishSerialization    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#96>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>--}-{#fun btSerializer_serializeName as btSerializer_serializeName    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ -,  `String'  -- ^ ptr- } ->  `()'  #}--- * btStackAlloc-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#38>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_new as btStackAlloc    {   `Word32'  } -> `BtStackAlloc' mkBtStackAlloc* #}-{#fun btStackAlloc_free    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#41>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_create as btStackAlloc_create    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ -,  `Word32'  -- ^ size- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#47>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_destroy as btStackAlloc_destroy    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#81>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_beginBlock as btStackAlloc_beginBlock    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `BtBlock' mkBtBlock*  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#63>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_getAvailableMemory as btStackAlloc_getAvailableMemory    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#89>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>--}-{#fun btStackAlloc_endBlock as btStackAlloc_endBlock    `( BtStackAllocClass bc , BtBlockClass p0 )' =>     { withBt* `bc'  -- ^ -, withBt* `p0'  -- ^ block- } ->  `()'  #}--- * btTransformDoubleData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#262>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>--}-{#fun btTransformDoubleData_new as btTransformDoubleData    {  } -> `BtTransformDoubleData' mkBtTransformDoubleData* #}-{#fun btTransformDoubleData_free    `( BtTransformDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btTransformFloatData-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#256>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>--}-{#fun btTransformFloatData_new as btTransformFloatData    {  } -> `BtTransformFloatData' mkBtTransformFloatData* #}-{#fun btTransformFloatData_free    `( BtTransformFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}--- * btTransformUtil-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#39>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_new as btTransformUtil    {  } -> `BtTransformUtil' mkBtTransformUtil* #}-{#fun btTransformUtil_free    `( BtTransformUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_calculateVelocity as btTransformUtil_calculateVelocity    `( )' =>     {  withTransform* `Transform'  peekTransform* -- ^ transform0-, withTransform* `Transform'  peekTransform* -- ^ transform1-,  `Float'  -- ^ timeStep-, withVector3* `Vector3'  peekVector3* -- ^ linVel-, withVector3* `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#112>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_calculateVelocity as btTransformUtil_calculateVelocity'    `( )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ transform0-, allocaTransform-  `Transform'  peekTransform* -- ^ transform1-,  `Float'  -- ^ timeStep-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVel-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_integrateTransform as btTransformUtil_integrateTransform    `( )' =>     {  withTransform* `Transform'  peekTransform* -- ^ curTrans-, withVector3* `Vector3'  peekVector3* -- ^ linvel-, withVector3* `Vector3'  peekVector3* -- ^ angvel-,  `Float'  -- ^ timeStep-, withTransform* `Transform'  peekTransform* -- ^ predictedTransform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#43>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_integrateTransform as btTransformUtil_integrateTransform'    `( )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ curTrans-, allocaVector3-  `Vector3'  peekVector3* -- ^ linvel-, allocaVector3-  `Vector3'  peekVector3* -- ^ angvel-,  `Float'  -- ^ timeStep-, allocaTransform-  `Transform'  peekTransform* -- ^ predictedTransform- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_calculateVelocityQuaternion as btTransformUtil_calculateVelocityQuaternion    `( )' =>     {  withVector3* `Vector3'  peekVector3* -- ^ pos0-, withVector3* `Vector3'  peekVector3* -- ^ pos1-, withQuaternion* `Quaternion'  peekQuaternion* -- ^ orn0-, withQuaternion* `Quaternion'  peekQuaternion* -- ^ orn1-,  `Float'  -- ^ timeStep-, withVector3* `Vector3'  peekVector3* -- ^ linVel-, withVector3* `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#82>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>--}-{#fun btTransformUtil_calculateVelocityQuaternion as btTransformUtil_calculateVelocityQuaternion'    `( )' =>     {  allocaVector3-  `Vector3'  peekVector3* -- ^ pos0-, allocaVector3-  `Vector3'  peekVector3* -- ^ pos1-, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ orn0-, allocaQuaternion-  `Quaternion'  peekQuaternion* -- ^ orn1-,  `Float'  -- ^ timeStep-, allocaVector3-  `Vector3'  peekVector3* -- ^ linVel-, allocaVector3-  `Vector3'  peekVector3* -- ^ angVel- } ->  `()'  #}--- * btTypedObject-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.h?r=2223#512>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.cpp?r=2223>--}-{#fun btTypedObject_new as btTypedObject    {   `Int'  } -> `BtTypedObject' mkBtTypedObject* #}-{#fun btTypedObject_free    `( BtTypedObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}-{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.h?r=2223#517>-     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.cpp?r=2223>--}-{#fun btTypedObject_getObjectType as btTypedObject_getObjectType    `( BtTypedObjectClass bc )' =>     { withBt* `bc'  -- ^ - } ->  `Int'  #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#135>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_new as cProfileIterator    `( CProfileNodeClass p0 )' =>     {  withBt* `p0'  } -> `CProfileIterator' mkCProfileIterator* #}+{#fun cProfileIterator_free    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Name as cProfileIterator_Get_Current_Name    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#117>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Total_Calls as cProfileIterator_Get_Current_Total_Calls    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Total_Time as cProfileIterator_Get_Current_Total_Time    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Enter_Child as cProfileIterator_Enter_Child    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Is_Done as cProfileIterator_Is_Done    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#107>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Next as cProfileIterator_Next    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#109>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Is_Root as cProfileIterator_Is_Root    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#123>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Parent_Name as cProfileIterator_Get_Current_Parent_Name    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#120>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_UserPointer as cProfileIterator_Get_Current_UserPointer    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#124>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Parent_Total_Calls as cProfileIterator_Get_Current_Parent_Total_Calls    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Set_Current_UserPointer as cProfileIterator_Set_Current_UserPointer    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#125>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Get_Current_Parent_Total_Time as cProfileIterator_Get_Current_Parent_Total_Time    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_Enter_Parent as cProfileIterator_Enter_Parent    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#106>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_First as cProfileIterator_First    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_CurrentParent_set    `( CProfileIteratorClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#131>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_CurrentParent_get    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_CurrentChild_set    `( CProfileIteratorClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#132>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileIterator_CurrentChild_get    `( CProfileIteratorClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+-- * CProfileManager+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_new as cProfileManager    {  } -> `CProfileManager' mkCProfileManager* #}+{#fun cProfileManager_free    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Reset as cProfileManager_Reset    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#165>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_dumpAll as cProfileManager_dumpAll    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Get_Frame_Count_Since_Reset as cProfileManager_Get_Frame_Count_Since_Reset    `( )' =>     {  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#161>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Release_Iterator as cProfileManager_Release_Iterator    `(  CProfileIteratorClass p0 )' =>     {  withBt* `p0'  -- ^ iterator+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Stop_Profile as cProfileManager_Stop_Profile    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_CleanupMemory as cProfileManager_CleanupMemory    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Get_Time_Since_Reset as cProfileManager_Get_Time_Since_Reset    `( )' =>     {  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Start_Profile as cProfileManager_Start_Profile    `( )' =>     {   `String'  -- ^ name+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Increment_Frame_Counter as cProfileManager_Increment_Frame_Counter    `( )' =>     {  } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_dumpRecursive as cProfileManager_dumpRecursive    `(  CProfileIteratorClass p0 )' =>     {  withBt* `p0'  -- ^ profileIterator+,  `Int'  -- ^ spacing+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Get_Iterator as cProfileManager_Get_Iterator    `( )' =>     {  } ->  `CProfileIterator'  mkCProfileIterator* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Root_set    `( CProfileManagerClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_Root_get    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_CurrentNode_set    `( CProfileManagerClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#169>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_CurrentNode_get    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_FrameCounter_set    `( CProfileManagerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_FrameCounter_get    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_ResetTime_set    `( CProfileManagerClass bc )' =>     { withBt* `bc' ,  `Word64'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileManager_ResetTime_get    `( CProfileManagerClass bc )' =>     { withBt* `bc'  } ->  `Word64'   #}+-- * CProfileNode+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_new as cProfileNode    `( CProfileNodeClass p1 )' =>     {   `String' , withBt* `p1'  } -> `CProfileNode' mkCProfileNode* #}+{#fun cProfileNode_free    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Reset as cProfileNode_Reset    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Return as cProfileNode_Return    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_SetUserPointer as cProfileNode_SetUserPointer    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Sub_Node as cProfileNode_Get_Sub_Node    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ name+ } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_CleanupMemory as cProfileNode_CleanupMemory    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Parent as cProfileNode_Get_Parent    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#85>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_GetUserPointer as cProfileNode_GetUserPointer    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Name as cProfileNode_Get_Name    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Total_Time as cProfileNode_Get_Total_Time    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#79>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Call as cProfileNode_Call    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#74>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Sibling as cProfileNode_Get_Sibling    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Child as cProfileNode_Get_Child    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Get_Total_Calls as cProfileNode_Get_Total_Calls    `( CProfileNodeClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Child_set    `( CProfileNodeClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Child_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Name_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Name_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Parent_set    `( CProfileNodeClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#95>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Parent_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_RecursionCounter_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#93>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_RecursionCounter_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Sibling_set    `( CProfileNodeClass bc , CProfileNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_Sibling_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `CProfileNode'  mkCProfileNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_StartTime_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' ,  `Word64'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_StartTime_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `Word64'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_TotalCalls_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_TotalCalls_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_TotalTime_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_TotalTime_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_m_userPtr_set    `( CProfileNodeClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileNode_m_userPtr_get    `( CProfileNodeClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+-- * CProfileSample+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#179>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun cProfileSample_new as cProfileSample    {   `String'  } -> `CProfileSample' mkCProfileSample* #}+{#fun cProfileSample_free    `( CProfileSampleClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__new as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_    {  } -> `BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_' mkBtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_* #}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__free    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__destroy as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__destroy    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__deallocate as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__deallocate    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__construct as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__construct    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 , BT_QUANTIZED_BVH_NODEClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address0 as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address0 as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address0    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address1 as btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address1    `( BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+-- * btAlignedAllocator<GIM_BVH_DATA, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__new as btAlignedAllocator_GIM_BVH_DATA_16u_    {  } -> `BtAlignedAllocator_GIM_BVH_DATA_16u_' mkBtAlignedAllocator_GIM_BVH_DATA_16u_* #}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__free    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__destroy as btAlignedAllocator_GIM_BVH_DATA_16u__destroy    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__deallocate as btAlignedAllocator_GIM_BVH_DATA_16u__deallocate    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__construct as btAlignedAllocator_GIM_BVH_DATA_16u__construct    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 , GIM_BVH_DATAClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__address0 as btAlignedAllocator_GIM_BVH_DATA_16u__address    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__address0 as btAlignedAllocator_GIM_BVH_DATA_16u__address0    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_DATA_16u__address1 as btAlignedAllocator_GIM_BVH_DATA_16u__address1    `( BtAlignedAllocator_GIM_BVH_DATA_16u_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+-- * btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__new as btAlignedAllocator_GIM_BVH_TREE_NODE_16u_    {  } -> `BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_' mkBtAlignedAllocator_GIM_BVH_TREE_NODE_16u_* #}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__free    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__destroy as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__destroy    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__deallocate as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__deallocate    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__construct as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__construct    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 , GIM_BVH_TREE_NODEClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address0 as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address0 as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address0    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address1 as btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address1    `( BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+-- * btAlignedAllocator<GIM_PAIR, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__new as btAlignedAllocator_GIM_PAIR_16u_    {  } -> `BtAlignedAllocator_GIM_PAIR_16u_' mkBtAlignedAllocator_GIM_PAIR_16u_* #}+{#fun btAlignedAllocator_GIM_PAIR_16u__free    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__destroy as btAlignedAllocator_GIM_PAIR_16u__destroy    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__deallocate as btAlignedAllocator_GIM_PAIR_16u__deallocate    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__construct as btAlignedAllocator_GIM_PAIR_16u__construct    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 , GIM_PAIRClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__address0 as btAlignedAllocator_GIM_PAIR_16u__address    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__address0 as btAlignedAllocator_GIM_PAIR_16u__address0    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_GIM_PAIR_16u__address1 as btAlignedAllocator_GIM_PAIR_16u__address1    `( BtAlignedAllocator_GIM_PAIR_16u_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+-- * btAlignedAllocator<bool, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_bool_16u__new as btAlignedAllocator_bool_16u_    {  } -> `BtAlignedAllocator_bool_16u_' mkBtAlignedAllocator_bool_16u_* #}+{#fun btAlignedAllocator_bool_16u__free    `( BtAlignedAllocator_bool_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btActionInterface*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btActionInterface_ptr_16u__new as btAlignedAllocator_btActionInterface_ptr_16u_    {  } -> `BtAlignedAllocator_btActionInterface_ptr_16u_' mkBtAlignedAllocator_btActionInterface_ptr_16u_* #}+{#fun btAlignedAllocator_btActionInterface_ptr_16u__free    `( BtAlignedAllocator_btActionInterface_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btBroadphaseInterface*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphaseInterface_ptr_16u__new as btAlignedAllocator_btBroadphaseInterface_ptr_16u_    {  } -> `BtAlignedAllocator_btBroadphaseInterface_ptr_16u_' mkBtAlignedAllocator_btBroadphaseInterface_ptr_16u_* #}+{#fun btAlignedAllocator_btBroadphaseInterface_ptr_16u__free    `( BtAlignedAllocator_btBroadphaseInterface_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btBroadphasePair, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__new as btAlignedAllocator_btBroadphasePair_16u_    {  } -> `BtAlignedAllocator_btBroadphasePair_16u_' mkBtAlignedAllocator_btBroadphasePair_16u_* #}+{#fun btAlignedAllocator_btBroadphasePair_16u__free    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__destroy as btAlignedAllocator_btBroadphasePair_16u__destroy    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__deallocate as btAlignedAllocator_btBroadphasePair_16u__deallocate    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__construct as btAlignedAllocator_btBroadphasePair_16u__construct    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 , BtBroadphasePairClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__address0 as btAlignedAllocator_btBroadphasePair_16u__address    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__address0 as btAlignedAllocator_btBroadphasePair_16u__address0    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBroadphasePair_16u__address1 as btAlignedAllocator_btBroadphasePair_16u__address1    `( BtAlignedAllocator_btBroadphasePair_16u_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+-- * btAlignedAllocator<btBvhSubtreeInfo, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__new as btAlignedAllocator_btBvhSubtreeInfo_16u_    {  } -> `BtAlignedAllocator_btBvhSubtreeInfo_16u_' mkBtAlignedAllocator_btBvhSubtreeInfo_16u_* #}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__free    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__destroy as btAlignedAllocator_btBvhSubtreeInfo_16u__destroy    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__deallocate as btAlignedAllocator_btBvhSubtreeInfo_16u__deallocate    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__construct as btAlignedAllocator_btBvhSubtreeInfo_16u__construct    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 , BtBvhSubtreeInfoClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__address0 as btAlignedAllocator_btBvhSubtreeInfo_16u__address    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__address0 as btAlignedAllocator_btBvhSubtreeInfo_16u__address0    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btBvhSubtreeInfo_16u__address1 as btAlignedAllocator_btBvhSubtreeInfo_16u__address1    `( BtAlignedAllocator_btBvhSubtreeInfo_16u_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+-- * btAlignedAllocator<btChunk*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btChunk_ptr_16u__new as btAlignedAllocator_btChunk_ptr_16u_    {  } -> `BtAlignedAllocator_btChunk_ptr_16u_' mkBtAlignedAllocator_btChunk_ptr_16u_* #}+{#fun btAlignedAllocator_btChunk_ptr_16u__free    `( BtAlignedAllocator_btChunk_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btCollisionObject*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCollisionObject_ptr_16u__new as btAlignedAllocator_btCollisionObject_ptr_16u_    {  } -> `BtAlignedAllocator_btCollisionObject_ptr_16u_' mkBtAlignedAllocator_btCollisionObject_ptr_16u_* #}+{#fun btAlignedAllocator_btCollisionObject_ptr_16u__free    `( BtAlignedAllocator_btCollisionObject_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btCollisionShape*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCollisionShape_ptr_16u__new as btAlignedAllocator_btCollisionShape_ptr_16u_    {  } -> `BtAlignedAllocator_btCollisionShape_ptr_16u_' mkBtAlignedAllocator_btCollisionShape_ptr_16u_* #}+{#fun btAlignedAllocator_btCollisionShape_ptr_16u__free    `( BtAlignedAllocator_btCollisionShape_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btCompoundShapeChild, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__new as btAlignedAllocator_btCompoundShapeChild_16u_    {  } -> `BtAlignedAllocator_btCompoundShapeChild_16u_' mkBtAlignedAllocator_btCompoundShapeChild_16u_* #}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__free    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__destroy as btAlignedAllocator_btCompoundShapeChild_16u__destroy    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__deallocate as btAlignedAllocator_btCompoundShapeChild_16u__deallocate    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__construct as btAlignedAllocator_btCompoundShapeChild_16u__construct    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 , BtCompoundShapeChildClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__address0 as btAlignedAllocator_btCompoundShapeChild_16u__address    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__address0 as btAlignedAllocator_btCompoundShapeChild_16u__address0    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btCompoundShapeChild_16u__address1 as btAlignedAllocator_btCompoundShapeChild_16u__address1    `( BtAlignedAllocator_btCompoundShapeChild_16u_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+-- * btAlignedAllocator<btDbvt::sStkNN, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__new as btAlignedAllocator_btDbvt_sStkNN_16u_    {  } -> `BtAlignedAllocator_btDbvt_sStkNN_16u_' mkBtAlignedAllocator_btDbvt_sStkNN_16u_* #}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__free    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__destroy as btAlignedAllocator_btDbvt_sStkNN_16u__destroy    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__deallocate as btAlignedAllocator_btDbvt_sStkNN_16u__deallocate    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__construct as btAlignedAllocator_btDbvt_sStkNN_16u__construct    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 , BtDbvt_sStkNNClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__address0 as btAlignedAllocator_btDbvt_sStkNN_16u__address    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__address0 as btAlignedAllocator_btDbvt_sStkNN_16u__address0    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNN_16u__address1 as btAlignedAllocator_btDbvt_sStkNN_16u__address1    `( BtAlignedAllocator_btDbvt_sStkNN_16u_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+-- * btAlignedAllocator<btDbvt::sStkNP, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__new as btAlignedAllocator_btDbvt_sStkNP_16u_    {  } -> `BtAlignedAllocator_btDbvt_sStkNP_16u_' mkBtAlignedAllocator_btDbvt_sStkNP_16u_* #}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__free    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__destroy as btAlignedAllocator_btDbvt_sStkNP_16u__destroy    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__deallocate as btAlignedAllocator_btDbvt_sStkNP_16u__deallocate    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__construct as btAlignedAllocator_btDbvt_sStkNP_16u__construct    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 , BtDbvt_sStkNPClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__address0 as btAlignedAllocator_btDbvt_sStkNP_16u__address    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__address0 as btAlignedAllocator_btDbvt_sStkNP_16u__address0    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNP_16u__address1 as btAlignedAllocator_btDbvt_sStkNP_16u__address1    `( BtAlignedAllocator_btDbvt_sStkNP_16u_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+-- * btAlignedAllocator<btDbvt::sStkNPS, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__new as btAlignedAllocator_btDbvt_sStkNPS_16u_    {  } -> `BtAlignedAllocator_btDbvt_sStkNPS_16u_' mkBtAlignedAllocator_btDbvt_sStkNPS_16u_* #}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__free    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__destroy as btAlignedAllocator_btDbvt_sStkNPS_16u__destroy    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__deallocate as btAlignedAllocator_btDbvt_sStkNPS_16u__deallocate    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__construct as btAlignedAllocator_btDbvt_sStkNPS_16u__construct    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 , BtDbvt_sStkNPSClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__address0 as btAlignedAllocator_btDbvt_sStkNPS_16u__address    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__address0 as btAlignedAllocator_btDbvt_sStkNPS_16u__address0    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvt_sStkNPS_16u__address1 as btAlignedAllocator_btDbvt_sStkNPS_16u__address1    `( BtAlignedAllocator_btDbvt_sStkNPS_16u_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+-- * btAlignedAllocator<btDbvtNode const*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btDbvtNodeconst_ptr_16u__new as btAlignedAllocator_btDbvtNodeconst_ptr_16u_    {  } -> `BtAlignedAllocator_btDbvtNodeconst_ptr_16u_' mkBtAlignedAllocator_btDbvtNodeconst_ptr_16u_* #}+{#fun btAlignedAllocator_btDbvtNodeconst_ptr_16u__free    `( BtAlignedAllocator_btDbvtNodeconst_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btGImpactMeshShapePart*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btGImpactMeshShapePart_ptr_16u__new as btAlignedAllocator_btGImpactMeshShapePart_ptr_16u_    {  } -> `BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_' mkBtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_* #}+{#fun btAlignedAllocator_btGImpactMeshShapePart_ptr_16u__free    `( BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btHashInt, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__new as btAlignedAllocator_btHashInt_16u_    {  } -> `BtAlignedAllocator_btHashInt_16u_' mkBtAlignedAllocator_btHashInt_16u_* #}+{#fun btAlignedAllocator_btHashInt_16u__free    `( BtAlignedAllocator_btHashInt_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__destroy as btAlignedAllocator_btHashInt_16u__destroy    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__deallocate as btAlignedAllocator_btHashInt_16u__deallocate    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__construct as btAlignedAllocator_btHashInt_16u__construct    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 , BtHashIntClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__address0 as btAlignedAllocator_btHashInt_16u__address    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__address0 as btAlignedAllocator_btHashInt_16u__address0    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashInt_16u__address1 as btAlignedAllocator_btHashInt_16u__address1    `( BtAlignedAllocator_btHashInt_16u_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashInt'  mkBtHashInt* #}+-- * btAlignedAllocator<btHashPtr, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__new as btAlignedAllocator_btHashPtr_16u_    {  } -> `BtAlignedAllocator_btHashPtr_16u_' mkBtAlignedAllocator_btHashPtr_16u_* #}+{#fun btAlignedAllocator_btHashPtr_16u__free    `( BtAlignedAllocator_btHashPtr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__destroy as btAlignedAllocator_btHashPtr_16u__destroy    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__deallocate as btAlignedAllocator_btHashPtr_16u__deallocate    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__construct as btAlignedAllocator_btHashPtr_16u__construct    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 , BtHashPtrClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__address0 as btAlignedAllocator_btHashPtr_16u__address    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__address0 as btAlignedAllocator_btHashPtr_16u__address0    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashPtr_16u__address1 as btAlignedAllocator_btHashPtr_16u__address1    `( BtAlignedAllocator_btHashPtr_16u_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashPtr'  mkBtHashPtr* #}+-- * btAlignedAllocator<btHashString, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__new as btAlignedAllocator_btHashString_16u_    {  } -> `BtAlignedAllocator_btHashString_16u_' mkBtAlignedAllocator_btHashString_16u_* #}+{#fun btAlignedAllocator_btHashString_16u__free    `( BtAlignedAllocator_btHashString_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__destroy as btAlignedAllocator_btHashString_16u__destroy    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__deallocate as btAlignedAllocator_btHashString_16u__deallocate    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__construct as btAlignedAllocator_btHashString_16u__construct    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 , BtHashStringClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__address0 as btAlignedAllocator_btHashString_16u__address    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__address0 as btAlignedAllocator_btHashString_16u__address0    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btHashString_16u__address1 as btAlignedAllocator_btHashString_16u__address1    `( BtAlignedAllocator_btHashString_16u_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtHashString'  mkBtHashString* #}+-- * btAlignedAllocator<btIndexedMesh, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__new as btAlignedAllocator_btIndexedMesh_16u_    {  } -> `BtAlignedAllocator_btIndexedMesh_16u_' mkBtAlignedAllocator_btIndexedMesh_16u_* #}+{#fun btAlignedAllocator_btIndexedMesh_16u__free    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__destroy as btAlignedAllocator_btIndexedMesh_16u__destroy    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__deallocate as btAlignedAllocator_btIndexedMesh_16u__deallocate    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__construct as btAlignedAllocator_btIndexedMesh_16u__construct    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 , BtIndexedMeshClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__address0 as btAlignedAllocator_btIndexedMesh_16u__address    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__address0 as btAlignedAllocator_btIndexedMesh_16u__address0    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btIndexedMesh_16u__address1 as btAlignedAllocator_btIndexedMesh_16u__address1    `( BtAlignedAllocator_btIndexedMesh_16u_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+-- * btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u__new as btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_    {  } -> `BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_' mkBtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_* #}+{#fun btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u__free    `( BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u__new as btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_    {  } -> `BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_' mkBtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_* #}+{#fun btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u__free    `( BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btOptimizedBvhNode, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__new as btAlignedAllocator_btOptimizedBvhNode_16u_    {  } -> `BtAlignedAllocator_btOptimizedBvhNode_16u_' mkBtAlignedAllocator_btOptimizedBvhNode_16u_* #}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__free    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__destroy as btAlignedAllocator_btOptimizedBvhNode_16u__destroy    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__deallocate as btAlignedAllocator_btOptimizedBvhNode_16u__deallocate    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__construct as btAlignedAllocator_btOptimizedBvhNode_16u__construct    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 , BtOptimizedBvhNodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__address0 as btAlignedAllocator_btOptimizedBvhNode_16u__address    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__address0 as btAlignedAllocator_btOptimizedBvhNode_16u__address0    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btOptimizedBvhNode_16u__address1 as btAlignedAllocator_btOptimizedBvhNode_16u__address1    `( BtAlignedAllocator_btOptimizedBvhNode_16u_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+-- * btAlignedAllocator<btPersistentManifold*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPersistentManifold_ptr_16u__new as btAlignedAllocator_btPersistentManifold_ptr_16u_    {  } -> `BtAlignedAllocator_btPersistentManifold_ptr_16u_' mkBtAlignedAllocator_btPersistentManifold_ptr_16u_* #}+{#fun btAlignedAllocator_btPersistentManifold_ptr_16u__free    `( BtAlignedAllocator_btPersistentManifold_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btPointerUid, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__new as btAlignedAllocator_btPointerUid_16u_    {  } -> `BtAlignedAllocator_btPointerUid_16u_' mkBtAlignedAllocator_btPointerUid_16u_* #}+{#fun btAlignedAllocator_btPointerUid_16u__free    `( BtAlignedAllocator_btPointerUid_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__destroy as btAlignedAllocator_btPointerUid_16u__destroy    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__deallocate as btAlignedAllocator_btPointerUid_16u__deallocate    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__construct as btAlignedAllocator_btPointerUid_16u__construct    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 , BtPointerUidClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__address0 as btAlignedAllocator_btPointerUid_16u__address    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__address0 as btAlignedAllocator_btPointerUid_16u__address0    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btPointerUid_16u__address1 as btAlignedAllocator_btPointerUid_16u__address1    `( BtAlignedAllocator_btPointerUid_16u_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtPointerUid'  mkBtPointerUid* #}+-- * btAlignedAllocator<btQuantizedBvhNode, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__new as btAlignedAllocator_btQuantizedBvhNode_16u_    {  } -> `BtAlignedAllocator_btQuantizedBvhNode_16u_' mkBtAlignedAllocator_btQuantizedBvhNode_16u_* #}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__free    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__destroy as btAlignedAllocator_btQuantizedBvhNode_16u__destroy    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__deallocate as btAlignedAllocator_btQuantizedBvhNode_16u__deallocate    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__construct as btAlignedAllocator_btQuantizedBvhNode_16u__construct    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 , BtQuantizedBvhNodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__address0 as btAlignedAllocator_btQuantizedBvhNode_16u__address    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__address0 as btAlignedAllocator_btQuantizedBvhNode_16u__address0    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btQuantizedBvhNode_16u__address1 as btAlignedAllocator_btQuantizedBvhNode_16u__address1    `( BtAlignedAllocator_btQuantizedBvhNode_16u_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+-- * btAlignedAllocator<btRigidBody*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btRigidBody_ptr_16u__new as btAlignedAllocator_btRigidBody_ptr_16u_    {  } -> `BtAlignedAllocator_btRigidBody_ptr_16u_' mkBtAlignedAllocator_btRigidBody_ptr_16u_* #}+{#fun btAlignedAllocator_btRigidBody_ptr_16u__free    `( BtAlignedAllocator_btRigidBody_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_ptr_16u__new as btAlignedAllocator_btSoftBody_ptr_16u_    {  } -> `BtAlignedAllocator_btSoftBody_ptr_16u_' mkBtAlignedAllocator_btSoftBody_ptr_16u_* #}+{#fun btAlignedAllocator_btSoftBody_ptr_16u__free    `( BtAlignedAllocator_btSoftBody_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::Anchor, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__new as btAlignedAllocator_btSoftBody_Anchor_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Anchor_16u_' mkBtAlignedAllocator_btSoftBody_Anchor_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__free    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__destroy as btAlignedAllocator_btSoftBody_Anchor_16u__destroy    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__deallocate as btAlignedAllocator_btSoftBody_Anchor_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__construct as btAlignedAllocator_btSoftBody_Anchor_16u__construct    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 , BtSoftBody_AnchorClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__address0 as btAlignedAllocator_btSoftBody_Anchor_16u__address    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__address0 as btAlignedAllocator_btSoftBody_Anchor_16u__address0    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Anchor_16u__address1 as btAlignedAllocator_btSoftBody_Anchor_16u__address1    `( BtAlignedAllocator_btSoftBody_Anchor_16u_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+-- * btAlignedAllocator<btSoftBody::Cluster*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Cluster_ptr_16u__new as btAlignedAllocator_btSoftBody_Cluster_ptr_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_' mkBtAlignedAllocator_btSoftBody_Cluster_ptr_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Cluster_ptr_16u__free    `( BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::Face, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__new as btAlignedAllocator_btSoftBody_Face_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Face_16u_' mkBtAlignedAllocator_btSoftBody_Face_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Face_16u__free    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__destroy as btAlignedAllocator_btSoftBody_Face_16u__destroy    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__deallocate as btAlignedAllocator_btSoftBody_Face_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__construct as btAlignedAllocator_btSoftBody_Face_16u__construct    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 , BtSoftBody_FaceClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__address0 as btAlignedAllocator_btSoftBody_Face_16u__address    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__address0 as btAlignedAllocator_btSoftBody_Face_16u__address0    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Face_16u__address1 as btAlignedAllocator_btSoftBody_Face_16u__address1    `( BtAlignedAllocator_btSoftBody_Face_16u_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+-- * btAlignedAllocator<btSoftBody::Joint*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Joint_ptr_16u__new as btAlignedAllocator_btSoftBody_Joint_ptr_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Joint_ptr_16u_' mkBtAlignedAllocator_btSoftBody_Joint_ptr_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Joint_ptr_16u__free    `( BtAlignedAllocator_btSoftBody_Joint_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::Link, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__new as btAlignedAllocator_btSoftBody_Link_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Link_16u_' mkBtAlignedAllocator_btSoftBody_Link_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Link_16u__free    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__destroy as btAlignedAllocator_btSoftBody_Link_16u__destroy    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__deallocate as btAlignedAllocator_btSoftBody_Link_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__construct as btAlignedAllocator_btSoftBody_Link_16u__construct    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 , BtSoftBody_LinkClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__address0 as btAlignedAllocator_btSoftBody_Link_16u__address    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__address0 as btAlignedAllocator_btSoftBody_Link_16u__address0    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Link_16u__address1 as btAlignedAllocator_btSoftBody_Link_16u__address1    `( BtAlignedAllocator_btSoftBody_Link_16u_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+-- * btAlignedAllocator<btSoftBody::Material*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Material_ptr_16u__new as btAlignedAllocator_btSoftBody_Material_ptr_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Material_ptr_16u_' mkBtAlignedAllocator_btSoftBody_Material_ptr_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Material_ptr_16u__free    `( BtAlignedAllocator_btSoftBody_Material_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::Node*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_ptr_16u__new as btAlignedAllocator_btSoftBody_Node_ptr_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Node_ptr_16u_' mkBtAlignedAllocator_btSoftBody_Node_ptr_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Node_ptr_16u__free    `( BtAlignedAllocator_btSoftBody_Node_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::Node, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__new as btAlignedAllocator_btSoftBody_Node_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Node_16u_' mkBtAlignedAllocator_btSoftBody_Node_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Node_16u__free    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__destroy as btAlignedAllocator_btSoftBody_Node_16u__destroy    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__deallocate as btAlignedAllocator_btSoftBody_Node_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__construct as btAlignedAllocator_btSoftBody_Node_16u__construct    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__address0 as btAlignedAllocator_btSoftBody_Node_16u__address    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__address0 as btAlignedAllocator_btSoftBody_Node_16u__address0    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Node_16u__address1 as btAlignedAllocator_btSoftBody_Node_16u__address1    `( BtAlignedAllocator_btSoftBody_Node_16u_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+-- * btAlignedAllocator<btSoftBody::Note, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__new as btAlignedAllocator_btSoftBody_Note_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Note_16u_' mkBtAlignedAllocator_btSoftBody_Note_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Note_16u__free    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__destroy as btAlignedAllocator_btSoftBody_Note_16u__destroy    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__deallocate as btAlignedAllocator_btSoftBody_Note_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__construct as btAlignedAllocator_btSoftBody_Note_16u__construct    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 , BtSoftBody_NoteClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__address0 as btAlignedAllocator_btSoftBody_Note_16u__address    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__address0 as btAlignedAllocator_btSoftBody_Note_16u__address0    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Note_16u__address1 as btAlignedAllocator_btSoftBody_Note_16u__address1    `( BtAlignedAllocator_btSoftBody_Note_16u_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+-- * btAlignedAllocator<btSoftBody::RContact, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__new as btAlignedAllocator_btSoftBody_RContact_16u_    {  } -> `BtAlignedAllocator_btSoftBody_RContact_16u_' mkBtAlignedAllocator_btSoftBody_RContact_16u_* #}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__free    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__destroy as btAlignedAllocator_btSoftBody_RContact_16u__destroy    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__deallocate as btAlignedAllocator_btSoftBody_RContact_16u__deallocate    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__construct as btAlignedAllocator_btSoftBody_RContact_16u__construct    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 , BtSoftBody_RContactClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__address0 as btAlignedAllocator_btSoftBody_RContact_16u__address    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__address0 as btAlignedAllocator_btSoftBody_RContact_16u__address0    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_RContact_16u__address1 as btAlignedAllocator_btSoftBody_RContact_16u__address1    `( BtAlignedAllocator_btSoftBody_RContact_16u_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+-- * btAlignedAllocator<btSoftBody::SContact, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__new as btAlignedAllocator_btSoftBody_SContact_16u_    {  } -> `BtAlignedAllocator_btSoftBody_SContact_16u_' mkBtAlignedAllocator_btSoftBody_SContact_16u_* #}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__free    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__destroy as btAlignedAllocator_btSoftBody_SContact_16u__destroy    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__deallocate as btAlignedAllocator_btSoftBody_SContact_16u__deallocate    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__construct as btAlignedAllocator_btSoftBody_SContact_16u__construct    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 , BtSoftBody_SContactClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__address0 as btAlignedAllocator_btSoftBody_SContact_16u__address    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__address0 as btAlignedAllocator_btSoftBody_SContact_16u__address0    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_SContact_16u__address1 as btAlignedAllocator_btSoftBody_SContact_16u__address1    `( BtAlignedAllocator_btSoftBody_SContact_16u_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+-- * btAlignedAllocator<btSoftBody::Tetra, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__new as btAlignedAllocator_btSoftBody_Tetra_16u_    {  } -> `BtAlignedAllocator_btSoftBody_Tetra_16u_' mkBtAlignedAllocator_btSoftBody_Tetra_16u_* #}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__free    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__destroy as btAlignedAllocator_btSoftBody_Tetra_16u__destroy    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__deallocate as btAlignedAllocator_btSoftBody_Tetra_16u__deallocate    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__construct as btAlignedAllocator_btSoftBody_Tetra_16u__construct    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 , BtSoftBody_TetraClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__address0 as btAlignedAllocator_btSoftBody_Tetra_16u__address    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__address0 as btAlignedAllocator_btSoftBody_Tetra_16u__address0    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_Tetra_16u__address1 as btAlignedAllocator_btSoftBody_Tetra_16u__address1    `( BtAlignedAllocator_btSoftBody_Tetra_16u_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+-- * btAlignedAllocator<btSoftBody::ePSolver::_, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_ePSolver___16u__new as btAlignedAllocator_btSoftBody_ePSolver___16u_    {  } -> `BtAlignedAllocator_btSoftBody_ePSolver___16u_' mkBtAlignedAllocator_btSoftBody_ePSolver___16u_* #}+{#fun btAlignedAllocator_btSoftBody_ePSolver___16u__free    `( BtAlignedAllocator_btSoftBody_ePSolver___16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSoftBody::eVSolver::_, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSoftBody_eVSolver___16u__new as btAlignedAllocator_btSoftBody_eVSolver___16u_    {  } -> `BtAlignedAllocator_btSoftBody_eVSolver___16u_' mkBtAlignedAllocator_btSoftBody_eVSolver___16u_* #}+{#fun btAlignedAllocator_btSoftBody_eVSolver___16u__free    `( BtAlignedAllocator_btSoftBody_eVSolver___16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btSolverConstraint, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__new as btAlignedAllocator_btSolverConstraint_16u_    {  } -> `BtAlignedAllocator_btSolverConstraint_16u_' mkBtAlignedAllocator_btSolverConstraint_16u_* #}+{#fun btAlignedAllocator_btSolverConstraint_16u__free    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__destroy as btAlignedAllocator_btSolverConstraint_16u__destroy    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__deallocate as btAlignedAllocator_btSolverConstraint_16u__deallocate    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__construct as btAlignedAllocator_btSolverConstraint_16u__construct    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 , BtSolverConstraintClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__address0 as btAlignedAllocator_btSolverConstraint_16u__address    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__address0 as btAlignedAllocator_btSolverConstraint_16u__address0    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSolverConstraint_16u__address1 as btAlignedAllocator_btSolverConstraint_16u__address1    `( BtAlignedAllocator_btSolverConstraint_16u_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+-- * btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u__new as btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_    {  } -> `BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_' mkBtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_* #}+{#fun btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u__free    `( BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btTransform, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTransform_16u__new as btAlignedAllocator_btTransform_16u_    {  } -> `BtAlignedAllocator_btTransform_16u_' mkBtAlignedAllocator_btTransform_16u_* #}+{#fun btAlignedAllocator_btTransform_16u__free    `( BtAlignedAllocator_btTransform_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btTriangleInfo, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__new as btAlignedAllocator_btTriangleInfo_16u_    {  } -> `BtAlignedAllocator_btTriangleInfo_16u_' mkBtAlignedAllocator_btTriangleInfo_16u_* #}+{#fun btAlignedAllocator_btTriangleInfo_16u__free    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__destroy as btAlignedAllocator_btTriangleInfo_16u__destroy    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__deallocate as btAlignedAllocator_btTriangleInfo_16u__deallocate    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__construct as btAlignedAllocator_btTriangleInfo_16u__construct    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 , BtTriangleInfoClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__address0 as btAlignedAllocator_btTriangleInfo_16u__address    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__address0 as btAlignedAllocator_btTriangleInfo_16u__address0    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTriangleInfo_16u__address1 as btAlignedAllocator_btTriangleInfo_16u__address1    `( BtAlignedAllocator_btTriangleInfo_16u_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+-- * btAlignedAllocator<btTypedConstraint*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_ptr_16u__new as btAlignedAllocator_btTypedConstraint_ptr_16u_    {  } -> `BtAlignedAllocator_btTypedConstraint_ptr_16u_' mkBtAlignedAllocator_btTypedConstraint_ptr_16u_* #}+{#fun btAlignedAllocator_btTypedConstraint_ptr_16u__free    `( BtAlignedAllocator_btTypedConstraint_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__new as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_    {  } -> `BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_' mkBtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_* #}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__free    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__destroy as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__destroy    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__deallocate as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__deallocate    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__construct as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__construct    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 , BtTypedConstraint_btConstraintInfo1Class p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address0 as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address0 as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address0    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address1 as btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address1    `( BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+-- * btAlignedAllocator<btVector3, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btVector3_16u__new as btAlignedAllocator_btVector3_16u_    {  } -> `BtAlignedAllocator_btVector3_16u_' mkBtAlignedAllocator_btVector3_16u_* #}+{#fun btAlignedAllocator_btVector3_16u__free    `( BtAlignedAllocator_btVector3_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<btWheelInfo, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__new as btAlignedAllocator_btWheelInfo_16u_    {  } -> `BtAlignedAllocator_btWheelInfo_16u_' mkBtAlignedAllocator_btWheelInfo_16u_* #}+{#fun btAlignedAllocator_btWheelInfo_16u__free    `( BtAlignedAllocator_btWheelInfo_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#92>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__destroy as btAlignedAllocator_btWheelInfo_16u__destroy    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__deallocate as btAlignedAllocator_btWheelInfo_16u__deallocate    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__construct as btAlignedAllocator_btWheelInfo_16u__construct    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 , BtWheelInfoClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ptr+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__address0 as btAlignedAllocator_btWheelInfo_16u__address    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__address0 as btAlignedAllocator_btWheelInfo_16u__address0    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#83>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_btWheelInfo_16u__address1 as btAlignedAllocator_btWheelInfo_16u__address1    `( BtAlignedAllocator_btWheelInfo_16u_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ ref+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+-- * btAlignedAllocator<char const*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_charconst_ptr_16u__new as btAlignedAllocator_charconst_ptr_16u_    {  } -> `BtAlignedAllocator_charconst_ptr_16u_' mkBtAlignedAllocator_charconst_ptr_16u_* #}+{#fun btAlignedAllocator_charconst_ptr_16u__free    `( BtAlignedAllocator_charconst_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<char*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_char_ptr_16u__new as btAlignedAllocator_char_ptr_16u_    {  } -> `BtAlignedAllocator_char_ptr_16u_' mkBtAlignedAllocator_char_ptr_16u_* #}+{#fun btAlignedAllocator_char_ptr_16u__free    `( BtAlignedAllocator_char_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<float, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_float_16u__new as btAlignedAllocator_float_16u_    {  } -> `BtAlignedAllocator_float_16u_' mkBtAlignedAllocator_float_16u_* #}+{#fun btAlignedAllocator_float_16u__free    `( BtAlignedAllocator_float_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<int, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_int_16u__new as btAlignedAllocator_int_16u_    {  } -> `BtAlignedAllocator_int_16u_' mkBtAlignedAllocator_int_16u_* #}+{#fun btAlignedAllocator_int_16u__free    `( BtAlignedAllocator_int_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<short*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_short_ptr_16u__new as btAlignedAllocator_short_ptr_16u_    {  } -> `BtAlignedAllocator_short_ptr_16u_' mkBtAlignedAllocator_short_ptr_16u_* #}+{#fun btAlignedAllocator_short_ptr_16u__free    `( BtAlignedAllocator_short_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<short, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_short_16u__new as btAlignedAllocator_short_16u_    {  } -> `BtAlignedAllocator_short_16u_' mkBtAlignedAllocator_short_16u_* #}+{#fun btAlignedAllocator_short_16u__free    `( BtAlignedAllocator_short_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<unsigned int, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_unsignedint_16u__new as btAlignedAllocator_unsignedint_16u_    {  } -> `BtAlignedAllocator_unsignedint_16u_' mkBtAlignedAllocator_unsignedint_16u_* #}+{#fun btAlignedAllocator_unsignedint_16u__free    `( BtAlignedAllocator_unsignedint_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<unsigned short, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_unsignedshort_16u__new as btAlignedAllocator_unsignedshort_16u_    {  } -> `BtAlignedAllocator_unsignedshort_16u_' mkBtAlignedAllocator_unsignedshort_16u_* #}+{#fun btAlignedAllocator_unsignedshort_16u__free    `( BtAlignedAllocator_unsignedshort_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedAllocator<void*, 16u>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.h?r=2223#68>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedAllocator.cpp?r=2223>+-}+{#fun btAlignedAllocator_void_ptr_16u__new as btAlignedAllocator_void_ptr_16u_    {  } -> `BtAlignedAllocator_void_ptr_16u_' mkBtAlignedAllocator_void_ptr_16u_* #}+{#fun btAlignedAllocator_void_ptr_16u__free    `( BtAlignedAllocator_void_ptr_16u_Class bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__new as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_    {  } -> `BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_' mkBtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_* #}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__free    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__push_back as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__push_back    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at0 as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at0 as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at0    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at1 as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at1    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__size as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__size    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__capacity as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__capacity    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__init as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__init    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocate as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocate    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__pop_back as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__pop_back    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__deallocate as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__deallocate    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__swap as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__swap    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__initializeFromBuffer as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__initializeFromBuffer    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expandNonInitializing as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expandNonInitializing    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__resize as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__resize    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BT_QUANTIZED_BVH_NODEClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__destroy as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__destroy    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__copy as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__copy    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BT_QUANTIZED_BVH_NODEClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expand as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expand    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BT_QUANTIZED_BVH_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__clear as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__clear    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocSize as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocSize    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__reserve as btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__reserve    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_allocator_set    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_allocator_get    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_'  mkBtAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_size_set    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_size_get    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_capacity_set    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_capacity_get    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_data_set    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc , BT_QUANTIZED_BVH_NODEClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_data_get    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } ->  `BT_QUANTIZED_BVH_NODE'  mkBT_QUANTIZED_BVH_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_ownsMemory_set    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_ownsMemory_get    `( BtAlignedObjectArray_BT_QUANTIZED_BVH_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<GIM_BVH_DATA>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__new as btAlignedObjectArray_GIM_BVH_DATA_    {  } -> `BtAlignedObjectArray_GIM_BVH_DATA_' mkBtAlignedObjectArray_GIM_BVH_DATA_* #}+{#fun btAlignedObjectArray_GIM_BVH_DATA__free    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__push_back as btAlignedObjectArray_GIM_BVH_DATA__push_back    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__at0 as btAlignedObjectArray_GIM_BVH_DATA__at    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__at0 as btAlignedObjectArray_GIM_BVH_DATA__at0    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__at1 as btAlignedObjectArray_GIM_BVH_DATA__at1    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__size as btAlignedObjectArray_GIM_BVH_DATA__size    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__capacity as btAlignedObjectArray_GIM_BVH_DATA__capacity    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__init as btAlignedObjectArray_GIM_BVH_DATA__init    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__allocate as btAlignedObjectArray_GIM_BVH_DATA__allocate    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__pop_back as btAlignedObjectArray_GIM_BVH_DATA__pop_back    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__deallocate as btAlignedObjectArray_GIM_BVH_DATA__deallocate    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__swap as btAlignedObjectArray_GIM_BVH_DATA__swap    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__initializeFromBuffer as btAlignedObjectArray_GIM_BVH_DATA__initializeFromBuffer    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__expandNonInitializing as btAlignedObjectArray_GIM_BVH_DATA__expandNonInitializing    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__resize as btAlignedObjectArray_GIM_BVH_DATA__resize    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , GIM_BVH_DATAClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__destroy as btAlignedObjectArray_GIM_BVH_DATA__destroy    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__copy as btAlignedObjectArray_GIM_BVH_DATA__copy    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , GIM_BVH_DATAClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__expand as btAlignedObjectArray_GIM_BVH_DATA__expand    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , GIM_BVH_DATAClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__clear as btAlignedObjectArray_GIM_BVH_DATA__clear    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__allocSize as btAlignedObjectArray_GIM_BVH_DATA__allocSize    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__reserve as btAlignedObjectArray_GIM_BVH_DATA__reserve    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_allocator_set    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , BtAlignedAllocator_GIM_BVH_DATA_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_allocator_get    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_GIM_BVH_DATA_16u_'  mkBtAlignedAllocator_GIM_BVH_DATA_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_size_set    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_size_get    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_capacity_set    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_capacity_get    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_data_set    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc , GIM_BVH_DATAClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_data_get    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } ->  `GIM_BVH_DATA'  mkGIM_BVH_DATA* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_ownsMemory_set    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_DATA__m_ownsMemory_get    `( BtAlignedObjectArray_GIM_BVH_DATA_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<GIM_BVH_TREE_NODE>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__new as btAlignedObjectArray_GIM_BVH_TREE_NODE_    {  } -> `BtAlignedObjectArray_GIM_BVH_TREE_NODE_' mkBtAlignedObjectArray_GIM_BVH_TREE_NODE_* #}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__free    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__push_back as btAlignedObjectArray_GIM_BVH_TREE_NODE__push_back    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__at0 as btAlignedObjectArray_GIM_BVH_TREE_NODE__at    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__at0 as btAlignedObjectArray_GIM_BVH_TREE_NODE__at0    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__at1 as btAlignedObjectArray_GIM_BVH_TREE_NODE__at1    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__size as btAlignedObjectArray_GIM_BVH_TREE_NODE__size    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__capacity as btAlignedObjectArray_GIM_BVH_TREE_NODE__capacity    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__init as btAlignedObjectArray_GIM_BVH_TREE_NODE__init    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__allocate as btAlignedObjectArray_GIM_BVH_TREE_NODE__allocate    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__pop_back as btAlignedObjectArray_GIM_BVH_TREE_NODE__pop_back    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__deallocate as btAlignedObjectArray_GIM_BVH_TREE_NODE__deallocate    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__swap as btAlignedObjectArray_GIM_BVH_TREE_NODE__swap    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__initializeFromBuffer as btAlignedObjectArray_GIM_BVH_TREE_NODE__initializeFromBuffer    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__expandNonInitializing as btAlignedObjectArray_GIM_BVH_TREE_NODE__expandNonInitializing    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__resize as btAlignedObjectArray_GIM_BVH_TREE_NODE__resize    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , GIM_BVH_TREE_NODEClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__destroy as btAlignedObjectArray_GIM_BVH_TREE_NODE__destroy    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__copy as btAlignedObjectArray_GIM_BVH_TREE_NODE__copy    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , GIM_BVH_TREE_NODEClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__expand as btAlignedObjectArray_GIM_BVH_TREE_NODE__expand    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , GIM_BVH_TREE_NODEClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__clear as btAlignedObjectArray_GIM_BVH_TREE_NODE__clear    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__allocSize as btAlignedObjectArray_GIM_BVH_TREE_NODE__allocSize    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__reserve as btAlignedObjectArray_GIM_BVH_TREE_NODE__reserve    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_allocator_set    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_allocator_get    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_GIM_BVH_TREE_NODE_16u_'  mkBtAlignedAllocator_GIM_BVH_TREE_NODE_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_size_set    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_size_get    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_capacity_set    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_capacity_get    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_data_set    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc , GIM_BVH_TREE_NODEClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_data_get    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } ->  `GIM_BVH_TREE_NODE'  mkGIM_BVH_TREE_NODE* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_ownsMemory_set    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_BVH_TREE_NODE__m_ownsMemory_get    `( BtAlignedObjectArray_GIM_BVH_TREE_NODE_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<GIM_PAIR>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__new as btAlignedObjectArray_GIM_PAIR_    {  } -> `BtAlignedObjectArray_GIM_PAIR_' mkBtAlignedObjectArray_GIM_PAIR_* #}+{#fun btAlignedObjectArray_GIM_PAIR__free    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__push_back as btAlignedObjectArray_GIM_PAIR__push_back    `( BtAlignedObjectArray_GIM_PAIR_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__at0 as btAlignedObjectArray_GIM_PAIR__at    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__at0 as btAlignedObjectArray_GIM_PAIR__at0    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__at1 as btAlignedObjectArray_GIM_PAIR__at1    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__size as btAlignedObjectArray_GIM_PAIR__size    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__capacity as btAlignedObjectArray_GIM_PAIR__capacity    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__init as btAlignedObjectArray_GIM_PAIR__init    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__allocate as btAlignedObjectArray_GIM_PAIR__allocate    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__pop_back as btAlignedObjectArray_GIM_PAIR__pop_back    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__deallocate as btAlignedObjectArray_GIM_PAIR__deallocate    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__swap as btAlignedObjectArray_GIM_PAIR__swap    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__initializeFromBuffer as btAlignedObjectArray_GIM_PAIR__initializeFromBuffer    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__expandNonInitializing as btAlignedObjectArray_GIM_PAIR__expandNonInitializing    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__resize as btAlignedObjectArray_GIM_PAIR__resize    `( BtAlignedObjectArray_GIM_PAIR_Class bc , GIM_PAIRClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__destroy as btAlignedObjectArray_GIM_PAIR__destroy    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__copy as btAlignedObjectArray_GIM_PAIR__copy    `( BtAlignedObjectArray_GIM_PAIR_Class bc , GIM_PAIRClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__expand as btAlignedObjectArray_GIM_PAIR__expand    `( BtAlignedObjectArray_GIM_PAIR_Class bc , GIM_PAIRClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__clear as btAlignedObjectArray_GIM_PAIR__clear    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__allocSize as btAlignedObjectArray_GIM_PAIR__allocSize    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__reserve as btAlignedObjectArray_GIM_PAIR__reserve    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_allocator_set    `( BtAlignedObjectArray_GIM_PAIR_Class bc , BtAlignedAllocator_GIM_PAIR_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_allocator_get    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_GIM_PAIR_16u_'  mkBtAlignedAllocator_GIM_PAIR_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_size_set    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_size_get    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_capacity_set    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_capacity_get    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_data_set    `( BtAlignedObjectArray_GIM_PAIR_Class bc , GIM_PAIRClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_data_get    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } ->  `GIM_PAIR'  mkGIM_PAIR* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_ownsMemory_set    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_GIM_PAIR__m_ownsMemory_get    `( BtAlignedObjectArray_GIM_PAIR_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<bool>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__new as btAlignedObjectArray_bool_    {  } -> `BtAlignedObjectArray_bool_' mkBtAlignedObjectArray_bool_* #}+{#fun btAlignedObjectArray_bool__free    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__size as btAlignedObjectArray_bool__size    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__capacity as btAlignedObjectArray_bool__capacity    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__init as btAlignedObjectArray_bool__init    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__swap as btAlignedObjectArray_bool__swap    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__pop_back as btAlignedObjectArray_bool__pop_back    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__deallocate as btAlignedObjectArray_bool__deallocate    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__allocate as btAlignedObjectArray_bool__allocate    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__initializeFromBuffer as btAlignedObjectArray_bool__initializeFromBuffer    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__destroy as btAlignedObjectArray_bool__destroy    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__clear as btAlignedObjectArray_bool__clear    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__allocSize as btAlignedObjectArray_bool__allocSize    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__reserve as btAlignedObjectArray_bool__reserve    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_allocator_set    `( BtAlignedObjectArray_bool_Class bc , BtAlignedAllocator_bool_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_allocator_get    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_bool_16u_'  mkBtAlignedAllocator_bool_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_capacity_set    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_capacity_get    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_ownsMemory_set    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_ownsMemory_get    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_size_set    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_bool__m_size_get    `( BtAlignedObjectArray_bool_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btActionInterface*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__new as btAlignedObjectArray_btActionInterface_ptr_    {  } -> `BtAlignedObjectArray_btActionInterface_ptr_' mkBtAlignedObjectArray_btActionInterface_ptr_* #}+{#fun btAlignedObjectArray_btActionInterface_ptr__free    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__push_back as btAlignedObjectArray_btActionInterface_ptr__push_back    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__at0 as btAlignedObjectArray_btActionInterface_ptr__at    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtActionInterface'  mkBtActionInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__at0 as btAlignedObjectArray_btActionInterface_ptr__at0    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtActionInterface'  mkBtActionInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__at1 as btAlignedObjectArray_btActionInterface_ptr__at1    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtActionInterface'  mkBtActionInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__size as btAlignedObjectArray_btActionInterface_ptr__size    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__capacity as btAlignedObjectArray_btActionInterface_ptr__capacity    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__init as btAlignedObjectArray_btActionInterface_ptr__init    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__allocate as btAlignedObjectArray_btActionInterface_ptr__allocate    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__pop_back as btAlignedObjectArray_btActionInterface_ptr__pop_back    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__deallocate as btAlignedObjectArray_btActionInterface_ptr__deallocate    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__swap as btAlignedObjectArray_btActionInterface_ptr__swap    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__initializeFromBuffer as btAlignedObjectArray_btActionInterface_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__expandNonInitializing as btAlignedObjectArray_btActionInterface_ptr__expandNonInitializing    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtActionInterface'  mkBtActionInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__resize as btAlignedObjectArray_btActionInterface_ptr__resize    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc , BtActionInterfaceClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__destroy as btAlignedObjectArray_btActionInterface_ptr__destroy    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__expand as btAlignedObjectArray_btActionInterface_ptr__expand    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc , BtActionInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtActionInterface'  mkBtActionInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__clear as btAlignedObjectArray_btActionInterface_ptr__clear    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__allocSize as btAlignedObjectArray_btActionInterface_ptr__allocSize    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__reserve as btAlignedObjectArray_btActionInterface_ptr__reserve    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_allocator_set    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc , BtAlignedAllocator_btActionInterface_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_allocator_get    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btActionInterface_ptr_16u_'  mkBtAlignedAllocator_btActionInterface_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_size_set    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_size_get    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_capacity_set    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_capacity_get    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btActionInterface_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btActionInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btBroadphaseInterface*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__new as btAlignedObjectArray_btBroadphaseInterface_ptr_    {  } -> `BtAlignedObjectArray_btBroadphaseInterface_ptr_' mkBtAlignedObjectArray_btBroadphaseInterface_ptr_* #}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__free    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__push_back as btAlignedObjectArray_btBroadphaseInterface_ptr__push_back    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc , BtBroadphaseInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__at0 as btAlignedObjectArray_btBroadphaseInterface_ptr__at    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__at0 as btAlignedObjectArray_btBroadphaseInterface_ptr__at0    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__at1 as btAlignedObjectArray_btBroadphaseInterface_ptr__at1    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__size as btAlignedObjectArray_btBroadphaseInterface_ptr__size    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__capacity as btAlignedObjectArray_btBroadphaseInterface_ptr__capacity    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__init as btAlignedObjectArray_btBroadphaseInterface_ptr__init    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__allocate as btAlignedObjectArray_btBroadphaseInterface_ptr__allocate    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__pop_back as btAlignedObjectArray_btBroadphaseInterface_ptr__pop_back    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__deallocate as btAlignedObjectArray_btBroadphaseInterface_ptr__deallocate    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__swap as btAlignedObjectArray_btBroadphaseInterface_ptr__swap    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__initializeFromBuffer as btAlignedObjectArray_btBroadphaseInterface_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__expandNonInitializing as btAlignedObjectArray_btBroadphaseInterface_ptr__expandNonInitializing    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__resize as btAlignedObjectArray_btBroadphaseInterface_ptr__resize    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc , BtBroadphaseInterfaceClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__destroy as btAlignedObjectArray_btBroadphaseInterface_ptr__destroy    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__expand as btAlignedObjectArray_btBroadphaseInterface_ptr__expand    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc , BtBroadphaseInterfaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtBroadphaseInterface'  mkBtBroadphaseInterface* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__clear as btAlignedObjectArray_btBroadphaseInterface_ptr__clear    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__allocSize as btAlignedObjectArray_btBroadphaseInterface_ptr__allocSize    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__reserve as btAlignedObjectArray_btBroadphaseInterface_ptr__reserve    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_allocator_set    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc , BtAlignedAllocator_btBroadphaseInterface_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_allocator_get    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btBroadphaseInterface_ptr_16u_'  mkBtAlignedAllocator_btBroadphaseInterface_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_size_set    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_size_get    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_capacity_set    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_capacity_get    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphaseInterface_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btBroadphaseInterface_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btBroadphasePair>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__new as btAlignedObjectArray_btBroadphasePair_    {  } -> `BtAlignedObjectArray_btBroadphasePair_' mkBtAlignedObjectArray_btBroadphasePair_* #}+{#fun btAlignedObjectArray_btBroadphasePair__free    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__push_back as btAlignedObjectArray_btBroadphasePair__push_back    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__at0 as btAlignedObjectArray_btBroadphasePair__at    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__at0 as btAlignedObjectArray_btBroadphasePair__at0    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__at1 as btAlignedObjectArray_btBroadphasePair__at1    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__size as btAlignedObjectArray_btBroadphasePair__size    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__capacity as btAlignedObjectArray_btBroadphasePair__capacity    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__init as btAlignedObjectArray_btBroadphasePair__init    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__allocate as btAlignedObjectArray_btBroadphasePair__allocate    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__pop_back as btAlignedObjectArray_btBroadphasePair__pop_back    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__deallocate as btAlignedObjectArray_btBroadphasePair__deallocate    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__swap as btAlignedObjectArray_btBroadphasePair__swap    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__initializeFromBuffer as btAlignedObjectArray_btBroadphasePair__initializeFromBuffer    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__expandNonInitializing as btAlignedObjectArray_btBroadphasePair__expandNonInitializing    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__resize as btAlignedObjectArray_btBroadphasePair__resize    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtBroadphasePairClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__destroy as btAlignedObjectArray_btBroadphasePair__destroy    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__copy as btAlignedObjectArray_btBroadphasePair__copy    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtBroadphasePairClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__expand as btAlignedObjectArray_btBroadphasePair__expand    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtBroadphasePairClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__clear as btAlignedObjectArray_btBroadphasePair__clear    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__allocSize as btAlignedObjectArray_btBroadphasePair__allocSize    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__reserve as btAlignedObjectArray_btBroadphasePair__reserve    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_allocator_set    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtAlignedAllocator_btBroadphasePair_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_allocator_get    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btBroadphasePair_16u_'  mkBtAlignedAllocator_btBroadphasePair_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_size_set    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_size_get    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_capacity_set    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_capacity_get    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_data_set    `( BtAlignedObjectArray_btBroadphasePair_Class bc , BtBroadphasePairClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_data_get    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } ->  `BtBroadphasePair'  mkBtBroadphasePair* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_ownsMemory_set    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBroadphasePair__m_ownsMemory_get    `( BtAlignedObjectArray_btBroadphasePair_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btBvhSubtreeInfo>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__new as btAlignedObjectArray_btBvhSubtreeInfo_    {  } -> `BtAlignedObjectArray_btBvhSubtreeInfo_' mkBtAlignedObjectArray_btBvhSubtreeInfo_* #}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__free    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__push_back as btAlignedObjectArray_btBvhSubtreeInfo__push_back    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__at0 as btAlignedObjectArray_btBvhSubtreeInfo__at    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__at0 as btAlignedObjectArray_btBvhSubtreeInfo__at0    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__at1 as btAlignedObjectArray_btBvhSubtreeInfo__at1    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__size as btAlignedObjectArray_btBvhSubtreeInfo__size    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__capacity as btAlignedObjectArray_btBvhSubtreeInfo__capacity    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__init as btAlignedObjectArray_btBvhSubtreeInfo__init    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__allocate as btAlignedObjectArray_btBvhSubtreeInfo__allocate    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__pop_back as btAlignedObjectArray_btBvhSubtreeInfo__pop_back    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__deallocate as btAlignedObjectArray_btBvhSubtreeInfo__deallocate    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__swap as btAlignedObjectArray_btBvhSubtreeInfo__swap    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__initializeFromBuffer as btAlignedObjectArray_btBvhSubtreeInfo__initializeFromBuffer    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__expandNonInitializing as btAlignedObjectArray_btBvhSubtreeInfo__expandNonInitializing    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__resize as btAlignedObjectArray_btBvhSubtreeInfo__resize    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtBvhSubtreeInfoClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__destroy as btAlignedObjectArray_btBvhSubtreeInfo__destroy    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__copy as btAlignedObjectArray_btBvhSubtreeInfo__copy    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtBvhSubtreeInfoClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__expand as btAlignedObjectArray_btBvhSubtreeInfo__expand    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtBvhSubtreeInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__clear as btAlignedObjectArray_btBvhSubtreeInfo__clear    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__allocSize as btAlignedObjectArray_btBvhSubtreeInfo__allocSize    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__reserve as btAlignedObjectArray_btBvhSubtreeInfo__reserve    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_allocator_set    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtAlignedAllocator_btBvhSubtreeInfo_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_allocator_get    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btBvhSubtreeInfo_16u_'  mkBtAlignedAllocator_btBvhSubtreeInfo_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_size_set    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_size_get    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_capacity_set    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_capacity_get    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_data_set    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc , BtBvhSubtreeInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_data_get    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtBvhSubtreeInfo'  mkBtBvhSubtreeInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_ownsMemory_set    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btBvhSubtreeInfo__m_ownsMemory_get    `( BtAlignedObjectArray_btBvhSubtreeInfo_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btChunk*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__new as btAlignedObjectArray_btChunk_ptr_    {  } -> `BtAlignedObjectArray_btChunk_ptr_' mkBtAlignedObjectArray_btChunk_ptr_* #}+{#fun btAlignedObjectArray_btChunk_ptr__free    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__push_back as btAlignedObjectArray_btChunk_ptr__push_back    `( BtAlignedObjectArray_btChunk_ptr_Class bc , BtChunkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__at0 as btAlignedObjectArray_btChunk_ptr__at    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtChunk'  mkBtChunk* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__at0 as btAlignedObjectArray_btChunk_ptr__at0    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtChunk'  mkBtChunk* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__at1 as btAlignedObjectArray_btChunk_ptr__at1    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtChunk'  mkBtChunk* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__size as btAlignedObjectArray_btChunk_ptr__size    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__capacity as btAlignedObjectArray_btChunk_ptr__capacity    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__init as btAlignedObjectArray_btChunk_ptr__init    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__allocate as btAlignedObjectArray_btChunk_ptr__allocate    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__pop_back as btAlignedObjectArray_btChunk_ptr__pop_back    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__deallocate as btAlignedObjectArray_btChunk_ptr__deallocate    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__swap as btAlignedObjectArray_btChunk_ptr__swap    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__initializeFromBuffer as btAlignedObjectArray_btChunk_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__expandNonInitializing as btAlignedObjectArray_btChunk_ptr__expandNonInitializing    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtChunk'  mkBtChunk* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__resize as btAlignedObjectArray_btChunk_ptr__resize    `( BtAlignedObjectArray_btChunk_ptr_Class bc , BtChunkClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__destroy as btAlignedObjectArray_btChunk_ptr__destroy    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__expand as btAlignedObjectArray_btChunk_ptr__expand    `( BtAlignedObjectArray_btChunk_ptr_Class bc , BtChunkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtChunk'  mkBtChunk* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__clear as btAlignedObjectArray_btChunk_ptr__clear    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__allocSize as btAlignedObjectArray_btChunk_ptr__allocSize    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__reserve as btAlignedObjectArray_btChunk_ptr__reserve    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_allocator_set    `( BtAlignedObjectArray_btChunk_ptr_Class bc , BtAlignedAllocator_btChunk_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_allocator_get    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btChunk_ptr_16u_'  mkBtAlignedAllocator_btChunk_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_size_set    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_size_get    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_capacity_set    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_capacity_get    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btChunk_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btChunk_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btCollisionObject*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__new as btAlignedObjectArray_btCollisionObject_ptr_    {  } -> `BtAlignedObjectArray_btCollisionObject_ptr_' mkBtAlignedObjectArray_btCollisionObject_ptr_* #}+{#fun btAlignedObjectArray_btCollisionObject_ptr__free    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__push_back as btAlignedObjectArray_btCollisionObject_ptr__push_back    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__at0 as btAlignedObjectArray_btCollisionObject_ptr__at    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__at0 as btAlignedObjectArray_btCollisionObject_ptr__at0    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__at1 as btAlignedObjectArray_btCollisionObject_ptr__at1    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__size as btAlignedObjectArray_btCollisionObject_ptr__size    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__capacity as btAlignedObjectArray_btCollisionObject_ptr__capacity    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__init as btAlignedObjectArray_btCollisionObject_ptr__init    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__swap as btAlignedObjectArray_btCollisionObject_ptr__swap    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__pop_back as btAlignedObjectArray_btCollisionObject_ptr__pop_back    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__deallocate as btAlignedObjectArray_btCollisionObject_ptr__deallocate    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__allocate as btAlignedObjectArray_btCollisionObject_ptr__allocate    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__initializeFromBuffer as btAlignedObjectArray_btCollisionObject_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__expandNonInitializing as btAlignedObjectArray_btCollisionObject_ptr__expandNonInitializing    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__destroy as btAlignedObjectArray_btCollisionObject_ptr__destroy    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__resize as btAlignedObjectArray_btCollisionObject_ptr__resize    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc , BtCollisionObjectClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__clear as btAlignedObjectArray_btCollisionObject_ptr__clear    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__allocSize as btAlignedObjectArray_btCollisionObject_ptr__allocSize    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__expand as btAlignedObjectArray_btCollisionObject_ptr__expand    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc , BtCollisionObjectClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtCollisionObject'  mkBtCollisionObject* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__reserve as btAlignedObjectArray_btCollisionObject_ptr__reserve    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_allocator_set    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc , BtAlignedAllocator_btCollisionObject_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_allocator_get    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btCollisionObject_ptr_16u_'  mkBtAlignedAllocator_btCollisionObject_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_capacity_set    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_capacity_get    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_size_set    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionObject_ptr__m_size_get    `( BtAlignedObjectArray_btCollisionObject_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btCollisionShape*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__new as btAlignedObjectArray_btCollisionShape_ptr_    {  } -> `BtAlignedObjectArray_btCollisionShape_ptr_' mkBtAlignedObjectArray_btCollisionShape_ptr_* #}+{#fun btAlignedObjectArray_btCollisionShape_ptr__free    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__push_back as btAlignedObjectArray_btCollisionShape_ptr__push_back    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__at0 as btAlignedObjectArray_btCollisionShape_ptr__at    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__at0 as btAlignedObjectArray_btCollisionShape_ptr__at0    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__at1 as btAlignedObjectArray_btCollisionShape_ptr__at1    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__size as btAlignedObjectArray_btCollisionShape_ptr__size    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__capacity as btAlignedObjectArray_btCollisionShape_ptr__capacity    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__init as btAlignedObjectArray_btCollisionShape_ptr__init    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__allocate as btAlignedObjectArray_btCollisionShape_ptr__allocate    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__pop_back as btAlignedObjectArray_btCollisionShape_ptr__pop_back    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__deallocate as btAlignedObjectArray_btCollisionShape_ptr__deallocate    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__swap as btAlignedObjectArray_btCollisionShape_ptr__swap    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__initializeFromBuffer as btAlignedObjectArray_btCollisionShape_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__expandNonInitializing as btAlignedObjectArray_btCollisionShape_ptr__expandNonInitializing    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__resize as btAlignedObjectArray_btCollisionShape_ptr__resize    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc , BtCollisionShapeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__destroy as btAlignedObjectArray_btCollisionShape_ptr__destroy    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__expand as btAlignedObjectArray_btCollisionShape_ptr__expand    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc , BtCollisionShapeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtCollisionShape'  mkBtCollisionShape* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__clear as btAlignedObjectArray_btCollisionShape_ptr__clear    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__allocSize as btAlignedObjectArray_btCollisionShape_ptr__allocSize    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__reserve as btAlignedObjectArray_btCollisionShape_ptr__reserve    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_allocator_set    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc , BtAlignedAllocator_btCollisionShape_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_allocator_get    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btCollisionShape_ptr_16u_'  mkBtAlignedAllocator_btCollisionShape_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_size_set    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_size_get    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_capacity_set    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_capacity_get    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCollisionShape_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btCollisionShape_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btCompoundShapeChild>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__new as btAlignedObjectArray_btCompoundShapeChild_    {  } -> `BtAlignedObjectArray_btCompoundShapeChild_' mkBtAlignedObjectArray_btCompoundShapeChild_* #}+{#fun btAlignedObjectArray_btCompoundShapeChild__free    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__push_back as btAlignedObjectArray_btCompoundShapeChild__push_back    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__at0 as btAlignedObjectArray_btCompoundShapeChild__at    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__at0 as btAlignedObjectArray_btCompoundShapeChild__at0    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__at1 as btAlignedObjectArray_btCompoundShapeChild__at1    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__size as btAlignedObjectArray_btCompoundShapeChild__size    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__capacity as btAlignedObjectArray_btCompoundShapeChild__capacity    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__init as btAlignedObjectArray_btCompoundShapeChild__init    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__allocate as btAlignedObjectArray_btCompoundShapeChild__allocate    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__pop_back as btAlignedObjectArray_btCompoundShapeChild__pop_back    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__deallocate as btAlignedObjectArray_btCompoundShapeChild__deallocate    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__swap as btAlignedObjectArray_btCompoundShapeChild__swap    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__initializeFromBuffer as btAlignedObjectArray_btCompoundShapeChild__initializeFromBuffer    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__expandNonInitializing as btAlignedObjectArray_btCompoundShapeChild__expandNonInitializing    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__resize as btAlignedObjectArray_btCompoundShapeChild__resize    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtCompoundShapeChildClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__destroy as btAlignedObjectArray_btCompoundShapeChild__destroy    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__copy as btAlignedObjectArray_btCompoundShapeChild__copy    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtCompoundShapeChildClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__expand as btAlignedObjectArray_btCompoundShapeChild__expand    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtCompoundShapeChildClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__clear as btAlignedObjectArray_btCompoundShapeChild__clear    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__allocSize as btAlignedObjectArray_btCompoundShapeChild__allocSize    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__reserve as btAlignedObjectArray_btCompoundShapeChild__reserve    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_allocator_set    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtAlignedAllocator_btCompoundShapeChild_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_allocator_get    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btCompoundShapeChild_16u_'  mkBtAlignedAllocator_btCompoundShapeChild_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_size_set    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_size_get    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_capacity_set    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_capacity_get    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_data_set    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc , BtCompoundShapeChildClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_data_get    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } ->  `BtCompoundShapeChild'  mkBtCompoundShapeChild* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_ownsMemory_set    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btCompoundShapeChild__m_ownsMemory_get    `( BtAlignedObjectArray_btCompoundShapeChild_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btDbvt::sStkNN>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__new as btAlignedObjectArray_btDbvt_sStkNN_    {  } -> `BtAlignedObjectArray_btDbvt_sStkNN_' mkBtAlignedObjectArray_btDbvt_sStkNN_* #}+{#fun btAlignedObjectArray_btDbvt_sStkNN__free    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__push_back as btAlignedObjectArray_btDbvt_sStkNN__push_back    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__at0 as btAlignedObjectArray_btDbvt_sStkNN__at    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__at0 as btAlignedObjectArray_btDbvt_sStkNN__at0    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__at1 as btAlignedObjectArray_btDbvt_sStkNN__at1    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__size as btAlignedObjectArray_btDbvt_sStkNN__size    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__capacity as btAlignedObjectArray_btDbvt_sStkNN__capacity    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__init as btAlignedObjectArray_btDbvt_sStkNN__init    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__allocate as btAlignedObjectArray_btDbvt_sStkNN__allocate    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__pop_back as btAlignedObjectArray_btDbvt_sStkNN__pop_back    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__deallocate as btAlignedObjectArray_btDbvt_sStkNN__deallocate    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__swap as btAlignedObjectArray_btDbvt_sStkNN__swap    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__initializeFromBuffer as btAlignedObjectArray_btDbvt_sStkNN__initializeFromBuffer    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__expandNonInitializing as btAlignedObjectArray_btDbvt_sStkNN__expandNonInitializing    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__resize as btAlignedObjectArray_btDbvt_sStkNN__resize    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtDbvt_sStkNNClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__destroy as btAlignedObjectArray_btDbvt_sStkNN__destroy    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__copy as btAlignedObjectArray_btDbvt_sStkNN__copy    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtDbvt_sStkNNClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__expand as btAlignedObjectArray_btDbvt_sStkNN__expand    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtDbvt_sStkNNClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__clear as btAlignedObjectArray_btDbvt_sStkNN__clear    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__allocSize as btAlignedObjectArray_btDbvt_sStkNN__allocSize    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__reserve as btAlignedObjectArray_btDbvt_sStkNN__reserve    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_allocator_set    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtAlignedAllocator_btDbvt_sStkNN_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_allocator_get    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btDbvt_sStkNN_16u_'  mkBtAlignedAllocator_btDbvt_sStkNN_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_size_set    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_size_get    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_capacity_set    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_capacity_get    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_data_set    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc , BtDbvt_sStkNNClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_data_get    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } ->  `BtDbvt_sStkNN'  mkBtDbvt_sStkNN* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_ownsMemory_set    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNN__m_ownsMemory_get    `( BtAlignedObjectArray_btDbvt_sStkNN_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btDbvt::sStkNP>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__new as btAlignedObjectArray_btDbvt_sStkNP_    {  } -> `BtAlignedObjectArray_btDbvt_sStkNP_' mkBtAlignedObjectArray_btDbvt_sStkNP_* #}+{#fun btAlignedObjectArray_btDbvt_sStkNP__free    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__push_back as btAlignedObjectArray_btDbvt_sStkNP__push_back    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__at0 as btAlignedObjectArray_btDbvt_sStkNP__at    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__at0 as btAlignedObjectArray_btDbvt_sStkNP__at0    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__at1 as btAlignedObjectArray_btDbvt_sStkNP__at1    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__size as btAlignedObjectArray_btDbvt_sStkNP__size    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__capacity as btAlignedObjectArray_btDbvt_sStkNP__capacity    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__init as btAlignedObjectArray_btDbvt_sStkNP__init    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__allocate as btAlignedObjectArray_btDbvt_sStkNP__allocate    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__pop_back as btAlignedObjectArray_btDbvt_sStkNP__pop_back    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__deallocate as btAlignedObjectArray_btDbvt_sStkNP__deallocate    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__swap as btAlignedObjectArray_btDbvt_sStkNP__swap    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__initializeFromBuffer as btAlignedObjectArray_btDbvt_sStkNP__initializeFromBuffer    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__expandNonInitializing as btAlignedObjectArray_btDbvt_sStkNP__expandNonInitializing    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__resize as btAlignedObjectArray_btDbvt_sStkNP__resize    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtDbvt_sStkNPClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__destroy as btAlignedObjectArray_btDbvt_sStkNP__destroy    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__copy as btAlignedObjectArray_btDbvt_sStkNP__copy    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtDbvt_sStkNPClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__expand as btAlignedObjectArray_btDbvt_sStkNP__expand    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtDbvt_sStkNPClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__clear as btAlignedObjectArray_btDbvt_sStkNP__clear    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__allocSize as btAlignedObjectArray_btDbvt_sStkNP__allocSize    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__reserve as btAlignedObjectArray_btDbvt_sStkNP__reserve    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_allocator_set    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtAlignedAllocator_btDbvt_sStkNP_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_allocator_get    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btDbvt_sStkNP_16u_'  mkBtAlignedAllocator_btDbvt_sStkNP_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_size_set    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_size_get    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_capacity_set    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_capacity_get    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_data_set    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc , BtDbvt_sStkNPClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_data_get    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } ->  `BtDbvt_sStkNP'  mkBtDbvt_sStkNP* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_ownsMemory_set    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNP__m_ownsMemory_get    `( BtAlignedObjectArray_btDbvt_sStkNP_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btDbvt::sStkNPS>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__new as btAlignedObjectArray_btDbvt_sStkNPS_    {  } -> `BtAlignedObjectArray_btDbvt_sStkNPS_' mkBtAlignedObjectArray_btDbvt_sStkNPS_* #}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__free    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__push_back as btAlignedObjectArray_btDbvt_sStkNPS__push_back    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__at0 as btAlignedObjectArray_btDbvt_sStkNPS__at    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__at0 as btAlignedObjectArray_btDbvt_sStkNPS__at0    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__at1 as btAlignedObjectArray_btDbvt_sStkNPS__at1    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__size as btAlignedObjectArray_btDbvt_sStkNPS__size    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__capacity as btAlignedObjectArray_btDbvt_sStkNPS__capacity    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__init as btAlignedObjectArray_btDbvt_sStkNPS__init    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__allocate as btAlignedObjectArray_btDbvt_sStkNPS__allocate    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__pop_back as btAlignedObjectArray_btDbvt_sStkNPS__pop_back    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__deallocate as btAlignedObjectArray_btDbvt_sStkNPS__deallocate    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__swap as btAlignedObjectArray_btDbvt_sStkNPS__swap    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__initializeFromBuffer as btAlignedObjectArray_btDbvt_sStkNPS__initializeFromBuffer    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__expandNonInitializing as btAlignedObjectArray_btDbvt_sStkNPS__expandNonInitializing    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__resize as btAlignedObjectArray_btDbvt_sStkNPS__resize    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtDbvt_sStkNPSClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__destroy as btAlignedObjectArray_btDbvt_sStkNPS__destroy    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__copy as btAlignedObjectArray_btDbvt_sStkNPS__copy    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtDbvt_sStkNPSClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__expand as btAlignedObjectArray_btDbvt_sStkNPS__expand    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtDbvt_sStkNPSClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__clear as btAlignedObjectArray_btDbvt_sStkNPS__clear    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__allocSize as btAlignedObjectArray_btDbvt_sStkNPS__allocSize    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__reserve as btAlignedObjectArray_btDbvt_sStkNPS__reserve    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_allocator_set    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtAlignedAllocator_btDbvt_sStkNPS_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_allocator_get    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btDbvt_sStkNPS_16u_'  mkBtAlignedAllocator_btDbvt_sStkNPS_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_size_set    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_size_get    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_capacity_set    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_capacity_get    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_data_set    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc , BtDbvt_sStkNPSClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_data_get    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } ->  `BtDbvt_sStkNPS'  mkBtDbvt_sStkNPS* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_ownsMemory_set    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvt_sStkNPS__m_ownsMemory_get    `( BtAlignedObjectArray_btDbvt_sStkNPS_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btDbvtNode const*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__new as btAlignedObjectArray_btDbvtNodeconst_ptr_    {  } -> `BtAlignedObjectArray_btDbvtNodeconst_ptr_' mkBtAlignedObjectArray_btDbvtNodeconst_ptr_* #}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__free    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__push_back as btAlignedObjectArray_btDbvtNodeconst_ptr__push_back    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__at0 as btAlignedObjectArray_btDbvtNodeconst_ptr__at    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__at0 as btAlignedObjectArray_btDbvtNodeconst_ptr__at0    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__at1 as btAlignedObjectArray_btDbvtNodeconst_ptr__at1    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__size as btAlignedObjectArray_btDbvtNodeconst_ptr__size    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__capacity as btAlignedObjectArray_btDbvtNodeconst_ptr__capacity    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__init as btAlignedObjectArray_btDbvtNodeconst_ptr__init    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__allocate as btAlignedObjectArray_btDbvtNodeconst_ptr__allocate    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__pop_back as btAlignedObjectArray_btDbvtNodeconst_ptr__pop_back    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__deallocate as btAlignedObjectArray_btDbvtNodeconst_ptr__deallocate    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__swap as btAlignedObjectArray_btDbvtNodeconst_ptr__swap    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__initializeFromBuffer as btAlignedObjectArray_btDbvtNodeconst_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__expandNonInitializing as btAlignedObjectArray_btDbvtNodeconst_ptr__expandNonInitializing    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__resize as btAlignedObjectArray_btDbvtNodeconst_ptr__resize    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc , BtDbvtNodeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__destroy as btAlignedObjectArray_btDbvtNodeconst_ptr__destroy    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__expand as btAlignedObjectArray_btDbvtNodeconst_ptr__expand    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc , BtDbvtNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtDbvtNode'  mkBtDbvtNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__clear as btAlignedObjectArray_btDbvtNodeconst_ptr__clear    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__allocSize as btAlignedObjectArray_btDbvtNodeconst_ptr__allocSize    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__reserve as btAlignedObjectArray_btDbvtNodeconst_ptr__reserve    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_allocator_set    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc , BtAlignedAllocator_btDbvtNodeconst_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_allocator_get    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btDbvtNodeconst_ptr_16u_'  mkBtAlignedAllocator_btDbvtNodeconst_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_size_set    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_size_get    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_capacity_set    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_capacity_get    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btDbvtNodeconst_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btDbvtNodeconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btGImpactMeshShapePart*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__new as btAlignedObjectArray_btGImpactMeshShapePart_ptr_    {  } -> `BtAlignedObjectArray_btGImpactMeshShapePart_ptr_' mkBtAlignedObjectArray_btGImpactMeshShapePart_ptr_* #}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__free    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__push_back as btAlignedObjectArray_btGImpactMeshShapePart_ptr__push_back    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc , BtGImpactMeshShapePartClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__at0 as btAlignedObjectArray_btGImpactMeshShapePart_ptr__at    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__at0 as btAlignedObjectArray_btGImpactMeshShapePart_ptr__at0    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__at1 as btAlignedObjectArray_btGImpactMeshShapePart_ptr__at1    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__size as btAlignedObjectArray_btGImpactMeshShapePart_ptr__size    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__capacity as btAlignedObjectArray_btGImpactMeshShapePart_ptr__capacity    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__init as btAlignedObjectArray_btGImpactMeshShapePart_ptr__init    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocate as btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocate    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__pop_back as btAlignedObjectArray_btGImpactMeshShapePart_ptr__pop_back    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__deallocate as btAlignedObjectArray_btGImpactMeshShapePart_ptr__deallocate    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__swap as btAlignedObjectArray_btGImpactMeshShapePart_ptr__swap    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__initializeFromBuffer as btAlignedObjectArray_btGImpactMeshShapePart_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__expandNonInitializing as btAlignedObjectArray_btGImpactMeshShapePart_ptr__expandNonInitializing    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__resize as btAlignedObjectArray_btGImpactMeshShapePart_ptr__resize    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc , BtGImpactMeshShapePartClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__destroy as btAlignedObjectArray_btGImpactMeshShapePart_ptr__destroy    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__expand as btAlignedObjectArray_btGImpactMeshShapePart_ptr__expand    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc , BtGImpactMeshShapePartClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtGImpactMeshShapePart'  mkBtGImpactMeshShapePart* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__clear as btAlignedObjectArray_btGImpactMeshShapePart_ptr__clear    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocSize as btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocSize    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__reserve as btAlignedObjectArray_btGImpactMeshShapePart_ptr__reserve    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_allocator_set    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc , BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_allocator_get    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_'  mkBtAlignedAllocator_btGImpactMeshShapePart_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_size_set    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_size_get    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_capacity_set    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_capacity_get    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btGImpactMeshShapePart_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btHashInt>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__new as btAlignedObjectArray_btHashInt_    {  } -> `BtAlignedObjectArray_btHashInt_' mkBtAlignedObjectArray_btHashInt_* #}+{#fun btAlignedObjectArray_btHashInt__free    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__push_back as btAlignedObjectArray_btHashInt__push_back    `( BtAlignedObjectArray_btHashInt_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__at0 as btAlignedObjectArray_btHashInt__at    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__at0 as btAlignedObjectArray_btHashInt__at0    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__at1 as btAlignedObjectArray_btHashInt__at1    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__size as btAlignedObjectArray_btHashInt__size    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__capacity as btAlignedObjectArray_btHashInt__capacity    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__init as btAlignedObjectArray_btHashInt__init    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__allocate as btAlignedObjectArray_btHashInt__allocate    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__pop_back as btAlignedObjectArray_btHashInt__pop_back    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__deallocate as btAlignedObjectArray_btHashInt__deallocate    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__swap as btAlignedObjectArray_btHashInt__swap    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__initializeFromBuffer as btAlignedObjectArray_btHashInt__initializeFromBuffer    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__expandNonInitializing as btAlignedObjectArray_btHashInt__expandNonInitializing    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__resize as btAlignedObjectArray_btHashInt__resize    `( BtAlignedObjectArray_btHashInt_Class bc , BtHashIntClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__destroy as btAlignedObjectArray_btHashInt__destroy    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__copy as btAlignedObjectArray_btHashInt__copy    `( BtAlignedObjectArray_btHashInt_Class bc , BtHashIntClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__expand as btAlignedObjectArray_btHashInt__expand    `( BtAlignedObjectArray_btHashInt_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__clear as btAlignedObjectArray_btHashInt__clear    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__allocSize as btAlignedObjectArray_btHashInt__allocSize    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__reserve as btAlignedObjectArray_btHashInt__reserve    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_allocator_set    `( BtAlignedObjectArray_btHashInt_Class bc , BtAlignedAllocator_btHashInt_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_allocator_get    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btHashInt_16u_'  mkBtAlignedAllocator_btHashInt_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_size_set    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_size_get    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_capacity_set    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_capacity_get    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_data_set    `( BtAlignedObjectArray_btHashInt_Class bc , BtHashIntClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_data_get    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } ->  `BtHashInt'  mkBtHashInt* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_ownsMemory_set    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashInt__m_ownsMemory_get    `( BtAlignedObjectArray_btHashInt_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btHashPtr>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__new as btAlignedObjectArray_btHashPtr_    {  } -> `BtAlignedObjectArray_btHashPtr_' mkBtAlignedObjectArray_btHashPtr_* #}+{#fun btAlignedObjectArray_btHashPtr__free    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__push_back as btAlignedObjectArray_btHashPtr__push_back    `( BtAlignedObjectArray_btHashPtr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__at0 as btAlignedObjectArray_btHashPtr__at    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__at0 as btAlignedObjectArray_btHashPtr__at0    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__at1 as btAlignedObjectArray_btHashPtr__at1    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__size as btAlignedObjectArray_btHashPtr__size    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__capacity as btAlignedObjectArray_btHashPtr__capacity    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__init as btAlignedObjectArray_btHashPtr__init    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__allocate as btAlignedObjectArray_btHashPtr__allocate    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__pop_back as btAlignedObjectArray_btHashPtr__pop_back    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__deallocate as btAlignedObjectArray_btHashPtr__deallocate    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__swap as btAlignedObjectArray_btHashPtr__swap    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__initializeFromBuffer as btAlignedObjectArray_btHashPtr__initializeFromBuffer    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__expandNonInitializing as btAlignedObjectArray_btHashPtr__expandNonInitializing    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__resize as btAlignedObjectArray_btHashPtr__resize    `( BtAlignedObjectArray_btHashPtr_Class bc , BtHashPtrClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__destroy as btAlignedObjectArray_btHashPtr__destroy    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__copy as btAlignedObjectArray_btHashPtr__copy    `( BtAlignedObjectArray_btHashPtr_Class bc , BtHashPtrClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__expand as btAlignedObjectArray_btHashPtr__expand    `( BtAlignedObjectArray_btHashPtr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__clear as btAlignedObjectArray_btHashPtr__clear    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__allocSize as btAlignedObjectArray_btHashPtr__allocSize    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__reserve as btAlignedObjectArray_btHashPtr__reserve    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_allocator_set    `( BtAlignedObjectArray_btHashPtr_Class bc , BtAlignedAllocator_btHashPtr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_allocator_get    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btHashPtr_16u_'  mkBtAlignedAllocator_btHashPtr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_size_set    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_size_get    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_capacity_set    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_capacity_get    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_data_set    `( BtAlignedObjectArray_btHashPtr_Class bc , BtHashPtrClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_data_get    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } ->  `BtHashPtr'  mkBtHashPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_ownsMemory_set    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashPtr__m_ownsMemory_get    `( BtAlignedObjectArray_btHashPtr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btHashString>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__new as btAlignedObjectArray_btHashString_    {  } -> `BtAlignedObjectArray_btHashString_' mkBtAlignedObjectArray_btHashString_* #}+{#fun btAlignedObjectArray_btHashString__free    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__push_back as btAlignedObjectArray_btHashString__push_back    `( BtAlignedObjectArray_btHashString_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__at0 as btAlignedObjectArray_btHashString__at    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__at0 as btAlignedObjectArray_btHashString__at0    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__at1 as btAlignedObjectArray_btHashString__at1    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__size as btAlignedObjectArray_btHashString__size    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__capacity as btAlignedObjectArray_btHashString__capacity    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__init as btAlignedObjectArray_btHashString__init    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__allocate as btAlignedObjectArray_btHashString__allocate    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__pop_back as btAlignedObjectArray_btHashString__pop_back    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__deallocate as btAlignedObjectArray_btHashString__deallocate    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__swap as btAlignedObjectArray_btHashString__swap    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__initializeFromBuffer as btAlignedObjectArray_btHashString__initializeFromBuffer    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__expandNonInitializing as btAlignedObjectArray_btHashString__expandNonInitializing    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__resize as btAlignedObjectArray_btHashString__resize    `( BtAlignedObjectArray_btHashString_Class bc , BtHashStringClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__destroy as btAlignedObjectArray_btHashString__destroy    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__copy as btAlignedObjectArray_btHashString__copy    `( BtAlignedObjectArray_btHashString_Class bc , BtHashStringClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__expand as btAlignedObjectArray_btHashString__expand    `( BtAlignedObjectArray_btHashString_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__clear as btAlignedObjectArray_btHashString__clear    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__allocSize as btAlignedObjectArray_btHashString__allocSize    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__reserve as btAlignedObjectArray_btHashString__reserve    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_allocator_set    `( BtAlignedObjectArray_btHashString_Class bc , BtAlignedAllocator_btHashString_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_allocator_get    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btHashString_16u_'  mkBtAlignedAllocator_btHashString_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_size_set    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_size_get    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_capacity_set    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_capacity_get    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_data_set    `( BtAlignedObjectArray_btHashString_Class bc , BtHashStringClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_data_get    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } ->  `BtHashString'  mkBtHashString* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_ownsMemory_set    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btHashString__m_ownsMemory_get    `( BtAlignedObjectArray_btHashString_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btIndexedMesh>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__new as btAlignedObjectArray_btIndexedMesh_    {  } -> `BtAlignedObjectArray_btIndexedMesh_' mkBtAlignedObjectArray_btIndexedMesh_* #}+{#fun btAlignedObjectArray_btIndexedMesh__free    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__push_back as btAlignedObjectArray_btIndexedMesh__push_back    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__at0 as btAlignedObjectArray_btIndexedMesh__at    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__at0 as btAlignedObjectArray_btIndexedMesh__at0    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__at1 as btAlignedObjectArray_btIndexedMesh__at1    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__size as btAlignedObjectArray_btIndexedMesh__size    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__capacity as btAlignedObjectArray_btIndexedMesh__capacity    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__init as btAlignedObjectArray_btIndexedMesh__init    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__allocate as btAlignedObjectArray_btIndexedMesh__allocate    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__pop_back as btAlignedObjectArray_btIndexedMesh__pop_back    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__deallocate as btAlignedObjectArray_btIndexedMesh__deallocate    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__swap as btAlignedObjectArray_btIndexedMesh__swap    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__initializeFromBuffer as btAlignedObjectArray_btIndexedMesh__initializeFromBuffer    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__expandNonInitializing as btAlignedObjectArray_btIndexedMesh__expandNonInitializing    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__resize as btAlignedObjectArray_btIndexedMesh__resize    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtIndexedMeshClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__destroy as btAlignedObjectArray_btIndexedMesh__destroy    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__copy as btAlignedObjectArray_btIndexedMesh__copy    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtIndexedMeshClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__expand as btAlignedObjectArray_btIndexedMesh__expand    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtIndexedMeshClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__clear as btAlignedObjectArray_btIndexedMesh__clear    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__allocSize as btAlignedObjectArray_btIndexedMesh__allocSize    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__reserve as btAlignedObjectArray_btIndexedMesh__reserve    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_allocator_set    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtAlignedAllocator_btIndexedMesh_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_allocator_get    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btIndexedMesh_16u_'  mkBtAlignedAllocator_btIndexedMesh_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_size_set    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_size_get    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_capacity_set    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_capacity_get    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_data_set    `( BtAlignedObjectArray_btIndexedMesh_Class bc , BtIndexedMeshClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_data_get    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } ->  `BtIndexedMesh'  mkBtIndexedMesh* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_ownsMemory_set    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btIndexedMesh__m_ownsMemory_get    `( BtAlignedObjectArray_btIndexedMesh_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__new as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_    {  } -> `BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_' mkBtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_* #}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__free    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__push_back as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__push_back    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc , BtMultiSapBroadphase_btBridgeProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at0 as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btBridgeProxy'  mkBtMultiSapBroadphase_btBridgeProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at0 as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at0    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btBridgeProxy'  mkBtMultiSapBroadphase_btBridgeProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at1 as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at1    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btBridgeProxy'  mkBtMultiSapBroadphase_btBridgeProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__size as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__size    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__capacity as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__capacity    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__init as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__init    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocate as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocate    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__pop_back as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__pop_back    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__deallocate as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__deallocate    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__swap as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__swap    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__initializeFromBuffer as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expandNonInitializing as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expandNonInitializing    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtMultiSapBroadphase_btBridgeProxy'  mkBtMultiSapBroadphase_btBridgeProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__resize as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__resize    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc , BtMultiSapBroadphase_btBridgeProxyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__destroy as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__destroy    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expand as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expand    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc , BtMultiSapBroadphase_btBridgeProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtMultiSapBroadphase_btBridgeProxy'  mkBtMultiSapBroadphase_btBridgeProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__clear as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__clear    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocSize as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocSize    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__reserve as btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__reserve    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_allocator_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc , BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_allocator_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_'  mkBtAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_size_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_size_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_capacity_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_capacity_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__new as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_    {  } -> `BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_' mkBtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_* #}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__free    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__push_back as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__push_back    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc , BtMultiSapBroadphase_btMultiSapProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at0 as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btMultiSapProxy'  mkBtMultiSapBroadphase_btMultiSapProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at0 as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at0    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btMultiSapProxy'  mkBtMultiSapBroadphase_btMultiSapProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at1 as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at1    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtMultiSapBroadphase_btMultiSapProxy'  mkBtMultiSapBroadphase_btMultiSapProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__size as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__size    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__capacity as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__capacity    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__init as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__init    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocate as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocate    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__pop_back as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__pop_back    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__deallocate as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__deallocate    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__swap as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__swap    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__initializeFromBuffer as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expandNonInitializing as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expandNonInitializing    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtMultiSapBroadphase_btMultiSapProxy'  mkBtMultiSapBroadphase_btMultiSapProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__resize as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__resize    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc , BtMultiSapBroadphase_btMultiSapProxyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__destroy as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__destroy    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expand as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expand    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc , BtMultiSapBroadphase_btMultiSapProxyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtMultiSapBroadphase_btMultiSapProxy'  mkBtMultiSapBroadphase_btMultiSapProxy* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__clear as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__clear    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocSize as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocSize    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__reserve as btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__reserve    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_allocator_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc , BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_allocator_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_'  mkBtAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_size_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_size_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_capacity_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_capacity_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btOptimizedBvhNode>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__new as btAlignedObjectArray_btOptimizedBvhNode_    {  } -> `BtAlignedObjectArray_btOptimizedBvhNode_' mkBtAlignedObjectArray_btOptimizedBvhNode_* #}+{#fun btAlignedObjectArray_btOptimizedBvhNode__free    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__push_back as btAlignedObjectArray_btOptimizedBvhNode__push_back    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__at0 as btAlignedObjectArray_btOptimizedBvhNode__at    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__at0 as btAlignedObjectArray_btOptimizedBvhNode__at0    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__at1 as btAlignedObjectArray_btOptimizedBvhNode__at1    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__size as btAlignedObjectArray_btOptimizedBvhNode__size    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__capacity as btAlignedObjectArray_btOptimizedBvhNode__capacity    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__init as btAlignedObjectArray_btOptimizedBvhNode__init    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__allocate as btAlignedObjectArray_btOptimizedBvhNode__allocate    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__pop_back as btAlignedObjectArray_btOptimizedBvhNode__pop_back    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__deallocate as btAlignedObjectArray_btOptimizedBvhNode__deallocate    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__swap as btAlignedObjectArray_btOptimizedBvhNode__swap    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__initializeFromBuffer as btAlignedObjectArray_btOptimizedBvhNode__initializeFromBuffer    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__expandNonInitializing as btAlignedObjectArray_btOptimizedBvhNode__expandNonInitializing    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__resize as btAlignedObjectArray_btOptimizedBvhNode__resize    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtOptimizedBvhNodeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__destroy as btAlignedObjectArray_btOptimizedBvhNode__destroy    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__copy as btAlignedObjectArray_btOptimizedBvhNode__copy    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtOptimizedBvhNodeClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__expand as btAlignedObjectArray_btOptimizedBvhNode__expand    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtOptimizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__clear as btAlignedObjectArray_btOptimizedBvhNode__clear    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__allocSize as btAlignedObjectArray_btOptimizedBvhNode__allocSize    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__reserve as btAlignedObjectArray_btOptimizedBvhNode__reserve    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_allocator_set    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtAlignedAllocator_btOptimizedBvhNode_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_allocator_get    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btOptimizedBvhNode_16u_'  mkBtAlignedAllocator_btOptimizedBvhNode_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_size_set    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_size_get    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_capacity_set    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_capacity_get    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_data_set    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc , BtOptimizedBvhNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_data_get    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `BtOptimizedBvhNode'  mkBtOptimizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_ownsMemory_set    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btOptimizedBvhNode__m_ownsMemory_get    `( BtAlignedObjectArray_btOptimizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btPersistentManifold*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__new as btAlignedObjectArray_btPersistentManifold_ptr_    {  } -> `BtAlignedObjectArray_btPersistentManifold_ptr_' mkBtAlignedObjectArray_btPersistentManifold_ptr_* #}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__free    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__push_back as btAlignedObjectArray_btPersistentManifold_ptr__push_back    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__at0 as btAlignedObjectArray_btPersistentManifold_ptr__at    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__at0 as btAlignedObjectArray_btPersistentManifold_ptr__at0    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__at1 as btAlignedObjectArray_btPersistentManifold_ptr__at1    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__size as btAlignedObjectArray_btPersistentManifold_ptr__size    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__capacity as btAlignedObjectArray_btPersistentManifold_ptr__capacity    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__init as btAlignedObjectArray_btPersistentManifold_ptr__init    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__allocate as btAlignedObjectArray_btPersistentManifold_ptr__allocate    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__pop_back as btAlignedObjectArray_btPersistentManifold_ptr__pop_back    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__deallocate as btAlignedObjectArray_btPersistentManifold_ptr__deallocate    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__swap as btAlignedObjectArray_btPersistentManifold_ptr__swap    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__initializeFromBuffer as btAlignedObjectArray_btPersistentManifold_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__expandNonInitializing as btAlignedObjectArray_btPersistentManifold_ptr__expandNonInitializing    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__resize as btAlignedObjectArray_btPersistentManifold_ptr__resize    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc , BtPersistentManifoldClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__destroy as btAlignedObjectArray_btPersistentManifold_ptr__destroy    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__expand as btAlignedObjectArray_btPersistentManifold_ptr__expand    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc , BtPersistentManifoldClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtPersistentManifold'  mkBtPersistentManifold* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__clear as btAlignedObjectArray_btPersistentManifold_ptr__clear    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__allocSize as btAlignedObjectArray_btPersistentManifold_ptr__allocSize    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__reserve as btAlignedObjectArray_btPersistentManifold_ptr__reserve    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_allocator_set    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc , BtAlignedAllocator_btPersistentManifold_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_allocator_get    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btPersistentManifold_ptr_16u_'  mkBtAlignedAllocator_btPersistentManifold_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_size_set    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_size_get    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_capacity_set    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_capacity_get    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPersistentManifold_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btPersistentManifold_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btPointerUid>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__new as btAlignedObjectArray_btPointerUid_    {  } -> `BtAlignedObjectArray_btPointerUid_' mkBtAlignedObjectArray_btPointerUid_* #}+{#fun btAlignedObjectArray_btPointerUid__free    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__push_back as btAlignedObjectArray_btPointerUid__push_back    `( BtAlignedObjectArray_btPointerUid_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__at0 as btAlignedObjectArray_btPointerUid__at    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__at0 as btAlignedObjectArray_btPointerUid__at0    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__at1 as btAlignedObjectArray_btPointerUid__at1    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__size as btAlignedObjectArray_btPointerUid__size    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__capacity as btAlignedObjectArray_btPointerUid__capacity    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__init as btAlignedObjectArray_btPointerUid__init    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__allocate as btAlignedObjectArray_btPointerUid__allocate    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__pop_back as btAlignedObjectArray_btPointerUid__pop_back    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__deallocate as btAlignedObjectArray_btPointerUid__deallocate    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__swap as btAlignedObjectArray_btPointerUid__swap    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__initializeFromBuffer as btAlignedObjectArray_btPointerUid__initializeFromBuffer    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__expandNonInitializing as btAlignedObjectArray_btPointerUid__expandNonInitializing    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__resize as btAlignedObjectArray_btPointerUid__resize    `( BtAlignedObjectArray_btPointerUid_Class bc , BtPointerUidClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__destroy as btAlignedObjectArray_btPointerUid__destroy    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__copy as btAlignedObjectArray_btPointerUid__copy    `( BtAlignedObjectArray_btPointerUid_Class bc , BtPointerUidClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__expand as btAlignedObjectArray_btPointerUid__expand    `( BtAlignedObjectArray_btPointerUid_Class bc , BtPointerUidClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__clear as btAlignedObjectArray_btPointerUid__clear    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__allocSize as btAlignedObjectArray_btPointerUid__allocSize    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__reserve as btAlignedObjectArray_btPointerUid__reserve    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_allocator_set    `( BtAlignedObjectArray_btPointerUid_Class bc , BtAlignedAllocator_btPointerUid_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_allocator_get    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btPointerUid_16u_'  mkBtAlignedAllocator_btPointerUid_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_size_set    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_size_get    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_capacity_set    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_capacity_get    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_data_set    `( BtAlignedObjectArray_btPointerUid_Class bc , BtPointerUidClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_data_get    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_ownsMemory_set    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btPointerUid__m_ownsMemory_get    `( BtAlignedObjectArray_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btQuantizedBvhNode>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__new as btAlignedObjectArray_btQuantizedBvhNode_    {  } -> `BtAlignedObjectArray_btQuantizedBvhNode_' mkBtAlignedObjectArray_btQuantizedBvhNode_* #}+{#fun btAlignedObjectArray_btQuantizedBvhNode__free    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__push_back as btAlignedObjectArray_btQuantizedBvhNode__push_back    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__at0 as btAlignedObjectArray_btQuantizedBvhNode__at    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__at0 as btAlignedObjectArray_btQuantizedBvhNode__at0    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__at1 as btAlignedObjectArray_btQuantizedBvhNode__at1    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__size as btAlignedObjectArray_btQuantizedBvhNode__size    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__capacity as btAlignedObjectArray_btQuantizedBvhNode__capacity    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__init as btAlignedObjectArray_btQuantizedBvhNode__init    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__allocate as btAlignedObjectArray_btQuantizedBvhNode__allocate    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__pop_back as btAlignedObjectArray_btQuantizedBvhNode__pop_back    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__deallocate as btAlignedObjectArray_btQuantizedBvhNode__deallocate    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__swap as btAlignedObjectArray_btQuantizedBvhNode__swap    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__initializeFromBuffer as btAlignedObjectArray_btQuantizedBvhNode__initializeFromBuffer    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__expandNonInitializing as btAlignedObjectArray_btQuantizedBvhNode__expandNonInitializing    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__resize as btAlignedObjectArray_btQuantizedBvhNode__resize    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtQuantizedBvhNodeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__destroy as btAlignedObjectArray_btQuantizedBvhNode__destroy    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__copy as btAlignedObjectArray_btQuantizedBvhNode__copy    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtQuantizedBvhNodeClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__expand as btAlignedObjectArray_btQuantizedBvhNode__expand    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtQuantizedBvhNodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__clear as btAlignedObjectArray_btQuantizedBvhNode__clear    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__allocSize as btAlignedObjectArray_btQuantizedBvhNode__allocSize    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__reserve as btAlignedObjectArray_btQuantizedBvhNode__reserve    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_allocator_set    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtAlignedAllocator_btQuantizedBvhNode_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_allocator_get    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btQuantizedBvhNode_16u_'  mkBtAlignedAllocator_btQuantizedBvhNode_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_size_set    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_size_get    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_capacity_set    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_capacity_get    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_data_set    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc , BtQuantizedBvhNodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_data_get    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `BtQuantizedBvhNode'  mkBtQuantizedBvhNode* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_ownsMemory_set    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btQuantizedBvhNode__m_ownsMemory_get    `( BtAlignedObjectArray_btQuantizedBvhNode_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btRigidBody*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__new as btAlignedObjectArray_btRigidBody_ptr_    {  } -> `BtAlignedObjectArray_btRigidBody_ptr_' mkBtAlignedObjectArray_btRigidBody_ptr_* #}+{#fun btAlignedObjectArray_btRigidBody_ptr__free    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__push_back as btAlignedObjectArray_btRigidBody_ptr__push_back    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__at0 as btAlignedObjectArray_btRigidBody_ptr__at    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__at0 as btAlignedObjectArray_btRigidBody_ptr__at0    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__at1 as btAlignedObjectArray_btRigidBody_ptr__at1    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__size as btAlignedObjectArray_btRigidBody_ptr__size    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__capacity as btAlignedObjectArray_btRigidBody_ptr__capacity    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__init as btAlignedObjectArray_btRigidBody_ptr__init    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__allocate as btAlignedObjectArray_btRigidBody_ptr__allocate    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__pop_back as btAlignedObjectArray_btRigidBody_ptr__pop_back    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__deallocate as btAlignedObjectArray_btRigidBody_ptr__deallocate    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__swap as btAlignedObjectArray_btRigidBody_ptr__swap    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__initializeFromBuffer as btAlignedObjectArray_btRigidBody_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__expandNonInitializing as btAlignedObjectArray_btRigidBody_ptr__expandNonInitializing    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__resize as btAlignedObjectArray_btRigidBody_ptr__resize    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc , BtRigidBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__destroy as btAlignedObjectArray_btRigidBody_ptr__destroy    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__expand as btAlignedObjectArray_btRigidBody_ptr__expand    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc , BtRigidBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtRigidBody'  mkBtRigidBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__clear as btAlignedObjectArray_btRigidBody_ptr__clear    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__allocSize as btAlignedObjectArray_btRigidBody_ptr__allocSize    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__reserve as btAlignedObjectArray_btRigidBody_ptr__reserve    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_allocator_set    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc , BtAlignedAllocator_btRigidBody_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_allocator_get    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btRigidBody_ptr_16u_'  mkBtAlignedAllocator_btRigidBody_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_size_set    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_size_get    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_capacity_set    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_capacity_get    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btRigidBody_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btRigidBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btSoftBody*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__new as btAlignedObjectArray_btSoftBody_ptr_    {  } -> `BtAlignedObjectArray_btSoftBody_ptr_' mkBtAlignedObjectArray_btSoftBody_ptr_* #}+{#fun btAlignedObjectArray_btSoftBody_ptr__free    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__push_back as btAlignedObjectArray_btSoftBody_ptr__push_back    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__at0 as btAlignedObjectArray_btSoftBody_ptr__at    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__at0 as btAlignedObjectArray_btSoftBody_ptr__at0    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__at1 as btAlignedObjectArray_btSoftBody_ptr__at1    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__size as btAlignedObjectArray_btSoftBody_ptr__size    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__capacity as btAlignedObjectArray_btSoftBody_ptr__capacity    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__init as btAlignedObjectArray_btSoftBody_ptr__init    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__swap as btAlignedObjectArray_btSoftBody_ptr__swap    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__pop_back as btAlignedObjectArray_btSoftBody_ptr__pop_back    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__deallocate as btAlignedObjectArray_btSoftBody_ptr__deallocate    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__allocate as btAlignedObjectArray_btSoftBody_ptr__allocate    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__initializeFromBuffer as btAlignedObjectArray_btSoftBody_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__expandNonInitializing as btAlignedObjectArray_btSoftBody_ptr__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__destroy as btAlignedObjectArray_btSoftBody_ptr__destroy    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__resize as btAlignedObjectArray_btSoftBody_ptr__resize    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc , BtSoftBodyClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__clear as btAlignedObjectArray_btSoftBody_ptr__clear    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__allocSize as btAlignedObjectArray_btSoftBody_ptr__allocSize    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__expand as btAlignedObjectArray_btSoftBody_ptr__expand    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc , BtSoftBodyClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody'  mkBtSoftBody* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__reserve as btAlignedObjectArray_btSoftBody_ptr__reserve    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc , BtAlignedAllocator_btSoftBody_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_ptr_16u_'  mkBtAlignedAllocator_btSoftBody_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_size_set    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ptr__m_size_get    `( BtAlignedObjectArray_btSoftBody_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Anchor>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__new as btAlignedObjectArray_btSoftBody_Anchor_    {  } -> `BtAlignedObjectArray_btSoftBody_Anchor_' mkBtAlignedObjectArray_btSoftBody_Anchor_* #}+{#fun btAlignedObjectArray_btSoftBody_Anchor__free    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__push_back as btAlignedObjectArray_btSoftBody_Anchor__push_back    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__at0 as btAlignedObjectArray_btSoftBody_Anchor__at    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__at0 as btAlignedObjectArray_btSoftBody_Anchor__at0    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__at1 as btAlignedObjectArray_btSoftBody_Anchor__at1    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__size as btAlignedObjectArray_btSoftBody_Anchor__size    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__capacity as btAlignedObjectArray_btSoftBody_Anchor__capacity    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__init as btAlignedObjectArray_btSoftBody_Anchor__init    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__swap as btAlignedObjectArray_btSoftBody_Anchor__swap    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__pop_back as btAlignedObjectArray_btSoftBody_Anchor__pop_back    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__deallocate as btAlignedObjectArray_btSoftBody_Anchor__deallocate    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__allocate as btAlignedObjectArray_btSoftBody_Anchor__allocate    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Anchor__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__expandNonInitializing as btAlignedObjectArray_btSoftBody_Anchor__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__destroy as btAlignedObjectArray_btSoftBody_Anchor__destroy    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__copy as btAlignedObjectArray_btSoftBody_Anchor__copy    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtSoftBody_AnchorClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__resize as btAlignedObjectArray_btSoftBody_Anchor__resize    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtSoftBody_AnchorClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__clear as btAlignedObjectArray_btSoftBody_Anchor__clear    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__allocSize as btAlignedObjectArray_btSoftBody_Anchor__allocSize    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__expand as btAlignedObjectArray_btSoftBody_Anchor__expand    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtSoftBody_AnchorClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__reserve as btAlignedObjectArray_btSoftBody_Anchor__reserve    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtAlignedAllocator_btSoftBody_Anchor_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Anchor_16u_'  mkBtAlignedAllocator_btSoftBody_Anchor_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_data_set    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc , BtSoftBody_AnchorClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_data_get    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Anchor'  mkBtSoftBody_Anchor* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_size_set    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Anchor__m_size_get    `( BtAlignedObjectArray_btSoftBody_Anchor_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Cluster*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__new as btAlignedObjectArray_btSoftBody_Cluster_ptr_    {  } -> `BtAlignedObjectArray_btSoftBody_Cluster_ptr_' mkBtAlignedObjectArray_btSoftBody_Cluster_ptr_* #}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__free    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__push_back as btAlignedObjectArray_btSoftBody_Cluster_ptr__push_back    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc , BtSoftBody_ClusterClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__at0 as btAlignedObjectArray_btSoftBody_Cluster_ptr__at    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__at0 as btAlignedObjectArray_btSoftBody_Cluster_ptr__at0    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__at1 as btAlignedObjectArray_btSoftBody_Cluster_ptr__at1    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__size as btAlignedObjectArray_btSoftBody_Cluster_ptr__size    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__capacity as btAlignedObjectArray_btSoftBody_Cluster_ptr__capacity    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__init as btAlignedObjectArray_btSoftBody_Cluster_ptr__init    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__swap as btAlignedObjectArray_btSoftBody_Cluster_ptr__swap    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__pop_back as btAlignedObjectArray_btSoftBody_Cluster_ptr__pop_back    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__deallocate as btAlignedObjectArray_btSoftBody_Cluster_ptr__deallocate    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__allocate as btAlignedObjectArray_btSoftBody_Cluster_ptr__allocate    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Cluster_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__expandNonInitializing as btAlignedObjectArray_btSoftBody_Cluster_ptr__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__destroy as btAlignedObjectArray_btSoftBody_Cluster_ptr__destroy    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__resize as btAlignedObjectArray_btSoftBody_Cluster_ptr__resize    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc , BtSoftBody_ClusterClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__clear as btAlignedObjectArray_btSoftBody_Cluster_ptr__clear    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__allocSize as btAlignedObjectArray_btSoftBody_Cluster_ptr__allocSize    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__expand as btAlignedObjectArray_btSoftBody_Cluster_ptr__expand    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc , BtSoftBody_ClusterClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Cluster'  mkBtSoftBody_Cluster* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__reserve as btAlignedObjectArray_btSoftBody_Cluster_ptr__reserve    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc , BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Cluster_ptr_16u_'  mkBtAlignedAllocator_btSoftBody_Cluster_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_size_set    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Cluster_ptr__m_size_get    `( BtAlignedObjectArray_btSoftBody_Cluster_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Face>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__new as btAlignedObjectArray_btSoftBody_Face_    {  } -> `BtAlignedObjectArray_btSoftBody_Face_' mkBtAlignedObjectArray_btSoftBody_Face_* #}+{#fun btAlignedObjectArray_btSoftBody_Face__free    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__push_back as btAlignedObjectArray_btSoftBody_Face__push_back    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__at0 as btAlignedObjectArray_btSoftBody_Face__at    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__at0 as btAlignedObjectArray_btSoftBody_Face__at0    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__at1 as btAlignedObjectArray_btSoftBody_Face__at1    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__size as btAlignedObjectArray_btSoftBody_Face__size    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__capacity as btAlignedObjectArray_btSoftBody_Face__capacity    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__init as btAlignedObjectArray_btSoftBody_Face__init    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__swap as btAlignedObjectArray_btSoftBody_Face__swap    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__pop_back as btAlignedObjectArray_btSoftBody_Face__pop_back    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__deallocate as btAlignedObjectArray_btSoftBody_Face__deallocate    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__allocate as btAlignedObjectArray_btSoftBody_Face__allocate    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Face__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__expandNonInitializing as btAlignedObjectArray_btSoftBody_Face__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__destroy as btAlignedObjectArray_btSoftBody_Face__destroy    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__copy as btAlignedObjectArray_btSoftBody_Face__copy    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtSoftBody_FaceClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__resize as btAlignedObjectArray_btSoftBody_Face__resize    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtSoftBody_FaceClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__clear as btAlignedObjectArray_btSoftBody_Face__clear    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__allocSize as btAlignedObjectArray_btSoftBody_Face__allocSize    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__expand as btAlignedObjectArray_btSoftBody_Face__expand    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtSoftBody_FaceClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__reserve as btAlignedObjectArray_btSoftBody_Face__reserve    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtAlignedAllocator_btSoftBody_Face_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Face_16u_'  mkBtAlignedAllocator_btSoftBody_Face_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_data_set    `( BtAlignedObjectArray_btSoftBody_Face_Class bc , BtSoftBody_FaceClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_data_get    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Face'  mkBtSoftBody_Face* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_size_set    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Face__m_size_get    `( BtAlignedObjectArray_btSoftBody_Face_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Joint*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__new as btAlignedObjectArray_btSoftBody_Joint_ptr_    {  } -> `BtAlignedObjectArray_btSoftBody_Joint_ptr_' mkBtAlignedObjectArray_btSoftBody_Joint_ptr_* #}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__free    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__push_back as btAlignedObjectArray_btSoftBody_Joint_ptr__push_back    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc , BtSoftBody_JointClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__at0 as btAlignedObjectArray_btSoftBody_Joint_ptr__at    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Joint'  mkBtSoftBody_Joint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__at0 as btAlignedObjectArray_btSoftBody_Joint_ptr__at0    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Joint'  mkBtSoftBody_Joint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__at1 as btAlignedObjectArray_btSoftBody_Joint_ptr__at1    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Joint'  mkBtSoftBody_Joint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__size as btAlignedObjectArray_btSoftBody_Joint_ptr__size    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__capacity as btAlignedObjectArray_btSoftBody_Joint_ptr__capacity    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__init as btAlignedObjectArray_btSoftBody_Joint_ptr__init    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__swap as btAlignedObjectArray_btSoftBody_Joint_ptr__swap    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__pop_back as btAlignedObjectArray_btSoftBody_Joint_ptr__pop_back    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__deallocate as btAlignedObjectArray_btSoftBody_Joint_ptr__deallocate    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__allocate as btAlignedObjectArray_btSoftBody_Joint_ptr__allocate    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Joint_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__expandNonInitializing as btAlignedObjectArray_btSoftBody_Joint_ptr__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Joint'  mkBtSoftBody_Joint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__destroy as btAlignedObjectArray_btSoftBody_Joint_ptr__destroy    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__resize as btAlignedObjectArray_btSoftBody_Joint_ptr__resize    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc , BtSoftBody_JointClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__clear as btAlignedObjectArray_btSoftBody_Joint_ptr__clear    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__allocSize as btAlignedObjectArray_btSoftBody_Joint_ptr__allocSize    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__expand as btAlignedObjectArray_btSoftBody_Joint_ptr__expand    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc , BtSoftBody_JointClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Joint'  mkBtSoftBody_Joint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__reserve as btAlignedObjectArray_btSoftBody_Joint_ptr__reserve    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc , BtAlignedAllocator_btSoftBody_Joint_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Joint_ptr_16u_'  mkBtAlignedAllocator_btSoftBody_Joint_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_size_set    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Joint_ptr__m_size_get    `( BtAlignedObjectArray_btSoftBody_Joint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Link>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__new as btAlignedObjectArray_btSoftBody_Link_    {  } -> `BtAlignedObjectArray_btSoftBody_Link_' mkBtAlignedObjectArray_btSoftBody_Link_* #}+{#fun btAlignedObjectArray_btSoftBody_Link__free    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__push_back as btAlignedObjectArray_btSoftBody_Link__push_back    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__at0 as btAlignedObjectArray_btSoftBody_Link__at    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__at0 as btAlignedObjectArray_btSoftBody_Link__at0    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__at1 as btAlignedObjectArray_btSoftBody_Link__at1    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__size as btAlignedObjectArray_btSoftBody_Link__size    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__capacity as btAlignedObjectArray_btSoftBody_Link__capacity    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__init as btAlignedObjectArray_btSoftBody_Link__init    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__swap as btAlignedObjectArray_btSoftBody_Link__swap    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__pop_back as btAlignedObjectArray_btSoftBody_Link__pop_back    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__deallocate as btAlignedObjectArray_btSoftBody_Link__deallocate    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__allocate as btAlignedObjectArray_btSoftBody_Link__allocate    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Link__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__expandNonInitializing as btAlignedObjectArray_btSoftBody_Link__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__destroy as btAlignedObjectArray_btSoftBody_Link__destroy    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__copy as btAlignedObjectArray_btSoftBody_Link__copy    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtSoftBody_LinkClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__resize as btAlignedObjectArray_btSoftBody_Link__resize    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtSoftBody_LinkClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__clear as btAlignedObjectArray_btSoftBody_Link__clear    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__allocSize as btAlignedObjectArray_btSoftBody_Link__allocSize    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__expand as btAlignedObjectArray_btSoftBody_Link__expand    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtSoftBody_LinkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__reserve as btAlignedObjectArray_btSoftBody_Link__reserve    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtAlignedAllocator_btSoftBody_Link_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Link_16u_'  mkBtAlignedAllocator_btSoftBody_Link_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_data_set    `( BtAlignedObjectArray_btSoftBody_Link_Class bc , BtSoftBody_LinkClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_data_get    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Link'  mkBtSoftBody_Link* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_size_set    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Link__m_size_get    `( BtAlignedObjectArray_btSoftBody_Link_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Material*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__new as btAlignedObjectArray_btSoftBody_Material_ptr_    {  } -> `BtAlignedObjectArray_btSoftBody_Material_ptr_' mkBtAlignedObjectArray_btSoftBody_Material_ptr_* #}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__free    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__push_back as btAlignedObjectArray_btSoftBody_Material_ptr__push_back    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc , BtSoftBody_MaterialClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__at0 as btAlignedObjectArray_btSoftBody_Material_ptr__at    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__at0 as btAlignedObjectArray_btSoftBody_Material_ptr__at0    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__at1 as btAlignedObjectArray_btSoftBody_Material_ptr__at1    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__size as btAlignedObjectArray_btSoftBody_Material_ptr__size    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__capacity as btAlignedObjectArray_btSoftBody_Material_ptr__capacity    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__init as btAlignedObjectArray_btSoftBody_Material_ptr__init    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__swap as btAlignedObjectArray_btSoftBody_Material_ptr__swap    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__pop_back as btAlignedObjectArray_btSoftBody_Material_ptr__pop_back    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__deallocate as btAlignedObjectArray_btSoftBody_Material_ptr__deallocate    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__allocate as btAlignedObjectArray_btSoftBody_Material_ptr__allocate    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Material_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__expandNonInitializing as btAlignedObjectArray_btSoftBody_Material_ptr__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__destroy as btAlignedObjectArray_btSoftBody_Material_ptr__destroy    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__resize as btAlignedObjectArray_btSoftBody_Material_ptr__resize    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc , BtSoftBody_MaterialClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__clear as btAlignedObjectArray_btSoftBody_Material_ptr__clear    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__allocSize as btAlignedObjectArray_btSoftBody_Material_ptr__allocSize    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__expand as btAlignedObjectArray_btSoftBody_Material_ptr__expand    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc , BtSoftBody_MaterialClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Material'  mkBtSoftBody_Material* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__reserve as btAlignedObjectArray_btSoftBody_Material_ptr__reserve    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc , BtAlignedAllocator_btSoftBody_Material_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Material_ptr_16u_'  mkBtAlignedAllocator_btSoftBody_Material_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_size_set    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Material_ptr__m_size_get    `( BtAlignedObjectArray_btSoftBody_Material_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Node*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__new as btAlignedObjectArray_btSoftBody_Node_ptr_    {  } -> `BtAlignedObjectArray_btSoftBody_Node_ptr_' mkBtAlignedObjectArray_btSoftBody_Node_ptr_* #}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__free    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__push_back as btAlignedObjectArray_btSoftBody_Node_ptr__push_back    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__at0 as btAlignedObjectArray_btSoftBody_Node_ptr__at    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__at0 as btAlignedObjectArray_btSoftBody_Node_ptr__at0    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__at1 as btAlignedObjectArray_btSoftBody_Node_ptr__at1    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__size as btAlignedObjectArray_btSoftBody_Node_ptr__size    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__capacity as btAlignedObjectArray_btSoftBody_Node_ptr__capacity    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__init as btAlignedObjectArray_btSoftBody_Node_ptr__init    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__swap as btAlignedObjectArray_btSoftBody_Node_ptr__swap    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__pop_back as btAlignedObjectArray_btSoftBody_Node_ptr__pop_back    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__deallocate as btAlignedObjectArray_btSoftBody_Node_ptr__deallocate    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__allocate as btAlignedObjectArray_btSoftBody_Node_ptr__allocate    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Node_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__expandNonInitializing as btAlignedObjectArray_btSoftBody_Node_ptr__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__destroy as btAlignedObjectArray_btSoftBody_Node_ptr__destroy    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__resize as btAlignedObjectArray_btSoftBody_Node_ptr__resize    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__clear as btAlignedObjectArray_btSoftBody_Node_ptr__clear    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__allocSize as btAlignedObjectArray_btSoftBody_Node_ptr__allocSize    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__expand as btAlignedObjectArray_btSoftBody_Node_ptr__expand    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__reserve as btAlignedObjectArray_btSoftBody_Node_ptr__reserve    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc , BtAlignedAllocator_btSoftBody_Node_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Node_ptr_16u_'  mkBtAlignedAllocator_btSoftBody_Node_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_size_set    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node_ptr__m_size_get    `( BtAlignedObjectArray_btSoftBody_Node_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Node>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__new as btAlignedObjectArray_btSoftBody_Node_    {  } -> `BtAlignedObjectArray_btSoftBody_Node_' mkBtAlignedObjectArray_btSoftBody_Node_* #}+{#fun btAlignedObjectArray_btSoftBody_Node__free    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__push_back as btAlignedObjectArray_btSoftBody_Node__push_back    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__at0 as btAlignedObjectArray_btSoftBody_Node__at    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__at0 as btAlignedObjectArray_btSoftBody_Node__at0    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__at1 as btAlignedObjectArray_btSoftBody_Node__at1    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__size as btAlignedObjectArray_btSoftBody_Node__size    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__capacity as btAlignedObjectArray_btSoftBody_Node__capacity    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__init as btAlignedObjectArray_btSoftBody_Node__init    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__swap as btAlignedObjectArray_btSoftBody_Node__swap    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__pop_back as btAlignedObjectArray_btSoftBody_Node__pop_back    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__deallocate as btAlignedObjectArray_btSoftBody_Node__deallocate    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__allocate as btAlignedObjectArray_btSoftBody_Node__allocate    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Node__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__expandNonInitializing as btAlignedObjectArray_btSoftBody_Node__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__destroy as btAlignedObjectArray_btSoftBody_Node__destroy    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__copy as btAlignedObjectArray_btSoftBody_Node__copy    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtSoftBody_NodeClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__resize as btAlignedObjectArray_btSoftBody_Node__resize    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtSoftBody_NodeClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__clear as btAlignedObjectArray_btSoftBody_Node__clear    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__allocSize as btAlignedObjectArray_btSoftBody_Node__allocSize    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__expand as btAlignedObjectArray_btSoftBody_Node__expand    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtSoftBody_NodeClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__reserve as btAlignedObjectArray_btSoftBody_Node__reserve    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtAlignedAllocator_btSoftBody_Node_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Node_16u_'  mkBtAlignedAllocator_btSoftBody_Node_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_data_set    `( BtAlignedObjectArray_btSoftBody_Node_Class bc , BtSoftBody_NodeClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_data_get    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Node'  mkBtSoftBody_Node* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_size_set    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Node__m_size_get    `( BtAlignedObjectArray_btSoftBody_Node_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Note>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__new as btAlignedObjectArray_btSoftBody_Note_    {  } -> `BtAlignedObjectArray_btSoftBody_Note_' mkBtAlignedObjectArray_btSoftBody_Note_* #}+{#fun btAlignedObjectArray_btSoftBody_Note__free    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__push_back as btAlignedObjectArray_btSoftBody_Note__push_back    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__at0 as btAlignedObjectArray_btSoftBody_Note__at    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__at0 as btAlignedObjectArray_btSoftBody_Note__at0    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__at1 as btAlignedObjectArray_btSoftBody_Note__at1    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__size as btAlignedObjectArray_btSoftBody_Note__size    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__capacity as btAlignedObjectArray_btSoftBody_Note__capacity    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__init as btAlignedObjectArray_btSoftBody_Note__init    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__swap as btAlignedObjectArray_btSoftBody_Note__swap    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__pop_back as btAlignedObjectArray_btSoftBody_Note__pop_back    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__deallocate as btAlignedObjectArray_btSoftBody_Note__deallocate    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__allocate as btAlignedObjectArray_btSoftBody_Note__allocate    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Note__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__expandNonInitializing as btAlignedObjectArray_btSoftBody_Note__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__destroy as btAlignedObjectArray_btSoftBody_Note__destroy    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__copy as btAlignedObjectArray_btSoftBody_Note__copy    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtSoftBody_NoteClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__resize as btAlignedObjectArray_btSoftBody_Note__resize    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtSoftBody_NoteClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__clear as btAlignedObjectArray_btSoftBody_Note__clear    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__allocSize as btAlignedObjectArray_btSoftBody_Note__allocSize    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__expand as btAlignedObjectArray_btSoftBody_Note__expand    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtSoftBody_NoteClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__reserve as btAlignedObjectArray_btSoftBody_Note__reserve    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtAlignedAllocator_btSoftBody_Note_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Note_16u_'  mkBtAlignedAllocator_btSoftBody_Note_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_data_set    `( BtAlignedObjectArray_btSoftBody_Note_Class bc , BtSoftBody_NoteClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_data_get    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Note'  mkBtSoftBody_Note* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_size_set    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Note__m_size_get    `( BtAlignedObjectArray_btSoftBody_Note_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::RContact>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__new as btAlignedObjectArray_btSoftBody_RContact_    {  } -> `BtAlignedObjectArray_btSoftBody_RContact_' mkBtAlignedObjectArray_btSoftBody_RContact_* #}+{#fun btAlignedObjectArray_btSoftBody_RContact__free    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__push_back as btAlignedObjectArray_btSoftBody_RContact__push_back    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__at0 as btAlignedObjectArray_btSoftBody_RContact__at    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__at0 as btAlignedObjectArray_btSoftBody_RContact__at0    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__at1 as btAlignedObjectArray_btSoftBody_RContact__at1    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__size as btAlignedObjectArray_btSoftBody_RContact__size    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__capacity as btAlignedObjectArray_btSoftBody_RContact__capacity    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__init as btAlignedObjectArray_btSoftBody_RContact__init    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__swap as btAlignedObjectArray_btSoftBody_RContact__swap    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__pop_back as btAlignedObjectArray_btSoftBody_RContact__pop_back    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__deallocate as btAlignedObjectArray_btSoftBody_RContact__deallocate    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__allocate as btAlignedObjectArray_btSoftBody_RContact__allocate    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__initializeFromBuffer as btAlignedObjectArray_btSoftBody_RContact__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__expandNonInitializing as btAlignedObjectArray_btSoftBody_RContact__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__destroy as btAlignedObjectArray_btSoftBody_RContact__destroy    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__copy as btAlignedObjectArray_btSoftBody_RContact__copy    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtSoftBody_RContactClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__resize as btAlignedObjectArray_btSoftBody_RContact__resize    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtSoftBody_RContactClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__clear as btAlignedObjectArray_btSoftBody_RContact__clear    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__allocSize as btAlignedObjectArray_btSoftBody_RContact__allocSize    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__expand as btAlignedObjectArray_btSoftBody_RContact__expand    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtSoftBody_RContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__reserve as btAlignedObjectArray_btSoftBody_RContact__reserve    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtAlignedAllocator_btSoftBody_RContact_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_RContact_16u_'  mkBtAlignedAllocator_btSoftBody_RContact_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_data_set    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc , BtSoftBody_RContactClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_data_get    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_RContact'  mkBtSoftBody_RContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_size_set    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_RContact__m_size_get    `( BtAlignedObjectArray_btSoftBody_RContact_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::SContact>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__new as btAlignedObjectArray_btSoftBody_SContact_    {  } -> `BtAlignedObjectArray_btSoftBody_SContact_' mkBtAlignedObjectArray_btSoftBody_SContact_* #}+{#fun btAlignedObjectArray_btSoftBody_SContact__free    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__push_back as btAlignedObjectArray_btSoftBody_SContact__push_back    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__at0 as btAlignedObjectArray_btSoftBody_SContact__at    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__at0 as btAlignedObjectArray_btSoftBody_SContact__at0    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__at1 as btAlignedObjectArray_btSoftBody_SContact__at1    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__size as btAlignedObjectArray_btSoftBody_SContact__size    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__capacity as btAlignedObjectArray_btSoftBody_SContact__capacity    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__init as btAlignedObjectArray_btSoftBody_SContact__init    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__swap as btAlignedObjectArray_btSoftBody_SContact__swap    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__pop_back as btAlignedObjectArray_btSoftBody_SContact__pop_back    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__deallocate as btAlignedObjectArray_btSoftBody_SContact__deallocate    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__allocate as btAlignedObjectArray_btSoftBody_SContact__allocate    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__initializeFromBuffer as btAlignedObjectArray_btSoftBody_SContact__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__expandNonInitializing as btAlignedObjectArray_btSoftBody_SContact__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__destroy as btAlignedObjectArray_btSoftBody_SContact__destroy    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__copy as btAlignedObjectArray_btSoftBody_SContact__copy    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtSoftBody_SContactClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__resize as btAlignedObjectArray_btSoftBody_SContact__resize    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtSoftBody_SContactClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__clear as btAlignedObjectArray_btSoftBody_SContact__clear    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__allocSize as btAlignedObjectArray_btSoftBody_SContact__allocSize    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__expand as btAlignedObjectArray_btSoftBody_SContact__expand    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtSoftBody_SContactClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__reserve as btAlignedObjectArray_btSoftBody_SContact__reserve    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtAlignedAllocator_btSoftBody_SContact_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_SContact_16u_'  mkBtAlignedAllocator_btSoftBody_SContact_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_data_set    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc , BtSoftBody_SContactClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_data_get    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_SContact'  mkBtSoftBody_SContact* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_size_set    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_SContact__m_size_get    `( BtAlignedObjectArray_btSoftBody_SContact_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::Tetra>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__new as btAlignedObjectArray_btSoftBody_Tetra_    {  } -> `BtAlignedObjectArray_btSoftBody_Tetra_' mkBtAlignedObjectArray_btSoftBody_Tetra_* #}+{#fun btAlignedObjectArray_btSoftBody_Tetra__free    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__push_back as btAlignedObjectArray_btSoftBody_Tetra__push_back    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__at0 as btAlignedObjectArray_btSoftBody_Tetra__at    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__at0 as btAlignedObjectArray_btSoftBody_Tetra__at0    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__at1 as btAlignedObjectArray_btSoftBody_Tetra__at1    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__size as btAlignedObjectArray_btSoftBody_Tetra__size    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__capacity as btAlignedObjectArray_btSoftBody_Tetra__capacity    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__init as btAlignedObjectArray_btSoftBody_Tetra__init    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__swap as btAlignedObjectArray_btSoftBody_Tetra__swap    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__pop_back as btAlignedObjectArray_btSoftBody_Tetra__pop_back    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__deallocate as btAlignedObjectArray_btSoftBody_Tetra__deallocate    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__allocate as btAlignedObjectArray_btSoftBody_Tetra__allocate    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__initializeFromBuffer as btAlignedObjectArray_btSoftBody_Tetra__initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__expandNonInitializing as btAlignedObjectArray_btSoftBody_Tetra__expandNonInitializing    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__destroy as btAlignedObjectArray_btSoftBody_Tetra__destroy    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__copy as btAlignedObjectArray_btSoftBody_Tetra__copy    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtSoftBody_TetraClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__resize as btAlignedObjectArray_btSoftBody_Tetra__resize    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtSoftBody_TetraClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__clear as btAlignedObjectArray_btSoftBody_Tetra__clear    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__allocSize as btAlignedObjectArray_btSoftBody_Tetra__allocSize    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__expand as btAlignedObjectArray_btSoftBody_Tetra__expand    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtSoftBody_TetraClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__reserve as btAlignedObjectArray_btSoftBody_Tetra__reserve    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_allocator_set    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtAlignedAllocator_btSoftBody_Tetra_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_allocator_get    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_Tetra_16u_'  mkBtAlignedAllocator_btSoftBody_Tetra_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_capacity_set    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_capacity_get    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_data_set    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc , BtSoftBody_TetraClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_data_get    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } ->  `BtSoftBody_Tetra'  mkBtSoftBody_Tetra* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_size_set    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_Tetra__m_size_get    `( BtAlignedObjectArray_btSoftBody_Tetra_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::ePSolver::_>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____new as btAlignedObjectArray_btSoftBody_ePSolver___    {  } -> `BtAlignedObjectArray_btSoftBody_ePSolver___' mkBtAlignedObjectArray_btSoftBody_ePSolver___* #}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____free    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____size as btAlignedObjectArray_btSoftBody_ePSolver____size    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____capacity as btAlignedObjectArray_btSoftBody_ePSolver____capacity    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____init as btAlignedObjectArray_btSoftBody_ePSolver____init    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____swap as btAlignedObjectArray_btSoftBody_ePSolver____swap    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____pop_back as btAlignedObjectArray_btSoftBody_ePSolver____pop_back    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____deallocate as btAlignedObjectArray_btSoftBody_ePSolver____deallocate    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____allocate as btAlignedObjectArray_btSoftBody_ePSolver____allocate    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____initializeFromBuffer as btAlignedObjectArray_btSoftBody_ePSolver____initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____destroy as btAlignedObjectArray_btSoftBody_ePSolver____destroy    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____clear as btAlignedObjectArray_btSoftBody_ePSolver____clear    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____allocSize as btAlignedObjectArray_btSoftBody_ePSolver____allocSize    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____reserve as btAlignedObjectArray_btSoftBody_ePSolver____reserve    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_allocator_set    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc , BtAlignedAllocator_btSoftBody_ePSolver___16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_allocator_get    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_ePSolver___16u_'  mkBtAlignedAllocator_btSoftBody_ePSolver___16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_capacity_set    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_capacity_get    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_size_set    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_ePSolver____m_size_get    `( BtAlignedObjectArray_btSoftBody_ePSolver___Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSoftBody::eVSolver::_>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____new as btAlignedObjectArray_btSoftBody_eVSolver___    {  } -> `BtAlignedObjectArray_btSoftBody_eVSolver___' mkBtAlignedObjectArray_btSoftBody_eVSolver___* #}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____free    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____size as btAlignedObjectArray_btSoftBody_eVSolver____size    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____capacity as btAlignedObjectArray_btSoftBody_eVSolver____capacity    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____init as btAlignedObjectArray_btSoftBody_eVSolver____init    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____swap as btAlignedObjectArray_btSoftBody_eVSolver____swap    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____pop_back as btAlignedObjectArray_btSoftBody_eVSolver____pop_back    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____deallocate as btAlignedObjectArray_btSoftBody_eVSolver____deallocate    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____allocate as btAlignedObjectArray_btSoftBody_eVSolver____allocate    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____initializeFromBuffer as btAlignedObjectArray_btSoftBody_eVSolver____initializeFromBuffer    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____destroy as btAlignedObjectArray_btSoftBody_eVSolver____destroy    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____clear as btAlignedObjectArray_btSoftBody_eVSolver____clear    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____allocSize as btAlignedObjectArray_btSoftBody_eVSolver____allocSize    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____reserve as btAlignedObjectArray_btSoftBody_eVSolver____reserve    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_allocator_set    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc , BtAlignedAllocator_btSoftBody_eVSolver___16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_allocator_get    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSoftBody_eVSolver___16u_'  mkBtAlignedAllocator_btSoftBody_eVSolver___16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_capacity_set    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_capacity_get    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_ownsMemory_set    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_ownsMemory_get    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_size_set    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSoftBody_eVSolver____m_size_get    `( BtAlignedObjectArray_btSoftBody_eVSolver___Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btSolverConstraint>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__new as btAlignedObjectArray_btSolverConstraint_    {  } -> `BtAlignedObjectArray_btSolverConstraint_' mkBtAlignedObjectArray_btSolverConstraint_* #}+{#fun btAlignedObjectArray_btSolverConstraint__free    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__push_back as btAlignedObjectArray_btSolverConstraint__push_back    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__at0 as btAlignedObjectArray_btSolverConstraint__at    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__at0 as btAlignedObjectArray_btSolverConstraint__at0    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__at1 as btAlignedObjectArray_btSolverConstraint__at1    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__size as btAlignedObjectArray_btSolverConstraint__size    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__capacity as btAlignedObjectArray_btSolverConstraint__capacity    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__init as btAlignedObjectArray_btSolverConstraint__init    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__allocate as btAlignedObjectArray_btSolverConstraint__allocate    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__pop_back as btAlignedObjectArray_btSolverConstraint__pop_back    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__deallocate as btAlignedObjectArray_btSolverConstraint__deallocate    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__swap as btAlignedObjectArray_btSolverConstraint__swap    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__initializeFromBuffer as btAlignedObjectArray_btSolverConstraint__initializeFromBuffer    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__expandNonInitializing as btAlignedObjectArray_btSolverConstraint__expandNonInitializing    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__resize as btAlignedObjectArray_btSolverConstraint__resize    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtSolverConstraintClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__destroy as btAlignedObjectArray_btSolverConstraint__destroy    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__copy as btAlignedObjectArray_btSolverConstraint__copy    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtSolverConstraintClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__expand as btAlignedObjectArray_btSolverConstraint__expand    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtSolverConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__clear as btAlignedObjectArray_btSolverConstraint__clear    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__allocSize as btAlignedObjectArray_btSolverConstraint__allocSize    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__reserve as btAlignedObjectArray_btSolverConstraint__reserve    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_allocator_set    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtAlignedAllocator_btSolverConstraint_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_allocator_get    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSolverConstraint_16u_'  mkBtAlignedAllocator_btSolverConstraint_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_size_set    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_size_get    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_capacity_set    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_capacity_get    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_data_set    `( BtAlignedObjectArray_btSolverConstraint_Class bc , BtSolverConstraintClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_data_get    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } ->  `BtSolverConstraint'  mkBtSolverConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_ownsMemory_set    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSolverConstraint__m_ownsMemory_get    `( BtAlignedObjectArray_btSolverConstraint_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btSparseSdf<3>::Cell*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__new as btAlignedObjectArray_btSparseSdf_3__Cell_ptr_    {  } -> `BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_' mkBtAlignedObjectArray_btSparseSdf_3__Cell_ptr_* #}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__free    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__size as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__size    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__capacity as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__capacity    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__init as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__init    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__swap as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__swap    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__pop_back as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__pop_back    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__deallocate as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__deallocate    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocate as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocate    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__initializeFromBuffer as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__destroy as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__destroy    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__clear as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__clear    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocSize as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocSize    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__reserve as btAlignedObjectArray_btSparseSdf_3__Cell_ptr__reserve    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_allocator_set    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc , BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_allocator_get    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_'  mkBtAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_capacity_set    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_capacity_get    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_size_set    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_size_get    `( BtAlignedObjectArray_btSparseSdf_3__Cell_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btTransform>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__new as btAlignedObjectArray_btTransform_    {  } -> `BtAlignedObjectArray_btTransform_' mkBtAlignedObjectArray_btTransform_* #}+{#fun btAlignedObjectArray_btTransform__free    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__push_back as btAlignedObjectArray_btTransform__push_back    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__push_back as btAlignedObjectArray_btTransform__push_back'    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__at0 as btAlignedObjectArray_btTransform__at    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__at0 as btAlignedObjectArray_btTransform__at0    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__at1 as btAlignedObjectArray_btTransform__at1    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__size as btAlignedObjectArray_btTransform__size    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__capacity as btAlignedObjectArray_btTransform__capacity    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__init as btAlignedObjectArray_btTransform__init    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__allocate as btAlignedObjectArray_btTransform__allocate    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__pop_back as btAlignedObjectArray_btTransform__pop_back    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__deallocate as btAlignedObjectArray_btTransform__deallocate    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__swap as btAlignedObjectArray_btTransform__swap    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__initializeFromBuffer as btAlignedObjectArray_btTransform__initializeFromBuffer    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__expandNonInitializing as btAlignedObjectArray_btTransform__expandNonInitializing    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__resize as btAlignedObjectArray_btTransform__resize    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withTransform* `Transform'  peekTransform* -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__resize as btAlignedObjectArray_btTransform__resize'    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, allocaTransform-  `Transform'  peekTransform* -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__destroy as btAlignedObjectArray_btTransform__destroy    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__expand as btAlignedObjectArray_btTransform__expand    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ fillValue+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__expand as btAlignedObjectArray_btTransform__expand'    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ fillValue+, allocaTransform-  `Transform'  peekTransform* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__clear as btAlignedObjectArray_btTransform__clear    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__allocSize as btAlignedObjectArray_btTransform__allocSize    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__reserve as btAlignedObjectArray_btTransform__reserve    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_allocator_set    `( BtAlignedObjectArray_btTransform_Class bc , BtAlignedAllocator_btTransform_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_allocator_get    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btTransform_16u_'  mkBtAlignedAllocator_btTransform_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_size_set    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_size_get    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_capacity_set    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_capacity_get    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_ownsMemory_set    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTransform__m_ownsMemory_get    `( BtAlignedObjectArray_btTransform_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btTriangleInfo>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__new as btAlignedObjectArray_btTriangleInfo_    {  } -> `BtAlignedObjectArray_btTriangleInfo_' mkBtAlignedObjectArray_btTriangleInfo_* #}+{#fun btAlignedObjectArray_btTriangleInfo__free    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__push_back as btAlignedObjectArray_btTriangleInfo__push_back    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__at0 as btAlignedObjectArray_btTriangleInfo__at    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__at0 as btAlignedObjectArray_btTriangleInfo__at0    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__at1 as btAlignedObjectArray_btTriangleInfo__at1    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__size as btAlignedObjectArray_btTriangleInfo__size    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__capacity as btAlignedObjectArray_btTriangleInfo__capacity    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__init as btAlignedObjectArray_btTriangleInfo__init    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__allocate as btAlignedObjectArray_btTriangleInfo__allocate    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__pop_back as btAlignedObjectArray_btTriangleInfo__pop_back    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__deallocate as btAlignedObjectArray_btTriangleInfo__deallocate    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__swap as btAlignedObjectArray_btTriangleInfo__swap    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__initializeFromBuffer as btAlignedObjectArray_btTriangleInfo__initializeFromBuffer    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__expandNonInitializing as btAlignedObjectArray_btTriangleInfo__expandNonInitializing    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__resize as btAlignedObjectArray_btTriangleInfo__resize    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtTriangleInfoClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__destroy as btAlignedObjectArray_btTriangleInfo__destroy    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__copy as btAlignedObjectArray_btTriangleInfo__copy    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtTriangleInfoClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__expand as btAlignedObjectArray_btTriangleInfo__expand    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtTriangleInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__clear as btAlignedObjectArray_btTriangleInfo__clear    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__allocSize as btAlignedObjectArray_btTriangleInfo__allocSize    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__reserve as btAlignedObjectArray_btTriangleInfo__reserve    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_allocator_set    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtAlignedAllocator_btTriangleInfo_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_allocator_get    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btTriangleInfo_16u_'  mkBtAlignedAllocator_btTriangleInfo_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_size_set    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_size_get    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_capacity_set    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_capacity_get    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_data_set    `( BtAlignedObjectArray_btTriangleInfo_Class bc , BtTriangleInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_data_get    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_ownsMemory_set    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTriangleInfo__m_ownsMemory_get    `( BtAlignedObjectArray_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btTypedConstraint*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__new as btAlignedObjectArray_btTypedConstraint_ptr_    {  } -> `BtAlignedObjectArray_btTypedConstraint_ptr_' mkBtAlignedObjectArray_btTypedConstraint_ptr_* #}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__free    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__push_back as btAlignedObjectArray_btTypedConstraint_ptr__push_back    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__at0 as btAlignedObjectArray_btTypedConstraint_ptr__at    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__at0 as btAlignedObjectArray_btTypedConstraint_ptr__at0    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__at1 as btAlignedObjectArray_btTypedConstraint_ptr__at1    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__size as btAlignedObjectArray_btTypedConstraint_ptr__size    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__capacity as btAlignedObjectArray_btTypedConstraint_ptr__capacity    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__init as btAlignedObjectArray_btTypedConstraint_ptr__init    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__allocate as btAlignedObjectArray_btTypedConstraint_ptr__allocate    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__pop_back as btAlignedObjectArray_btTypedConstraint_ptr__pop_back    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__deallocate as btAlignedObjectArray_btTypedConstraint_ptr__deallocate    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__swap as btAlignedObjectArray_btTypedConstraint_ptr__swap    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__initializeFromBuffer as btAlignedObjectArray_btTypedConstraint_ptr__initializeFromBuffer    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__expandNonInitializing as btAlignedObjectArray_btTypedConstraint_ptr__expandNonInitializing    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__resize as btAlignedObjectArray_btTypedConstraint_ptr__resize    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc , BtTypedConstraintClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__destroy as btAlignedObjectArray_btTypedConstraint_ptr__destroy    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__expand as btAlignedObjectArray_btTypedConstraint_ptr__expand    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc , BtTypedConstraintClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtTypedConstraint'  mkBtTypedConstraint* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__clear as btAlignedObjectArray_btTypedConstraint_ptr__clear    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__allocSize as btAlignedObjectArray_btTypedConstraint_ptr__allocSize    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__reserve as btAlignedObjectArray_btTypedConstraint_ptr__reserve    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_allocator_set    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc , BtAlignedAllocator_btTypedConstraint_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_allocator_get    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btTypedConstraint_ptr_16u_'  mkBtAlignedAllocator_btTypedConstraint_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_size_set    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_size_get    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_capacity_set    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_capacity_get    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_btTypedConstraint_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__new as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_    {  } -> `BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_' mkBtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_* #}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__free    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__push_back as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__push_back    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at0 as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at0 as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at0    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at1 as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at1    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__size as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__size    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__capacity as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__capacity    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__init as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__init    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocate as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocate    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__pop_back as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__pop_back    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__deallocate as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__deallocate    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__swap as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__swap    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__initializeFromBuffer as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__initializeFromBuffer    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expandNonInitializing as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expandNonInitializing    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__resize as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__resize    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtTypedConstraint_btConstraintInfo1Class p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__destroy as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__destroy    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__copy as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__copy    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtTypedConstraint_btConstraintInfo1Class p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expand as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expand    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtTypedConstraint_btConstraintInfo1Class p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__clear as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__clear    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocSize as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocSize    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__reserve as btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__reserve    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_allocator_set    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_allocator_get    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_'  mkBtAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_size_set    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_size_get    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_capacity_set    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_capacity_get    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_data_set    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc , BtTypedConstraint_btConstraintInfo1Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_data_get    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } ->  `BtTypedConstraint_btConstraintInfo1'  mkBtTypedConstraint_btConstraintInfo1* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_ownsMemory_set    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_ownsMemory_get    `( BtAlignedObjectArray_btTypedConstraint_btConstraintInfo1_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<btVector3>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__new as btAlignedObjectArray_btVector3_    {  } -> `BtAlignedObjectArray_btVector3_' mkBtAlignedObjectArray_btVector3_* #}+{#fun btAlignedObjectArray_btVector3__free    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__push_back as btAlignedObjectArray_btVector3__push_back    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__push_back as btAlignedObjectArray_btVector3__push_back'    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__at0 as btAlignedObjectArray_btVector3__at    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__at0 as btAlignedObjectArray_btVector3__at0    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__at1 as btAlignedObjectArray_btVector3__at1    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__size as btAlignedObjectArray_btVector3__size    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__capacity as btAlignedObjectArray_btVector3__capacity    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__init as btAlignedObjectArray_btVector3__init    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__swap as btAlignedObjectArray_btVector3__swap    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__pop_back as btAlignedObjectArray_btVector3__pop_back    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__deallocate as btAlignedObjectArray_btVector3__deallocate    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__allocate as btAlignedObjectArray_btVector3__allocate    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__initializeFromBuffer as btAlignedObjectArray_btVector3__initializeFromBuffer    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__expandNonInitializing as btAlignedObjectArray_btVector3__expandNonInitializing    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__destroy as btAlignedObjectArray_btVector3__destroy    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__resize as btAlignedObjectArray_btVector3__resize    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withVec3* `Vec3'  peekVec3* -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__resize as btAlignedObjectArray_btVector3__resize'    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, allocaVec3-  `Vec3'  peekVec3* -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__clear as btAlignedObjectArray_btVector3__clear    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__allocSize as btAlignedObjectArray_btVector3__allocSize    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__expand as btAlignedObjectArray_btVector3__expand    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ fillValue+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__expand as btAlignedObjectArray_btVector3__expand'    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ fillValue+, allocaVec3-  `Vec3'  peekVec3* -- ^ + } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__reserve as btAlignedObjectArray_btVector3__reserve    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_allocator_set    `( BtAlignedObjectArray_btVector3_Class bc , BtAlignedAllocator_btVector3_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_allocator_get    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btVector3_16u_'  mkBtAlignedAllocator_btVector3_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_capacity_set    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_capacity_get    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_ownsMemory_set    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_ownsMemory_get    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_size_set    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btVector3__m_size_get    `( BtAlignedObjectArray_btVector3_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<btWheelInfo>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__new as btAlignedObjectArray_btWheelInfo_    {  } -> `BtAlignedObjectArray_btWheelInfo_' mkBtAlignedObjectArray_btWheelInfo_* #}+{#fun btAlignedObjectArray_btWheelInfo__free    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#246>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__push_back as btAlignedObjectArray_btWheelInfo__push_back    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ _Val+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__at0 as btAlignedObjectArray_btWheelInfo__at    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#141>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__at0 as btAlignedObjectArray_btWheelInfo__at0    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__at1 as btAlignedObjectArray_btWheelInfo__at1    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ n+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__size as btAlignedObjectArray_btWheelInfo__size    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__capacity as btAlignedObjectArray_btWheelInfo__capacity    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__init as btAlignedObjectArray_btWheelInfo__init    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__allocate as btAlignedObjectArray_btWheelInfo__allocate    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__pop_back as btAlignedObjectArray_btWheelInfo__pop_back    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__deallocate as btAlignedObjectArray_btWheelInfo__deallocate    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__swap as btAlignedObjectArray_btWheelInfo__swap    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__initializeFromBuffer as btAlignedObjectArray_btWheelInfo__initializeFromBuffer    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#217>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__expandNonInitializing as btAlignedObjectArray_btWheelInfo__expandNonInitializing    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__resize as btAlignedObjectArray_btWheelInfo__resize    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtWheelInfoClass p1 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ newsize+, withBt* `p1'  -- ^ fillData+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__destroy as btAlignedObjectArray_btWheelInfo__destroy    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__copy as btAlignedObjectArray_btWheelInfo__copy    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtWheelInfoClass p2 )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ start+,  `Int'  -- ^ end+, withBt* `p2'  -- ^ dest+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__expand as btAlignedObjectArray_btWheelInfo__expand    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtWheelInfoClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ fillValue+ } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__clear as btAlignedObjectArray_btWheelInfo__clear    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__allocSize as btAlignedObjectArray_btWheelInfo__allocSize    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__reserve as btAlignedObjectArray_btWheelInfo__reserve    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_allocator_set    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtAlignedAllocator_btWheelInfo_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_allocator_get    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_btWheelInfo_16u_'  mkBtAlignedAllocator_btWheelInfo_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_size_set    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_size_get    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_capacity_set    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_capacity_get    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_data_set    `( BtAlignedObjectArray_btWheelInfo_Class bc , BtWheelInfoClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#52>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_data_get    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtWheelInfo'  mkBtWheelInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_ownsMemory_set    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_btWheelInfo__m_ownsMemory_get    `( BtAlignedObjectArray_btWheelInfo_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<char const*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__new as btAlignedObjectArray_charconst_ptr_    {  } -> `BtAlignedObjectArray_charconst_ptr_' mkBtAlignedObjectArray_charconst_ptr_* #}+{#fun btAlignedObjectArray_charconst_ptr__free    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__size as btAlignedObjectArray_charconst_ptr__size    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__capacity as btAlignedObjectArray_charconst_ptr__capacity    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__init as btAlignedObjectArray_charconst_ptr__init    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__allocate as btAlignedObjectArray_charconst_ptr__allocate    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__pop_back as btAlignedObjectArray_charconst_ptr__pop_back    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__deallocate as btAlignedObjectArray_charconst_ptr__deallocate    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__swap as btAlignedObjectArray_charconst_ptr__swap    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__initializeFromBuffer as btAlignedObjectArray_charconst_ptr__initializeFromBuffer    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__destroy as btAlignedObjectArray_charconst_ptr__destroy    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__clear as btAlignedObjectArray_charconst_ptr__clear    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__allocSize as btAlignedObjectArray_charconst_ptr__allocSize    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__reserve as btAlignedObjectArray_charconst_ptr__reserve    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_allocator_set    `( BtAlignedObjectArray_charconst_ptr_Class bc , BtAlignedAllocator_charconst_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_allocator_get    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_charconst_ptr_16u_'  mkBtAlignedAllocator_charconst_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_size_set    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_size_get    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_capacity_set    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_capacity_get    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_charconst_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<char*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__new as btAlignedObjectArray_char_ptr_    {  } -> `BtAlignedObjectArray_char_ptr_' mkBtAlignedObjectArray_char_ptr_* #}+{#fun btAlignedObjectArray_char_ptr__free    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__size as btAlignedObjectArray_char_ptr__size    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__capacity as btAlignedObjectArray_char_ptr__capacity    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__init as btAlignedObjectArray_char_ptr__init    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__allocate as btAlignedObjectArray_char_ptr__allocate    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__pop_back as btAlignedObjectArray_char_ptr__pop_back    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__deallocate as btAlignedObjectArray_char_ptr__deallocate    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__swap as btAlignedObjectArray_char_ptr__swap    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__initializeFromBuffer as btAlignedObjectArray_char_ptr__initializeFromBuffer    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__destroy as btAlignedObjectArray_char_ptr__destroy    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__clear as btAlignedObjectArray_char_ptr__clear    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__allocSize as btAlignedObjectArray_char_ptr__allocSize    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__reserve as btAlignedObjectArray_char_ptr__reserve    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_allocator_set    `( BtAlignedObjectArray_char_ptr_Class bc , BtAlignedAllocator_char_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_allocator_get    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_char_ptr_16u_'  mkBtAlignedAllocator_char_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_size_set    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_size_get    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_capacity_set    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_capacity_get    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_char_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_char_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<float>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__new as btAlignedObjectArray_float_    {  } -> `BtAlignedObjectArray_float_' mkBtAlignedObjectArray_float_* #}+{#fun btAlignedObjectArray_float__free    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__size as btAlignedObjectArray_float__size    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__capacity as btAlignedObjectArray_float__capacity    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__init as btAlignedObjectArray_float__init    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__swap as btAlignedObjectArray_float__swap    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__pop_back as btAlignedObjectArray_float__pop_back    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__deallocate as btAlignedObjectArray_float__deallocate    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__allocate as btAlignedObjectArray_float__allocate    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__initializeFromBuffer as btAlignedObjectArray_float__initializeFromBuffer    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__destroy as btAlignedObjectArray_float__destroy    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__clear as btAlignedObjectArray_float__clear    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__allocSize as btAlignedObjectArray_float__allocSize    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__reserve as btAlignedObjectArray_float__reserve    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_allocator_set    `( BtAlignedObjectArray_float_Class bc , BtAlignedAllocator_float_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_allocator_get    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_float_16u_'  mkBtAlignedAllocator_float_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_capacity_set    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_capacity_get    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_ownsMemory_set    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_ownsMemory_get    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_size_set    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_float__m_size_get    `( BtAlignedObjectArray_float_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<int>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__new as btAlignedObjectArray_int_    {  } -> `BtAlignedObjectArray_int_' mkBtAlignedObjectArray_int_* #}+{#fun btAlignedObjectArray_int__free    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__size as btAlignedObjectArray_int__size    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__capacity as btAlignedObjectArray_int__capacity    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__init as btAlignedObjectArray_int__init    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__swap as btAlignedObjectArray_int__swap    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__pop_back as btAlignedObjectArray_int__pop_back    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__deallocate as btAlignedObjectArray_int__deallocate    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__allocate as btAlignedObjectArray_int__allocate    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__initializeFromBuffer as btAlignedObjectArray_int__initializeFromBuffer    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__destroy as btAlignedObjectArray_int__destroy    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__clear as btAlignedObjectArray_int__clear    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__allocSize as btAlignedObjectArray_int__allocSize    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__reserve as btAlignedObjectArray_int__reserve    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_allocator_set    `( BtAlignedObjectArray_int_Class bc , BtAlignedAllocator_int_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_allocator_get    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_int_16u_'  mkBtAlignedAllocator_int_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_capacity_set    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_capacity_get    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_ownsMemory_set    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_ownsMemory_get    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_size_set    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_int__m_size_get    `( BtAlignedObjectArray_int_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btAlignedObjectArray<short*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__new as btAlignedObjectArray_short_ptr_    {  } -> `BtAlignedObjectArray_short_ptr_' mkBtAlignedObjectArray_short_ptr_* #}+{#fun btAlignedObjectArray_short_ptr__free    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__size as btAlignedObjectArray_short_ptr__size    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__capacity as btAlignedObjectArray_short_ptr__capacity    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__init as btAlignedObjectArray_short_ptr__init    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__allocate as btAlignedObjectArray_short_ptr__allocate    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__pop_back as btAlignedObjectArray_short_ptr__pop_back    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__deallocate as btAlignedObjectArray_short_ptr__deallocate    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__swap as btAlignedObjectArray_short_ptr__swap    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__initializeFromBuffer as btAlignedObjectArray_short_ptr__initializeFromBuffer    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__destroy as btAlignedObjectArray_short_ptr__destroy    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__clear as btAlignedObjectArray_short_ptr__clear    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__allocSize as btAlignedObjectArray_short_ptr__allocSize    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__reserve as btAlignedObjectArray_short_ptr__reserve    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_allocator_set    `( BtAlignedObjectArray_short_ptr_Class bc , BtAlignedAllocator_short_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_allocator_get    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_short_ptr_16u_'  mkBtAlignedAllocator_short_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_size_set    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_size_get    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_capacity_set    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_capacity_get    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_short_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<short>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__new as btAlignedObjectArray_short_    {  } -> `BtAlignedObjectArray_short_' mkBtAlignedObjectArray_short_* #}+{#fun btAlignedObjectArray_short__free    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__size as btAlignedObjectArray_short__size    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__capacity as btAlignedObjectArray_short__capacity    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__init as btAlignedObjectArray_short__init    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__allocate as btAlignedObjectArray_short__allocate    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__pop_back as btAlignedObjectArray_short__pop_back    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__deallocate as btAlignedObjectArray_short__deallocate    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__swap as btAlignedObjectArray_short__swap    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__initializeFromBuffer as btAlignedObjectArray_short__initializeFromBuffer    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__destroy as btAlignedObjectArray_short__destroy    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__clear as btAlignedObjectArray_short__clear    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__allocSize as btAlignedObjectArray_short__allocSize    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__reserve as btAlignedObjectArray_short__reserve    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_allocator_set    `( BtAlignedObjectArray_short_Class bc , BtAlignedAllocator_short_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_allocator_get    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_short_16u_'  mkBtAlignedAllocator_short_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_size_set    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_size_get    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_capacity_set    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_capacity_get    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_ownsMemory_set    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_short__m_ownsMemory_get    `( BtAlignedObjectArray_short_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<unsigned int>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__new as btAlignedObjectArray_unsignedint_    {  } -> `BtAlignedObjectArray_unsignedint_' mkBtAlignedObjectArray_unsignedint_* #}+{#fun btAlignedObjectArray_unsignedint__free    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__size as btAlignedObjectArray_unsignedint__size    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__capacity as btAlignedObjectArray_unsignedint__capacity    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__init as btAlignedObjectArray_unsignedint__init    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__allocate as btAlignedObjectArray_unsignedint__allocate    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__pop_back as btAlignedObjectArray_unsignedint__pop_back    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__deallocate as btAlignedObjectArray_unsignedint__deallocate    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__swap as btAlignedObjectArray_unsignedint__swap    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__initializeFromBuffer as btAlignedObjectArray_unsignedint__initializeFromBuffer    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__destroy as btAlignedObjectArray_unsignedint__destroy    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__clear as btAlignedObjectArray_unsignedint__clear    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__allocSize as btAlignedObjectArray_unsignedint__allocSize    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__reserve as btAlignedObjectArray_unsignedint__reserve    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_allocator_set    `( BtAlignedObjectArray_unsignedint_Class bc , BtAlignedAllocator_unsignedint_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_allocator_get    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_unsignedint_16u_'  mkBtAlignedAllocator_unsignedint_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_size_set    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_size_get    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_capacity_set    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_capacity_get    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_ownsMemory_set    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedint__m_ownsMemory_get    `( BtAlignedObjectArray_unsignedint_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<unsigned short>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__new as btAlignedObjectArray_unsignedshort_    {  } -> `BtAlignedObjectArray_unsignedshort_' mkBtAlignedObjectArray_unsignedshort_* #}+{#fun btAlignedObjectArray_unsignedshort__free    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__size as btAlignedObjectArray_unsignedshort__size    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__capacity as btAlignedObjectArray_unsignedshort__capacity    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__init as btAlignedObjectArray_unsignedshort__init    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__allocate as btAlignedObjectArray_unsignedshort__allocate    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__pop_back as btAlignedObjectArray_unsignedshort__pop_back    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__deallocate as btAlignedObjectArray_unsignedshort__deallocate    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__swap as btAlignedObjectArray_unsignedshort__swap    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__initializeFromBuffer as btAlignedObjectArray_unsignedshort__initializeFromBuffer    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__destroy as btAlignedObjectArray_unsignedshort__destroy    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__clear as btAlignedObjectArray_unsignedshort__clear    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__allocSize as btAlignedObjectArray_unsignedshort__allocSize    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__reserve as btAlignedObjectArray_unsignedshort__reserve    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_allocator_set    `( BtAlignedObjectArray_unsignedshort_Class bc , BtAlignedAllocator_unsignedshort_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_allocator_get    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_unsignedshort_16u_'  mkBtAlignedAllocator_unsignedshort_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_size_set    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_size_get    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_capacity_set    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_capacity_get    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_ownsMemory_set    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_unsignedshort__m_ownsMemory_get    `( BtAlignedObjectArray_unsignedshort_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btAlignedObjectArray<void*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__new as btAlignedObjectArray_void_ptr_    {  } -> `BtAlignedObjectArray_void_ptr_' mkBtAlignedObjectArray_void_ptr_* #}+{#fun btAlignedObjectArray_void_ptr__free    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#136>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__size as btAlignedObjectArray_void_ptr__size    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#265>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__capacity as btAlignedObjectArray_void_ptr__capacity    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#72>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__init as btAlignedObjectArray_void_ptr__init    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__allocate as btAlignedObjectArray_void_ptr__allocate    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#180>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__pop_back as btAlignedObjectArray_void_ptr__pop_back    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__deallocate as btAlignedObjectArray_void_ptr__deallocate    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#376>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__swap as btAlignedObjectArray_void_ptr__swap    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index0+,  `Int'  -- ^ index1+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#462>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__initializeFromBuffer as btAlignedObjectArray_void_ptr__initializeFromBuffer    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ buffer+,  `Int'  -- ^ size+,  `Int'  -- ^ capacity+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__destroy as btAlignedObjectArray_void_ptr__destroy    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ first+,  `Int'  -- ^ last+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#171>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__clear as btAlignedObjectArray_void_ptr__clear    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__allocSize as btAlignedObjectArray_void_ptr__allocSize    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ size+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#270>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__reserve as btAlignedObjectArray_void_ptr__reserve    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ _Count+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_allocator_set    `( BtAlignedObjectArray_void_ptr_Class bc , BtAlignedAllocator_void_ptr_16u_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#48>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_allocator_get    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedAllocator_void_ptr_16u_'  mkBtAlignedAllocator_void_ptr_16u_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_size_set    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_size_get    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_capacity_set    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_capacity_get    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_ownsMemory_set    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btAlignedObjectArray.cpp?r=2223>+-}+{#fun btAlignedObjectArray_void_ptr__m_ownsMemory_get    `( BtAlignedObjectArray_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btBlock+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btBlock_new as btBlock    {  } -> `BtBlock' mkBtBlock* #}+{#fun btBlock_free    `( BtBlockClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btBlock_previous_set    `( BtBlockClass bc , BtBlockClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#29>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btBlock_previous_get    `( BtBlockClass bc )' =>     { withBt* `bc'  } ->  `BtBlock'  mkBtBlock* #}+-- * btChunk+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#53>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_new as btChunk    {  } -> `BtChunk' mkBtChunk* #}+{#fun btChunk_free    `( BtChunkClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_chunkCode_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#55>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_chunkCode_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_dna_nr_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#58>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_dna_nr_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_length_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_length_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_number_set    `( BtChunkClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_number_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_oldPtr_set    `( BtChunkClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btChunk_m_oldPtr_get    `( BtChunkClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+-- * btClock+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun btClock_new as btClock    {  } -> `BtClock' mkBtClock* #}+{#fun btClock_free    `( BtClockClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#46>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun btClock_reset as btClock_reset    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#50>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun btClock_getTimeMilliseconds as btClock_getTimeMilliseconds    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word64'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuickprof.cpp?r=2223>+-}+{#fun btClock_getTimeMicroseconds as btClock_getTimeMicroseconds    `( BtClockClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word64'   #}+-- * btConvexSeparatingDistanceUtil+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#161>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_new as btConvexSeparatingDistanceUtil    {   `Float' ,  `Float'  } -> `BtConvexSeparatingDistanceUtil' mkBtConvexSeparatingDistanceUtil* #}+{#fun btConvexSeparatingDistanceUtil_free    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#173>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_updateSeparatingDistance as btConvexSeparatingDistanceUtil_updateSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#173>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_updateSeparatingDistance as btConvexSeparatingDistanceUtil_updateSeparatingDistance'    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance as btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_initSeparatingDistance as btConvexSeparatingDistanceUtil_initSeparatingDistance    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ separatingVector+,  `Float'  -- ^ separatingDistance+, withTransform* `Transform'  peekTransform* -- ^ transA+, withTransform* `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#205>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_initSeparatingDistance as btConvexSeparatingDistanceUtil_initSeparatingDistance'    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ separatingVector+,  `Float'  -- ^ separatingDistance+, allocaTransform-  `Transform'  peekTransform* -- ^ transA+, allocaTransform-  `Transform'  peekTransform* -- ^ transB+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_ornA_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , withUnitQuaternion* `UnitQuaternion'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#148>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_ornA_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_ornB_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , withUnitQuaternion* `UnitQuaternion'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#149>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_ornB_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_posA_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_posA_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_posB_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#151>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_posB_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_separatingNormal_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , withVec3* `Vec3'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#153>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_separatingNormal_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' , allocaVec3-  `Vec3'  peekVec3* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_boundingRadiusA_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_boundingRadiusA_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_boundingRadiusB_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_boundingRadiusB_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_separatingDistance_set    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc' ,  `Float'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btConvexSeparatingDistanceUtil_m_separatingDistance_get    `( BtConvexSeparatingDistanceUtilClass bc )' =>     { withBt* `bc'  } ->  `Float'   #}+-- * btDefaultMotionState+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#14>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_new as btDefaultMotionState    {  withTransform* `Transform' , withTransform* `Transform'  } -> `BtDefaultMotionState' mkBtDefaultMotionState* #}+{#fun btDefaultMotionState_free    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_setWorldTransform as btDefaultMotionState_setWorldTransform    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ centerOfMassWorldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#31>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_setWorldTransform as btDefaultMotionState_setWorldTransform'    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ centerOfMassWorldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#24>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_getWorldTransform as btDefaultMotionState_getWorldTransform    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ centerOfMassWorldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#24>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_getWorldTransform as btDefaultMotionState_getWorldTransform'    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ centerOfMassWorldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#9>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_graphicsWorldTrans_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#9>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_graphicsWorldTrans_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#10>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_centerOfMassOffset_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#10>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_centerOfMassOffset_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#11>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_startWorldTrans_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withTransform* `Transform'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#11>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_startWorldTrans_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , allocaTransform-  `Transform'  peekTransform* } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#12>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_userPointer_set    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.h?r=2223#12>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btDefaultMotionState.cpp?r=2223>+-}+{#fun btDefaultMotionState_m_userPointer_get    `( BtDefaultMotionStateClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+-- * btDefaultSerializer+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#377>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_new as btDefaultSerializer    {   `Int'  } -> `BtDefaultSerializer' mkBtDefaultSerializer* #}+{#fun btDefaultSerializer_free    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#472>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_finishSerialization as btDefaultSerializer_finishSerialization    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#461>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_startSerialization as btDefaultSerializer_startSerialization    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#641>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_getSerializationFlags as btDefaultSerializer_getSerializationFlags    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#646>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_setSerializationFlags as btDefaultSerializer_setSerializationFlags    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ flags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#189>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_getReverseType as btDefaultSerializer_getReverseType    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ type+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#541>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_finalizeChunk as btDefaultSerializer_finalizeChunk    `( BtDefaultSerializerClass bc , BtChunkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ chunk+,  `String'  -- ^ structType+,  `Int'  -- ^ chunkCode+, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#200>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_initDNA as btDefaultSerializer_initDNA    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ bdnaOrg+,  `Int'  -- ^ dnalen+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#182>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_writeDNA as btDefaultSerializer_writeDNA    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#536>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_getCurrentBufferSize as btDefaultSerializer_getCurrentBufferSize    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#511>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_getUniquePointer as btDefaultSerializer_getUniquePointer    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#612>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_serializeName as btDefaultSerializer_serializeName    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ name+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#170>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_findPointer as btDefaultSerializer_findPointer    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTypes_set    `( BtDefaultSerializerClass bc , BtAlignedObjectArray_char_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#143>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTypes_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_char_ptr_'  mkBtAlignedObjectArray_char_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mStructs_set    `( BtDefaultSerializerClass bc , BtAlignedObjectArray_short_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#144>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mStructs_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_short_ptr_'  mkBtAlignedObjectArray_short_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTlens_set    `( BtDefaultSerializerClass bc , BtAlignedObjectArray_short_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#145>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTlens_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_short_'  mkBtAlignedObjectArray_short_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mStructReverse_set    `( BtDefaultSerializerClass bc , BtHashMap_btHashInt_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#146>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mStructReverse_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtHashMap_btHashInt_int_'  mkBtHashMap_btHashInt_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTypeLookup_set    `( BtDefaultSerializerClass bc , BtHashMap_btHashString_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_mTypeLookup_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtHashMap_btHashString_int_'  mkBtHashMap_btHashString_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_chunkP_set    `( BtDefaultSerializerClass bc , BtHashMap_btHashPtr_void_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_chunkP_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtHashMap_btHashPtr_void_ptr_'  mkBtHashMap_btHashPtr_void_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_nameMap_set    `( BtDefaultSerializerClass bc , BtHashMap_btHashPtr_charconst_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#152>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_nameMap_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtHashMap_btHashPtr_charconst_ptr_'  mkBtHashMap_btHashPtr_charconst_ptr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_uniquePointers_set    `( BtDefaultSerializerClass bc , BtHashMap_btHashPtr_btPointerUid_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#154>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_uniquePointers_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtHashMap_btHashPtr_btPointerUid_'  mkBtHashMap_btHashPtr_btPointerUid_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_uniqueIdGenerator_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#155>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_uniqueIdGenerator_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_totalSize_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#157>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_totalSize_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_currentSize_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#159>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_currentSize_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_dna_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' , withVoidPtr* `VoidPtr'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#160>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_dna_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#161>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_dnaLength_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#161>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_dnaLength_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_serializationFlags_set    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#163>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_serializationFlags_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_chunkPtrs_set    `( BtDefaultSerializerClass bc , BtAlignedObjectArray_btChunk_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#166>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btDefaultSerializer_m_chunkPtrs_get    `( BtDefaultSerializerClass bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btChunk_ptr_'  mkBtAlignedObjectArray_btChunk_ptr_* #}+-- * btGeometryUtil+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#24>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_new as btGeometryUtil    {  } -> `BtGeometryUtil' mkBtGeometryUtil* #}+{#fun btGeometryUtil_free    `( BtGeometryUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_isPointInsidePlanes as btGeometryUtil_isPointInsidePlanes    `(  BtAlignedObjectArray_btVector3_Class p0 )' =>     {  withBt* `p0'  -- ^ planeEquations+, withVec3* `Vec3'  peekVec3* -- ^ point+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#34>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_isPointInsidePlanes as btGeometryUtil_isPointInsidePlanes'    `(  BtAlignedObjectArray_btVector3_Class p0 )' =>     {  withBt* `p0'  -- ^ planeEquations+, allocaVec3-  `Vec3'  peekVec3* -- ^ point+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#30>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_getVerticesFromPlaneEquations as btGeometryUtil_getVerticesFromPlaneEquations    `(  BtAlignedObjectArray_btVector3_Class p0 , BtAlignedObjectArray_btVector3_Class p1 )' =>     {  withBt* `p0'  -- ^ planeEquations+, withBt* `p1'  -- ^ verticesOut+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_areVerticesBehindPlane as btGeometryUtil_areVerticesBehindPlane    `(  BtAlignedObjectArray_btVector3_Class p1 )' =>     {  withVec3* `Vec3'  peekVec3* -- ^ planeNormal+, withBt* `p1'  -- ^ vertices+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#36>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_areVerticesBehindPlane as btGeometryUtil_areVerticesBehindPlane'    `(  BtAlignedObjectArray_btVector3_Class p1 )' =>     {  allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+, withBt* `p1'  -- ^ vertices+,  `Float'  -- ^ margin+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btGeometryUtil.cpp?r=2223>+-}+{#fun btGeometryUtil_getPlaneEquationsFromVertices as btGeometryUtil_getPlaneEquationsFromVertices    `(  BtAlignedObjectArray_btVector3_Class p0 , BtAlignedObjectArray_btVector3_Class p1 )' =>     {  withBt* `p0'  -- ^ vertices+, withBt* `p1'  -- ^ planeEquationsOut+ } ->  `()'   #}+-- * btHashInt+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_new as btHashInt    {   `Int'  } -> `BtHashInt' mkBtHashInt* #}+{#fun btHashInt_free    `( BtHashIntClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_getUid1 as btHashInt_getUid1    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_getHash as btHashInt_getHash    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#91>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_setUid1 as btHashInt_setUid1    `( BtHashIntClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ uid+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_equals as btHashInt_equals    `( BtHashIntClass bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_m_uid_set    `( BtHashIntClass bc )' =>     { withBt* `bc' ,  `Int'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#80>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashInt_m_uid_get    `( BtHashIntClass bc )' =>     { withBt* `bc'  } ->  `Int'   #}+-- * btHashMap<btHashInt, btTriangleInfo>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__new as btHashMap_btHashInt_btTriangleInfo_    {  } -> `BtHashMap_btHashInt_btTriangleInfo_' mkBtHashMap_btHashInt_btTriangleInfo_* #}+{#fun btHashMap_btHashInt_btTriangleInfo__free    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#269>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__insert as btHashMap_btHashInt_btTriangleInfo__insert    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 , BtTriangleInfoClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__findIndex as btHashMap_btHashInt_btTriangleInfo__findIndex    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__clear as btHashMap_btHashInt_btTriangleInfo__clear    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#384>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__getAtIndex0 as btHashMap_btHashInt_btTriangleInfo__getAtIndex    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#384>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__getAtIndex0 as btHashMap_btHashInt_btTriangleInfo__getAtIndex0    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#391>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__getAtIndex1 as btHashMap_btHashInt_btTriangleInfo__getAtIndex1    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__growTables as btHashMap_btHashInt_btTriangleInfo__growTables    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#402>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__find0 as btHashMap_btHashInt_btTriangleInfo__find    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#402>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__find0 as btHashMap_btHashInt_btTriangleInfo__find0    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#412>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__find1 as btHashMap_btHashInt_btTriangleInfo__find1    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtTriangleInfo'  mkBtTriangleInfo* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__size as btHashMap_btHashInt_btTriangleInfo__size    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_hashTable_set    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_hashTable_get    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_next_set    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_next_get    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_valueArray_set    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtAlignedObjectArray_btTriangleInfo_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_valueArray_get    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btTriangleInfo_'  mkBtAlignedObjectArray_btTriangleInfo_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_keyArray_set    `( BtHashMap_btHashInt_btTriangleInfo_Class bc , BtAlignedObjectArray_btHashInt_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_btTriangleInfo__m_keyArray_get    `( BtHashMap_btHashInt_btTriangleInfo_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashInt_'  mkBtAlignedObjectArray_btHashInt_* #}+-- * btHashMap<btHashInt, int>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__new as btHashMap_btHashInt_int_    {  } -> `BtHashMap_btHashInt_int_' mkBtHashMap_btHashInt_int_* #}+{#fun btHashMap_btHashInt_int__free    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__findIndex as btHashMap_btHashInt_int__findIndex    `( BtHashMap_btHashInt_int_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__clear as btHashMap_btHashInt_int__clear    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__growTables as btHashMap_btHashInt_int__growTables    `( BtHashMap_btHashInt_int_Class bc , BtHashIntClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__size as btHashMap_btHashInt_int__size    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_hashTable_set    `( BtHashMap_btHashInt_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_hashTable_get    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_keyArray_set    `( BtHashMap_btHashInt_int_Class bc , BtAlignedObjectArray_btHashInt_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_keyArray_get    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashInt_'  mkBtAlignedObjectArray_btHashInt_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_next_set    `( BtHashMap_btHashInt_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_next_get    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_valueArray_set    `( BtHashMap_btHashInt_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashInt_int__m_valueArray_get    `( BtHashMap_btHashInt_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+-- * btHashMap<btHashPtr, btPointerUid>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__new as btHashMap_btHashPtr_btPointerUid_    {  } -> `BtHashMap_btHashPtr_btPointerUid_' mkBtHashMap_btHashPtr_btPointerUid_* #}+{#fun btHashMap_btHashPtr_btPointerUid__free    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#269>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__insert as btHashMap_btHashPtr_btPointerUid__insert    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 , BtPointerUidClass p1 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+, withBt* `p1'  -- ^ value+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__findIndex as btHashMap_btHashPtr_btPointerUid__findIndex    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__clear as btHashMap_btHashPtr_btPointerUid__clear    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#384>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__getAtIndex0 as btHashMap_btHashPtr_btPointerUid__getAtIndex    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#384>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__getAtIndex0 as btHashMap_btHashPtr_btPointerUid__getAtIndex0    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#391>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__getAtIndex1 as btHashMap_btHashPtr_btPointerUid__getAtIndex1    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ index+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__growTables as btHashMap_btHashPtr_btPointerUid__growTables    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#402>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__find0 as btHashMap_btHashPtr_btPointerUid__find    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#402>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__find0 as btHashMap_btHashPtr_btPointerUid__find0    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#412>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__find1 as btHashMap_btHashPtr_btPointerUid__find1    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `BtPointerUid'  mkBtPointerUid* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__size as btHashMap_btHashPtr_btPointerUid__size    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_hashTable_set    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_hashTable_get    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_keyArray_set    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtAlignedObjectArray_btHashPtr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_keyArray_get    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashPtr_'  mkBtAlignedObjectArray_btHashPtr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_next_set    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_next_get    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_valueArray_set    `( BtHashMap_btHashPtr_btPointerUid_Class bc , BtAlignedObjectArray_btPointerUid_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_btPointerUid__m_valueArray_get    `( BtHashMap_btHashPtr_btPointerUid_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btPointerUid_'  mkBtAlignedObjectArray_btPointerUid_* #}+-- * btHashMap<btHashPtr, char const*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__new as btHashMap_btHashPtr_charconst_ptr_    {  } -> `BtHashMap_btHashPtr_charconst_ptr_' mkBtHashMap_btHashPtr_charconst_ptr_* #}+{#fun btHashMap_btHashPtr_charconst_ptr__free    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__findIndex as btHashMap_btHashPtr_charconst_ptr__findIndex    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__clear as btHashMap_btHashPtr_charconst_ptr__clear    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__growTables as btHashMap_btHashPtr_charconst_ptr__growTables    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__size as btHashMap_btHashPtr_charconst_ptr__size    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_hashTable_set    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_hashTable_get    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_keyArray_set    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtAlignedObjectArray_btHashPtr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_keyArray_get    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashPtr_'  mkBtAlignedObjectArray_btHashPtr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_next_set    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_next_get    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_valueArray_set    `( BtHashMap_btHashPtr_charconst_ptr_Class bc , BtAlignedObjectArray_charconst_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_charconst_ptr__m_valueArray_get    `( BtHashMap_btHashPtr_charconst_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_charconst_ptr_'  mkBtAlignedObjectArray_charconst_ptr_* #}+-- * btHashMap<btHashPtr, void*>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__new as btHashMap_btHashPtr_void_ptr_    {  } -> `BtHashMap_btHashPtr_void_ptr_' mkBtHashMap_btHashPtr_void_ptr_* #}+{#fun btHashMap_btHashPtr_void_ptr__free    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__findIndex as btHashMap_btHashPtr_void_ptr__findIndex    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__clear as btHashMap_btHashPtr_void_ptr__clear    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__growTables as btHashMap_btHashPtr_void_ptr__growTables    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__size as btHashMap_btHashPtr_void_ptr__size    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_hashTable_set    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_hashTable_get    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_keyArray_set    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtAlignedObjectArray_btHashPtr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_keyArray_get    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashPtr_'  mkBtAlignedObjectArray_btHashPtr_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_next_set    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_next_get    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_valueArray_set    `( BtHashMap_btHashPtr_void_ptr_Class bc , BtAlignedObjectArray_void_ptr_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashPtr_void_ptr__m_valueArray_get    `( BtHashMap_btHashPtr_void_ptr_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_void_ptr_'  mkBtAlignedObjectArray_void_ptr_* #}+-- * btHashMap<btHashString, int>+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#221>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__new as btHashMap_btHashString_int_    {  } -> `BtHashMap_btHashString_int_' mkBtHashMap_btHashString_int_* #}+{#fun btHashMap_btHashString_int__free    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#423>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__findIndex as btHashMap_btHashString_int__findIndex    `( BtHashMap_btHashString_int_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ key+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#440>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__clear as btHashMap_btHashString_int__clear    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#230>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__growTables as btHashMap_btHashString_int__growTables    `( BtHashMap_btHashString_int_Class bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ arg0+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#379>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__size as btHashMap_btHashString_int__size    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_hashTable_set    `( BtHashMap_btHashString_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#224>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_hashTable_get    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_keyArray_set    `( BtHashMap_btHashString_int_Class bc , BtAlignedObjectArray_btHashString_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#228>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_keyArray_get    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_btHashString_'  mkBtAlignedObjectArray_btHashString_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_next_set    `( BtHashMap_btHashString_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#225>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_next_get    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_valueArray_set    `( BtHashMap_btHashString_int_Class bc , BtAlignedObjectArray_int_Class a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#227>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashMap_btHashString_int__m_valueArray_get    `( BtHashMap_btHashString_int_Class bc )' =>     { withBt* `bc'  } ->  `BtAlignedObjectArray_int_'  mkBtAlignedObjectArray_int_* #}+-- * btHashPtr+{#fun btHashPtr_free    `( BtHashPtrClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashPtr_getHash as btHashPtr_getHash    `( BtHashPtrClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#133>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashPtr_equals as btHashPtr_equals    `( BtHashPtrClass bc , BtHashPtrClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+-- * btHashString+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#33>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_new as btHashString    {   `String'  } -> `BtHashString' mkBtHashString* #}+{#fun btHashString_free    `( BtHashStringClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#28>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_getHash as btHashString_getHash    `( BtHashStringClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#66>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_equals as btHashString_equals    `( BtHashStringClass bc , BtHashStringClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `Bool'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#51>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_portableStringCompare as btHashString_portableStringCompare    `( BtHashStringClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ src+,  `String'  -- ^ dst+ } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#26>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_m_hash_set    `( BtHashStringClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#26>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_m_hash_get    `( BtHashStringClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_m_string_set    `( BtHashStringClass bc )' =>     { withBt* `bc' ,  `String'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.h?r=2223#25>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btHashMap.cpp?r=2223>+-}+{#fun btHashString_m_string_get    `( BtHashStringClass bc )' =>     { withBt* `bc'  } ->  `String'   #}+-- * btIDebugDraw+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_draw3dText as btIDebugDraw_draw3dText    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ location+,  `String'  -- ^ textString+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_draw3dText as btIDebugDraw_draw3dText'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ location+,  `String'  -- ^ textString+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ bbMin+, withVec3* `Vec3'  peekVec3* -- ^ bbMax+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMax+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ bbMin+, withVec3* `Vec3'  peekVec3* -- ^ bbMax+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#282>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox0 as btIDebugDraw_drawBox0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMax+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox1 as btIDebugDraw_drawBox1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ bbMin+, withVec3* `Vec3'  peekVec3* -- ^ bbMax+, withTransform* `Transform'  peekTransform* -- ^ trans+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#297>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawBox1 as btIDebugDraw_drawBox1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMin+, allocaVec3-  `Vec3'  peekVec3* -- ^ bbMax+, allocaTransform-  `Transform'  peekTransform* -- ^ trans+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCone as btIDebugDraw_drawCone    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ height+,  `Int'  -- ^ upAxis+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#375>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCone as btIDebugDraw_drawCone'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ height+,  `Int'  -- ^ upAxis+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCapsule as btIDebugDraw_drawCapsule    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ halfHeight+,  `Int'  -- ^ upAxis+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#313>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCapsule as btIDebugDraw_drawCapsule'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ halfHeight+,  `Int'  -- ^ upAxis+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawArc as btIDebugDraw_drawArc    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ center+, withVec3* `Vec3'  peekVec3* -- ^ normal+, withVec3* `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ radiusA+,  `Float'  -- ^ radiusB+,  `Float'  -- ^ minAngle+,  `Float'  -- ^ maxAngle+, withVec3* `Vec3'  peekVec3* -- ^ color+,  `Bool'  -- ^ drawSect+,  `Float'  -- ^ stepDegrees+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#156>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawArc as btIDebugDraw_drawArc'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ center+, allocaVec3-  `Vec3'  peekVec3* -- ^ normal+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ radiusA+,  `Float'  -- ^ radiusB+,  `Float'  -- ^ minAngle+,  `Float'  -- ^ maxAngle+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+,  `Bool'  -- ^ drawSect+,  `Float'  -- ^ stepDegrees+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#356>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCylinder as btIDebugDraw_drawCylinder    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ halfHeight+,  `Int'  -- ^ upAxis+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#356>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawCylinder as btIDebugDraw_drawCylinder'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+,  `Float'  -- ^ halfHeight+,  `Int'  -- ^ upAxis+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_reportErrorWarning as btIDebugDraw_reportErrorWarning    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ warningString+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v0+, withVec3* `Vec3'  peekVec3* -- ^ v1+, withVec3* `Vec3'  peekVec3* -- ^ v2+, withVec3* `Vec3'  peekVec3* -- ^ arg3+, withVec3* `Vec3'  peekVec3* -- ^ arg4+, withVec3* `Vec3'  peekVec3* -- ^ arg5+, withVec3* `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ alpha+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v0+, allocaVec3-  `Vec3'  peekVec3* -- ^ v1+, allocaVec3-  `Vec3'  peekVec3* -- ^ v2+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg3+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg4+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg5+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ alpha+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v0+, withVec3* `Vec3'  peekVec3* -- ^ v1+, withVec3* `Vec3'  peekVec3* -- ^ v2+, withVec3* `Vec3'  peekVec3* -- ^ arg3+, withVec3* `Vec3'  peekVec3* -- ^ arg4+, withVec3* `Vec3'  peekVec3* -- ^ arg5+, withVec3* `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ alpha+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#97>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle0 as btIDebugDraw_drawTriangle0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v0+, allocaVec3-  `Vec3'  peekVec3* -- ^ v1+, allocaVec3-  `Vec3'  peekVec3* -- ^ v2+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg3+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg4+, allocaVec3-  `Vec3'  peekVec3* -- ^ arg5+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ alpha+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle1 as btIDebugDraw_drawTriangle1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ v0+, withVec3* `Vec3'  peekVec3* -- ^ v1+, withVec3* `Vec3'  peekVec3* -- ^ v2+, withVec3* `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ arg4+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTriangle1 as btIDebugDraw_drawTriangle1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ v0+, allocaVec3-  `Vec3'  peekVec3* -- ^ v1+, allocaVec3-  `Vec3'  peekVec3* -- ^ v2+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ arg4+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#116>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_getDebugMode as btIDebugDraw_getDebugMode    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#54>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine0 as btIDebugDraw_drawLine0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine1 as btIDebugDraw_drawLine1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ fromColor+, withVec3* `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#56>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawLine1 as btIDebugDraw_drawLine1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ fromColor+, allocaVec3-  `Vec3'  peekVec3* -- ^ toColor+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTransform as btIDebugDraw_drawTransform    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ transform+,  `Float'  -- ^ orthoLen+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#147>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawTransform as btIDebugDraw_drawTransform'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ transform+,  `Float'  -- ^ orthoLen+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawAabb as btIDebugDraw_drawAabb    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ from+, withVec3* `Vec3'  peekVec3* -- ^ to+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#118>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawAabb as btIDebugDraw_drawAabb'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ from+, allocaVec3-  `Vec3'  peekVec3* -- ^ to+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#400>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawPlane as btIDebugDraw_drawPlane    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ planeNormal+,  `Float'  -- ^ planeConst+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#400>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawPlane as btIDebugDraw_drawPlane'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ planeNormal+,  `Float'  -- ^ planeConst+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawContactPoint as btIDebugDraw_drawContactPoint    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ PointOnB+, withVec3* `Vec3'  peekVec3* -- ^ normalOnB+,  `Float'  -- ^ distance+,  `Int'  -- ^ lifeTime+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#108>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawContactPoint as btIDebugDraw_drawContactPoint'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ PointOnB+, allocaVec3-  `Vec3'  peekVec3* -- ^ normalOnB+,  `Float'  -- ^ distance+,  `Int'  -- ^ lifeTime+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#114>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_setDebugMode as btIDebugDraw_setDebugMode    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ debugMode+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#181>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSpherePatch as btIDebugDraw_drawSpherePatch    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ center+, withVec3* `Vec3'  peekVec3* -- ^ up+, withVec3* `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ radius+,  `Float'  -- ^ minTh+,  `Float'  -- ^ maxTh+,  `Float'  -- ^ minPs+,  `Float'  -- ^ maxPs+, withVec3* `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ stepDegrees+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#181>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSpherePatch as btIDebugDraw_drawSpherePatch'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ center+, allocaVec3-  `Vec3'  peekVec3* -- ^ up+, allocaVec3-  `Vec3'  peekVec3* -- ^ axis+,  `Float'  -- ^ radius+,  `Float'  -- ^ minTh+,  `Float'  -- ^ maxTh+,  `Float'  -- ^ minPs+,  `Float'  -- ^ maxPs+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+,  `Float'  -- ^ stepDegrees+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere0    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+, withTransform* `Transform'  peekTransform* -- ^ transform+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#62>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere0 as btIDebugDraw_drawSphere0'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ radius+, allocaTransform-  `Transform'  peekTransform* -- ^ transform+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere1 as btIDebugDraw_drawSphere1    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, withVec3* `Vec3'  peekVec3* -- ^ p+,  `Float'  -- ^ radius+, withVec3* `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btIDebugDraw.cpp?r=2223>+-}+{#fun btIDebugDraw_drawSphere1 as btIDebugDraw_drawSphere1'    `( BtIDebugDrawClass bc )' =>     { withBt* `bc'  -- ^ +, allocaVec3-  `Vec3'  peekVec3* -- ^ p+,  `Float'  -- ^ radius+, allocaVec3-  `Vec3'  peekVec3* -- ^ color+ } ->  `()'   #}+-- * btMatrix3x3DoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.h?r=2223#732>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.cpp?r=2223>+-}+{#fun btMatrix3x3DoubleData_new as btMatrix3x3DoubleData    {  } -> `BtMatrix3x3DoubleData' mkBtMatrix3x3DoubleData* #}+{#fun btMatrix3x3DoubleData_free    `( BtMatrix3x3DoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btMatrix3x3FloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.h?r=2223#726>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMatrix3x3.cpp?r=2223>+-}+{#fun btMatrix3x3FloatData_new as btMatrix3x3FloatData    {  } -> `BtMatrix3x3FloatData' mkBtMatrix3x3FloatData* #}+{#fun btMatrix3x3FloatData_free    `( BtMatrix3x3FloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btMotionState+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>+-}+{#fun btMotionState_setWorldTransform as btMotionState_setWorldTransform    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#35>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>+-}+{#fun btMotionState_setWorldTransform as btMotionState_setWorldTransform'    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>+-}+{#fun btMotionState_getWorldTransform as btMotionState_getWorldTransform    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, withTransform* `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.h?r=2223#32>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btMotionState.cpp?r=2223>+-}+{#fun btMotionState_getWorldTransform as btMotionState_getWorldTransform'    `( BtMotionStateClass bc )' =>     { withBt* `bc'  -- ^ +, allocaTransform-  `Transform'  peekTransform* -- ^ worldTrans+ } ->  `()'   #}+-- * btPointerUid+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btPointerUid_new as btPointerUid    {  } -> `BtPointerUid' mkBtPointerUid* #}+{#fun btPointerUid_free    `( BtPointerUidClass bc )' =>     { withBt* `bc'  } -> `()' #}+-- * btQuadWord+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#129>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_new0 as btQuadWord0    {  } -> `BtQuadWord' mkBtQuadWord* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#139>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_new1 as btQuadWord1    {   `Float' ,  `Float' ,  `Float'  } -> `BtQuadWord' mkBtQuadWord* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#150>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_new2 as btQuadWord2    {   `Float' ,  `Float' ,  `Float' ,  `Float'  } -> `BtQuadWord' mkBtQuadWord* #}+{#fun btQuadWord_free    `( BtQuadWordClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#168>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setMin as btQuadWord_setMin    `( BtQuadWordClass bc , BtQuadWordClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setValue0 as btQuadWord_setValue    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ x+,  `Float'  -- ^ y+,  `Float'  -- ^ z+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setValue0 as btQuadWord_setValue0    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ x+,  `Float'  -- ^ y+,  `Float'  -- ^ z+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#121>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setValue1 as btQuadWord_setValue1    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ x+,  `Float'  -- ^ y+,  `Float'  -- ^ z+,  `Float'  -- ^ w+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#158>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setMax as btQuadWord_setMax    `( BtQuadWordClass bc , BtQuadWordClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ other+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#57>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_getX as btQuadWord_getX    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#59>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_getY as btQuadWord_getY    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#61>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_getZ as btQuadWord_getZ    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#69>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setW as btQuadWord_setW    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ w+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#77>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_w as btQuadWord_w    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#73>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_y as btQuadWord_y    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#71>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_x as btQuadWord_x    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#75>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_z as btQuadWord_z    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Float'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setX as btQuadWord_setX    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ x+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#65>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setY as btQuadWord_setY    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ y+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.h?r=2223#67>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btQuadWord.cpp?r=2223>+-}+{#fun btQuadWord_setZ as btQuadWord_setZ    `( BtQuadWordClass bc )' =>     { withBt* `bc'  -- ^ +,  `Float'  -- ^ z+ } ->  `()'   #}+-- * btSerializer+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#100>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_setSerializationFlags as btSerializer_setSerializationFlags    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `Int'  -- ^ flags+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#78>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_getCurrentBufferSize as btSerializer_getCurrentBufferSize    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#88>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_startSerialization as btSerializer_startSerialization    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#98>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_getSerializationFlags as btSerializer_getSerializationFlags    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#90>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_finishSerialization as btSerializer_finishSerialization    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#86>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_getUniquePointer as btSerializer_getUniquePointer    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `VoidPtr'  mkVoidPtr* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_finalizeChunk as btSerializer_finalizeChunk    `( BtSerializerClass bc , BtChunkClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ chunk+,  `String'  -- ^ structType+,  `Int'  -- ^ chunkCode+, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#96>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_serializeName as btSerializer_serializeName    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ +,  `String'  -- ^ ptr+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.h?r=2223#84>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btSerializer.cpp?r=2223>+-}+{#fun btSerializer_findPointer as btSerializer_findPointer    `( BtSerializerClass bc )' =>     { withBt* `bc'  -- ^ +, withVoidPtr* `VoidPtr'  -- ^ oldPtr+ } ->  `VoidPtr'  mkVoidPtr* #}+-- * btStackAlloc+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#38>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_new as btStackAlloc    {   `Word32'  } -> `BtStackAlloc' mkBtStackAlloc* #}+{#fun btStackAlloc_free    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#41>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_create as btStackAlloc_create    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ +,  `Word32'  -- ^ size+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#101>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_ctor as btStackAlloc_ctor    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#47>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_destroy as btStackAlloc_destroy    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#81>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_beginBlock as btStackAlloc_beginBlock    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `BtBlock'  mkBtBlock* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#63>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_getAvailableMemory as btStackAlloc_getAvailableMemory    `( BtStackAllocClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#89>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_endBlock as btStackAlloc_endBlock    `( BtStackAllocClass bc , BtBlockClass p0 )' =>     { withBt* `bc'  -- ^ +, withBt* `p0'  -- ^ block+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_totalsize_set    `( BtStackAllocClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#110>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_totalsize_get    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_usedsize_set    `( BtStackAllocClass bc )' =>     { withBt* `bc' ,  `Word32'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#111>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_usedsize_get    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } ->  `Word32'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_current_set    `( BtStackAllocClass bc , BtBlockClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_current_get    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } ->  `BtBlock'  mkBtBlock* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_ischild_set    `( BtStackAllocClass bc )' =>     { withBt* `bc' ,  `Bool'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.h?r=2223#113>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btStackAlloc.cpp?r=2223>+-}+{#fun btStackAlloc_ischild_get    `( BtStackAllocClass bc )' =>     { withBt* `bc'  } ->  `Bool'   #}+-- * btTransformDoubleData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#262>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformDoubleData_new as btTransformDoubleData    {  } -> `BtTransformDoubleData' mkBtTransformDoubleData* #}+{#fun btTransformDoubleData_free    `( BtTransformDoubleDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#263>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformDoubleData_m_basis_set    `( BtTransformDoubleDataClass bc , BtMatrix3x3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#263>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformDoubleData_m_basis_get    `( BtTransformDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtMatrix3x3DoubleData'  mkBtMatrix3x3DoubleData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformDoubleData_m_origin_set    `( BtTransformDoubleDataClass bc , BtVector3DoubleDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#264>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformDoubleData_m_origin_get    `( BtTransformDoubleDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3DoubleData'  mkBtVector3DoubleData* #}+-- * btTransformFloatData+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#256>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformFloatData_new as btTransformFloatData    {  } -> `BtTransformFloatData' mkBtTransformFloatData* #}+{#fun btTransformFloatData_free    `( BtTransformFloatDataClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformFloatData_m_basis_set    `( BtTransformFloatDataClass bc , BtMatrix3x3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#257>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformFloatData_m_basis_get    `( BtTransformFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtMatrix3x3FloatData'  mkBtMatrix3x3FloatData* #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformFloatData_m_origin_set    `( BtTransformFloatDataClass bc , BtVector3FloatDataClass a )' =>     { withBt* `bc' , withBt* `a'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.h?r=2223#258>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransform.cpp?r=2223>+-}+{#fun btTransformFloatData_m_origin_get    `( BtTransformFloatDataClass bc )' =>     { withBt* `bc'  } ->  `BtVector3FloatData'  mkBtVector3FloatData* #}+-- * btTransformUtil+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#39>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_new as btTransformUtil    {  } -> `BtTransformUtil' mkBtTransformUtil* #}+{#fun btTransformUtil_free    `( BtTransformUtilClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_calculateVelocity as btTransformUtil_calculateVelocity    `( )' =>     {  withTransform* `Transform'  peekTransform* -- ^ transform0+, withTransform* `Transform'  peekTransform* -- ^ transform1+,  `Float'  -- ^ timeStep+, withVec3* `Vec3'  peekVec3* -- ^ linVel+, withVec3* `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#112>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_calculateVelocity as btTransformUtil_calculateVelocity'    `( )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ transform0+, allocaTransform-  `Transform'  peekTransform* -- ^ transform1+,  `Float'  -- ^ timeStep+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVel+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_integrateTransform as btTransformUtil_integrateTransform    `( )' =>     {  withTransform* `Transform'  peekTransform* -- ^ curTrans+, withVec3* `Vec3'  peekVec3* -- ^ linvel+, withVec3* `Vec3'  peekVec3* -- ^ angvel+,  `Float'  -- ^ timeStep+, withTransform* `Transform'  peekTransform* -- ^ predictedTransform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#43>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_integrateTransform as btTransformUtil_integrateTransform'    `( )' =>     {  allocaTransform-  `Transform'  peekTransform* -- ^ curTrans+, allocaVec3-  `Vec3'  peekVec3* -- ^ linvel+, allocaVec3-  `Vec3'  peekVec3* -- ^ angvel+,  `Float'  -- ^ timeStep+, allocaTransform-  `Transform'  peekTransform* -- ^ predictedTransform+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_calculateVelocityQuaternion as btTransformUtil_calculateVelocityQuaternion    `( )' =>     {  withVec3* `Vec3'  peekVec3* -- ^ pos0+, withVec3* `Vec3'  peekVec3* -- ^ pos1+, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ orn0+, withUnitQuaternion* `UnitQuaternion'  peekUnitQuaternion* -- ^ orn1+,  `Float'  -- ^ timeStep+, withVec3* `Vec3'  peekVec3* -- ^ linVel+, withVec3* `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.h?r=2223#82>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btTransformUtil.cpp?r=2223>+-}+{#fun btTransformUtil_calculateVelocityQuaternion as btTransformUtil_calculateVelocityQuaternion'    `( )' =>     {  allocaVec3-  `Vec3'  peekVec3* -- ^ pos0+, allocaVec3-  `Vec3'  peekVec3* -- ^ pos1+, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ orn0+, allocaUnitQuaternion-  `UnitQuaternion'  peekUnitQuaternion* -- ^ orn1+,  `Float'  -- ^ timeStep+, allocaVec3-  `Vec3'  peekVec3* -- ^ linVel+, allocaVec3-  `Vec3'  peekVec3* -- ^ angVel+ } ->  `()'   #}+-- * btTypedObject+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.h?r=2223#512>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.cpp?r=2223>+-}+{#fun btTypedObject_new as btTypedObject    {   `Int'  } -> `BtTypedObject' mkBtTypedObject* #}+{#fun btTypedObject_free    `( BtTypedObjectClass bc )' =>     { withBt* `bc'  } -> `()' #}+{- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.h?r=2223#517>+     <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.cpp?r=2223>+-}+{#fun btTypedObject_getObjectType as btTypedObject_getObjectType    `( BtTypedObjectClass bc )' =>     { withBt* `bc'  -- ^ + } ->  `Int'   #} {- | <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.h?r=2223#516>      <http://code.google.com/p/bullet/source/browse/trunk/src/LinearMath/btScalar.cpp?r=2223> -}
Physics/Bullet/Raw/Types.hs view
@@ -1,4 +1,28 @@-module Physics.Bullet.Raw.Types where+module Physics.Bullet.Raw.Types(+    Transform(..),+    allocaVec3,+    withVec3,+    pokeVec3,+    peekVec3,+    allocaVec4,+    withVec4,+    pokeVec4,+    peekVec4,+    allocaUnitQuaternion,+    withUnitQuaternion,+    pokeUnitQuaternion,+    peekUnitQuaternion,+    allocaMat3,+    withMat3,+    pokeMat3,+    peekMat3,+    allocaTransform,+    withTransform,+    pokeTransform,+    peekTransform,+    module Data.Vect.Float,+    module Data.Vect.Float.Util.Quaternion+    ) where  import Foreign.Marshal.Alloc import Foreign.Marshal.Array@@ -6,108 +30,103 @@ import Foreign.Storable import Foreign.Ptr -type Scalar     = Float-data Vector3    = Vector3 !Scalar !Scalar !Scalar-    deriving Show-data Vector4    = Vector4 !Scalar !Scalar !Scalar !Scalar-    deriving Show-data Matrix3x3  = Matrix3x3 !Vector3 !Vector3 !Vector3-    deriving Show-data Quaternion = Quaternion !Scalar !Scalar !Scalar !Scalar-    deriving Show-data Transform  = Transform !Matrix3x3 !Vector3-    deriving Show+import Data.Vect.Float+import Data.Vect.Float.Instances+import Data.Vect.Float.Util.Quaternion --- Vector3-allocaVector3 :: (Storable a) => (Ptr a -> IO b) -> IO b-allocaVector3 = allocaBytes 12+data Transform  = Transform !Mat3 !Vec3+    deriving (Show,Eq) -withVector3 :: Vector3 -> (Ptr a -> IO  b) -> IO  b-withVector3 v f = allocaVector3 $ \p -> do-    pokeVector3 v p+-- Vec3+allocaVec3 :: (Storable a) => (Ptr a -> IO b) -> IO b+allocaVec3 = allocaBytes 12++withVec3 :: Vec3 -> (Ptr a -> IO  b) -> IO  b+withVec3 v f = allocaVec3 $ \p -> do+    pokeVec3 v p     f $ castPtr p -pokeVector3 (Vector3 x y z) p = do+pokeVec3 (Vec3 x y z) p = do     pokeElemOff p 0 x      pokeElemOff p 1 y     pokeElemOff p 2 z -peekVector3 :: Ptr a -> IO Vector3-peekVector3 p' = do+peekVec3 :: Ptr a -> IO Vec3+peekVec3 p' = do     let p = castPtr p'     x <- peekElemOff p 0     y <- peekElemOff p 1     z <- peekElemOff p 2-    return $ Vector3 x y z+    return $ Vec3 x y z --- Vector4-allocaVector4 :: (Storable a) => (Ptr a -> IO b) -> IO b-allocaVector4 = allocaBytes 16+-- Vec4+allocaVec4 :: (Storable a) => (Ptr a -> IO b) -> IO b+allocaVec4 = allocaBytes 16 -withVector4 :: Vector4 -> (Ptr a -> IO  b) -> IO  b-withVector4 v f = allocaVector4 $ \p -> do-    pokeVector4 v p+withVec4 :: Vec4 -> (Ptr a -> IO  b) -> IO  b+withVec4 v f = allocaVec4 $ \p -> do+    pokeVec4 v p     f $ castPtr p -pokeVector4 (Vector4 x y z w) p = do+pokeVec4 (Vec4 x y z w) p = do     pokeElemOff p 0 x      pokeElemOff p 1 y     pokeElemOff p 2 z     pokeElemOff p 3 w -peekVector4 :: Ptr a -> IO Vector4-peekVector4 p' = do+peekVec4 :: Ptr a -> IO Vec4+peekVec4 p' = do     let p = castPtr p'     x <- peekElemOff p 0     y <- peekElemOff p 1     z <- peekElemOff p 2     w <- peekElemOff p 3-    return $ Vector4 x y z w+    return $ Vec4 x y z w --- Quaternion-allocaQuaternion :: (Storable a) => (Ptr a -> IO b) -> IO b-allocaQuaternion = allocaBytes 16+-- UnitQuaternion+allocaUnitQuaternion :: (Storable a) => (Ptr a -> IO b) -> IO b+allocaUnitQuaternion = allocaBytes 16 -withQuaternion :: Quaternion -> (Ptr a -> IO  b) -> IO  b-withQuaternion v f = allocaQuaternion $ \p -> do-    pokeQuaternion v p+withUnitQuaternion :: UnitQuaternion -> (Ptr a -> IO  b) -> IO  b+withUnitQuaternion v f = allocaUnitQuaternion $ \p -> do+    pokeUnitQuaternion v p     f $ castPtr p -pokeQuaternion (Quaternion x y z w) p = do+pokeUnitQuaternion (U (Vec4 x y z w)) p = do     pokeElemOff p 0 x      pokeElemOff p 1 y     pokeElemOff p 2 z     pokeElemOff p 3 w -peekQuaternion :: Ptr a -> IO Quaternion-peekQuaternion p' = do+peekUnitQuaternion :: Ptr a -> IO UnitQuaternion+peekUnitQuaternion p' = do     let p = castPtr p'     x <- peekElemOff p 0     y <- peekElemOff p 1     z <- peekElemOff p 2     w <- peekElemOff p 3-    return $ Quaternion x y z w+    return $ mkU $ Vec4 x y z w --- Matrix3x3-allocaMatrix3x3 :: (Storable a) => (Ptr a -> IO b) -> IO b-allocaMatrix3x3 = allocaBytes 36+-- Mat3+allocaMat3 :: (Storable a) => (Ptr a -> IO b) -> IO b+allocaMat3 = allocaBytes 36 -withMatrix3x3 :: Matrix3x3 -> (Ptr a -> IO  b) -> IO  b-withMatrix3x3 v f = allocaMatrix3x3 $ \p -> do-    pokeMatrix3x3 v p+withMat3 :: Mat3 -> (Ptr a -> IO  b) -> IO  b+withMat3 v f = allocaMat3 $ \p -> do+    pokeMat3 v p     f $ castPtr p -pokeMatrix3x3 (Matrix3x3 a b c) p = do-    pokeVector3 a p-    pokeVector3 b $ plusPtr p 12-    pokeVector3 c $ plusPtr p 24+pokeMat3 (Mat3 a b c) p = do+    pokeVec3 a p+    pokeVec3 b $ plusPtr p 12+    pokeVec3 c $ plusPtr p 24 -peekMatrix3x3 :: Ptr a -> IO Matrix3x3-peekMatrix3x3 p = do-    a <- peekVector3 p-    b <- peekVector3 $ plusPtr p 12-    c <- peekVector3 $ plusPtr p 24-    return $ Matrix3x3 a b c+peekMat3 :: Ptr a -> IO Mat3+peekMat3 p = do+    a <- peekVec3 p+    b <- peekVec3 $ plusPtr p 12+    c <- peekVec3 $ plusPtr p 24+    return $ Mat3 a b c  -- Transform allocaTransform :: (Storable a) => (Ptr a -> IO b) -> IO b@@ -119,12 +138,11 @@     f $ castPtr p  pokeTransform (Transform m v) p = do-    pokeMatrix3x3 m p-    pokeVector3 v $ plusPtr p 36+    pokeMat3 m p+    pokeVec3 v $ plusPtr p 36  peekTransform :: Ptr a -> IO Transform peekTransform p = do-    m <- peekMatrix3x3 p-    v <- peekVector3 $ plusPtr p 36+    m <- peekMat3 p+    v <- peekVec3 $ plusPtr p 36     return $ Transform m v-
Physics/Bullet/Raw/Utils.hs view
@@ -6,19 +6,10 @@ import Physics.Bullet.Raw.Types import Physics.Bullet.Raw.Class -nullVector3 :: Vector3-nullVector3 = Vector3 0 0 0--nullMatrix3x3 :: Matrix3x3-nullMatrix3x3 = Matrix3x3 nullVector3 nullVector3 nullVector3--idMatrix3x3 :: Matrix3x3-idMatrix3x3 = Matrix3x3 (Vector3 1 0 0)-                        (Vector3 0 1 0)-                        (Vector3 0 0 1)+import Data.Vect.Float  idTransform :: Transform-idTransform = Transform idMatrix3x3 nullVector3+idTransform = Transform idmtx zero  simpleBtDiscreteDynamicsWorldM :: IO BtDiscreteDynamicsWorld simpleBtDiscreteDynamicsWorldM = do@@ -30,7 +21,7 @@     b <- btDbvtBroadphase hc     s <- btSequentialImpulseConstraintSolver     btDiscreteDynamicsWorld d b s c-+{- simpleBtContinuousDynamicsWorldM :: IO BtContinuousDynamicsWorld simpleBtContinuousDynamicsWorldM = do     dc <- btDefaultCollisionConstructionInfo@@ -41,12 +32,13 @@     b <- btDbvtBroadphase hc     s <- btSequentialImpulseConstraintSolver     btContinuousDynamicsWorld d b s c+-}  localCreateRigidBodyM :: (BtDynamicsWorldClass bc, BtCollisionShapeClass p2) => bc -> Float -> Transform -> p2 -> IO (BtDefaultMotionState, BtRigidBody) localCreateRigidBodyM dw mass startTransform shape = do     inertia <- case mass /= 0 of-        True    -> btCollisionShape_calculateLocalInertia shape mass nullVector3-        False   -> return nullVector3+        True    -> btCollisionShape_calculateLocalInertia shape mass zero+        False   -> return zero          motionState <- btDefaultMotionState startTransform idTransform     body <- btRigidBody1 mass motionState shape inertia@@ -58,7 +50,7 @@ mkVehicleM dw chassisShape mass = do     --chassisShape <- btBoxShape $ Vector3 1 0.6 2.2     compound <- btCompoundShape True-    let localTrans = Transform idMatrix3x3 $ Vector3 0 0 0+    let localTrans = Transform idmtx zero         wheelRadius = 0.5         wheelWidth = 0.4     btCompoundShape_addChildShape compound localTrans chassisShape@@ -67,8 +59,8 @@     --(carMotionSate,carChassis) <- localCreateRigidBody dw 8 (Transform idMatrix3x3 $ Vector3 480.0 20.3 (-520.0)) compound     --wheelShape <- btCylinderShapeX $ Vector3 wheelWidth wheelRadius wheelRadius     btRigidBody_setCenterOfMassTransform carChassis idTransform-    btRigidBody_setLinearVelocity carChassis nullVector3-    btRigidBody_setAngularVelocity carChassis nullVector3+    btRigidBody_setLinearVelocity carChassis zero+    btRigidBody_setAngularVelocity carChassis zero      tuning <- btRaycastVehicle_btVehicleTuning         vehicleRayCaster <- btDefaultVehicleRaycaster dw@@ -93,8 +85,8 @@     btRaycastVehicle_setCoordinateSystem vehicle 0 1 2     let connectionHeight        = 0.0         cCUBE_HALF_EXTENTS      = 1.2-        wheelDirectionCS0       = Vector3 0 (-1) 0-        wheelAxleCS             = Vector3 (-1) 0 0+        wheelDirectionCS0       = Vec3 0 (-1) 0+        wheelAxleCS             = Vec3 (-1) 0 0         suspensionRestLength    = 0.6         suspensionStiffness     = 20         suspensionDamping       = 2.3@@ -103,19 +95,19 @@         wheelFriction           = 1000              btRaycastVehicle_addWheel vehicle -                                (Vector3 (cCUBE_HALF_EXTENTS-(0.3*wheelWidth)) connectionHeight (2*cCUBE_HALF_EXTENTS-wheelRadius))+                                (Vec3 (cCUBE_HALF_EXTENTS-(0.3*wheelWidth)) connectionHeight (2*cCUBE_HALF_EXTENTS-wheelRadius))                                 wheelDirectionCS0 wheelAxleCS suspensionRestLength wheelRadius tuning True      btRaycastVehicle_addWheel vehicle -                                (Vector3 (-cCUBE_HALF_EXTENTS+(0.3*wheelWidth)) connectionHeight (2*cCUBE_HALF_EXTENTS-wheelRadius))+                                (Vec3 (-cCUBE_HALF_EXTENTS+(0.3*wheelWidth)) connectionHeight (2*cCUBE_HALF_EXTENTS-wheelRadius))                                 wheelDirectionCS0 wheelAxleCS suspensionRestLength wheelRadius tuning True      btRaycastVehicle_addWheel vehicle -                                (Vector3 (-cCUBE_HALF_EXTENTS+(0.3*wheelWidth)) connectionHeight (-2*cCUBE_HALF_EXTENTS+wheelRadius))+                                (Vec3 (-cCUBE_HALF_EXTENTS+(0.3*wheelWidth)) connectionHeight (-2*cCUBE_HALF_EXTENTS+wheelRadius))                                 wheelDirectionCS0 wheelAxleCS suspensionRestLength wheelRadius tuning False      btRaycastVehicle_addWheel vehicle -                                (Vector3 (cCUBE_HALF_EXTENTS-(0.3*wheelWidth)) connectionHeight (-2*cCUBE_HALF_EXTENTS+wheelRadius))+                                (Vec3 (cCUBE_HALF_EXTENTS-(0.3*wheelWidth)) connectionHeight (-2*cCUBE_HALF_EXTENTS+wheelRadius))                                 wheelDirectionCS0 wheelAxleCS suspensionRestLength wheelRadius tuning False          numWheels <- btRaycastVehicle_getNumWheels vehicle
bullet.cabal view
@@ -1,5 +1,5 @@ Name:                bullet-Version:             0.2.2+Version:             0.2.3 Synopsis:            A wrapper for the Bullet physics engine. Description:         A wrapper for the Bullet physics engine. License:             BSD3@@ -9,7 +9,7 @@ Homepage:            http://www.haskell.org/haskellwiki/Bullet Stability:           Experimental Category:            Physics-Tested-With:         GHC == 6.10.1, GHC == 6.10.4, GHC == 6.12.1, GHC == 7.0.3+Tested-With:         GHC == 6.10.1, GHC == 6.10.4, GHC == 6.12.1, GHC == 7.0.3, GHC == 7.4.2, GHC == 7.6.3 Cabal-Version:       >= 1.2 Build-Type:          Simple @@ -336,7 +336,8 @@    if os(linux)     Pkgconfig-Depends:   bullet-    Include-Dirs:        cbits+    Include-Dirs:        cbits bullet+    Extra-Libraries:     stdc++   else     Extra-Libraries:     BulletSoftBody BulletDynamics BulletCollision LinearMath stdc++                          --BulletMultiThreaded GIMPACTUtils ConvexDecomposition
bullet/Bullet-C-Api.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -14,10 +14,10 @@ */  /*-	Draft high-level generic physics C-API. For low-level access, use the physics SDK native API's.-	Work in progress, functionality will be added on demand.+Draft high-level generic physics C-API. For low-level access, use the physics SDK native API's.+Work in progress, functionality will be added on demand. -	If possible, use the richer Bullet C++ API, by including "btBulletDynamicsCommon.h"+If possible, use the richer Bullet C++ API, by including "btBulletDynamicsCommon.h" */  #ifndef BULLET_C_API_H@@ -26,146 +26,146 @@ #define PL_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name  #ifdef BT_USE_DOUBLE_PRECISION-typedef double	plReal;+typedef double plReal; #else-typedef float	plReal;+typedef float plReal; #endif -typedef plReal	plVector3[3];-typedef plReal	plQuaternion[4];+typedef plReal plVector3[3];+typedef plReal plQuaternion[4];  #ifdef __cplusplus-extern "C" { +extern "C" { #endif -/**	Particular physics SDK (C-API) */-	PL_DECLARE_HANDLE(plPhysicsSdkHandle);+/** Particular physics SDK (C-API) */+PL_DECLARE_HANDLE(plPhysicsSdkHandle); -/** 	Dynamics world, belonging to some physics SDK (C-API)*/-	PL_DECLARE_HANDLE(plDynamicsWorldHandle);+/** Dynamics world, belonging to some physics SDK (C-API)*/+PL_DECLARE_HANDLE(plDynamicsWorldHandle); -/** Rigid Body that can be part of a Dynamics World (C-API)*/	-	PL_DECLARE_HANDLE(plRigidBodyHandle);+/** Rigid Body that can be part of a Dynamics World (C-API)*/+PL_DECLARE_HANDLE(plRigidBodyHandle); -/** 	Collision Shape/Geometry, property of a Rigid Body (C-API)*/-	PL_DECLARE_HANDLE(plCollisionShapeHandle);+/** Collision Shape/Geometry, property of a Rigid Body (C-API)*/+PL_DECLARE_HANDLE(plCollisionShapeHandle);  /** Constraint for Rigid Bodies (C-API)*/-	PL_DECLARE_HANDLE(plConstraintHandle);+PL_DECLARE_HANDLE(plConstraintHandle);  /** Triangle Mesh interface (C-API)*/-	PL_DECLARE_HANDLE(plMeshInterfaceHandle);+PL_DECLARE_HANDLE(plMeshInterfaceHandle);  /** Broadphase Scene/Proxy Handles (C-API)*/-	PL_DECLARE_HANDLE(plCollisionBroadphaseHandle);-	PL_DECLARE_HANDLE(plBroadphaseProxyHandle);-	PL_DECLARE_HANDLE(plCollisionWorldHandle);+PL_DECLARE_HANDLE(plCollisionBroadphaseHandle);+PL_DECLARE_HANDLE(plBroadphaseProxyHandle);+PL_DECLARE_HANDLE(plCollisionWorldHandle);  /**-	Create and Delete a Physics SDK	+Create and Delete a Physics SDK */ -	extern	plPhysicsSdkHandle	plNewBulletSdk(void); //this could be also another sdk, like ODE, PhysX etc.-	extern	void		plDeletePhysicsSdk(plPhysicsSdkHandle	physicsSdk);+extern plPhysicsSdkHandle plNewBulletSdk(void); //this could be also another sdk, like ODE, PhysX etc.+extern void plDeletePhysicsSdk(plPhysicsSdkHandle physicsSdk);  /** Collision World, not strictly necessary, you can also just create a Dynamics World with Rigid Bodies which internally manages the Collision World with Collision Objects */ -	typedef void(*btBroadphaseCallback)(void* clientData, void* object1,void* object2);+typedef void(*btBroadphaseCallback)(void* clientData, void* object1,void* object2); -	extern plCollisionBroadphaseHandle	plCreateSapBroadphase(btBroadphaseCallback beginCallback,btBroadphaseCallback endCallback);+extern plCollisionBroadphaseHandle plCreateSapBroadphase(btBroadphaseCallback beginCallback,btBroadphaseCallback endCallback); -	extern void	plDestroyBroadphase(plCollisionBroadphaseHandle bp);+extern void plDestroyBroadphase(plCollisionBroadphaseHandle bp); -	extern 	plBroadphaseProxyHandle plCreateProxy(plCollisionBroadphaseHandle bp, void* clientData, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ);+extern plBroadphaseProxyHandle plCreateProxy(plCollisionBroadphaseHandle bp, void* clientData, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ); -	extern void plDestroyProxy(plCollisionBroadphaseHandle bp, plBroadphaseProxyHandle proxyHandle);+extern void plDestroyProxy(plCollisionBroadphaseHandle bp, plBroadphaseProxyHandle proxyHandle); -	extern void plSetBoundingBox(plBroadphaseProxyHandle proxyHandle, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ);+extern void plSetBoundingBox(plBroadphaseProxyHandle proxyHandle, plReal minX,plReal minY,plReal minZ, plReal maxX,plReal maxY, plReal maxZ);  /* todo: add pair cache support with queries like add/remove/find pair */-	-	extern plCollisionWorldHandle plCreateCollisionWorld(plPhysicsSdkHandle physicsSdk); +extern plCollisionWorldHandle plCreateCollisionWorld(plPhysicsSdkHandle physicsSdk);+ /* todo: add/remove objects */-	 + /* Dynamics World */ -	extern  plDynamicsWorldHandle plCreateDynamicsWorld(plPhysicsSdkHandle physicsSdk);+extern plDynamicsWorldHandle plCreateDynamicsWorld(plPhysicsSdkHandle physicsSdk); -	extern  void           plDeleteDynamicsWorld(plDynamicsWorldHandle world);+extern void plDeleteDynamicsWorld(plDynamicsWorldHandle world); -	extern	void	plStepSimulation(plDynamicsWorldHandle,	plReal	timeStep);+extern void plStepSimulation(plDynamicsWorldHandle, plReal timeStep); -	extern  void plAddRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object);+extern void plAddRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object); -	extern  void plRemoveRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object);+extern void plRemoveRigidBody(plDynamicsWorldHandle world, plRigidBodyHandle object);  -/* Rigid Body  */+/* Rigid Body */ -	extern  plRigidBodyHandle plCreateRigidBody(	void* user_data,  float mass, plCollisionShapeHandle cshape );+extern plRigidBodyHandle plCreateRigidBody( void* user_data, float mass, plCollisionShapeHandle cshape ); -	extern  void plDeleteRigidBody(plRigidBodyHandle body);+extern void plDeleteRigidBody(plRigidBodyHandle body);   /* Collision Shape definition */ -	extern  plCollisionShapeHandle plNewSphereShape(plReal radius);-	extern  plCollisionShapeHandle plNewBoxShape(plReal x, plReal y, plReal z);-	extern  plCollisionShapeHandle plNewCapsuleShape(plReal radius, plReal height);	-	extern  plCollisionShapeHandle plNewConeShape(plReal radius, plReal height);-	extern  plCollisionShapeHandle plNewCylinderShape(plReal radius, plReal height);-	extern	plCollisionShapeHandle plNewCompoundShape(void);-	extern	void	plAddChildShape(plCollisionShapeHandle compoundShape,plCollisionShapeHandle childShape, plVector3 childPos,plQuaternion childOrn);+extern plCollisionShapeHandle plNewSphereShape(plReal radius);+extern plCollisionShapeHandle plNewBoxShape(plReal x, plReal y, plReal z);+extern plCollisionShapeHandle plNewCapsuleShape(plReal radius, plReal height);+extern plCollisionShapeHandle plNewConeShape(plReal radius, plReal height);+extern plCollisionShapeHandle plNewCylinderShape(plReal radius, plReal height);+extern plCollisionShapeHandle plNewCompoundShape(void);+extern void plAddChildShape(plCollisionShapeHandle compoundShape,plCollisionShapeHandle childShape, plVector3 childPos,plQuaternion childOrn); -	extern  void plDeleteShape(plCollisionShapeHandle shape);+extern void plDeleteShape(plCollisionShapeHandle shape); -	/* Convex Meshes */-	extern  plCollisionShapeHandle plNewConvexHullShape(void);-	extern  void		plAddVertex(plCollisionShapeHandle convexHull, plReal x,plReal y,plReal z);+/* Convex Meshes */+extern plCollisionShapeHandle plNewConvexHullShape(void);+extern void plAddVertex(plCollisionShapeHandle convexHull, plReal x,plReal y,plReal z); /* Concave static triangle meshes */-	extern  plMeshInterfaceHandle		   plNewMeshInterface(void);-	extern  void		plAddTriangle(plMeshInterfaceHandle meshHandle, plVector3 v0,plVector3 v1,plVector3 v2);-	extern  plCollisionShapeHandle plNewStaticTriangleMeshShape(plMeshInterfaceHandle);+extern plMeshInterfaceHandle plNewMeshInterface(void);+extern void plAddTriangle(plMeshInterfaceHandle meshHandle, plVector3 v0,plVector3 v1,plVector3 v2);+extern plCollisionShapeHandle plNewStaticTriangleMeshShape(plMeshInterfaceHandle); -	extern  void plSetScaling(plCollisionShapeHandle shape, plVector3 scaling);+extern void plSetScaling(plCollisionShapeHandle shape, plVector3 scaling);  /* SOLID has Response Callback/Table/Management */ /* PhysX has Triggers, User Callbacks and filtering */ /* ODE has the typedef void dNearCallback (void *data, dGeomID o1, dGeomID o2); */ -/*	typedef void plUpdatedPositionCallback(void* userData, plRigidBodyHandle	rbHandle, plVector3 pos); */-/*	typedef void plUpdatedOrientationCallback(void* userData, plRigidBodyHandle	rbHandle, plQuaternion orientation); */+/* typedef void plUpdatedPositionCallback(void* userData, plRigidBodyHandle rbHandle, plVector3 pos); */+/* typedef void plUpdatedOrientationCallback(void* userData, plRigidBodyHandle rbHandle, plQuaternion orientation); */ -	/* get world transform */-	extern void	plGetOpenGLMatrix(plRigidBodyHandle object, plReal* matrix);-	extern void	plGetPosition(plRigidBodyHandle object,plVector3 position);-	extern void plGetOrientation(plRigidBodyHandle object,plQuaternion orientation);+/* get world transform */+extern void plGetOpenGLMatrix(plRigidBodyHandle object, plReal* matrix);+extern void plGetPosition(plRigidBodyHandle object,plVector3 position);+extern void plGetOrientation(plRigidBodyHandle object,plQuaternion orientation); -	/* set world transform (position/orientation) */-	extern  void plSetPosition(plRigidBodyHandle object, const plVector3 position);-	extern  void plSetOrientation(plRigidBodyHandle object, const plQuaternion orientation);-	extern	void plSetEuler(plReal yaw,plReal pitch,plReal roll, plQuaternion orient);-	extern	void plSetOpenGLMatrix(plRigidBodyHandle object, plReal* matrix);+/* set world transform (position/orientation) */+extern void plSetPosition(plRigidBodyHandle object, const plVector3 position);+extern void plSetOrientation(plRigidBodyHandle object, const plQuaternion orientation);+extern void plSetEuler(plReal yaw,plReal pitch,plReal roll, plQuaternion orient);+extern void plSetOpenGLMatrix(plRigidBodyHandle object, plReal* matrix); -	typedef struct plRayCastResult {-		plRigidBodyHandle		m_body;  -		plCollisionShapeHandle	m_shape; 		-		plVector3				m_positionWorld; 		-		plVector3				m_normalWorld;-	} plRayCastResult;+typedef struct plRayCastResult {+plRigidBodyHandle m_body;+plCollisionShapeHandle m_shape;+plVector3 m_positionWorld;+plVector3 m_normalWorld;+} plRayCastResult; -	extern  int plRayCast(plDynamicsWorldHandle world, const plVector3 rayStart, const plVector3 rayEnd, plRayCastResult res);+extern int plRayCast(plDynamicsWorldHandle world, const plVector3 rayStart, const plVector3 rayEnd, plRayCastResult res); -	/* Sweep API */+/* Sweep API */ -	/* extern  plRigidBodyHandle plObjectCast(plDynamicsWorldHandle world, const plVector3 rayStart, const plVector3 rayEnd, plVector3 hitpoint, plVector3 normal); */+/* extern plRigidBodyHandle plObjectCast(plDynamicsWorldHandle world, const plVector3 rayStart, const plVector3 rayEnd, plVector3 hitpoint, plVector3 normal); */ -	/* Continuous Collision Detection API */-	-	// needed for source/blender/blenkernel/intern/collision.c-	double plNearestPoints(float p1[3], float p2[3], float p3[3], float q1[3], float q2[3], float q3[3], float *pa, float *pb, float normal[3]);+/* Continuous Collision Detection API */++// needed for source/blender/blenkernel/intern/collision.c+double plNearestPoints(float p1[3], float p2[3], float p3[3], float q1[3], float q2[3], float q3[3], float *pa, float *pb, float normal[3]);  #ifdef __cplusplus }
bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h view
@@ -1,1049 +1,1049 @@ //Bullet Continuous Collision Detection and Physics Library-//Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/--//-// btAxisSweep3.h-//-// Copyright (c) 2006 Simon Hobbs-//-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-//-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:-//-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-//-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-//-// 3. This notice may not be removed or altered from any source distribution.--#ifndef BT_AXIS_SWEEP_3_H-#define BT_AXIS_SWEEP_3_H--#include "LinearMath/btVector3.h"-#include "btOverlappingPairCache.h"-#include "btBroadphaseInterface.h"-#include "btBroadphaseProxy.h"-#include "btOverlappingPairCallback.h"-#include "btDbvtBroadphase.h"--//#define DEBUG_BROADPHASE 1-#define USE_OVERLAP_TEST_ON_REMOVES 1--/// The internal templace class btAxisSweep3Internal implements the sweep and prune broadphase.-/// It uses quantized integers to represent the begin and end points for each of the 3 axis.-/// Dont use this class directly, use btAxisSweep3 or bt32BitAxisSweep3 instead.-template <typename BP_FP_INT_TYPE>-class btAxisSweep3Internal : public btBroadphaseInterface-{-protected:--	BP_FP_INT_TYPE	m_bpHandleMask;-	BP_FP_INT_TYPE	m_handleSentinel;--public:-	- BT_DECLARE_ALIGNED_ALLOCATOR();--	class Edge-	{-	public:-		BP_FP_INT_TYPE m_pos;			// low bit is min/max-		BP_FP_INT_TYPE m_handle;--		BP_FP_INT_TYPE IsMax() const {return static_cast<BP_FP_INT_TYPE>(m_pos & 1);}-	};--public:-	class	Handle : public btBroadphaseProxy-	{-	public:-	BT_DECLARE_ALIGNED_ALLOCATOR();-	-		// indexes into the edge arrays-		BP_FP_INT_TYPE m_minEdges[3], m_maxEdges[3];		// 6 * 2 = 12-//		BP_FP_INT_TYPE m_uniqueId;-		btBroadphaseProxy*	m_dbvtProxy;//for faster raycast-		//void* m_pOwner; this is now in btBroadphaseProxy.m_clientObject-	-		SIMD_FORCE_INLINE void SetNextFree(BP_FP_INT_TYPE next) {m_minEdges[0] = next;}-		SIMD_FORCE_INLINE BP_FP_INT_TYPE GetNextFree() const {return m_minEdges[0];}-	};		// 24 bytes + 24 for Edge structures = 44 bytes total per entry--	-protected:-	btVector3 m_worldAabbMin;						// overall system bounds-	btVector3 m_worldAabbMax;						// overall system bounds--	btVector3 m_quantize;						// scaling factor for quantization--	BP_FP_INT_TYPE m_numHandles;						// number of active handles-	BP_FP_INT_TYPE m_maxHandles;						// max number of handles-	Handle* m_pHandles;						// handles pool-	-	BP_FP_INT_TYPE m_firstFreeHandle;		// free handles list--	Edge* m_pEdges[3];						// edge arrays for the 3 axes (each array has m_maxHandles * 2 + 2 sentinel entries)-	void* m_pEdgesRawPtr[3];--	btOverlappingPairCache* m_pairCache;--	///btOverlappingPairCallback is an additional optional user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache.-	btOverlappingPairCallback* m_userPairCallback;-	-	bool	m_ownsPairCache;--	int	m_invalidPair;--	///additional dynamic aabb structure, used to accelerate ray cast queries.-	///can be disabled using a optional argument in the constructor-	btDbvtBroadphase*	m_raycastAccelerator;-	btOverlappingPairCache*	m_nullPairCache;---	// allocation/deallocation-	BP_FP_INT_TYPE allocHandle();-	void freeHandle(BP_FP_INT_TYPE handle);-	--	bool testOverlap2D(const Handle* pHandleA, const Handle* pHandleB,int axis0,int axis1);--#ifdef DEBUG_BROADPHASE-	void debugPrintAxis(int axis,bool checkCardinality=true);-#endif //DEBUG_BROADPHASE--	//Overlap* AddOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);-	//void RemoveOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);--	--	void sortMinDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );-	void sortMinUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );-	void sortMaxDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );-	void sortMaxUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );--public:--	btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel, BP_FP_INT_TYPE maxHandles = 16384, btOverlappingPairCache* pairCache=0,bool disableRaycastAccelerator = false);--	virtual	~btAxisSweep3Internal();--	BP_FP_INT_TYPE getNumHandles() const-	{-		return m_numHandles;-	}--	virtual void	calculateOverlappingPairs(btDispatcher* dispatcher);-	-	BP_FP_INT_TYPE addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);-	void removeHandle(BP_FP_INT_TYPE handle,btDispatcher* dispatcher);-	void updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);-	SIMD_FORCE_INLINE Handle* getHandle(BP_FP_INT_TYPE index) const {return m_pHandles + index;}--	virtual void resetPool(btDispatcher* dispatcher);--	void	processAllOverlappingPairs(btOverlapCallback* callback);--	//Broadphase Interface-	virtual btBroadphaseProxy*	createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);-	virtual void	destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);-	virtual void	setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);-	virtual void  getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;-	-	virtual void	rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0));-	virtual void	aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback);--	-	void quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const;-	///unQuantize should be conservative: aabbMin/aabbMax should be larger then 'getAabb' result-	void unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;-	-	bool	testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);--	btOverlappingPairCache*	getOverlappingPairCache()-	{-		return m_pairCache;-	}-	const btOverlappingPairCache*	getOverlappingPairCache() const-	{-		return m_pairCache;-	}--	void	setOverlappingPairUserCallback(btOverlappingPairCallback* pairCallback)-	{-		m_userPairCallback = pairCallback;-	}-	const btOverlappingPairCallback*	getOverlappingPairUserCallback() const-	{-		return m_userPairCallback;-	}--	///getAabb returns the axis aligned bounding box in the 'global' coordinate frame-	///will add some transform later-	virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const-	{-		aabbMin = m_worldAabbMin;-		aabbMax = m_worldAabbMax;-	}--	virtual void	printStats()-	{-/*		printf("btAxisSweep3.h\n");-		printf("numHandles = %d, maxHandles = %d\n",m_numHandles,m_maxHandles);-		printf("aabbMin=%f,%f,%f,aabbMax=%f,%f,%f\n",m_worldAabbMin.getX(),m_worldAabbMin.getY(),m_worldAabbMin.getZ(),-			m_worldAabbMax.getX(),m_worldAabbMax.getY(),m_worldAabbMax.getZ());-			*/--	}--};--////////////////////////////////////////////////////////////////////-----#ifdef DEBUG_BROADPHASE-#include <stdio.h>--template <typename BP_FP_INT_TYPE>-void btAxisSweep3<BP_FP_INT_TYPE>::debugPrintAxis(int axis, bool checkCardinality)-{-	int numEdges = m_pHandles[0].m_maxEdges[axis];-	printf("SAP Axis %d, numEdges=%d\n",axis,numEdges);--	int i;-	for (i=0;i<numEdges+1;i++)-	{-		Edge* pEdge = m_pEdges[axis] + i;-		Handle* pHandlePrev = getHandle(pEdge->m_handle);-		int handleIndex = pEdge->IsMax()? pHandlePrev->m_maxEdges[axis] : pHandlePrev->m_minEdges[axis];-		char beginOrEnd;-		beginOrEnd=pEdge->IsMax()?'E':'B';-		printf("	[%c,h=%d,p=%x,i=%d]\n",beginOrEnd,pEdge->m_handle,pEdge->m_pos,handleIndex);-	}--	if (checkCardinality)-		btAssert(numEdges == m_numHandles*2+1);-}-#endif //DEBUG_BROADPHASE--template <typename BP_FP_INT_TYPE>-btBroadphaseProxy*	btAxisSweep3Internal<BP_FP_INT_TYPE>::createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)-{-		(void)shapeType;-		BP_FP_INT_TYPE handleId = addHandle(aabbMin,aabbMax, userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,multiSapProxy);-		-		Handle* handle = getHandle(handleId);-		-		if (m_raycastAccelerator)-		{-			btBroadphaseProxy* rayProxy = m_raycastAccelerator->createProxy(aabbMin,aabbMax,shapeType,userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,0);-			handle->m_dbvtProxy = rayProxy;-		}-		return handle;-}----template <typename BP_FP_INT_TYPE>-void	btAxisSweep3Internal<BP_FP_INT_TYPE>::destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)-{-	Handle* handle = static_cast<Handle*>(proxy);-	if (m_raycastAccelerator)-		m_raycastAccelerator->destroyProxy(handle->m_dbvtProxy,dispatcher);-	removeHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), dispatcher);-}--template <typename BP_FP_INT_TYPE>-void	btAxisSweep3Internal<BP_FP_INT_TYPE>::setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)-{-	Handle* handle = static_cast<Handle*>(proxy);-	handle->m_aabbMin = aabbMin;-	handle->m_aabbMax = aabbMax;-	updateHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), aabbMin, aabbMax,dispatcher);-	if (m_raycastAccelerator)-		m_raycastAccelerator->setAabb(handle->m_dbvtProxy,aabbMin,aabbMax,dispatcher);--}--template <typename BP_FP_INT_TYPE>-void	btAxisSweep3Internal<BP_FP_INT_TYPE>::rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback,const btVector3& aabbMin,const btVector3& aabbMax)-{-	if (m_raycastAccelerator)-	{-		m_raycastAccelerator->rayTest(rayFrom,rayTo,rayCallback,aabbMin,aabbMax);-	} else-	{-		//choose axis?-		BP_FP_INT_TYPE axis = 0;-		//for each proxy-		for (BP_FP_INT_TYPE i=1;i<m_numHandles*2+1;i++)-		{-			if (m_pEdges[axis][i].IsMax())-			{-				rayCallback.process(getHandle(m_pEdges[axis][i].m_handle));-			}-		}-	}-}--template <typename BP_FP_INT_TYPE>-void	btAxisSweep3Internal<BP_FP_INT_TYPE>::aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback)-{-	if (m_raycastAccelerator)-	{-		m_raycastAccelerator->aabbTest(aabbMin,aabbMax,callback);-	} else-	{-		//choose axis?-		BP_FP_INT_TYPE axis = 0;-		//for each proxy-		for (BP_FP_INT_TYPE i=1;i<m_numHandles*2+1;i++)-		{-			if (m_pEdges[axis][i].IsMax())-			{-				Handle* handle = getHandle(m_pEdges[axis][i].m_handle);-				if (TestAabbAgainstAabb2(aabbMin,aabbMax,handle->m_aabbMin,handle->m_aabbMax))-				{-					callback.process(handle);-				}-			}-		}-	}-}----template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const-{-	Handle* pHandle = static_cast<Handle*>(proxy);-	aabbMin = pHandle->m_aabbMin;-	aabbMax = pHandle->m_aabbMax;-}---template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const-{-	Handle* pHandle = static_cast<Handle*>(proxy);--	unsigned short vecInMin[3];-	unsigned short vecInMax[3];--	vecInMin[0] = m_pEdges[0][pHandle->m_minEdges[0]].m_pos ;-	vecInMax[0] = m_pEdges[0][pHandle->m_maxEdges[0]].m_pos +1 ;-	vecInMin[1] = m_pEdges[1][pHandle->m_minEdges[1]].m_pos ;-	vecInMax[1] = m_pEdges[1][pHandle->m_maxEdges[1]].m_pos +1 ;-	vecInMin[2] = m_pEdges[2][pHandle->m_minEdges[2]].m_pos ;-	vecInMax[2] = m_pEdges[2][pHandle->m_maxEdges[2]].m_pos +1 ;-	-	aabbMin.setValue((btScalar)(vecInMin[0]) / (m_quantize.getX()),(btScalar)(vecInMin[1]) / (m_quantize.getY()),(btScalar)(vecInMin[2]) / (m_quantize.getZ()));-	aabbMin += m_worldAabbMin;-	-	aabbMax.setValue((btScalar)(vecInMax[0]) / (m_quantize.getX()),(btScalar)(vecInMax[1]) / (m_quantize.getY()),(btScalar)(vecInMax[2]) / (m_quantize.getZ()));-	aabbMax += m_worldAabbMin;-}-----template <typename BP_FP_INT_TYPE>-btAxisSweep3Internal<BP_FP_INT_TYPE>::btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel,BP_FP_INT_TYPE userMaxHandles, btOverlappingPairCache* pairCache , bool disableRaycastAccelerator)-:m_bpHandleMask(handleMask),-m_handleSentinel(handleSentinel),-m_pairCache(pairCache),-m_userPairCallback(0),-m_ownsPairCache(false),-m_invalidPair(0),-m_raycastAccelerator(0)-{-	BP_FP_INT_TYPE maxHandles = static_cast<BP_FP_INT_TYPE>(userMaxHandles+1);//need to add one sentinel handle--	if (!m_pairCache)-	{-		void* ptr = btAlignedAlloc(sizeof(btHashedOverlappingPairCache),16);-		m_pairCache = new(ptr) btHashedOverlappingPairCache();-		m_ownsPairCache = true;-	}--	if (!disableRaycastAccelerator)-	{-		m_nullPairCache = new (btAlignedAlloc(sizeof(btNullPairCache),16)) btNullPairCache();-		m_raycastAccelerator = new (btAlignedAlloc(sizeof(btDbvtBroadphase),16)) btDbvtBroadphase(m_nullPairCache);//m_pairCache);-		m_raycastAccelerator->m_deferedcollide = true;//don't add/remove pairs-	}--	//btAssert(bounds.HasVolume());--	// init bounds-	m_worldAabbMin = worldAabbMin;-	m_worldAabbMax = worldAabbMax;--	btVector3 aabbSize = m_worldAabbMax - m_worldAabbMin;--	BP_FP_INT_TYPE	maxInt = m_handleSentinel;--	m_quantize = btVector3(btScalar(maxInt),btScalar(maxInt),btScalar(maxInt)) / aabbSize;--	// allocate handles buffer, using btAlignedAlloc, and put all handles on free list-	m_pHandles = new Handle[maxHandles];-	-	m_maxHandles = maxHandles;-	m_numHandles = 0;--	// handle 0 is reserved as the null index, and is also used as the sentinel-	m_firstFreeHandle = 1;-	{-		for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < maxHandles; i++)-			m_pHandles[i].SetNextFree(static_cast<BP_FP_INT_TYPE>(i + 1));-		m_pHandles[maxHandles - 1].SetNextFree(0);-	}--	{-		// allocate edge buffers-		for (int i = 0; i < 3; i++)-		{-			m_pEdgesRawPtr[i] = btAlignedAlloc(sizeof(Edge)*maxHandles*2,16);-			m_pEdges[i] = new(m_pEdgesRawPtr[i]) Edge[maxHandles * 2];-		}-	}-	//removed overlap management--	// make boundary sentinels-	-	m_pHandles[0].m_clientObject = 0;--	for (int axis = 0; axis < 3; axis++)-	{-		m_pHandles[0].m_minEdges[axis] = 0;-		m_pHandles[0].m_maxEdges[axis] = 1;--		m_pEdges[axis][0].m_pos = 0;-		m_pEdges[axis][0].m_handle = 0;-		m_pEdges[axis][1].m_pos = m_handleSentinel;-		m_pEdges[axis][1].m_handle = 0;-#ifdef DEBUG_BROADPHASE-		debugPrintAxis(axis);-#endif //DEBUG_BROADPHASE--	}--}--template <typename BP_FP_INT_TYPE>-btAxisSweep3Internal<BP_FP_INT_TYPE>::~btAxisSweep3Internal()-{-	if (m_raycastAccelerator)-	{-		m_nullPairCache->~btOverlappingPairCache();-		btAlignedFree(m_nullPairCache);-		m_raycastAccelerator->~btDbvtBroadphase();-		btAlignedFree (m_raycastAccelerator);-	}--	for (int i = 2; i >= 0; i--)-	{-		btAlignedFree(m_pEdgesRawPtr[i]);-	}-	delete [] m_pHandles;--	if (m_ownsPairCache)-	{-		m_pairCache->~btOverlappingPairCache();-		btAlignedFree(m_pairCache);-	}-}--template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const-{-#ifdef OLD_CLAMPING_METHOD-	///problem with this clamping method is that the floating point during quantization might still go outside the range [(0|isMax) .. (m_handleSentinel&m_bpHandleMask]|isMax]-	///see http://code.google.com/p/bullet/issues/detail?id=87-	btVector3 clampedPoint(point);-	clampedPoint.setMax(m_worldAabbMin);-	clampedPoint.setMin(m_worldAabbMax);-	btVector3 v = (clampedPoint - m_worldAabbMin) * m_quantize;-	out[0] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getX() & m_bpHandleMask) | isMax);-	out[1] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getY() & m_bpHandleMask) | isMax);-	out[2] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getZ() & m_bpHandleMask) | isMax);-#else-	btVector3 v = (point - m_worldAabbMin) * m_quantize;-	out[0]=(v[0]<=0)?(BP_FP_INT_TYPE)isMax:(v[0]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[0]&m_bpHandleMask)|isMax);-	out[1]=(v[1]<=0)?(BP_FP_INT_TYPE)isMax:(v[1]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[1]&m_bpHandleMask)|isMax);-	out[2]=(v[2]<=0)?(BP_FP_INT_TYPE)isMax:(v[2]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[2]&m_bpHandleMask)|isMax);-#endif //OLD_CLAMPING_METHOD-}---template <typename BP_FP_INT_TYPE>-BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::allocHandle()-{-	btAssert(m_firstFreeHandle);--	BP_FP_INT_TYPE handle = m_firstFreeHandle;-	m_firstFreeHandle = getHandle(handle)->GetNextFree();-	m_numHandles++;--	return handle;-}--template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::freeHandle(BP_FP_INT_TYPE handle)-{-	btAssert(handle > 0 && handle < m_maxHandles);--	getHandle(handle)->SetNextFree(m_firstFreeHandle);-	m_firstFreeHandle = handle;--	m_numHandles--;-}---template <typename BP_FP_INT_TYPE>-BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)-{-	// quantize the bounds-	BP_FP_INT_TYPE min[3], max[3];-	quantize(min, aabbMin, 0);-	quantize(max, aabbMax, 1);--	// allocate a handle-	BP_FP_INT_TYPE handle = allocHandle();-	--	Handle* pHandle = getHandle(handle);-	-	pHandle->m_uniqueId = static_cast<int>(handle);-	//pHandle->m_pOverlaps = 0;-	pHandle->m_clientObject = pOwner;-	pHandle->m_collisionFilterGroup = collisionFilterGroup;-	pHandle->m_collisionFilterMask = collisionFilterMask;-	pHandle->m_multiSapParentProxy = multiSapProxy;--	// compute current limit of edge arrays-	BP_FP_INT_TYPE limit = static_cast<BP_FP_INT_TYPE>(m_numHandles * 2);--	-	// insert new edges just inside the max boundary edge-	for (BP_FP_INT_TYPE axis = 0; axis < 3; axis++)-	{--		m_pHandles[0].m_maxEdges[axis] += 2;--		m_pEdges[axis][limit + 1] = m_pEdges[axis][limit - 1];--		m_pEdges[axis][limit - 1].m_pos = min[axis];-		m_pEdges[axis][limit - 1].m_handle = handle;--		m_pEdges[axis][limit].m_pos = max[axis];-		m_pEdges[axis][limit].m_handle = handle;--		pHandle->m_minEdges[axis] = static_cast<BP_FP_INT_TYPE>(limit - 1);-		pHandle->m_maxEdges[axis] = limit;-	}--	// now sort the new edges to their correct position-	sortMinDown(0, pHandle->m_minEdges[0], dispatcher,false);-	sortMaxDown(0, pHandle->m_maxEdges[0], dispatcher,false);-	sortMinDown(1, pHandle->m_minEdges[1], dispatcher,false);-	sortMaxDown(1, pHandle->m_maxEdges[1], dispatcher,false);-	sortMinDown(2, pHandle->m_minEdges[2], dispatcher,true);-	sortMaxDown(2, pHandle->m_maxEdges[2], dispatcher,true);---	return handle;-}---template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::removeHandle(BP_FP_INT_TYPE handle,btDispatcher* dispatcher)-{--	Handle* pHandle = getHandle(handle);--	//explicitly remove the pairs containing the proxy-	//we could do it also in the sortMinUp (passing true)-	///@todo: compare performance-	if (!m_pairCache->hasDeferredRemoval())-	{-		m_pairCache->removeOverlappingPairsContainingProxy(pHandle,dispatcher);-	}--	// compute current limit of edge arrays-	int limit = static_cast<int>(m_numHandles * 2);-	-	int axis;--	for (axis = 0;axis<3;axis++)-	{-		m_pHandles[0].m_maxEdges[axis] -= 2;-	}--	// remove the edges by sorting them up to the end of the list-	for ( axis = 0; axis < 3; axis++)-	{-		Edge* pEdges = m_pEdges[axis];-		BP_FP_INT_TYPE max = pHandle->m_maxEdges[axis];-		pEdges[max].m_pos = m_handleSentinel;--		sortMaxUp(axis,max,dispatcher,false);---		BP_FP_INT_TYPE i = pHandle->m_minEdges[axis];-		pEdges[i].m_pos = m_handleSentinel;---		sortMinUp(axis,i,dispatcher,false);--		pEdges[limit-1].m_handle = 0;-		pEdges[limit-1].m_pos = m_handleSentinel;-		-#ifdef DEBUG_BROADPHASE-			debugPrintAxis(axis,false);-#endif //DEBUG_BROADPHASE---	}---	// free the handle-	freeHandle(handle);--	-}--template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::resetPool(btDispatcher* dispatcher)-{-	if (m_numHandles == 0)-	{-		m_firstFreeHandle = 1;-		{-			for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < m_maxHandles; i++)-				m_pHandles[i].SetNextFree(static_cast<BP_FP_INT_TYPE>(i + 1));-			m_pHandles[m_maxHandles - 1].SetNextFree(0);-		}-	}-}       ---extern int gOverlappingPairs;-//#include <stdio.h>--template <typename BP_FP_INT_TYPE>-void	btAxisSweep3Internal<BP_FP_INT_TYPE>::calculateOverlappingPairs(btDispatcher* dispatcher)-{--	if (m_pairCache->hasDeferredRemoval())-	{-	-		btBroadphasePairArray&	overlappingPairArray = m_pairCache->getOverlappingPairArray();--		//perform a sort, to find duplicates and to sort 'invalid' pairs to the end-		overlappingPairArray.quickSort(btBroadphasePairSortPredicate());--		overlappingPairArray.resize(overlappingPairArray.size() - m_invalidPair);-		m_invalidPair = 0;--		-		int i;--		btBroadphasePair previousPair;-		previousPair.m_pProxy0 = 0;-		previousPair.m_pProxy1 = 0;-		previousPair.m_algorithm = 0;-		-		-		for (i=0;i<overlappingPairArray.size();i++)-		{-		-			btBroadphasePair& pair = overlappingPairArray[i];--			bool isDuplicate = (pair == previousPair);--			previousPair = pair;--			bool needsRemoval = false;--			if (!isDuplicate)-			{-				///important to use an AABB test that is consistent with the broadphase-				bool hasOverlap = testAabbOverlap(pair.m_pProxy0,pair.m_pProxy1);--				if (hasOverlap)-				{-					needsRemoval = false;//callback->processOverlap(pair);-				} else-				{-					needsRemoval = true;-				}-			} else-			{-				//remove duplicate-				needsRemoval = true;-				//should have no algorithm-				btAssert(!pair.m_algorithm);-			}-			-			if (needsRemoval)-			{-				m_pairCache->cleanOverlappingPair(pair,dispatcher);--		//		m_overlappingPairArray.swap(i,m_overlappingPairArray.size()-1);-		//		m_overlappingPairArray.pop_back();-				pair.m_pProxy0 = 0;-				pair.m_pProxy1 = 0;-				m_invalidPair++;-				gOverlappingPairs--;-			} -			-		}--	///if you don't like to skip the invalid pairs in the array, execute following code:-	#define CLEAN_INVALID_PAIRS 1-	#ifdef CLEAN_INVALID_PAIRS--		//perform a sort, to sort 'invalid' pairs to the end-		overlappingPairArray.quickSort(btBroadphasePairSortPredicate());--		overlappingPairArray.resize(overlappingPairArray.size() - m_invalidPair);-		m_invalidPair = 0;-	#endif//CLEAN_INVALID_PAIRS-		-		//printf("overlappingPairArray.size()=%d\n",overlappingPairArray.size());-	}--}---template <typename BP_FP_INT_TYPE>-bool btAxisSweep3Internal<BP_FP_INT_TYPE>::testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)-{-	const Handle* pHandleA = static_cast<Handle*>(proxy0);-	const Handle* pHandleB = static_cast<Handle*>(proxy1);-	-	//optimization 1: check the array index (memory address), instead of the m_pos--	for (int axis = 0; axis < 3; axis++)-	{ -		if (pHandleA->m_maxEdges[axis] < pHandleB->m_minEdges[axis] || -			pHandleB->m_maxEdges[axis] < pHandleA->m_minEdges[axis]) -		{ -			return false; -		} -	} -	return true;-}--template <typename BP_FP_INT_TYPE>-bool btAxisSweep3Internal<BP_FP_INT_TYPE>::testOverlap2D(const Handle* pHandleA, const Handle* pHandleB,int axis0,int axis1)-{-	//optimization 1: check the array index (memory address), instead of the m_pos--	if (pHandleA->m_maxEdges[axis0] < pHandleB->m_minEdges[axis0] || -		pHandleB->m_maxEdges[axis0] < pHandleA->m_minEdges[axis0] ||-		pHandleA->m_maxEdges[axis1] < pHandleB->m_minEdges[axis1] ||-		pHandleB->m_maxEdges[axis1] < pHandleA->m_minEdges[axis1]) -	{ -		return false; -	} -	return true;-}--template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)-{-//	btAssert(bounds.IsFinite());-	//btAssert(bounds.HasVolume());--	Handle* pHandle = getHandle(handle);--	// quantize the new bounds-	BP_FP_INT_TYPE min[3], max[3];-	quantize(min, aabbMin, 0);-	quantize(max, aabbMax, 1);--	// update changed edges-	for (int axis = 0; axis < 3; axis++)-	{-		BP_FP_INT_TYPE emin = pHandle->m_minEdges[axis];-		BP_FP_INT_TYPE emax = pHandle->m_maxEdges[axis];--		int dmin = (int)min[axis] - (int)m_pEdges[axis][emin].m_pos;-		int dmax = (int)max[axis] - (int)m_pEdges[axis][emax].m_pos;--		m_pEdges[axis][emin].m_pos = min[axis];-		m_pEdges[axis][emax].m_pos = max[axis];--		// expand (only adds overlaps)-		if (dmin < 0)-			sortMinDown(axis, emin,dispatcher,true);--		if (dmax > 0)-			sortMaxUp(axis, emax,dispatcher,true);--		// shrink (only removes overlaps)-		if (dmin > 0)-			sortMinUp(axis, emin,dispatcher,true);--		if (dmax < 0)-			sortMaxDown(axis, emax,dispatcher,true);--#ifdef DEBUG_BROADPHASE-	debugPrintAxis(axis);-#endif //DEBUG_BROADPHASE-	}--	-}-----// sorting a min edge downwards can only ever *add* overlaps-template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMinDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* /* dispatcher */, bool updateOverlaps)-{--	Edge* pEdge = m_pEdges[axis] + edge;-	Edge* pPrev = pEdge - 1;-	Handle* pHandleEdge = getHandle(pEdge->m_handle);--	while (pEdge->m_pos < pPrev->m_pos)-	{-		Handle* pHandlePrev = getHandle(pPrev->m_handle);--		if (pPrev->IsMax())-		{-			// if previous edge is a maximum check the bounds and add an overlap if necessary-			const int axis1 = (1  << axis) & 3;-			const int axis2 = (1  << axis1) & 3;-			if (updateOverlaps && testOverlap2D(pHandleEdge, pHandlePrev,axis1,axis2))-			{-				m_pairCache->addOverlappingPair(pHandleEdge,pHandlePrev);-				if (m_userPairCallback)-					m_userPairCallback->addOverlappingPair(pHandleEdge,pHandlePrev);--				//AddOverlap(pEdge->m_handle, pPrev->m_handle);--			}--			// update edge reference in other handle-			pHandlePrev->m_maxEdges[axis]++;-		}-		else-			pHandlePrev->m_minEdges[axis]++;--		pHandleEdge->m_minEdges[axis]--;--		// swap the edges-		Edge swap = *pEdge;-		*pEdge = *pPrev;-		*pPrev = swap;--		// decrement-		pEdge--;-		pPrev--;-	}--#ifdef DEBUG_BROADPHASE-	debugPrintAxis(axis);-#endif //DEBUG_BROADPHASE--}--// sorting a min edge upwards can only ever *remove* overlaps-template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMinUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps)-{-	Edge* pEdge = m_pEdges[axis] + edge;-	Edge* pNext = pEdge + 1;-	Handle* pHandleEdge = getHandle(pEdge->m_handle);--	while (pNext->m_handle && (pEdge->m_pos >= pNext->m_pos))-	{-		Handle* pHandleNext = getHandle(pNext->m_handle);--		if (pNext->IsMax())-		{-			Handle* handle0 = getHandle(pEdge->m_handle);-			Handle* handle1 = getHandle(pNext->m_handle);-			const int axis1 = (1  << axis) & 3;-			const int axis2 = (1  << axis1) & 3;-			-			// if next edge is maximum remove any overlap between the two handles-			if (updateOverlaps -#ifdef USE_OVERLAP_TEST_ON_REMOVES-				&& testOverlap2D(handle0,handle1,axis1,axis2)-#endif //USE_OVERLAP_TEST_ON_REMOVES-				)-			{-				--				m_pairCache->removeOverlappingPair(handle0,handle1,dispatcher);	-				if (m_userPairCallback)-					m_userPairCallback->removeOverlappingPair(handle0,handle1,dispatcher);-				-			}---			// update edge reference in other handle-			pHandleNext->m_maxEdges[axis]--;-		}-		else-			pHandleNext->m_minEdges[axis]--;--		pHandleEdge->m_minEdges[axis]++;--		// swap the edges-		Edge swap = *pEdge;-		*pEdge = *pNext;-		*pNext = swap;--		// increment-		pEdge++;-		pNext++;-	}---}--// sorting a max edge downwards can only ever *remove* overlaps-template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMaxDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps)-{--	Edge* pEdge = m_pEdges[axis] + edge;-	Edge* pPrev = pEdge - 1;-	Handle* pHandleEdge = getHandle(pEdge->m_handle);--	while (pEdge->m_pos < pPrev->m_pos)-	{-		Handle* pHandlePrev = getHandle(pPrev->m_handle);--		if (!pPrev->IsMax())-		{-			// if previous edge was a minimum remove any overlap between the two handles-			Handle* handle0 = getHandle(pEdge->m_handle);-			Handle* handle1 = getHandle(pPrev->m_handle);-			const int axis1 = (1  << axis) & 3;-			const int axis2 = (1  << axis1) & 3;--			if (updateOverlaps  -#ifdef USE_OVERLAP_TEST_ON_REMOVES-				&& testOverlap2D(handle0,handle1,axis1,axis2)-#endif //USE_OVERLAP_TEST_ON_REMOVES-				)-			{-				//this is done during the overlappingpairarray iteration/narrowphase collision--				-				m_pairCache->removeOverlappingPair(handle0,handle1,dispatcher);-				if (m_userPairCallback)-					m_userPairCallback->removeOverlappingPair(handle0,handle1,dispatcher);-			---			}--			// update edge reference in other handle-			pHandlePrev->m_minEdges[axis]++;;-		}-		else-			pHandlePrev->m_maxEdges[axis]++;--		pHandleEdge->m_maxEdges[axis]--;--		// swap the edges-		Edge swap = *pEdge;-		*pEdge = *pPrev;-		*pPrev = swap;--		// decrement-		pEdge--;-		pPrev--;-	}--	-#ifdef DEBUG_BROADPHASE-	debugPrintAxis(axis);-#endif //DEBUG_BROADPHASE--}--// sorting a max edge upwards can only ever *add* overlaps-template <typename BP_FP_INT_TYPE>-void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMaxUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* /* dispatcher */, bool updateOverlaps)-{-	Edge* pEdge = m_pEdges[axis] + edge;-	Edge* pNext = pEdge + 1;-	Handle* pHandleEdge = getHandle(pEdge->m_handle);--	while (pNext->m_handle && (pEdge->m_pos >= pNext->m_pos))-	{-		Handle* pHandleNext = getHandle(pNext->m_handle);--		const int axis1 = (1  << axis) & 3;-		const int axis2 = (1  << axis1) & 3;--		if (!pNext->IsMax())-		{-			// if next edge is a minimum check the bounds and add an overlap if necessary-			if (updateOverlaps && testOverlap2D(pHandleEdge, pHandleNext,axis1,axis2))-			{-				Handle* handle0 = getHandle(pEdge->m_handle);-				Handle* handle1 = getHandle(pNext->m_handle);-				m_pairCache->addOverlappingPair(handle0,handle1);-				if (m_userPairCallback)-					m_userPairCallback->addOverlappingPair(handle0,handle1);-			}--			// update edge reference in other handle-			pHandleNext->m_minEdges[axis]--;-		}-		else-			pHandleNext->m_maxEdges[axis]--;--		pHandleEdge->m_maxEdges[axis]++;--		// swap the edges-		Edge swap = *pEdge;-		*pEdge = *pNext;-		*pNext = swap;--		// increment-		pEdge++;-		pNext++;-	}-	-}----////////////////////////////////////////////////////////////////////---/// The btAxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.-/// It uses arrays rather then lists for storage of the 3 axis. Also it operates using 16 bit integer coordinates instead of floats.-/// For large worlds and many objects, use bt32BitAxisSweep3 or btDbvtBroadphase instead. bt32BitAxisSweep3 has higher precision and allows more then 16384 objects at the cost of more memory and bit of performance.-class btAxisSweep3 : public btAxisSweep3Internal<unsigned short int>-{-public:--	btAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned short int maxHandles = 16384, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);--};--/// The bt32BitAxisSweep3 allows higher precision quantization and more objects compared to the btAxisSweep3 sweep and prune.-/// This comes at the cost of more memory per handle, and a bit slower performance.-/// It uses arrays rather then lists for storage of the 3 axis.-class bt32BitAxisSweep3 : public btAxisSweep3Internal<unsigned int>-{-public:--	bt32BitAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned int maxHandles = 1500000, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);+//Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++//+// btAxisSweep3.h+//+// Copyright (c) 2006 Simon Hobbs+//+// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.+//+// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:+//+// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+//+// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+//+// 3. This notice may not be removed or altered from any source distribution.++#ifndef BT_AXIS_SWEEP_3_H+#define BT_AXIS_SWEEP_3_H++#include "LinearMath/btVector3.h"+#include "btOverlappingPairCache.h"+#include "btBroadphaseInterface.h"+#include "btBroadphaseProxy.h"+#include "btOverlappingPairCallback.h"+#include "btDbvtBroadphase.h"++//#define DEBUG_BROADPHASE 1+#define USE_OVERLAP_TEST_ON_REMOVES 1++/// The internal templace class btAxisSweep3Internal implements the sweep and prune broadphase.+/// It uses quantized integers to represent the begin and end points for each of the 3 axis.+/// Dont use this class directly, use btAxisSweep3 or bt32BitAxisSweep3 instead.+template <typename BP_FP_INT_TYPE>+class btAxisSweep3Internal : public btBroadphaseInterface+{ private:+protected:++BP_FP_INT_TYPE m_bpHandleMask;+BP_FP_INT_TYPE m_handleSentinel;++public:++BT_DECLARE_ALIGNED_ALLOCATOR();++class Edge+{ private:+public:+BP_FP_INT_TYPE m_pos; // low bit is min/max+BP_FP_INT_TYPE m_handle;++BP_FP_INT_TYPE IsMax() const {return static_cast<BP_FP_INT_TYPE>(m_pos & 1);}+};++public:+class Handle : public btBroadphaseProxy+{ private:+public:+BT_DECLARE_ALIGNED_ALLOCATOR();++// indexes into the edge arrays+BP_FP_INT_TYPE m_minEdges[3], m_maxEdges[3]; // 6 * 2 = 12+// BP_FP_INT_TYPE m_uniqueId;+btBroadphaseProxy* m_dbvtProxy;//for faster raycast+//void* m_pOwner; this is now in btBroadphaseProxy.m_clientObject++SIMD_FORCE_INLINE void SetNextFree(BP_FP_INT_TYPE next) {m_minEdges[0] = next;}+SIMD_FORCE_INLINE BP_FP_INT_TYPE GetNextFree() const {return m_minEdges[0];}+}; // 24 bytes + 24 for Edge structures = 44 bytes total per entry+++protected:+btVector3 m_worldAabbMin; // overall system bounds+btVector3 m_worldAabbMax; // overall system bounds++btVector3 m_quantize; // scaling factor for quantization++BP_FP_INT_TYPE m_numHandles; // number of active handles+BP_FP_INT_TYPE m_maxHandles; // max number of handles+Handle* m_pHandles; // handles pool++BP_FP_INT_TYPE m_firstFreeHandle; // free handles list++Edge* m_pEdges[3]; // edge arrays for the 3 axes (each array has m_maxHandles * 2 + 2 sentinel entries)+void* m_pEdgesRawPtr[3];++btOverlappingPairCache* m_pairCache;++///btOverlappingPairCallback is an additional optional user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache.+btOverlappingPairCallback* m_userPairCallback;++bool m_ownsPairCache;++int m_invalidPair;++///additional dynamic aabb structure, used to accelerate ray cast queries.+///can be disabled using a optional argument in the constructor+btDbvtBroadphase* m_raycastAccelerator;+btOverlappingPairCache* m_nullPairCache;+++// allocation/deallocation+BP_FP_INT_TYPE allocHandle();+void freeHandle(BP_FP_INT_TYPE handle);+++bool testOverlap2D(const Handle* pHandleA, const Handle* pHandleB,int axis0,int axis1);++#ifdef DEBUG_BROADPHASE+void debugPrintAxis(int axis,bool checkCardinality=true);+#endif //DEBUG_BROADPHASE++//Overlap* AddOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);+//void RemoveOverlap(BP_FP_INT_TYPE handleA, BP_FP_INT_TYPE handleB);++++void sortMinDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );+void sortMinUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );+void sortMaxDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );+void sortMaxUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps );++public:++btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel, BP_FP_INT_TYPE maxHandles = 16384, btOverlappingPairCache* pairCache=0,bool disableRaycastAccelerator = false);++virtual ~btAxisSweep3Internal();++BP_FP_INT_TYPE getNumHandles() const+{+return m_numHandles;+}++virtual void calculateOverlappingPairs(btDispatcher* dispatcher);++BP_FP_INT_TYPE addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);+void removeHandle(BP_FP_INT_TYPE handle,btDispatcher* dispatcher);+void updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);+SIMD_FORCE_INLINE Handle* getHandle(BP_FP_INT_TYPE index) const {return m_pHandles + index;}++virtual void resetPool(btDispatcher* dispatcher);++void processAllOverlappingPairs(btOverlapCallback* callback);++//Broadphase Interface+virtual btBroadphaseProxy* createProxy( const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+virtual void setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);+virtual void getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;++virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0));+virtual void aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback);+++void quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const;+///unQuantize should be conservative: aabbMin/aabbMax should be larger then 'getAabb' result+void unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;++bool testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);++btOverlappingPairCache* getOverlappingPairCache()+{+return m_pairCache;+}+const btOverlappingPairCache* getOverlappingPairCache() const+{+return m_pairCache;+}++void setOverlappingPairUserCallback(btOverlappingPairCallback* pairCallback)+{+m_userPairCallback = pairCallback;+}+const btOverlappingPairCallback* getOverlappingPairUserCallback() const+{+return m_userPairCallback;+}++///getAabb returns the axis aligned bounding box in the 'global' coordinate frame+///will add some transform later+virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const+{+aabbMin = m_worldAabbMin;+aabbMax = m_worldAabbMax;+}++virtual void printStats()+{+/* printf("btAxisSweep3.h\n");+printf("numHandles = %d, maxHandles = %d\n",m_numHandles,m_maxHandles);+printf("aabbMin=%f,%f,%f,aabbMax=%f,%f,%f\n",m_worldAabbMin.getX(),m_worldAabbMin.getY(),m_worldAabbMin.getZ(),+m_worldAabbMax.getX(),m_worldAabbMax.getY(),m_worldAabbMax.getZ());+*/++}++};++////////////////////////////////////////////////////////////////////+++++#ifdef DEBUG_BROADPHASE+#include <stdio.h>++template <typename BP_FP_INT_TYPE>+void btAxisSweep3<BP_FP_INT_TYPE>::debugPrintAxis(int axis, bool checkCardinality)+{+int numEdges = m_pHandles[0].m_maxEdges[axis];+printf("SAP Axis %d, numEdges=%d\n",axis,numEdges);++int i;+for (i=0;i<numEdges+1;i++)+{+Edge* pEdge = m_pEdges[axis] + i;+Handle* pHandlePrev = getHandle(pEdge->m_handle);+int handleIndex = pEdge->IsMax()? pHandlePrev->m_maxEdges[axis] : pHandlePrev->m_minEdges[axis];+char beginOrEnd;+beginOrEnd=pEdge->IsMax()?'E':'B';+printf(" [%c,h=%d,p=%x,i=%d]\n",beginOrEnd,pEdge->m_handle,pEdge->m_pos,handleIndex);+}++if (checkCardinality)+btAssert(numEdges == m_numHandles*2+1);+}+#endif //DEBUG_BROADPHASE++template <typename BP_FP_INT_TYPE>+btBroadphaseProxy* btAxisSweep3Internal<BP_FP_INT_TYPE>::createProxy( const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)+{+(void)shapeType;+BP_FP_INT_TYPE handleId = addHandle(aabbMin,aabbMax, userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,multiSapProxy);++Handle* handle = getHandle(handleId);++if (m_raycastAccelerator)+{+btBroadphaseProxy* rayProxy = m_raycastAccelerator->createProxy(aabbMin,aabbMax,shapeType,userPtr,collisionFilterGroup,collisionFilterMask,dispatcher,0);+handle->m_dbvtProxy = rayProxy;+}+return handle;+}++++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)+{+Handle* handle = static_cast<Handle*>(proxy);+if (m_raycastAccelerator)+m_raycastAccelerator->destroyProxy(handle->m_dbvtProxy,dispatcher);+removeHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), dispatcher);+}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)+{+Handle* handle = static_cast<Handle*>(proxy);+handle->m_aabbMin = aabbMin;+handle->m_aabbMax = aabbMax;+updateHandle(static_cast<BP_FP_INT_TYPE>(handle->m_uniqueId), aabbMin, aabbMax,dispatcher);+if (m_raycastAccelerator)+m_raycastAccelerator->setAabb(handle->m_dbvtProxy,aabbMin,aabbMax,dispatcher);++}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback,const btVector3& aabbMin,const btVector3& aabbMax)+{+if (m_raycastAccelerator)+{+m_raycastAccelerator->rayTest(rayFrom,rayTo,rayCallback,aabbMin,aabbMax);+} else+{+//choose axis?+BP_FP_INT_TYPE axis = 0;+//for each proxy+for (BP_FP_INT_TYPE i=1;i<m_numHandles*2+1;i++)+{+if (m_pEdges[axis][i].IsMax())+{+rayCallback.process(getHandle(m_pEdges[axis][i].m_handle));+}+}+}+}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback)+{+if (m_raycastAccelerator)+{+m_raycastAccelerator->aabbTest(aabbMin,aabbMax,callback);+} else+{+//choose axis?+BP_FP_INT_TYPE axis = 0;+//for each proxy+for (BP_FP_INT_TYPE i=1;i<m_numHandles*2+1;i++)+{+if (m_pEdges[axis][i].IsMax())+{+Handle* handle = getHandle(m_pEdges[axis][i].m_handle);+if (TestAabbAgainstAabb2(aabbMin,aabbMax,handle->m_aabbMin,handle->m_aabbMax))+{+callback.process(handle);+}+}+}+}+}++++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const+{+Handle* pHandle = static_cast<Handle*>(proxy);+aabbMin = pHandle->m_aabbMin;+aabbMax = pHandle->m_aabbMax;+}+++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::unQuantize(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const+{+Handle* pHandle = static_cast<Handle*>(proxy);++unsigned short vecInMin[3];+unsigned short vecInMax[3];++vecInMin[0] = m_pEdges[0][pHandle->m_minEdges[0]].m_pos ;+vecInMax[0] = m_pEdges[0][pHandle->m_maxEdges[0]].m_pos +1 ;+vecInMin[1] = m_pEdges[1][pHandle->m_minEdges[1]].m_pos ;+vecInMax[1] = m_pEdges[1][pHandle->m_maxEdges[1]].m_pos +1 ;+vecInMin[2] = m_pEdges[2][pHandle->m_minEdges[2]].m_pos ;+vecInMax[2] = m_pEdges[2][pHandle->m_maxEdges[2]].m_pos +1 ;++aabbMin.setValue((btScalar)(vecInMin[0]) / (m_quantize.getX()),(btScalar)(vecInMin[1]) / (m_quantize.getY()),(btScalar)(vecInMin[2]) / (m_quantize.getZ()));+aabbMin += m_worldAabbMin;++aabbMax.setValue((btScalar)(vecInMax[0]) / (m_quantize.getX()),(btScalar)(vecInMax[1]) / (m_quantize.getY()),(btScalar)(vecInMax[2]) / (m_quantize.getZ()));+aabbMax += m_worldAabbMin;+}+++++template <typename BP_FP_INT_TYPE>+btAxisSweep3Internal<BP_FP_INT_TYPE>::btAxisSweep3Internal(const btVector3& worldAabbMin,const btVector3& worldAabbMax, BP_FP_INT_TYPE handleMask, BP_FP_INT_TYPE handleSentinel,BP_FP_INT_TYPE userMaxHandles, btOverlappingPairCache* pairCache , bool disableRaycastAccelerator)+:m_bpHandleMask(handleMask),+m_handleSentinel(handleSentinel),+m_pairCache(pairCache),+m_userPairCallback(0),+m_ownsPairCache(false),+m_invalidPair(0),+m_raycastAccelerator(0)+{+BP_FP_INT_TYPE maxHandles = static_cast<BP_FP_INT_TYPE>(userMaxHandles+1);//need to add one sentinel handle++if (!m_pairCache)+{+void* ptr = btAlignedAlloc(sizeof(btHashedOverlappingPairCache),16);+m_pairCache = new(ptr) btHashedOverlappingPairCache();+m_ownsPairCache = true;+}++if (!disableRaycastAccelerator)+{+m_nullPairCache = new (btAlignedAlloc(sizeof(btNullPairCache),16)) btNullPairCache();+m_raycastAccelerator = new (btAlignedAlloc(sizeof(btDbvtBroadphase),16)) btDbvtBroadphase(m_nullPairCache);//m_pairCache);+m_raycastAccelerator->m_deferedcollide = true;//don't add/remove pairs+}++//btAssert(bounds.HasVolume());++// init bounds+m_worldAabbMin = worldAabbMin;+m_worldAabbMax = worldAabbMax;++btVector3 aabbSize = m_worldAabbMax - m_worldAabbMin;++BP_FP_INT_TYPE maxInt = m_handleSentinel;++m_quantize = btVector3(btScalar(maxInt),btScalar(maxInt),btScalar(maxInt)) / aabbSize;++// allocate handles buffer, using btAlignedAlloc, and put all handles on free list+m_pHandles = new Handle[maxHandles];++m_maxHandles = maxHandles;+m_numHandles = 0;++// handle 0 is reserved as the null index, and is also used as the sentinel+m_firstFreeHandle = 1;+{+for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < maxHandles; i++)+m_pHandles[i].SetNextFree(static_cast<BP_FP_INT_TYPE>(i + 1));+m_pHandles[maxHandles - 1].SetNextFree(0);+}++{+// allocate edge buffers+for (int i = 0; i < 3; i++)+{+m_pEdgesRawPtr[i] = btAlignedAlloc(sizeof(Edge)*maxHandles*2,16);+m_pEdges[i] = new(m_pEdgesRawPtr[i]) Edge[maxHandles * 2];+}+}+//removed overlap management++// make boundary sentinels++m_pHandles[0].m_clientObject = 0;++for (int axis = 0; axis < 3; axis++)+{+m_pHandles[0].m_minEdges[axis] = 0;+m_pHandles[0].m_maxEdges[axis] = 1;++m_pEdges[axis][0].m_pos = 0;+m_pEdges[axis][0].m_handle = 0;+m_pEdges[axis][1].m_pos = m_handleSentinel;+m_pEdges[axis][1].m_handle = 0;+#ifdef DEBUG_BROADPHASE+debugPrintAxis(axis);+#endif //DEBUG_BROADPHASE++}++}++template <typename BP_FP_INT_TYPE>+btAxisSweep3Internal<BP_FP_INT_TYPE>::~btAxisSweep3Internal()+{+if (m_raycastAccelerator)+{+m_nullPairCache->~btOverlappingPairCache();+btAlignedFree(m_nullPairCache);+m_raycastAccelerator->~btDbvtBroadphase();+btAlignedFree (m_raycastAccelerator);+}++for (int i = 2; i >= 0; i--)+{+btAlignedFree(m_pEdgesRawPtr[i]);+}+delete [] m_pHandles;++if (m_ownsPairCache)+{+m_pairCache->~btOverlappingPairCache();+btAlignedFree(m_pairCache);+}+}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::quantize(BP_FP_INT_TYPE* out, const btVector3& point, int isMax) const+{+#ifdef OLD_CLAMPING_METHOD+///problem with this clamping method is that the floating point during quantization might still go outside the range [(0|isMax) .. (m_handleSentinel&m_bpHandleMask]|isMax]+///see http://code.google.com/p/bullet/issues/detail?id=87+btVector3 clampedPoint(point);+clampedPoint.setMax(m_worldAabbMin);+clampedPoint.setMin(m_worldAabbMax);+btVector3 v = (clampedPoint - m_worldAabbMin) * m_quantize;+out[0] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getX() & m_bpHandleMask) | isMax);+out[1] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getY() & m_bpHandleMask) | isMax);+out[2] = (BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v.getZ() & m_bpHandleMask) | isMax);+#else+btVector3 v = (point - m_worldAabbMin) * m_quantize;+out[0]=(v[0]<=0)?(BP_FP_INT_TYPE)isMax:(v[0]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[0]&m_bpHandleMask)|isMax);+out[1]=(v[1]<=0)?(BP_FP_INT_TYPE)isMax:(v[1]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[1]&m_bpHandleMask)|isMax);+out[2]=(v[2]<=0)?(BP_FP_INT_TYPE)isMax:(v[2]>=m_handleSentinel)?(BP_FP_INT_TYPE)((m_handleSentinel&m_bpHandleMask)|isMax):(BP_FP_INT_TYPE)(((BP_FP_INT_TYPE)v[2]&m_bpHandleMask)|isMax);+#endif //OLD_CLAMPING_METHOD+}+++template <typename BP_FP_INT_TYPE>+BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::allocHandle()+{+btAssert(m_firstFreeHandle);++BP_FP_INT_TYPE handle = m_firstFreeHandle;+m_firstFreeHandle = getHandle(handle)->GetNextFree();+m_numHandles++;++return handle;+}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::freeHandle(BP_FP_INT_TYPE handle)+{+btAssert(handle > 0 && handle < m_maxHandles);++getHandle(handle)->SetNextFree(m_firstFreeHandle);+m_firstFreeHandle = handle;++m_numHandles--;+}+++template <typename BP_FP_INT_TYPE>+BP_FP_INT_TYPE btAxisSweep3Internal<BP_FP_INT_TYPE>::addHandle(const btVector3& aabbMin,const btVector3& aabbMax, void* pOwner,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy)+{+// quantize the bounds+BP_FP_INT_TYPE min[3], max[3];+quantize(min, aabbMin, 0);+quantize(max, aabbMax, 1);++// allocate a handle+BP_FP_INT_TYPE handle = allocHandle();+++Handle* pHandle = getHandle(handle);++pHandle->m_uniqueId = static_cast<int>(handle);+//pHandle->m_pOverlaps = 0;+pHandle->m_clientObject = pOwner;+pHandle->m_collisionFilterGroup = collisionFilterGroup;+pHandle->m_collisionFilterMask = collisionFilterMask;+pHandle->m_multiSapParentProxy = multiSapProxy;++// compute current limit of edge arrays+BP_FP_INT_TYPE limit = static_cast<BP_FP_INT_TYPE>(m_numHandles * 2);+++// insert new edges just inside the max boundary edge+for (BP_FP_INT_TYPE axis = 0; axis < 3; axis++)+{++m_pHandles[0].m_maxEdges[axis] += 2;++m_pEdges[axis][limit + 1] = m_pEdges[axis][limit - 1];++m_pEdges[axis][limit - 1].m_pos = min[axis];+m_pEdges[axis][limit - 1].m_handle = handle;++m_pEdges[axis][limit].m_pos = max[axis];+m_pEdges[axis][limit].m_handle = handle;++pHandle->m_minEdges[axis] = static_cast<BP_FP_INT_TYPE>(limit - 1);+pHandle->m_maxEdges[axis] = limit;+}++// now sort the new edges to their correct position+sortMinDown(0, pHandle->m_minEdges[0], dispatcher,false);+sortMaxDown(0, pHandle->m_maxEdges[0], dispatcher,false);+sortMinDown(1, pHandle->m_minEdges[1], dispatcher,false);+sortMaxDown(1, pHandle->m_maxEdges[1], dispatcher,false);+sortMinDown(2, pHandle->m_minEdges[2], dispatcher,true);+sortMaxDown(2, pHandle->m_maxEdges[2], dispatcher,true);+++return handle;+}+++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::removeHandle(BP_FP_INT_TYPE handle,btDispatcher* dispatcher)+{++Handle* pHandle = getHandle(handle);++//explicitly remove the pairs containing the proxy+//we could do it also in the sortMinUp (passing true)+///@todo: compare performance+if (!m_pairCache->hasDeferredRemoval())+{+m_pairCache->removeOverlappingPairsContainingProxy(pHandle,dispatcher);+}++// compute current limit of edge arrays+int limit = static_cast<int>(m_numHandles * 2);++int axis;++for (axis = 0;axis<3;axis++)+{+m_pHandles[0].m_maxEdges[axis] -= 2;+}++// remove the edges by sorting them up to the end of the list+for ( axis = 0; axis < 3; axis++)+{+Edge* pEdges = m_pEdges[axis];+BP_FP_INT_TYPE max = pHandle->m_maxEdges[axis];+pEdges[max].m_pos = m_handleSentinel;++sortMaxUp(axis,max,dispatcher,false);+++BP_FP_INT_TYPE i = pHandle->m_minEdges[axis];+pEdges[i].m_pos = m_handleSentinel;+++sortMinUp(axis,i,dispatcher,false);++pEdges[limit-1].m_handle = 0;+pEdges[limit-1].m_pos = m_handleSentinel;++#ifdef DEBUG_BROADPHASE+debugPrintAxis(axis,false);+#endif //DEBUG_BROADPHASE+++}+++// free the handle+freeHandle(handle);+++}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::resetPool(btDispatcher* dispatcher)+{+if (m_numHandles == 0)+{+m_firstFreeHandle = 1;+{+for (BP_FP_INT_TYPE i = m_firstFreeHandle; i < m_maxHandles; i++)+m_pHandles[i].SetNextFree(static_cast<BP_FP_INT_TYPE>(i + 1));+m_pHandles[m_maxHandles - 1].SetNextFree(0);+}+}+}+++extern int gOverlappingPairs;+//#include <stdio.h>++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::calculateOverlappingPairs(btDispatcher* dispatcher)+{++if (m_pairCache->hasDeferredRemoval())+{++btBroadphasePairArray& overlappingPairArray = m_pairCache->getOverlappingPairArray();++//perform a sort, to find duplicates and to sort 'invalid' pairs to the end+overlappingPairArray.quickSort(btBroadphasePairSortPredicate());++overlappingPairArray.resize(overlappingPairArray.size() - m_invalidPair);+m_invalidPair = 0;+++int i;++btBroadphasePair previousPair;+previousPair.m_pProxy0 = 0;+previousPair.m_pProxy1 = 0;+previousPair.m_algorithm = 0;+++for (i=0;i<overlappingPairArray.size();i++)+{++btBroadphasePair& pair = overlappingPairArray[i];++bool isDuplicate = (pair == previousPair);++previousPair = pair;++bool needsRemoval = false;++if (!isDuplicate)+{+///important to use an AABB test that is consistent with the broadphase+bool hasOverlap = testAabbOverlap(pair.m_pProxy0,pair.m_pProxy1);++if (hasOverlap)+{+needsRemoval = false;//callback->processOverlap(pair);+} else+{+needsRemoval = true;+}+} else+{+//remove duplicate+needsRemoval = true;+//should have no algorithm+btAssert(!pair.m_algorithm);+}++if (needsRemoval)+{+m_pairCache->cleanOverlappingPair(pair,dispatcher);++// m_overlappingPairArray.swap(i,m_overlappingPairArray.size()-1);+// m_overlappingPairArray.pop_back();+pair.m_pProxy0 = 0;+pair.m_pProxy1 = 0;+m_invalidPair++;+gOverlappingPairs--;+}++}++///if you don't like to skip the invalid pairs in the array, execute following code:+#define CLEAN_INVALID_PAIRS 1+#ifdef CLEAN_INVALID_PAIRS++//perform a sort, to sort 'invalid' pairs to the end+overlappingPairArray.quickSort(btBroadphasePairSortPredicate());++overlappingPairArray.resize(overlappingPairArray.size() - m_invalidPair);+m_invalidPair = 0;+#endif//CLEAN_INVALID_PAIRS++//printf("overlappingPairArray.size()=%d\n",overlappingPairArray.size());+}++}+++template <typename BP_FP_INT_TYPE>+bool btAxisSweep3Internal<BP_FP_INT_TYPE>::testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)+{+const Handle* pHandleA = static_cast<Handle*>(proxy0);+const Handle* pHandleB = static_cast<Handle*>(proxy1);++//optimization 1: check the array index (memory address), instead of the m_pos++for (int axis = 0; axis < 3; axis++)+{+if (pHandleA->m_maxEdges[axis] < pHandleB->m_minEdges[axis] ||+pHandleB->m_maxEdges[axis] < pHandleA->m_minEdges[axis])+{+return false;+}+}+return true;+}++template <typename BP_FP_INT_TYPE>+bool btAxisSweep3Internal<BP_FP_INT_TYPE>::testOverlap2D(const Handle* pHandleA, const Handle* pHandleB,int axis0,int axis1)+{+//optimization 1: check the array index (memory address), instead of the m_pos++if (pHandleA->m_maxEdges[axis0] < pHandleB->m_minEdges[axis0] ||+pHandleB->m_maxEdges[axis0] < pHandleA->m_minEdges[axis0] ||+pHandleA->m_maxEdges[axis1] < pHandleB->m_minEdges[axis1] ||+pHandleB->m_maxEdges[axis1] < pHandleA->m_minEdges[axis1])+{+return false;+}+return true;+}++template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::updateHandle(BP_FP_INT_TYPE handle, const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher)+{+// btAssert(bounds.IsFinite());+//btAssert(bounds.HasVolume());++Handle* pHandle = getHandle(handle);++// quantize the new bounds+BP_FP_INT_TYPE min[3], max[3];+quantize(min, aabbMin, 0);+quantize(max, aabbMax, 1);++// update changed edges+for (int axis = 0; axis < 3; axis++)+{+BP_FP_INT_TYPE emin = pHandle->m_minEdges[axis];+BP_FP_INT_TYPE emax = pHandle->m_maxEdges[axis];++int dmin = (int)min[axis] - (int)m_pEdges[axis][emin].m_pos;+int dmax = (int)max[axis] - (int)m_pEdges[axis][emax].m_pos;++m_pEdges[axis][emin].m_pos = min[axis];+m_pEdges[axis][emax].m_pos = max[axis];++// expand (only adds overlaps)+if (dmin < 0)+sortMinDown(axis, emin,dispatcher,true);++if (dmax > 0)+sortMaxUp(axis, emax,dispatcher,true);++// shrink (only removes overlaps)+if (dmin > 0)+sortMinUp(axis, emin,dispatcher,true);++if (dmax < 0)+sortMaxDown(axis, emax,dispatcher,true);++#ifdef DEBUG_BROADPHASE+debugPrintAxis(axis);+#endif //DEBUG_BROADPHASE+}+++}+++++// sorting a min edge downwards can only ever *add* overlaps+template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMinDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* /* dispatcher */, bool updateOverlaps)+{++Edge* pEdge = m_pEdges[axis] + edge;+Edge* pPrev = pEdge - 1;+Handle* pHandleEdge = getHandle(pEdge->m_handle);++while (pEdge->m_pos < pPrev->m_pos)+{+Handle* pHandlePrev = getHandle(pPrev->m_handle);++if (pPrev->IsMax())+{+// if previous edge is a maximum check the bounds and add an overlap if necessary+const int axis1 = (1 << axis) & 3;+const int axis2 = (1 << axis1) & 3;+if (updateOverlaps && testOverlap2D(pHandleEdge, pHandlePrev,axis1,axis2))+{+m_pairCache->addOverlappingPair(pHandleEdge,pHandlePrev);+if (m_userPairCallback)+m_userPairCallback->addOverlappingPair(pHandleEdge,pHandlePrev);++//AddOverlap(pEdge->m_handle, pPrev->m_handle);++}++// update edge reference in other handle+pHandlePrev->m_maxEdges[axis]++;+}+else+pHandlePrev->m_minEdges[axis]++;++pHandleEdge->m_minEdges[axis]--;++// swap the edges+Edge swap = *pEdge;+*pEdge = *pPrev;+*pPrev = swap;++// decrement+pEdge--;+pPrev--;+}++#ifdef DEBUG_BROADPHASE+debugPrintAxis(axis);+#endif //DEBUG_BROADPHASE++}++// sorting a min edge upwards can only ever *remove* overlaps+template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMinUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps)+{+Edge* pEdge = m_pEdges[axis] + edge;+Edge* pNext = pEdge + 1;+Handle* pHandleEdge = getHandle(pEdge->m_handle);++while (pNext->m_handle && (pEdge->m_pos >= pNext->m_pos))+{+Handle* pHandleNext = getHandle(pNext->m_handle);++if (pNext->IsMax())+{+Handle* handle0 = getHandle(pEdge->m_handle);+Handle* handle1 = getHandle(pNext->m_handle);+const int axis1 = (1 << axis) & 3;+const int axis2 = (1 << axis1) & 3;++// if next edge is maximum remove any overlap between the two handles+if (updateOverlaps+#ifdef USE_OVERLAP_TEST_ON_REMOVES+&& testOverlap2D(handle0,handle1,axis1,axis2)+#endif //USE_OVERLAP_TEST_ON_REMOVES+)+{+++m_pairCache->removeOverlappingPair(handle0,handle1,dispatcher);+if (m_userPairCallback)+m_userPairCallback->removeOverlappingPair(handle0,handle1,dispatcher);++}+++// update edge reference in other handle+pHandleNext->m_maxEdges[axis]--;+}+else+pHandleNext->m_minEdges[axis]--;++pHandleEdge->m_minEdges[axis]++;++// swap the edges+Edge swap = *pEdge;+*pEdge = *pNext;+*pNext = swap;++// increment+pEdge++;+pNext++;+}+++}++// sorting a max edge downwards can only ever *remove* overlaps+template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMaxDown(int axis, BP_FP_INT_TYPE edge, btDispatcher* dispatcher, bool updateOverlaps)+{++Edge* pEdge = m_pEdges[axis] + edge;+Edge* pPrev = pEdge - 1;+Handle* pHandleEdge = getHandle(pEdge->m_handle);++while (pEdge->m_pos < pPrev->m_pos)+{+Handle* pHandlePrev = getHandle(pPrev->m_handle);++if (!pPrev->IsMax())+{+// if previous edge was a minimum remove any overlap between the two handles+Handle* handle0 = getHandle(pEdge->m_handle);+Handle* handle1 = getHandle(pPrev->m_handle);+const int axis1 = (1 << axis) & 3;+const int axis2 = (1 << axis1) & 3;++if (updateOverlaps+#ifdef USE_OVERLAP_TEST_ON_REMOVES+&& testOverlap2D(handle0,handle1,axis1,axis2)+#endif //USE_OVERLAP_TEST_ON_REMOVES+)+{+//this is done during the overlappingpairarray iteration/narrowphase collision+++m_pairCache->removeOverlappingPair(handle0,handle1,dispatcher);+if (m_userPairCallback)+m_userPairCallback->removeOverlappingPair(handle0,handle1,dispatcher);++++}++// update edge reference in other handle+pHandlePrev->m_minEdges[axis]++;;+}+else+pHandlePrev->m_maxEdges[axis]++;++pHandleEdge->m_maxEdges[axis]--;++// swap the edges+Edge swap = *pEdge;+*pEdge = *pPrev;+*pPrev = swap;++// decrement+pEdge--;+pPrev--;+}+++#ifdef DEBUG_BROADPHASE+debugPrintAxis(axis);+#endif //DEBUG_BROADPHASE++}++// sorting a max edge upwards can only ever *add* overlaps+template <typename BP_FP_INT_TYPE>+void btAxisSweep3Internal<BP_FP_INT_TYPE>::sortMaxUp(int axis, BP_FP_INT_TYPE edge, btDispatcher* /* dispatcher */, bool updateOverlaps)+{+Edge* pEdge = m_pEdges[axis] + edge;+Edge* pNext = pEdge + 1;+Handle* pHandleEdge = getHandle(pEdge->m_handle);++while (pNext->m_handle && (pEdge->m_pos >= pNext->m_pos))+{+Handle* pHandleNext = getHandle(pNext->m_handle);++const int axis1 = (1 << axis) & 3;+const int axis2 = (1 << axis1) & 3;++if (!pNext->IsMax())+{+// if next edge is a minimum check the bounds and add an overlap if necessary+if (updateOverlaps && testOverlap2D(pHandleEdge, pHandleNext,axis1,axis2))+{+Handle* handle0 = getHandle(pEdge->m_handle);+Handle* handle1 = getHandle(pNext->m_handle);+m_pairCache->addOverlappingPair(handle0,handle1);+if (m_userPairCallback)+m_userPairCallback->addOverlappingPair(handle0,handle1);+}++// update edge reference in other handle+pHandleNext->m_minEdges[axis]--;+}+else+pHandleNext->m_maxEdges[axis]--;++pHandleEdge->m_maxEdges[axis]++;++// swap the edges+Edge swap = *pEdge;+*pEdge = *pNext;+*pNext = swap;++// increment+pEdge++;+pNext++;+}++}++++////////////////////////////////////////////////////////////////////+++/// The btAxisSweep3 is an efficient implementation of the 3d axis sweep and prune broadphase.+/// It uses arrays rather then lists for storage of the 3 axis. Also it operates using 16 bit integer coordinates instead of floats.+/// For large worlds and many objects, use bt32BitAxisSweep3 or btDbvtBroadphase instead. bt32BitAxisSweep3 has higher precision and allows more then 16384 objects at the cost of more memory and bit of performance.+class btAxisSweep3 : public btAxisSweep3Internal<unsigned short int>+{ private:+public:++btAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned short int maxHandles = 16384, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);++};++/// The bt32BitAxisSweep3 allows higher precision quantization and more objects compared to the btAxisSweep3 sweep and prune.+/// This comes at the cost of more memory per handle, and a bit slower performance.+/// It uses arrays rather then lists for storage of the 3 axis.+class bt32BitAxisSweep3 : public btAxisSweep3Internal<unsigned int>+{ private:+public:++bt32BitAxisSweep3(const btVector3& worldAabbMin,const btVector3& worldAabbMax, unsigned int maxHandles = 1500000, btOverlappingPairCache* pairCache = 0, bool disableRaycastAccelerator = false);  }; 
bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -13,8 +13,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef		BT_BROADPHASE_INTERFACE_H-#define 	BT_BROADPHASE_INTERFACE_H+#ifndef BT_BROADPHASE_INTERFACE_H+#define BT_BROADPHASE_INTERFACE_H   @@ -26,21 +26,21 @@   -struct	btBroadphaseAabbCallback+struct btBroadphaseAabbCallback {-	virtual ~btBroadphaseAabbCallback() {}-	virtual bool	process(const btBroadphaseProxy* proxy) = 0;+virtual ~btBroadphaseAabbCallback() {}+virtual bool process(const btBroadphaseProxy* proxy) = 0; };  -struct	btBroadphaseRayCallback : public btBroadphaseAabbCallback+struct btBroadphaseRayCallback : public btBroadphaseAabbCallback {-	///added some cached data to accelerate ray-AABB tests-	btVector3		m_rayDirectionInverse;-	unsigned int	m_signs[3];-	btScalar		m_lambda_max;+///added some cached data to accelerate ray-AABB tests+btVector3 m_rayDirectionInverse;+unsigned int m_signs[3];+btScalar m_lambda_max; -	virtual ~btBroadphaseRayCallback() {}+virtual ~btBroadphaseRayCallback() {} };  #include "LinearMath/btVector3.h"@@ -49,33 +49,33 @@ ///Some implementations for this broadphase interface include btAxisSweep3, bt32BitAxisSweep3 and btDbvtBroadphase. ///The actual overlapping pair management, storage, adding and removing of pairs is dealt by the btOverlappingPairCache class. class btBroadphaseInterface-{+{ private: public:-	virtual ~btBroadphaseInterface() {}+virtual ~btBroadphaseInterface() {} -	virtual btBroadphaseProxy*	createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy) =0;-	virtual void	destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)=0;-	virtual void	setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher)=0;-	virtual void	getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const =0;+virtual btBroadphaseProxy* createProxy( const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy) =0;+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher)=0;+virtual void setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher)=0;+virtual void getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const =0; -	virtual void	rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0)) = 0;+virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0)) = 0; -	virtual void	aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback) = 0;+virtual void aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback) = 0; -	///calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb-	virtual void	calculateOverlappingPairs(btDispatcher* dispatcher)=0;+///calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb+virtual void calculateOverlappingPairs(btDispatcher* dispatcher)=0; -	virtual	btOverlappingPairCache*	getOverlappingPairCache()=0;-	virtual	const btOverlappingPairCache*	getOverlappingPairCache() const =0;+virtual btOverlappingPairCache* getOverlappingPairCache()=0;+virtual const btOverlappingPairCache* getOverlappingPairCache() const =0; -	///getAabb returns the axis aligned bounding box in the 'global' coordinate frame-	///will add some transform later-	virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const =0;+///getAabb returns the axis aligned bounding box in the 'global' coordinate frame+///will add some transform later+virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const =0; -	///reset broadphase internal structures, to ensure determinism/reproducability-	virtual void resetPool(btDispatcher* dispatcher) { (void) dispatcher; };+///reset broadphase internal structures, to ensure determinism/reproducability+virtual void resetPool(btDispatcher* dispatcher) { (void) dispatcher; }; -	virtual void	printStats() = 0;+virtual void printStats() = 0;  }; 
bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -27,152 +27,152 @@ /// CUSTOM_POLYHEDRAL_SHAPE_TYPE,CUSTOM_CONVEX_SHAPE_TYPE and CUSTOM_CONCAVE_SHAPE_TYPE can be used to extend Bullet without modifying source code enum BroadphaseNativeTypes {-	// polyhedral convex shapes-	BOX_SHAPE_PROXYTYPE,-	TRIANGLE_SHAPE_PROXYTYPE,-	TETRAHEDRAL_SHAPE_PROXYTYPE,-	CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE,-	CONVEX_HULL_SHAPE_PROXYTYPE,-	CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE,-	CUSTOM_POLYHEDRAL_SHAPE_TYPE,+// polyhedral convex shapes+BOX_SHAPE_PROXYTYPE,+TRIANGLE_SHAPE_PROXYTYPE,+TETRAHEDRAL_SHAPE_PROXYTYPE,+CONVEX_TRIANGLEMESH_SHAPE_PROXYTYPE,+CONVEX_HULL_SHAPE_PROXYTYPE,+CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE,+CUSTOM_POLYHEDRAL_SHAPE_TYPE, //implicit convex shapes IMPLICIT_CONVEX_SHAPES_START_HERE,-	SPHERE_SHAPE_PROXYTYPE,-	MULTI_SPHERE_SHAPE_PROXYTYPE,-	CAPSULE_SHAPE_PROXYTYPE,-	CONE_SHAPE_PROXYTYPE,-	CONVEX_SHAPE_PROXYTYPE,-	CYLINDER_SHAPE_PROXYTYPE,-	UNIFORM_SCALING_SHAPE_PROXYTYPE,-	MINKOWSKI_SUM_SHAPE_PROXYTYPE,-	MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE,-	BOX_2D_SHAPE_PROXYTYPE,-	CONVEX_2D_SHAPE_PROXYTYPE,-	CUSTOM_CONVEX_SHAPE_TYPE,+SPHERE_SHAPE_PROXYTYPE,+MULTI_SPHERE_SHAPE_PROXYTYPE,+CAPSULE_SHAPE_PROXYTYPE,+CONE_SHAPE_PROXYTYPE,+CONVEX_SHAPE_PROXYTYPE,+CYLINDER_SHAPE_PROXYTYPE,+UNIFORM_SCALING_SHAPE_PROXYTYPE,+MINKOWSKI_SUM_SHAPE_PROXYTYPE,+MINKOWSKI_DIFFERENCE_SHAPE_PROXYTYPE,+BOX_2D_SHAPE_PROXYTYPE,+CONVEX_2D_SHAPE_PROXYTYPE,+CUSTOM_CONVEX_SHAPE_TYPE, //concave shapes CONCAVE_SHAPES_START_HERE,-	//keep all the convex shapetype below here, for the check IsConvexShape in broadphase proxy!-	TRIANGLE_MESH_SHAPE_PROXYTYPE,-	SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE,-	///used for demo integration FAST/Swift collision library and Bullet-	FAST_CONCAVE_MESH_PROXYTYPE,-	//terrain-	TERRAIN_SHAPE_PROXYTYPE,+//keep all the convex shapetype below here, for the check IsConvexShape in broadphase proxy!+TRIANGLE_MESH_SHAPE_PROXYTYPE,+SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE,+///used for demo integration FAST/Swift collision library and Bullet+FAST_CONCAVE_MESH_PROXYTYPE,+//terrain+TERRAIN_SHAPE_PROXYTYPE, ///Used for GIMPACT Trimesh integration-	GIMPACT_SHAPE_PROXYTYPE,+GIMPACT_SHAPE_PROXYTYPE, ///Multimaterial mesh-    MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE,-	-	EMPTY_SHAPE_PROXYTYPE,-	STATIC_PLANE_PROXYTYPE,-	CUSTOM_CONCAVE_SHAPE_TYPE,+MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE,++EMPTY_SHAPE_PROXYTYPE,+STATIC_PLANE_PROXYTYPE,+CUSTOM_CONCAVE_SHAPE_TYPE, CONCAVE_SHAPES_END_HERE, -	COMPOUND_SHAPE_PROXYTYPE,+COMPOUND_SHAPE_PROXYTYPE, -	SOFTBODY_SHAPE_PROXYTYPE,-	HFFLUID_SHAPE_PROXYTYPE,-	HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE,-	INVALID_SHAPE_PROXYTYPE,+SOFTBODY_SHAPE_PROXYTYPE,+HFFLUID_SHAPE_PROXYTYPE,+HFFLUID_BUOYANT_CONVEX_SHAPE_PROXYTYPE,+INVALID_SHAPE_PROXYTYPE, -	MAX_BROADPHASE_COLLISION_TYPES-	+MAX_BROADPHASE_COLLISION_TYPES+ };  -///The btBroadphaseProxy is the main class that can be used with the Bullet broadphases. +///The btBroadphaseProxy is the main class that can be used with the Bullet broadphases. ///It stores collision shape type information, collision filter information and a client object, typically a btCollisionObject or btRigidBody. ATTRIBUTE_ALIGNED16(struct) btBroadphaseProxy {  BT_DECLARE_ALIGNED_ALLOCATOR();-	-	///optional filtering to cull potential collisions-	enum CollisionFilterGroups-	{-	        DefaultFilter = 1,-	        StaticFilter = 2,-	        KinematicFilter = 4,-	        DebrisFilter = 8,-			SensorTrigger = 16,-			CharacterFilter = 32,-	        AllFilter = -1 //all bits sets: DefaultFilter | StaticFilter | KinematicFilter | DebrisFilter | SensorTrigger-	}; -	//Usually the client btCollisionObject or Rigidbody class-	void*	m_clientObject;-	short int m_collisionFilterGroup;-	short int m_collisionFilterMask;-	void*	m_multiSapParentProxy;		-	int			m_uniqueId;//m_uniqueId is introduced for paircache. could get rid of this, by calculating the address offset etc.+///optional filtering to cull potential collisions+enum CollisionFilterGroups+{+DefaultFilter = 1,+StaticFilter = 2,+KinematicFilter = 4,+DebrisFilter = 8,+SensorTrigger = 16,+CharacterFilter = 32,+AllFilter = -1 //all bits sets: DefaultFilter | StaticFilter | KinematicFilter | DebrisFilter | SensorTrigger+}; -	btVector3	m_aabbMin;-	btVector3	m_aabbMax;+//Usually the client btCollisionObject or Rigidbody class+void* m_clientObject;+short int m_collisionFilterGroup;+short int m_collisionFilterMask;+void* m_multiSapParentProxy;+int m_uniqueId;//m_uniqueId is introduced for paircache. could get rid of this, by calculating the address offset etc. -	SIMD_FORCE_INLINE int getUid() const-	{-		return m_uniqueId;-	}+btVector3 m_aabbMin;+btVector3 m_aabbMax; -	//used for memory pools-	btBroadphaseProxy() :m_clientObject(0),m_multiSapParentProxy(0)-	{-	}+SIMD_FORCE_INLINE int getUid() const+{+return m_uniqueId;+} -	btBroadphaseProxy(const btVector3& aabbMin,const btVector3& aabbMax,void* userPtr,short int collisionFilterGroup, short int collisionFilterMask,void* multiSapParentProxy=0)-		:m_clientObject(userPtr),-		m_collisionFilterGroup(collisionFilterGroup),-		m_collisionFilterMask(collisionFilterMask),-		m_aabbMin(aabbMin),-		m_aabbMax(aabbMax)-	{-		m_multiSapParentProxy = multiSapParentProxy;-	}+//used for memory pools+btBroadphaseProxy() :m_clientObject(0),m_multiSapParentProxy(0)+{+} -	+btBroadphaseProxy(const btVector3& aabbMin,const btVector3& aabbMax,void* userPtr,short int collisionFilterGroup, short int collisionFilterMask,void* multiSapParentProxy=0)+:m_clientObject(userPtr),+m_collisionFilterGroup(collisionFilterGroup),+m_collisionFilterMask(collisionFilterMask),+m_aabbMin(aabbMin),+m_aabbMax(aabbMax)+{+m_multiSapParentProxy = multiSapParentProxy;+} -	static SIMD_FORCE_INLINE bool isPolyhedral(int proxyType)-	{-		return (proxyType  < IMPLICIT_CONVEX_SHAPES_START_HERE);-	} -	static SIMD_FORCE_INLINE bool	isConvex(int proxyType)-	{-		return (proxyType < CONCAVE_SHAPES_START_HERE);-	} -	static SIMD_FORCE_INLINE bool	isNonMoving(int proxyType)-	{-		return (isConcave(proxyType) && !(proxyType==GIMPACT_SHAPE_PROXYTYPE));-	}+static SIMD_FORCE_INLINE bool isPolyhedral(int proxyType)+{+return (proxyType < IMPLICIT_CONVEX_SHAPES_START_HERE);+} -	static SIMD_FORCE_INLINE bool	isConcave(int proxyType)-	{-		return ((proxyType > CONCAVE_SHAPES_START_HERE) &&-			(proxyType < CONCAVE_SHAPES_END_HERE));-	}-	static SIMD_FORCE_INLINE bool	isCompound(int proxyType)-	{-		return (proxyType == COMPOUND_SHAPE_PROXYTYPE);-	}+static SIMD_FORCE_INLINE bool isConvex(int proxyType)+{+return (proxyType < CONCAVE_SHAPES_START_HERE);+} -	static SIMD_FORCE_INLINE bool	isSoftBody(int proxyType)-	{-		return (proxyType == SOFTBODY_SHAPE_PROXYTYPE);-	}+static SIMD_FORCE_INLINE bool isNonMoving(int proxyType)+{+return (isConcave(proxyType) && !(proxyType==GIMPACT_SHAPE_PROXYTYPE));+} -	static SIMD_FORCE_INLINE bool isInfinite(int proxyType)-	{-		return (proxyType == STATIC_PLANE_PROXYTYPE);-	}+static SIMD_FORCE_INLINE bool isConcave(int proxyType)+{+return ((proxyType > CONCAVE_SHAPES_START_HERE) &&+(proxyType < CONCAVE_SHAPES_END_HERE));+}+static SIMD_FORCE_INLINE bool isCompound(int proxyType)+{+return (proxyType == COMPOUND_SHAPE_PROXYTYPE);+} -	static SIMD_FORCE_INLINE bool isConvex2d(int proxyType)-	{-		return (proxyType == BOX_2D_SHAPE_PROXYTYPE) ||	(proxyType == CONVEX_2D_SHAPE_PROXYTYPE);-	}+static SIMD_FORCE_INLINE bool isSoftBody(int proxyType)+{+return (proxyType == SOFTBODY_SHAPE_PROXYTYPE);+} -	+static SIMD_FORCE_INLINE bool isInfinite(int proxyType)+{+return (proxyType == STATIC_PLANE_PROXYTYPE); }++static SIMD_FORCE_INLINE bool isConvex2d(int proxyType)+{+return (proxyType == BOX_2D_SHAPE_PROXYTYPE) || (proxyType == CONVEX_2D_SHAPE_PROXYTYPE);+}+++} ;  class btCollisionAlgorithm;@@ -185,84 +185,84 @@ ///A btDispatcher can search a btCollisionAlgorithm that performs exact/narrowphase collision detection on the actual collision shapes. ATTRIBUTE_ALIGNED16(struct) btBroadphasePair {-	btBroadphasePair ()-		:-	m_pProxy0(0),-		m_pProxy1(0),-		m_algorithm(0),-		m_internalInfo1(0)-	{-	}+btBroadphasePair ()+:+m_pProxy0(0),+m_pProxy1(0),+m_algorithm(0),+m_internalInfo1(0)+{+}  BT_DECLARE_ALIGNED_ALLOCATOR(); -	btBroadphasePair(const btBroadphasePair& other)-		:		m_pProxy0(other.m_pProxy0),-				m_pProxy1(other.m_pProxy1),-				m_algorithm(other.m_algorithm),-				m_internalInfo1(other.m_internalInfo1)-	{-	}-	btBroadphasePair(btBroadphaseProxy& proxy0,btBroadphaseProxy& proxy1)-	{+btBroadphasePair(const btBroadphasePair& other)+: m_pProxy0(other.m_pProxy0),+m_pProxy1(other.m_pProxy1),+m_algorithm(other.m_algorithm),+m_internalInfo1(other.m_internalInfo1)+{+}+btBroadphasePair(btBroadphaseProxy& proxy0,btBroadphaseProxy& proxy1)+{ -		//keep them sorted, so the std::set operations work-		if (proxy0.m_uniqueId < proxy1.m_uniqueId)-        { -            m_pProxy0 = &proxy0; -            m_pProxy1 = &proxy1; -        }-        else -        { -			m_pProxy0 = &proxy1; -            m_pProxy1 = &proxy0; -        }+//keep them sorted, so the std::set operations work+if (proxy0.m_uniqueId < proxy1.m_uniqueId)+{+m_pProxy0 = &proxy0;+m_pProxy1 = &proxy1;+}+else+{+m_pProxy0 = &proxy1;+m_pProxy1 = &proxy0;+} -		m_algorithm = 0;-		m_internalInfo1 = 0;+m_algorithm = 0;+m_internalInfo1 = 0; -	}-	-	btBroadphaseProxy* m_pProxy0;-	btBroadphaseProxy* m_pProxy1;-	-	mutable btCollisionAlgorithm* m_algorithm;-	union { void* m_internalInfo1; int m_internalTmpValue;};//don't use this data, it will be removed in future version.+} +btBroadphaseProxy* m_pProxy0;+btBroadphaseProxy* m_pProxy1;++mutable btCollisionAlgorithm* m_algorithm;+union { void* m_internalInfo1; int m_internalTmpValue;};//don't use this data, it will be removed in future version.+ };  /* //comparison for set operation, see Solid DT_Encounter-SIMD_FORCE_INLINE bool operator<(const btBroadphasePair& a, const btBroadphasePair& b) -{ -    return a.m_pProxy0 < b.m_pProxy0 || -        (a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 < b.m_pProxy1); +SIMD_FORCE_INLINE bool operator<(const btBroadphasePair& a, const btBroadphasePair& b)+{+return a.m_pProxy0 < b.m_pProxy0 ||+(a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 < b.m_pProxy1); } */    class btBroadphasePairSortPredicate-{-	public:+{ private:+public: -		bool operator() ( const btBroadphasePair& a, const btBroadphasePair& b )-		{-			const int uidA0 = a.m_pProxy0 ? a.m_pProxy0->m_uniqueId : -1;-			const int uidB0 = b.m_pProxy0 ? b.m_pProxy0->m_uniqueId : -1;-			const int uidA1 = a.m_pProxy1 ? a.m_pProxy1->m_uniqueId : -1;-			const int uidB1 = b.m_pProxy1 ? b.m_pProxy1->m_uniqueId : -1;+bool operator() ( const btBroadphasePair& a, const btBroadphasePair& b )+{+const int uidA0 = a.m_pProxy0 ? a.m_pProxy0->m_uniqueId : -1;+const int uidB0 = b.m_pProxy0 ? b.m_pProxy0->m_uniqueId : -1;+const int uidA1 = a.m_pProxy1 ? a.m_pProxy1->m_uniqueId : -1;+const int uidB1 = b.m_pProxy1 ? b.m_pProxy1->m_uniqueId : -1; -			 return uidA0 > uidB0 || -				(a.m_pProxy0 == b.m_pProxy0 && uidA1 > uidB1) ||-				(a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 == b.m_pProxy1 && a.m_algorithm > b.m_algorithm); -		}+return uidA0 > uidB0 ||+(a.m_pProxy0 == b.m_pProxy0 && uidA1 > uidB1) ||+(a.m_pProxy0 == b.m_pProxy0 && a.m_pProxy1 == b.m_pProxy1 && a.m_algorithm > b.m_algorithm);+} };  -SIMD_FORCE_INLINE bool operator==(const btBroadphasePair& a, const btBroadphasePair& b) +SIMD_FORCE_INLINE bool operator==(const btBroadphasePair& a, const btBroadphasePair& b) {-	 return (a.m_pProxy0 == b.m_pProxy0) && (a.m_pProxy1 == b.m_pProxy1);+return (a.m_pProxy0 == b.m_pProxy0) && (a.m_pProxy1 == b.m_pProxy1); }  
bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,27 +24,27 @@ class btManifoldResult; class btCollisionObject; struct btDispatcherInfo;-class	btPersistentManifold;+class btPersistentManifold; -typedef btAlignedObjectArray<btPersistentManifold*>	btManifoldArray;+typedef btAlignedObjectArray<btPersistentManifold*> btManifoldArray;  struct btCollisionAlgorithmConstructionInfo {-	btCollisionAlgorithmConstructionInfo()-		:m_dispatcher1(0),-		m_manifold(0)-	{-	}-	btCollisionAlgorithmConstructionInfo(btDispatcher* dispatcher,int temp)-		:m_dispatcher1(dispatcher)-	{-		(void)temp;-	}+btCollisionAlgorithmConstructionInfo()+:m_dispatcher1(0),+m_manifold(0)+{+}+btCollisionAlgorithmConstructionInfo(btDispatcher* dispatcher,int temp)+:m_dispatcher1(dispatcher)+{+(void)temp;+} -	btDispatcher*	m_dispatcher1;-	btPersistentManifold*	m_manifold;+btDispatcher* m_dispatcher1;+btPersistentManifold* m_manifold; -//	int	getDispatcherId();+// int getDispatcherId();  }; @@ -52,28 +52,28 @@ ///btCollisionAlgorithm is an collision interface that is compatible with the Broadphase and btDispatcher. ///It is persistent over frames class btCollisionAlgorithm-{+{ private:  protected: -	btDispatcher*	m_dispatcher;+btDispatcher* m_dispatcher;  protected:-//	int	getDispatcherId();-	+// int getDispatcherId();+ public: -	btCollisionAlgorithm() {};+btCollisionAlgorithm() {}; -	btCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci);+btCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci); -	virtual ~btCollisionAlgorithm() {};+virtual ~btCollisionAlgorithm() {}; -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut) = 0;+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut) = 0; -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut) = 0;+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut) = 0; -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray) = 0;+virtual void getAllContactManifolds(btManifoldArray& manifoldArray) = 0; };  
bullet/BulletCollision/BroadphaseCollision/btDbvt.h view
@@ -1,1238 +1,1238 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/-///btDbvt implementation by Nathanael Presson--#ifndef BT_DYNAMIC_BOUNDING_VOLUME_TREE_H-#define BT_DYNAMIC_BOUNDING_VOLUME_TREE_H--#include "LinearMath/btAlignedObjectArray.h"-#include "LinearMath/btVector3.h"-#include "LinearMath/btTransform.h"-#include "LinearMath/btAabbUtil2.h"--//-// Compile time configuration-//---// Implementation profiles-#define DBVT_IMPL_GENERIC		0	// Generic implementation	-#define DBVT_IMPL_SSE			1	// SSE--// Template implementation of ICollide-#ifdef _WIN32-#if (defined (_MSC_VER) && _MSC_VER >= 1400)-#define	DBVT_USE_TEMPLATE		1-#else-#define	DBVT_USE_TEMPLATE		0-#endif-#else-#define	DBVT_USE_TEMPLATE		0-#endif--// Use only intrinsics instead of inline asm-#define DBVT_USE_INTRINSIC_SSE	1--// Using memmov for collideOCL-#define DBVT_USE_MEMMOVE		1--// Enable benchmarking code-#define	DBVT_ENABLE_BENCHMARK	0--// Inlining-#define DBVT_INLINE				SIMD_FORCE_INLINE--// Specific methods implementation--//SSE gives errors on a MSVC 7.1-#if defined (BT_USE_SSE) && defined (_WIN32)-#define DBVT_SELECT_IMPL		DBVT_IMPL_SSE-#define DBVT_MERGE_IMPL			DBVT_IMPL_SSE-#define DBVT_INT0_IMPL			DBVT_IMPL_SSE-#else-#define DBVT_SELECT_IMPL		DBVT_IMPL_GENERIC-#define DBVT_MERGE_IMPL			DBVT_IMPL_GENERIC-#define DBVT_INT0_IMPL			DBVT_IMPL_GENERIC-#endif--#if	(DBVT_SELECT_IMPL==DBVT_IMPL_SSE)||	\-	(DBVT_MERGE_IMPL==DBVT_IMPL_SSE)||	\-	(DBVT_INT0_IMPL==DBVT_IMPL_SSE)-#include <emmintrin.h>-#endif--//-// Auto config and checks-//--#if DBVT_USE_TEMPLATE-#define	DBVT_VIRTUAL-#define DBVT_VIRTUAL_DTOR(a)-#define DBVT_PREFIX					template <typename T>-#define DBVT_IPOLICY				T& policy-#define DBVT_CHECKTYPE				static const ICollide&	typechecker=*(T*)1;(void)typechecker;-#else-#define	DBVT_VIRTUAL_DTOR(a)		virtual ~a() {}-#define DBVT_VIRTUAL				virtual-#define DBVT_PREFIX-#define DBVT_IPOLICY				ICollide& policy-#define DBVT_CHECKTYPE-#endif--#if DBVT_USE_MEMMOVE-#if !defined( __CELLOS_LV2__) && !defined(__MWERKS__)-#include <memory.h>-#endif-#include <string.h>-#endif--#ifndef DBVT_USE_TEMPLATE-#error "DBVT_USE_TEMPLATE undefined"-#endif--#ifndef DBVT_USE_MEMMOVE-#error "DBVT_USE_MEMMOVE undefined"-#endif--#ifndef DBVT_ENABLE_BENCHMARK-#error "DBVT_ENABLE_BENCHMARK undefined"-#endif--#ifndef DBVT_SELECT_IMPL-#error "DBVT_SELECT_IMPL undefined"-#endif--#ifndef DBVT_MERGE_IMPL-#error "DBVT_MERGE_IMPL undefined"-#endif--#ifndef DBVT_INT0_IMPL-#error "DBVT_INT0_IMPL undefined"-#endif--//-// Defaults volumes-//--/* btDbvtAabbMm			*/ -struct	btDbvtAabbMm-{-	DBVT_INLINE btVector3			Center() const	{ return((mi+mx)/2); }-	DBVT_INLINE btVector3			Lengths() const	{ return(mx-mi); }-	DBVT_INLINE btVector3			Extents() const	{ return((mx-mi)/2); }-	DBVT_INLINE const btVector3&	Mins() const	{ return(mi); }-	DBVT_INLINE const btVector3&	Maxs() const	{ return(mx); }-	static inline btDbvtAabbMm		FromCE(const btVector3& c,const btVector3& e);-	static inline btDbvtAabbMm		FromCR(const btVector3& c,btScalar r);-	static inline btDbvtAabbMm		FromMM(const btVector3& mi,const btVector3& mx);-	static inline btDbvtAabbMm		FromPoints(const btVector3* pts,int n);-	static inline btDbvtAabbMm		FromPoints(const btVector3** ppts,int n);-	DBVT_INLINE void				Expand(const btVector3& e);-	DBVT_INLINE void				SignedExpand(const btVector3& e);-	DBVT_INLINE bool				Contain(const btDbvtAabbMm& a) const;-	DBVT_INLINE int					Classify(const btVector3& n,btScalar o,int s) const;-	DBVT_INLINE btScalar			ProjectMinimum(const btVector3& v,unsigned signs) const;-	DBVT_INLINE friend bool			Intersect(	const btDbvtAabbMm& a,-		const btDbvtAabbMm& b);-	-	DBVT_INLINE friend bool			Intersect(	const btDbvtAabbMm& a,-		const btVector3& b);--	DBVT_INLINE friend btScalar		Proximity(	const btDbvtAabbMm& a,-		const btDbvtAabbMm& b);-	DBVT_INLINE friend int			Select(		const btDbvtAabbMm& o,-		const btDbvtAabbMm& a,-		const btDbvtAabbMm& b);-	DBVT_INLINE friend void			Merge(		const btDbvtAabbMm& a,-		const btDbvtAabbMm& b,-		btDbvtAabbMm& r);-	DBVT_INLINE friend bool			NotEqual(	const btDbvtAabbMm& a,-		const btDbvtAabbMm& b);-private:-	DBVT_INLINE void				AddSpan(const btVector3& d,btScalar& smi,btScalar& smx) const;-private:-	btVector3	mi,mx;-};--// Types	-typedef	btDbvtAabbMm	btDbvtVolume;--/* btDbvtNode				*/ -struct	btDbvtNode-{-	btDbvtVolume	volume;-	btDbvtNode*		parent;-	DBVT_INLINE bool	isleaf() const		{ return(childs[1]==0); }-	DBVT_INLINE bool	isinternal() const	{ return(!isleaf()); }-	union-	{-		btDbvtNode*	childs[2];-		void*	data;-		int		dataAsInt;-	};-};--///The btDbvt class implements a fast dynamic bounding volume tree based on axis aligned bounding boxes (aabb tree).-///This btDbvt is used for soft body collision detection and for the btDbvtBroadphase. It has a fast insert, remove and update of nodes.-///Unlike the btQuantizedBvh, nodes can be dynamically moved around, which allows for change in topology of the underlying data structure.-struct	btDbvt-{-	/* Stack element	*/ -	struct	sStkNN-	{-		const btDbvtNode*	a;-		const btDbvtNode*	b;-		sStkNN() {}-		sStkNN(const btDbvtNode* na,const btDbvtNode* nb) : a(na),b(nb) {}-	};-	struct	sStkNP-	{-		const btDbvtNode*	node;-		int			mask;-		sStkNP(const btDbvtNode* n,unsigned m) : node(n),mask(m) {}-	};-	struct	sStkNPS-	{-		const btDbvtNode*	node;-		int			mask;-		btScalar	value;-		sStkNPS() {}-		sStkNPS(const btDbvtNode* n,unsigned m,btScalar v) : node(n),mask(m),value(v) {}-	};-	struct	sStkCLN-	{-		const btDbvtNode*	node;-		btDbvtNode*		parent;-		sStkCLN(const btDbvtNode* n,btDbvtNode* p) : node(n),parent(p) {}-	};-	// Policies/Interfaces--	/* ICollide	*/ -	struct	ICollide-	{		-		DBVT_VIRTUAL_DTOR(ICollide)-			DBVT_VIRTUAL void	Process(const btDbvtNode*,const btDbvtNode*)		{}-		DBVT_VIRTUAL void	Process(const btDbvtNode*)					{}-		DBVT_VIRTUAL void	Process(const btDbvtNode* n,btScalar)			{ Process(n); }-		DBVT_VIRTUAL bool	Descent(const btDbvtNode*)					{ return(true); }-		DBVT_VIRTUAL bool	AllLeaves(const btDbvtNode*)					{ return(true); }-	};-	/* IWriter	*/ -	struct	IWriter-	{-		virtual ~IWriter() {}-		virtual void		Prepare(const btDbvtNode* root,int numnodes)=0;-		virtual void		WriteNode(const btDbvtNode*,int index,int parent,int child0,int child1)=0;-		virtual void		WriteLeaf(const btDbvtNode*,int index,int parent)=0;-	};-	/* IClone	*/ -	struct	IClone-	{-		virtual ~IClone()	{}-		virtual void		CloneLeaf(btDbvtNode*) {}-	};--	// Constants-	enum	{-		SIMPLE_STACKSIZE	=	64,-		DOUBLE_STACKSIZE	=	SIMPLE_STACKSIZE*2-	};--	// Fields-	btDbvtNode*		m_root;-	btDbvtNode*		m_free;-	int				m_lkhd;-	int				m_leaves;-	unsigned		m_opath;--	-	btAlignedObjectArray<sStkNN>	m_stkStack;---	// Methods-	btDbvt();-	~btDbvt();-	void			clear();-	bool			empty() const { return(0==m_root); }-	void			optimizeBottomUp();-	void			optimizeTopDown(int bu_treshold=128);-	void			optimizeIncremental(int passes);-	btDbvtNode*		insert(const btDbvtVolume& box,void* data);-	void			update(btDbvtNode* leaf,int lookahead=-1);-	void			update(btDbvtNode* leaf,btDbvtVolume& volume);-	bool			update(btDbvtNode* leaf,btDbvtVolume& volume,const btVector3& velocity,btScalar margin);-	bool			update(btDbvtNode* leaf,btDbvtVolume& volume,const btVector3& velocity);-	bool			update(btDbvtNode* leaf,btDbvtVolume& volume,btScalar margin);	-	void			remove(btDbvtNode* leaf);-	void			write(IWriter* iwriter) const;-	void			clone(btDbvt& dest,IClone* iclone=0) const;-	static int		maxdepth(const btDbvtNode* node);-	static int		countLeaves(const btDbvtNode* node);-	static void		extractLeaves(const btDbvtNode* node,btAlignedObjectArray<const btDbvtNode*>& leaves);-#if DBVT_ENABLE_BENCHMARK-	static void		benchmark();-#else-	static void		benchmark(){}-#endif-	// DBVT_IPOLICY must support ICollide policy/interface-	DBVT_PREFIX-		static void		enumNodes(	const btDbvtNode* root,-		DBVT_IPOLICY);-	DBVT_PREFIX-		static void		enumLeaves(	const btDbvtNode* root,-		DBVT_IPOLICY);-	DBVT_PREFIX-		void		collideTT(	const btDbvtNode* root0,-		const btDbvtNode* root1,-		DBVT_IPOLICY);--	DBVT_PREFIX-		void		collideTTpersistentStack(	const btDbvtNode* root0,-		  const btDbvtNode* root1,-		  DBVT_IPOLICY);-#if 0-	DBVT_PREFIX-		void		collideTT(	const btDbvtNode* root0,-		const btDbvtNode* root1,-		const btTransform& xform,-		DBVT_IPOLICY);-	DBVT_PREFIX-		void		collideTT(	const btDbvtNode* root0,-		const btTransform& xform0,-		const btDbvtNode* root1,-		const btTransform& xform1,-		DBVT_IPOLICY);-#endif--	DBVT_PREFIX-		void		collideTV(	const btDbvtNode* root,-		const btDbvtVolume& volume,-		DBVT_IPOLICY);-	///rayTest is a re-entrant ray test, and can be called in parallel as long as the btAlignedAlloc is thread-safe (uses locking etc)-	///rayTest is slower than rayTestInternal, because it builds a local stack, using memory allocations, and it recomputes signs/rayDirectionInverses each time-	DBVT_PREFIX-		static void		rayTest(	const btDbvtNode* root,-		const btVector3& rayFrom,-		const btVector3& rayTo,-		DBVT_IPOLICY);-	///rayTestInternal is faster than rayTest, because it uses a persistent stack (to reduce dynamic memory allocations to a minimum) and it uses precomputed signs/rayInverseDirections-	///rayTestInternal is used by btDbvtBroadphase to accelerate world ray casts-	DBVT_PREFIX-		void		rayTestInternal(	const btDbvtNode* root,-								const btVector3& rayFrom,-								const btVector3& rayTo,-								const btVector3& rayDirectionInverse,-								unsigned int signs[3],-								btScalar lambda_max,-								const btVector3& aabbMin,-								const btVector3& aabbMax,-								DBVT_IPOLICY) const;--	DBVT_PREFIX-		static void		collideKDOP(const btDbvtNode* root,-		const btVector3* normals,-		const btScalar* offsets,-		int count,-		DBVT_IPOLICY);-	DBVT_PREFIX-		static void		collideOCL(	const btDbvtNode* root,-		const btVector3* normals,-		const btScalar* offsets,-		const btVector3& sortaxis,-		int count,								-		DBVT_IPOLICY,-		bool fullsort=true);-	DBVT_PREFIX-		static void		collideTU(	const btDbvtNode* root,-		DBVT_IPOLICY);-	// Helpers	-	static DBVT_INLINE int	nearest(const int* i,const btDbvt::sStkNPS* a,btScalar v,int l,int h)-	{-		int	m=0;-		while(l<h)-		{-			m=(l+h)>>1;-			if(a[i[m]].value>=v) l=m+1; else h=m;-		}-		return(h);-	}-	static DBVT_INLINE int	allocate(	btAlignedObjectArray<int>& ifree,-		btAlignedObjectArray<sStkNPS>& stock,-		const sStkNPS& value)-	{-		int	i;-		if(ifree.size()>0)-		{ i=ifree[ifree.size()-1];ifree.pop_back();stock[i]=value; }-		else-		{ i=stock.size();stock.push_back(value); }-		return(i); -	}-	//-private:-	btDbvt(const btDbvt&)	{}	-};--//-// Inline's-//--//-inline btDbvtAabbMm			btDbvtAabbMm::FromCE(const btVector3& c,const btVector3& e)-{-	btDbvtAabbMm box;-	box.mi=c-e;box.mx=c+e;-	return(box);-}--//-inline btDbvtAabbMm			btDbvtAabbMm::FromCR(const btVector3& c,btScalar r)-{-	return(FromCE(c,btVector3(r,r,r)));-}--//-inline btDbvtAabbMm			btDbvtAabbMm::FromMM(const btVector3& mi,const btVector3& mx)-{-	btDbvtAabbMm box;-	box.mi=mi;box.mx=mx;-	return(box);-}--//-inline btDbvtAabbMm			btDbvtAabbMm::FromPoints(const btVector3* pts,int n)-{-	btDbvtAabbMm box;-	box.mi=box.mx=pts[0];-	for(int i=1;i<n;++i)-	{-		box.mi.setMin(pts[i]);-		box.mx.setMax(pts[i]);-	}-	return(box);-}--//-inline btDbvtAabbMm			btDbvtAabbMm::FromPoints(const btVector3** ppts,int n)-{-	btDbvtAabbMm box;-	box.mi=box.mx=*ppts[0];-	for(int i=1;i<n;++i)-	{-		box.mi.setMin(*ppts[i]);-		box.mx.setMax(*ppts[i]);-	}-	return(box);-}--//-DBVT_INLINE void		btDbvtAabbMm::Expand(const btVector3& e)-{-	mi-=e;mx+=e;-}--//-DBVT_INLINE void		btDbvtAabbMm::SignedExpand(const btVector3& e)-{-	if(e.x()>0) mx.setX(mx.x()+e[0]); else mi.setX(mi.x()+e[0]);-	if(e.y()>0) mx.setY(mx.y()+e[1]); else mi.setY(mi.y()+e[1]);-	if(e.z()>0) mx.setZ(mx.z()+e[2]); else mi.setZ(mi.z()+e[2]);-}--//-DBVT_INLINE bool		btDbvtAabbMm::Contain(const btDbvtAabbMm& a) const-{-	return(	(mi.x()<=a.mi.x())&&-		(mi.y()<=a.mi.y())&&-		(mi.z()<=a.mi.z())&&-		(mx.x()>=a.mx.x())&&-		(mx.y()>=a.mx.y())&&-		(mx.z()>=a.mx.z()));-}--//-DBVT_INLINE int		btDbvtAabbMm::Classify(const btVector3& n,btScalar o,int s) const-{-	btVector3			pi,px;-	switch(s)-	{-	case	(0+0+0):	px=btVector3(mi.x(),mi.y(),mi.z());-		pi=btVector3(mx.x(),mx.y(),mx.z());break;-	case	(1+0+0):	px=btVector3(mx.x(),mi.y(),mi.z());-		pi=btVector3(mi.x(),mx.y(),mx.z());break;-	case	(0+2+0):	px=btVector3(mi.x(),mx.y(),mi.z());-		pi=btVector3(mx.x(),mi.y(),mx.z());break;-	case	(1+2+0):	px=btVector3(mx.x(),mx.y(),mi.z());-		pi=btVector3(mi.x(),mi.y(),mx.z());break;-	case	(0+0+4):	px=btVector3(mi.x(),mi.y(),mx.z());-		pi=btVector3(mx.x(),mx.y(),mi.z());break;-	case	(1+0+4):	px=btVector3(mx.x(),mi.y(),mx.z());-		pi=btVector3(mi.x(),mx.y(),mi.z());break;-	case	(0+2+4):	px=btVector3(mi.x(),mx.y(),mx.z());-		pi=btVector3(mx.x(),mi.y(),mi.z());break;-	case	(1+2+4):	px=btVector3(mx.x(),mx.y(),mx.z());-		pi=btVector3(mi.x(),mi.y(),mi.z());break;-	}-	if((btDot(n,px)+o)<0)		return(-1);-	if((btDot(n,pi)+o)>=0)	return(+1);-	return(0);-}--//-DBVT_INLINE btScalar	btDbvtAabbMm::ProjectMinimum(const btVector3& v,unsigned signs) const-{-	const btVector3*	b[]={&mx,&mi};-	const btVector3		p(	b[(signs>>0)&1]->x(),-		b[(signs>>1)&1]->y(),-		b[(signs>>2)&1]->z());-	return(btDot(p,v));-}--//-DBVT_INLINE void		btDbvtAabbMm::AddSpan(const btVector3& d,btScalar& smi,btScalar& smx) const-{-	for(int i=0;i<3;++i)-	{-		if(d[i]<0)-		{ smi+=mx[i]*d[i];smx+=mi[i]*d[i]; }-		else-		{ smi+=mi[i]*d[i];smx+=mx[i]*d[i]; }-	}-}--//-DBVT_INLINE bool		Intersect(	const btDbvtAabbMm& a,-								  const btDbvtAabbMm& b)-{-#if	DBVT_INT0_IMPL == DBVT_IMPL_SSE-	const __m128	rt(_mm_or_ps(	_mm_cmplt_ps(_mm_load_ps(b.mx),_mm_load_ps(a.mi)),-		_mm_cmplt_ps(_mm_load_ps(a.mx),_mm_load_ps(b.mi))));-	const __int32*	pu((const __int32*)&rt);-	return((pu[0]|pu[1]|pu[2])==0);-#else-	return(	(a.mi.x()<=b.mx.x())&&-		(a.mx.x()>=b.mi.x())&&-		(a.mi.y()<=b.mx.y())&&-		(a.mx.y()>=b.mi.y())&&-		(a.mi.z()<=b.mx.z())&&		-		(a.mx.z()>=b.mi.z()));-#endif-}----//-DBVT_INLINE bool		Intersect(	const btDbvtAabbMm& a,-								  const btVector3& b)-{-	return(	(b.x()>=a.mi.x())&&-		(b.y()>=a.mi.y())&&-		(b.z()>=a.mi.z())&&-		(b.x()<=a.mx.x())&&-		(b.y()<=a.mx.y())&&-		(b.z()<=a.mx.z()));-}------//////////////////////////////////////---//-DBVT_INLINE btScalar	Proximity(	const btDbvtAabbMm& a,-								  const btDbvtAabbMm& b)-{-	const btVector3	d=(a.mi+a.mx)-(b.mi+b.mx);-	return(btFabs(d.x())+btFabs(d.y())+btFabs(d.z()));-}----//-DBVT_INLINE int			Select(	const btDbvtAabbMm& o,-							   const btDbvtAabbMm& a,-							   const btDbvtAabbMm& b)-{-#if	DBVT_SELECT_IMPL == DBVT_IMPL_SSE-	static ATTRIBUTE_ALIGNED16(const unsigned __int32)	mask[]={0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff};-	///@todo: the intrinsic version is 11% slower-#if DBVT_USE_INTRINSIC_SSE--	union btSSEUnion ///NOTE: if we use more intrinsics, move btSSEUnion into the LinearMath directory-	{-	   __m128		ssereg;-	   float		floats[4];-	   int			ints[4];-	};--	__m128	omi(_mm_load_ps(o.mi));-	omi=_mm_add_ps(omi,_mm_load_ps(o.mx));-	__m128	ami(_mm_load_ps(a.mi));-	ami=_mm_add_ps(ami,_mm_load_ps(a.mx));-	ami=_mm_sub_ps(ami,omi);-	ami=_mm_and_ps(ami,_mm_load_ps((const float*)mask));-	__m128	bmi(_mm_load_ps(b.mi));-	bmi=_mm_add_ps(bmi,_mm_load_ps(b.mx));-	bmi=_mm_sub_ps(bmi,omi);-	bmi=_mm_and_ps(bmi,_mm_load_ps((const float*)mask));-	__m128	t0(_mm_movehl_ps(ami,ami));-	ami=_mm_add_ps(ami,t0);-	ami=_mm_add_ss(ami,_mm_shuffle_ps(ami,ami,1));-	__m128 t1(_mm_movehl_ps(bmi,bmi));-	bmi=_mm_add_ps(bmi,t1);-	bmi=_mm_add_ss(bmi,_mm_shuffle_ps(bmi,bmi,1));-	-	btSSEUnion tmp;-	tmp.ssereg = _mm_cmple_ss(bmi,ami);-	return tmp.ints[0]&1;--#else-	ATTRIBUTE_ALIGNED16(__int32	r[1]);-	__asm-	{-		mov		eax,o-			mov		ecx,a-			mov		edx,b-			movaps	xmm0,[eax]-		movaps	xmm5,mask-			addps	xmm0,[eax+16]	-		movaps	xmm1,[ecx]-		movaps	xmm2,[edx]-		addps	xmm1,[ecx+16]-		addps	xmm2,[edx+16]-		subps	xmm1,xmm0-			subps	xmm2,xmm0-			andps	xmm1,xmm5-			andps	xmm2,xmm5-			movhlps	xmm3,xmm1-			movhlps	xmm4,xmm2-			addps	xmm1,xmm3-			addps	xmm2,xmm4-			pshufd	xmm3,xmm1,1-			pshufd	xmm4,xmm2,1-			addss	xmm1,xmm3-			addss	xmm2,xmm4-			cmpless	xmm2,xmm1-			movss	r,xmm2-	}-	return(r[0]&1);-#endif-#else-	return(Proximity(o,a)<Proximity(o,b)?0:1);-#endif-}--//-DBVT_INLINE void		Merge(	const btDbvtAabbMm& a,-							  const btDbvtAabbMm& b,-							  btDbvtAabbMm& r)-{-#if DBVT_MERGE_IMPL==DBVT_IMPL_SSE-	__m128	ami(_mm_load_ps(a.mi));-	__m128	amx(_mm_load_ps(a.mx));-	__m128	bmi(_mm_load_ps(b.mi));-	__m128	bmx(_mm_load_ps(b.mx));-	ami=_mm_min_ps(ami,bmi);-	amx=_mm_max_ps(amx,bmx);-	_mm_store_ps(r.mi,ami);-	_mm_store_ps(r.mx,amx);-#else-	for(int i=0;i<3;++i)-	{-		if(a.mi[i]<b.mi[i]) r.mi[i]=a.mi[i]; else r.mi[i]=b.mi[i];-		if(a.mx[i]>b.mx[i]) r.mx[i]=a.mx[i]; else r.mx[i]=b.mx[i];-	}-#endif-}--//-DBVT_INLINE bool		NotEqual(	const btDbvtAabbMm& a,-								 const btDbvtAabbMm& b)-{-	return(	(a.mi.x()!=b.mi.x())||-		(a.mi.y()!=b.mi.y())||-		(a.mi.z()!=b.mi.z())||-		(a.mx.x()!=b.mx.x())||-		(a.mx.y()!=b.mx.y())||-		(a.mx.z()!=b.mx.z()));-}--//-// Inline's-//--//-DBVT_PREFIX-inline void		btDbvt::enumNodes(	const btDbvtNode* root,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		policy.Process(root);-	if(root->isinternal())-	{-		enumNodes(root->childs[0],policy);-		enumNodes(root->childs[1],policy);-	}-}--//-DBVT_PREFIX-inline void		btDbvt::enumLeaves(	const btDbvtNode* root,-								   DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root->isinternal())-		{-			enumLeaves(root->childs[0],policy);-			enumLeaves(root->childs[1],policy);-		}-		else-		{-			policy.Process(root);-		}-}--//-DBVT_PREFIX-inline void		btDbvt::collideTT(	const btDbvtNode* root0,-								  const btDbvtNode* root1,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root0&&root1)-		{-			int								depth=1;-			int								treshold=DOUBLE_STACKSIZE-4;-			btAlignedObjectArray<sStkNN>	stkStack;-			stkStack.resize(DOUBLE_STACKSIZE);-			stkStack[0]=sStkNN(root0,root1);-			do	{		-				sStkNN	p=stkStack[--depth];-				if(depth>treshold)-				{-					stkStack.resize(stkStack.size()*2);-					treshold=stkStack.size()-4;-				}-				if(p.a==p.b)-				{-					if(p.a->isinternal())-					{-						stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[0]);-						stkStack[depth++]=sStkNN(p.a->childs[1],p.a->childs[1]);-						stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[1]);-					}-				}-				else if(Intersect(p.a->volume,p.b->volume))-				{-					if(p.a->isinternal())-					{-						if(p.b->isinternal())-						{-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);-						}-						else-						{-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b);-						}-					}-					else-					{-						if(p.b->isinternal())-						{-							stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);-						}-						else-						{-							policy.Process(p.a,p.b);-						}-					}-				}-			} while(depth);-		}-}----DBVT_PREFIX-inline void		btDbvt::collideTTpersistentStack(	const btDbvtNode* root0,-								  const btDbvtNode* root1,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root0&&root1)-		{-			int								depth=1;-			int								treshold=DOUBLE_STACKSIZE-4;-			-			m_stkStack.resize(DOUBLE_STACKSIZE);-			m_stkStack[0]=sStkNN(root0,root1);-			do	{		-				sStkNN	p=m_stkStack[--depth];-				if(depth>treshold)-				{-					m_stkStack.resize(m_stkStack.size()*2);-					treshold=m_stkStack.size()-4;-				}-				if(p.a==p.b)-				{-					if(p.a->isinternal())-					{-						m_stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[0]);-						m_stkStack[depth++]=sStkNN(p.a->childs[1],p.a->childs[1]);-						m_stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[1]);-					}-				}-				else if(Intersect(p.a->volume,p.b->volume))-				{-					if(p.a->isinternal())-					{-						if(p.b->isinternal())-						{-							m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);-							m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);-							m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);-							m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);-						}-						else-						{-							m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b);-							m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b);-						}-					}-					else-					{-						if(p.b->isinternal())-						{-							m_stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);-							m_stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);-						}-						else-						{-							policy.Process(p.a,p.b);-						}-					}-				}-			} while(depth);-		}-}--#if 0-//-DBVT_PREFIX-inline void		btDbvt::collideTT(	const btDbvtNode* root0,-								  const btDbvtNode* root1,-								  const btTransform& xform,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root0&&root1)-		{-			int								depth=1;-			int								treshold=DOUBLE_STACKSIZE-4;-			btAlignedObjectArray<sStkNN>	stkStack;-			stkStack.resize(DOUBLE_STACKSIZE);-			stkStack[0]=sStkNN(root0,root1);-			do	{-				sStkNN	p=stkStack[--depth];-				if(Intersect(p.a->volume,p.b->volume,xform))-				{-					if(depth>treshold)-					{-						stkStack.resize(stkStack.size()*2);-						treshold=stkStack.size()-4;-					}-					if(p.a->isinternal())-					{-						if(p.b->isinternal())-						{					-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);-						}-						else-						{-							stkStack[depth++]=sStkNN(p.a->childs[0],p.b);-							stkStack[depth++]=sStkNN(p.a->childs[1],p.b);-						}-					}-					else-					{-						if(p.b->isinternal())-						{-							stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);-							stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);-						}-						else-						{-							policy.Process(p.a,p.b);-						}-					}-				}-			} while(depth);-		}-}-//-DBVT_PREFIX-inline void		btDbvt::collideTT(	const btDbvtNode* root0,-								  const btTransform& xform0,-								  const btDbvtNode* root1,-								  const btTransform& xform1,-								  DBVT_IPOLICY)-{-	const btTransform	xform=xform0.inverse()*xform1;-	collideTT(root0,root1,xform,policy);-}-#endif --//-DBVT_PREFIX-inline void		btDbvt::collideTV(	const btDbvtNode* root,-								  const btDbvtVolume& vol,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root)-		{-			ATTRIBUTE_ALIGNED16(btDbvtVolume)		volume(vol);-			btAlignedObjectArray<const btDbvtNode*>	stack;-			stack.resize(0);-			stack.reserve(SIMPLE_STACKSIZE);-			stack.push_back(root);-			do	{-				const btDbvtNode*	n=stack[stack.size()-1];-				stack.pop_back();-				if(Intersect(n->volume,volume))-				{-					if(n->isinternal())-					{-						stack.push_back(n->childs[0]);-						stack.push_back(n->childs[1]);-					}-					else-					{-						policy.Process(n);-					}-				}-			} while(stack.size()>0);-		}-}--DBVT_PREFIX-inline void		btDbvt::rayTestInternal(	const btDbvtNode* root,-								const btVector3& rayFrom,-								const btVector3& rayTo,-								const btVector3& rayDirectionInverse,-								unsigned int signs[3],-								btScalar lambda_max,-								const btVector3& aabbMin,-								const btVector3& aabbMax,-								DBVT_IPOLICY) const-{-        (void) rayTo;-	DBVT_CHECKTYPE-	if(root)-	{-		btVector3 resultNormal;--		int								depth=1;-		int								treshold=DOUBLE_STACKSIZE-2;-		btAlignedObjectArray<const btDbvtNode*>	stack;-		stack.resize(DOUBLE_STACKSIZE);-		stack[0]=root;-		btVector3 bounds[2];-		do	-		{-			const btDbvtNode*	node=stack[--depth];-			bounds[0] = node->volume.Mins()-aabbMax;-			bounds[1] = node->volume.Maxs()-aabbMin;-			btScalar tmin=1.f,lambda_min=0.f;-			unsigned int result1=false;-			result1 = btRayAabb2(rayFrom,rayDirectionInverse,signs,bounds,tmin,lambda_min,lambda_max);-			if(result1)-			{-				if(node->isinternal())-				{-					if(depth>treshold)-					{-						stack.resize(stack.size()*2);-						treshold=stack.size()-2;-					}-					stack[depth++]=node->childs[0];-					stack[depth++]=node->childs[1];-				}-				else-				{-					policy.Process(node);-				}-			}-		} while(depth);-	}-}--//-DBVT_PREFIX-inline void		btDbvt::rayTest(	const btDbvtNode* root,-								const btVector3& rayFrom,-								const btVector3& rayTo,-								DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root)-		{-			btVector3 rayDir = (rayTo-rayFrom);-			rayDir.normalize ();--			///what about division by zero? --> just set rayDirection[i] to INF/BT_LARGE_FLOAT-			btVector3 rayDirectionInverse;-			rayDirectionInverse[0] = rayDir[0] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[0];-			rayDirectionInverse[1] = rayDir[1] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[1];-			rayDirectionInverse[2] = rayDir[2] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[2];-			unsigned int signs[3] = { rayDirectionInverse[0] < 0.0, rayDirectionInverse[1] < 0.0, rayDirectionInverse[2] < 0.0};--			btScalar lambda_max = rayDir.dot(rayTo-rayFrom);--			btVector3 resultNormal;--			btAlignedObjectArray<const btDbvtNode*>	stack;--			int								depth=1;-			int								treshold=DOUBLE_STACKSIZE-2;--			stack.resize(DOUBLE_STACKSIZE);-			stack[0]=root;-			btVector3 bounds[2];-			do	{-				const btDbvtNode*	node=stack[--depth];--				bounds[0] = node->volume.Mins();-				bounds[1] = node->volume.Maxs();-				-				btScalar tmin=1.f,lambda_min=0.f;-				unsigned int result1 = btRayAabb2(rayFrom,rayDirectionInverse,signs,bounds,tmin,lambda_min,lambda_max);--#ifdef COMPARE_BTRAY_AABB2-				btScalar param=1.f;-				bool result2 = btRayAabb(rayFrom,rayTo,node->volume.Mins(),node->volume.Maxs(),param,resultNormal);-				btAssert(result1 == result2);-#endif //TEST_BTRAY_AABB2--				if(result1)-				{-					if(node->isinternal())-					{-						if(depth>treshold)-						{-							stack.resize(stack.size()*2);-							treshold=stack.size()-2;-						}-						stack[depth++]=node->childs[0];-						stack[depth++]=node->childs[1];-					}-					else-					{-						policy.Process(node);-					}-				}-			} while(depth);--		}-}--//-DBVT_PREFIX-inline void		btDbvt::collideKDOP(const btDbvtNode* root,-									const btVector3* normals,-									const btScalar* offsets,-									int count,-									DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root)-		{-			const int						inside=(1<<count)-1;-			btAlignedObjectArray<sStkNP>	stack;-			int								signs[sizeof(unsigned)*8];-			btAssert(count<int (sizeof(signs)/sizeof(signs[0])));-			for(int i=0;i<count;++i)-			{-				signs[i]=	((normals[i].x()>=0)?1:0)+-					((normals[i].y()>=0)?2:0)+-					((normals[i].z()>=0)?4:0);-			}-			stack.reserve(SIMPLE_STACKSIZE);-			stack.push_back(sStkNP(root,0));-			do	{-				sStkNP	se=stack[stack.size()-1];-				bool	out=false;-				stack.pop_back();-				for(int i=0,j=1;(!out)&&(i<count);++i,j<<=1)-				{-					if(0==(se.mask&j))-					{-						const int	side=se.node->volume.Classify(normals[i],offsets[i],signs[i]);-						switch(side)-						{-						case	-1:	out=true;break;-						case	+1:	se.mask|=j;break;-						}-					}-				}-				if(!out)-				{-					if((se.mask!=inside)&&(se.node->isinternal()))-					{-						stack.push_back(sStkNP(se.node->childs[0],se.mask));-						stack.push_back(sStkNP(se.node->childs[1],se.mask));-					}-					else-					{-						if(policy.AllLeaves(se.node)) enumLeaves(se.node,policy);-					}-				}-			} while(stack.size());-		}-}--//-DBVT_PREFIX-inline void		btDbvt::collideOCL(	const btDbvtNode* root,-								   const btVector3* normals,-								   const btScalar* offsets,-								   const btVector3& sortaxis,-								   int count,-								   DBVT_IPOLICY,-								   bool fsort)-{-	DBVT_CHECKTYPE-		if(root)-		{-			const unsigned					srtsgns=(sortaxis[0]>=0?1:0)+-				(sortaxis[1]>=0?2:0)+-				(sortaxis[2]>=0?4:0);-			const int						inside=(1<<count)-1;-			btAlignedObjectArray<sStkNPS>	stock;-			btAlignedObjectArray<int>		ifree;-			btAlignedObjectArray<int>		stack;-			int								signs[sizeof(unsigned)*8];-			btAssert(count<int (sizeof(signs)/sizeof(signs[0])));-			for(int i=0;i<count;++i)-			{-				signs[i]=	((normals[i].x()>=0)?1:0)+-					((normals[i].y()>=0)?2:0)+-					((normals[i].z()>=0)?4:0);-			}-			stock.reserve(SIMPLE_STACKSIZE);-			stack.reserve(SIMPLE_STACKSIZE);-			ifree.reserve(SIMPLE_STACKSIZE);-			stack.push_back(allocate(ifree,stock,sStkNPS(root,0,root->volume.ProjectMinimum(sortaxis,srtsgns))));-			do	{-				const int	id=stack[stack.size()-1];-				sStkNPS		se=stock[id];-				stack.pop_back();ifree.push_back(id);-				if(se.mask!=inside)-				{-					bool	out=false;-					for(int i=0,j=1;(!out)&&(i<count);++i,j<<=1)-					{-						if(0==(se.mask&j))-						{-							const int	side=se.node->volume.Classify(normals[i],offsets[i],signs[i]);-							switch(side)-							{-							case	-1:	out=true;break;-							case	+1:	se.mask|=j;break;-							}-						}-					}-					if(out) continue;-				}-				if(policy.Descent(se.node))-				{-					if(se.node->isinternal())-					{-						const btDbvtNode* pns[]={	se.node->childs[0],se.node->childs[1]};-						sStkNPS		nes[]={	sStkNPS(pns[0],se.mask,pns[0]->volume.ProjectMinimum(sortaxis,srtsgns)),-							sStkNPS(pns[1],se.mask,pns[1]->volume.ProjectMinimum(sortaxis,srtsgns))};-						const int	q=nes[0].value<nes[1].value?1:0;				-						int			j=stack.size();-						if(fsort&&(j>0))-						{-							/* Insert 0	*/ -							j=nearest(&stack[0],&stock[0],nes[q].value,0,stack.size());-							stack.push_back(0);-#if DBVT_USE_MEMMOVE-							memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1));-#else-							for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1];-#endif-							stack[j]=allocate(ifree,stock,nes[q]);-							/* Insert 1	*/ -							j=nearest(&stack[0],&stock[0],nes[1-q].value,j,stack.size());-							stack.push_back(0);-#if DBVT_USE_MEMMOVE-							memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1));-#else-							for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1];-#endif-							stack[j]=allocate(ifree,stock,nes[1-q]);-						}-						else-						{-							stack.push_back(allocate(ifree,stock,nes[q]));-							stack.push_back(allocate(ifree,stock,nes[1-q]));-						}-					}-					else-					{-						policy.Process(se.node,se.value);-					}-				}-			} while(stack.size());-		}-}--//-DBVT_PREFIX-inline void		btDbvt::collideTU(	const btDbvtNode* root,-								  DBVT_IPOLICY)-{-	DBVT_CHECKTYPE-		if(root)-		{-			btAlignedObjectArray<const btDbvtNode*>	stack;-			stack.reserve(SIMPLE_STACKSIZE);-			stack.push_back(root);-			do	{-				const btDbvtNode*	n=stack[stack.size()-1];-				stack.pop_back();-				if(policy.Descent(n))-				{-					if(n->isinternal())-					{ stack.push_back(n->childs[0]);stack.push_back(n->childs[1]); }-					else-					{ policy.Process(n); }-				}-			} while(stack.size()>0);-		}+Copyright (c) 2003-2007 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+///btDbvt implementation by Nathanael Presson++#ifndef BT_DYNAMIC_BOUNDING_VOLUME_TREE_H+#define BT_DYNAMIC_BOUNDING_VOLUME_TREE_H++#include "LinearMath/btAlignedObjectArray.h"+#include "LinearMath/btVector3.h"+#include "LinearMath/btTransform.h"+#include "LinearMath/btAabbUtil2.h"++//+// Compile time configuration+//+++// Implementation profiles+#define DBVT_IMPL_GENERIC 0 // Generic implementation+#define DBVT_IMPL_SSE 1 // SSE++// Template implementation of ICollide+#ifdef _WIN32+#if (defined (_MSC_VER) && _MSC_VER >= 1400)+#define DBVT_USE_TEMPLATE 1+#else+#define DBVT_USE_TEMPLATE 0+#endif+#else+#define DBVT_USE_TEMPLATE 0+#endif++// Use only intrinsics instead of inline asm+#define DBVT_USE_INTRINSIC_SSE 1++// Using memmov for collideOCL+#define DBVT_USE_MEMMOVE 1++// Enable benchmarking code+#define DBVT_ENABLE_BENCHMARK 0++// Inlining+#define DBVT_INLINE SIMD_FORCE_INLINE++// Specific methods implementation++//SSE gives errors on a MSVC 7.1+#if defined (BT_USE_SSE) && defined (_WIN32)+#define DBVT_SELECT_IMPL DBVT_IMPL_SSE+#define DBVT_MERGE_IMPL DBVT_IMPL_SSE+#define DBVT_INT0_IMPL DBVT_IMPL_SSE+#else+#define DBVT_SELECT_IMPL DBVT_IMPL_GENERIC+#define DBVT_MERGE_IMPL DBVT_IMPL_GENERIC+#define DBVT_INT0_IMPL DBVT_IMPL_GENERIC+#endif++#if (DBVT_SELECT_IMPL==DBVT_IMPL_SSE)|| \+(DBVT_MERGE_IMPL==DBVT_IMPL_SSE)|| \+(DBVT_INT0_IMPL==DBVT_IMPL_SSE)+#include <emmintrin.h>+#endif++//+// Auto config and checks+//++#if DBVT_USE_TEMPLATE+#define DBVT_VIRTUAL+#define DBVT_VIRTUAL_DTOR(a)+#define DBVT_PREFIX template <typename T>+#define DBVT_IPOLICY T& policy+#define DBVT_CHECKTYPE static const ICollide& typechecker=*(T*)1;(void)typechecker;+#else+#define DBVT_VIRTUAL_DTOR(a) virtual ~a() {}+#define DBVT_VIRTUAL virtual+#define DBVT_PREFIX+#define DBVT_IPOLICY ICollide& policy+#define DBVT_CHECKTYPE+#endif++#if DBVT_USE_MEMMOVE+#if !defined( __CELLOS_LV2__) && !defined(__MWERKS__)+#include <memory.h>+#endif+#include <string.h>+#endif++#ifndef DBVT_USE_TEMPLATE+#error "DBVT_USE_TEMPLATE undefined"+#endif++#ifndef DBVT_USE_MEMMOVE+#error "DBVT_USE_MEMMOVE undefined"+#endif++#ifndef DBVT_ENABLE_BENCHMARK+#error "DBVT_ENABLE_BENCHMARK undefined"+#endif++#ifndef DBVT_SELECT_IMPL+#error "DBVT_SELECT_IMPL undefined"+#endif++#ifndef DBVT_MERGE_IMPL+#error "DBVT_MERGE_IMPL undefined"+#endif++#ifndef DBVT_INT0_IMPL+#error "DBVT_INT0_IMPL undefined"+#endif++//+// Defaults volumes+//++/* btDbvtAabbMm */+struct btDbvtAabbMm+{+DBVT_INLINE btVector3 Center() const { return((mi+mx)/2); }+DBVT_INLINE btVector3 Lengths() const { return(mx-mi); }+DBVT_INLINE btVector3 Extents() const { return((mx-mi)/2); }+DBVT_INLINE const btVector3& Mins() const { return(mi); }+DBVT_INLINE const btVector3& Maxs() const { return(mx); }+static inline btDbvtAabbMm FromCE(const btVector3& c,const btVector3& e);+static inline btDbvtAabbMm FromCR(const btVector3& c,btScalar r);+static inline btDbvtAabbMm FromMM(const btVector3& mi,const btVector3& mx);+static inline btDbvtAabbMm FromPoints(const btVector3* pts,int n);+static inline btDbvtAabbMm FromPoints(const btVector3** ppts,int n);+DBVT_INLINE void Expand(const btVector3& e);+DBVT_INLINE void SignedExpand(const btVector3& e);+DBVT_INLINE bool Contain(const btDbvtAabbMm& a) const;+DBVT_INLINE int Classify(const btVector3& n,btScalar o,int s) const;+DBVT_INLINE btScalar ProjectMinimum(const btVector3& v,unsigned signs) const;+DBVT_INLINE friend bool Intersect( const btDbvtAabbMm& a,+const btDbvtAabbMm& b);++DBVT_INLINE friend bool Intersect( const btDbvtAabbMm& a,+const btVector3& b);++DBVT_INLINE friend btScalar Proximity( const btDbvtAabbMm& a,+const btDbvtAabbMm& b);+DBVT_INLINE friend int Select( const btDbvtAabbMm& o,+const btDbvtAabbMm& a,+const btDbvtAabbMm& b);+DBVT_INLINE friend void Merge( const btDbvtAabbMm& a,+const btDbvtAabbMm& b,+btDbvtAabbMm& r);+DBVT_INLINE friend bool NotEqual( const btDbvtAabbMm& a,+const btDbvtAabbMm& b);+private:+DBVT_INLINE void AddSpan(const btVector3& d,btScalar& smi,btScalar& smx) const;+private:+btVector3 mi,mx;+};++// Types+typedef btDbvtAabbMm btDbvtVolume;++/* btDbvtNode */+struct btDbvtNode+{+btDbvtVolume volume;+btDbvtNode* parent;+DBVT_INLINE bool isleaf() const { return(childs[1]==0); }+DBVT_INLINE bool isinternal() const { return(!isleaf()); }+union+{+btDbvtNode* childs[2];+void* data;+int dataAsInt;+};+};++///The btDbvt class implements a fast dynamic bounding volume tree based on axis aligned bounding boxes (aabb tree).+///This btDbvt is used for soft body collision detection and for the btDbvtBroadphase. It has a fast insert, remove and update of nodes.+///Unlike the btQuantizedBvh, nodes can be dynamically moved around, which allows for change in topology of the underlying data structure.+struct btDbvt+{+/* Stack element */+struct sStkNN+{+const btDbvtNode* a;+const btDbvtNode* b;+sStkNN() {}+sStkNN(const btDbvtNode* na,const btDbvtNode* nb) : a(na),b(nb) {}+};+struct sStkNP+{+const btDbvtNode* node;+int mask;+sStkNP(const btDbvtNode* n,unsigned m) : node(n),mask(m) {}+};+struct sStkNPS+{+const btDbvtNode* node;+int mask;+btScalar value;+sStkNPS() {}+sStkNPS(const btDbvtNode* n,unsigned m,btScalar v) : node(n),mask(m),value(v) {}+};+struct sStkCLN+{+const btDbvtNode* node;+btDbvtNode* parent;+sStkCLN(const btDbvtNode* n,btDbvtNode* p) : node(n),parent(p) {}+};+// Policies/Interfaces++/* ICollide */+struct ICollide+{+DBVT_VIRTUAL_DTOR(ICollide)+DBVT_VIRTUAL void Process(const btDbvtNode*,const btDbvtNode*) {}+DBVT_VIRTUAL void Process(const btDbvtNode*) {}+DBVT_VIRTUAL void Process(const btDbvtNode* n,btScalar) { Process(n); }+DBVT_VIRTUAL bool Descent(const btDbvtNode*) { return(true); }+DBVT_VIRTUAL bool AllLeaves(const btDbvtNode*) { return(true); }+};+/* IWriter */+struct IWriter+{+virtual ~IWriter() {}+virtual void Prepare(const btDbvtNode* root,int numnodes)=0;+virtual void WriteNode(const btDbvtNode*,int index,int parent,int child0,int child1)=0;+virtual void WriteLeaf(const btDbvtNode*,int index,int parent)=0;+};+/* IClone */+struct IClone+{+virtual ~IClone() {}+virtual void CloneLeaf(btDbvtNode*) {}+};++// Constants+enum {+SIMPLE_STACKSIZE = 64,+DOUBLE_STACKSIZE = SIMPLE_STACKSIZE*2+};++// Fields+btDbvtNode* m_root;+btDbvtNode* m_free;+int m_lkhd;+int m_leaves;+unsigned m_opath;+++btAlignedObjectArray<sStkNN> m_stkStack;+++// Methods+btDbvt();+~btDbvt();+void clear();+bool empty() const { return(0==m_root); }+void optimizeBottomUp();+void optimizeTopDown(int bu_treshold=128);+void optimizeIncremental(int passes);+btDbvtNode* insert(const btDbvtVolume& box,void* data);+void update(btDbvtNode* leaf,int lookahead=-1);+void update(btDbvtNode* leaf,btDbvtVolume& volume);+bool update(btDbvtNode* leaf,btDbvtVolume& volume,const btVector3& velocity,btScalar margin);+bool update(btDbvtNode* leaf,btDbvtVolume& volume,const btVector3& velocity);+bool update(btDbvtNode* leaf,btDbvtVolume& volume,btScalar margin);+void remove(btDbvtNode* leaf);+void write(IWriter* iwriter) const;+void clone(btDbvt& dest,IClone* iclone=0) const;+static int maxdepth(const btDbvtNode* node);+static int countLeaves(const btDbvtNode* node);+static void extractLeaves(const btDbvtNode* node,btAlignedObjectArray<const btDbvtNode*>& leaves);+#if DBVT_ENABLE_BENCHMARK+static void benchmark();+#else+static void benchmark(){}+#endif+// DBVT_IPOLICY must support ICollide policy/interface+DBVT_PREFIX+static void enumNodes( const btDbvtNode* root,+DBVT_IPOLICY);+DBVT_PREFIX+static void enumLeaves( const btDbvtNode* root,+DBVT_IPOLICY);+DBVT_PREFIX+void collideTT( const btDbvtNode* root0,+const btDbvtNode* root1,+DBVT_IPOLICY);++DBVT_PREFIX+void collideTTpersistentStack( const btDbvtNode* root0,+const btDbvtNode* root1,+DBVT_IPOLICY);+#if 0+DBVT_PREFIX+void collideTT( const btDbvtNode* root0,+const btDbvtNode* root1,+const btTransform& xform,+DBVT_IPOLICY);+DBVT_PREFIX+void collideTT( const btDbvtNode* root0,+const btTransform& xform0,+const btDbvtNode* root1,+const btTransform& xform1,+DBVT_IPOLICY);+#endif++DBVT_PREFIX+void collideTV( const btDbvtNode* root,+const btDbvtVolume& volume,+DBVT_IPOLICY);+///rayTest is a re-entrant ray test, and can be called in parallel as long as the btAlignedAlloc is thread-safe (uses locking etc)+///rayTest is slower than rayTestInternal, because it builds a local stack, using memory allocations, and it recomputes signs/rayDirectionInverses each time+DBVT_PREFIX+static void rayTest( const btDbvtNode* root,+const btVector3& rayFrom,+const btVector3& rayTo,+DBVT_IPOLICY);+///rayTestInternal is faster than rayTest, because it uses a persistent stack (to reduce dynamic memory allocations to a minimum) and it uses precomputed signs/rayInverseDirections+///rayTestInternal is used by btDbvtBroadphase to accelerate world ray casts+DBVT_PREFIX+void rayTestInternal( const btDbvtNode* root,+const btVector3& rayFrom,+const btVector3& rayTo,+const btVector3& rayDirectionInverse,+unsigned int signs[3],+btScalar lambda_max,+const btVector3& aabbMin,+const btVector3& aabbMax,+DBVT_IPOLICY) const;++DBVT_PREFIX+static void collideKDOP(const btDbvtNode* root,+const btVector3* normals,+const btScalar* offsets,+int count,+DBVT_IPOLICY);+DBVT_PREFIX+static void collideOCL( const btDbvtNode* root,+const btVector3* normals,+const btScalar* offsets,+const btVector3& sortaxis,+int count,+DBVT_IPOLICY,+bool fullsort=true);+DBVT_PREFIX+static void collideTU( const btDbvtNode* root,+DBVT_IPOLICY);+// Helpers+static DBVT_INLINE int nearest(const int* i,const btDbvt::sStkNPS* a,btScalar v,int l,int h)+{+int m=0;+while(l<h)+{+m=(l+h)>>1;+if(a[i[m]].value>=v) l=m+1; else h=m;+}+return(h);+}+static DBVT_INLINE int allocate( btAlignedObjectArray<int>& ifree,+btAlignedObjectArray<sStkNPS>& stock,+const sStkNPS& value)+{+int i;+if(ifree.size()>0)+{ i=ifree[ifree.size()-1];ifree.pop_back();stock[i]=value; }+else+{ i=stock.size();stock.push_back(value); }+return(i);+}+//+private:+btDbvt(const btDbvt&) {}+};++//+// Inline's+//++//+inline btDbvtAabbMm btDbvtAabbMm::FromCE(const btVector3& c,const btVector3& e)+{+btDbvtAabbMm box;+box.mi=c-e;box.mx=c+e;+return(box);+}++//+inline btDbvtAabbMm btDbvtAabbMm::FromCR(const btVector3& c,btScalar r)+{+return(FromCE(c,btVector3(r,r,r)));+}++//+inline btDbvtAabbMm btDbvtAabbMm::FromMM(const btVector3& mi,const btVector3& mx)+{+btDbvtAabbMm box;+box.mi=mi;box.mx=mx;+return(box);+}++//+inline btDbvtAabbMm btDbvtAabbMm::FromPoints(const btVector3* pts,int n)+{+btDbvtAabbMm box;+box.mi=box.mx=pts[0];+for(int i=1;i<n;++i)+{+box.mi.setMin(pts[i]);+box.mx.setMax(pts[i]);+}+return(box);+}++//+inline btDbvtAabbMm btDbvtAabbMm::FromPoints(const btVector3** ppts,int n)+{+btDbvtAabbMm box;+box.mi=box.mx=*ppts[0];+for(int i=1;i<n;++i)+{+box.mi.setMin(*ppts[i]);+box.mx.setMax(*ppts[i]);+}+return(box);+}++//+DBVT_INLINE void btDbvtAabbMm::Expand(const btVector3& e)+{+mi-=e;mx+=e;+}++//+DBVT_INLINE void btDbvtAabbMm::SignedExpand(const btVector3& e)+{+if(e.x()>0) mx.setX(mx.x()+e[0]); else mi.setX(mi.x()+e[0]);+if(e.y()>0) mx.setY(mx.y()+e[1]); else mi.setY(mi.y()+e[1]);+if(e.z()>0) mx.setZ(mx.z()+e[2]); else mi.setZ(mi.z()+e[2]);+}++//+DBVT_INLINE bool btDbvtAabbMm::Contain(const btDbvtAabbMm& a) const+{+return( (mi.x()<=a.mi.x())&&+(mi.y()<=a.mi.y())&&+(mi.z()<=a.mi.z())&&+(mx.x()>=a.mx.x())&&+(mx.y()>=a.mx.y())&&+(mx.z()>=a.mx.z()));+}++//+DBVT_INLINE int btDbvtAabbMm::Classify(const btVector3& n,btScalar o,int s) const+{+btVector3 pi,px;+switch(s)+{+case (0+0+0): px=btVector3(mi.x(),mi.y(),mi.z());+pi=btVector3(mx.x(),mx.y(),mx.z());break;+case (1+0+0): px=btVector3(mx.x(),mi.y(),mi.z());+pi=btVector3(mi.x(),mx.y(),mx.z());break;+case (0+2+0): px=btVector3(mi.x(),mx.y(),mi.z());+pi=btVector3(mx.x(),mi.y(),mx.z());break;+case (1+2+0): px=btVector3(mx.x(),mx.y(),mi.z());+pi=btVector3(mi.x(),mi.y(),mx.z());break;+case (0+0+4): px=btVector3(mi.x(),mi.y(),mx.z());+pi=btVector3(mx.x(),mx.y(),mi.z());break;+case (1+0+4): px=btVector3(mx.x(),mi.y(),mx.z());+pi=btVector3(mi.x(),mx.y(),mi.z());break;+case (0+2+4): px=btVector3(mi.x(),mx.y(),mx.z());+pi=btVector3(mx.x(),mi.y(),mi.z());break;+case (1+2+4): px=btVector3(mx.x(),mx.y(),mx.z());+pi=btVector3(mi.x(),mi.y(),mi.z());break;+}+if((btDot(n,px)+o)<0) return(-1);+if((btDot(n,pi)+o)>=0) return(+1);+return(0);+}++//+DBVT_INLINE btScalar btDbvtAabbMm::ProjectMinimum(const btVector3& v,unsigned signs) const+{+const btVector3* b[]={&mx,&mi};+const btVector3 p( b[(signs>>0)&1]->x(),+b[(signs>>1)&1]->y(),+b[(signs>>2)&1]->z());+return(btDot(p,v));+}++//+DBVT_INLINE void btDbvtAabbMm::AddSpan(const btVector3& d,btScalar& smi,btScalar& smx) const+{+for(int i=0;i<3;++i)+{+if(d[i]<0)+{ smi+=mx[i]*d[i];smx+=mi[i]*d[i]; }+else+{ smi+=mi[i]*d[i];smx+=mx[i]*d[i]; }+}+}++//+DBVT_INLINE bool Intersect( const btDbvtAabbMm& a,+const btDbvtAabbMm& b)+{+#if DBVT_INT0_IMPL == DBVT_IMPL_SSE+const __m128 rt(_mm_or_ps( _mm_cmplt_ps(_mm_load_ps(b.mx),_mm_load_ps(a.mi)),+_mm_cmplt_ps(_mm_load_ps(a.mx),_mm_load_ps(b.mi))));+const __int32* pu((const __int32*)&rt);+return((pu[0]|pu[1]|pu[2])==0);+#else+return( (a.mi.x()<=b.mx.x())&&+(a.mx.x()>=b.mi.x())&&+(a.mi.y()<=b.mx.y())&&+(a.mx.y()>=b.mi.y())&&+(a.mi.z()<=b.mx.z())&&+(a.mx.z()>=b.mi.z()));+#endif+}++++//+DBVT_INLINE bool Intersect( const btDbvtAabbMm& a,+const btVector3& b)+{+return( (b.x()>=a.mi.x())&&+(b.y()>=a.mi.y())&&+(b.z()>=a.mi.z())&&+(b.x()<=a.mx.x())&&+(b.y()<=a.mx.y())&&+(b.z()<=a.mx.z()));+}++++++//////////////////////////////////////+++//+DBVT_INLINE btScalar Proximity( const btDbvtAabbMm& a,+const btDbvtAabbMm& b)+{+const btVector3 d=(a.mi+a.mx)-(b.mi+b.mx);+return(btFabs(d.x())+btFabs(d.y())+btFabs(d.z()));+}++++//+DBVT_INLINE int Select( const btDbvtAabbMm& o,+const btDbvtAabbMm& a,+const btDbvtAabbMm& b)+{+#if DBVT_SELECT_IMPL == DBVT_IMPL_SSE+static ATTRIBUTE_ALIGNED16(const unsigned __int32) mask[]={0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff};+///@todo: the intrinsic version is 11% slower+#if DBVT_USE_INTRINSIC_SSE++union btSSEUnion ///NOTE: if we use more intrinsics, move btSSEUnion into the LinearMath directory+{+__m128 ssereg;+float floats[4];+int ints[4];+};++__m128 omi(_mm_load_ps(o.mi));+omi=_mm_add_ps(omi,_mm_load_ps(o.mx));+__m128 ami(_mm_load_ps(a.mi));+ami=_mm_add_ps(ami,_mm_load_ps(a.mx));+ami=_mm_sub_ps(ami,omi);+ami=_mm_and_ps(ami,_mm_load_ps((const float*)mask));+__m128 bmi(_mm_load_ps(b.mi));+bmi=_mm_add_ps(bmi,_mm_load_ps(b.mx));+bmi=_mm_sub_ps(bmi,omi);+bmi=_mm_and_ps(bmi,_mm_load_ps((const float*)mask));+__m128 t0(_mm_movehl_ps(ami,ami));+ami=_mm_add_ps(ami,t0);+ami=_mm_add_ss(ami,_mm_shuffle_ps(ami,ami,1));+__m128 t1(_mm_movehl_ps(bmi,bmi));+bmi=_mm_add_ps(bmi,t1);+bmi=_mm_add_ss(bmi,_mm_shuffle_ps(bmi,bmi,1));++btSSEUnion tmp;+tmp.ssereg = _mm_cmple_ss(bmi,ami);+return tmp.ints[0]&1;++#else+ATTRIBUTE_ALIGNED16(__int32 r[1]);+__asm+{+mov eax,o+mov ecx,a+mov edx,b+movaps xmm0,[eax]+movaps xmm5,mask+addps xmm0,[eax+16]+movaps xmm1,[ecx]+movaps xmm2,[edx]+addps xmm1,[ecx+16]+addps xmm2,[edx+16]+subps xmm1,xmm0+subps xmm2,xmm0+andps xmm1,xmm5+andps xmm2,xmm5+movhlps xmm3,xmm1+movhlps xmm4,xmm2+addps xmm1,xmm3+addps xmm2,xmm4+pshufd xmm3,xmm1,1+pshufd xmm4,xmm2,1+addss xmm1,xmm3+addss xmm2,xmm4+cmpless xmm2,xmm1+movss r,xmm2+}+return(r[0]&1);+#endif+#else+return(Proximity(o,a)<Proximity(o,b)?0:1);+#endif+}++//+DBVT_INLINE void Merge( const btDbvtAabbMm& a,+const btDbvtAabbMm& b,+btDbvtAabbMm& r)+{+#if DBVT_MERGE_IMPL==DBVT_IMPL_SSE+__m128 ami(_mm_load_ps(a.mi));+__m128 amx(_mm_load_ps(a.mx));+__m128 bmi(_mm_load_ps(b.mi));+__m128 bmx(_mm_load_ps(b.mx));+ami=_mm_min_ps(ami,bmi);+amx=_mm_max_ps(amx,bmx);+_mm_store_ps(r.mi,ami);+_mm_store_ps(r.mx,amx);+#else+for(int i=0;i<3;++i)+{+if(a.mi[i]<b.mi[i]) r.mi[i]=a.mi[i]; else r.mi[i]=b.mi[i];+if(a.mx[i]>b.mx[i]) r.mx[i]=a.mx[i]; else r.mx[i]=b.mx[i];+}+#endif+}++//+DBVT_INLINE bool NotEqual( const btDbvtAabbMm& a,+const btDbvtAabbMm& b)+{+return( (a.mi.x()!=b.mi.x())||+(a.mi.y()!=b.mi.y())||+(a.mi.z()!=b.mi.z())||+(a.mx.x()!=b.mx.x())||+(a.mx.y()!=b.mx.y())||+(a.mx.z()!=b.mx.z()));+}++//+// Inline's+//++//+DBVT_PREFIX+inline void btDbvt::enumNodes( const btDbvtNode* root,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+policy.Process(root);+if(root->isinternal())+{+enumNodes(root->childs[0],policy);+enumNodes(root->childs[1],policy);+}+}++//+DBVT_PREFIX+inline void btDbvt::enumLeaves( const btDbvtNode* root,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root->isinternal())+{+enumLeaves(root->childs[0],policy);+enumLeaves(root->childs[1],policy);+}+else+{+policy.Process(root);+}+}++//+DBVT_PREFIX+inline void btDbvt::collideTT( const btDbvtNode* root0,+const btDbvtNode* root1,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root0&&root1)+{+int depth=1;+int treshold=DOUBLE_STACKSIZE-4;+btAlignedObjectArray<sStkNN> stkStack;+stkStack.resize(DOUBLE_STACKSIZE);+stkStack[0]=sStkNN(root0,root1);+do {+sStkNN p=stkStack[--depth];+if(depth>treshold)+{+stkStack.resize(stkStack.size()*2);+treshold=stkStack.size()-4;+}+if(p.a==p.b)+{+if(p.a->isinternal())+{+stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[0]);+stkStack[depth++]=sStkNN(p.a->childs[1],p.a->childs[1]);+stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[1]);+}+}+else if(Intersect(p.a->volume,p.b->volume))+{+if(p.a->isinternal())+{+if(p.b->isinternal())+{+stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);+}+else+{+stkStack[depth++]=sStkNN(p.a->childs[0],p.b);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b);+}+}+else+{+if(p.b->isinternal())+{+stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);+}+else+{+policy.Process(p.a,p.b);+}+}+}+} while(depth);+}+}++++DBVT_PREFIX+inline void btDbvt::collideTTpersistentStack( const btDbvtNode* root0,+const btDbvtNode* root1,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root0&&root1)+{+int depth=1;+int treshold=DOUBLE_STACKSIZE-4;++m_stkStack.resize(DOUBLE_STACKSIZE);+m_stkStack[0]=sStkNN(root0,root1);+do {+sStkNN p=m_stkStack[--depth];+if(depth>treshold)+{+m_stkStack.resize(m_stkStack.size()*2);+treshold=m_stkStack.size()-4;+}+if(p.a==p.b)+{+if(p.a->isinternal())+{+m_stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[0]);+m_stkStack[depth++]=sStkNN(p.a->childs[1],p.a->childs[1]);+m_stkStack[depth++]=sStkNN(p.a->childs[0],p.a->childs[1]);+}+}+else if(Intersect(p.a->volume,p.b->volume))+{+if(p.a->isinternal())+{+if(p.b->isinternal())+{+m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);+m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);+m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);+m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);+}+else+{+m_stkStack[depth++]=sStkNN(p.a->childs[0],p.b);+m_stkStack[depth++]=sStkNN(p.a->childs[1],p.b);+}+}+else+{+if(p.b->isinternal())+{+m_stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);+m_stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);+}+else+{+policy.Process(p.a,p.b);+}+}+}+} while(depth);+}+}++#if 0+//+DBVT_PREFIX+inline void btDbvt::collideTT( const btDbvtNode* root0,+const btDbvtNode* root1,+const btTransform& xform,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root0&&root1)+{+int depth=1;+int treshold=DOUBLE_STACKSIZE-4;+btAlignedObjectArray<sStkNN> stkStack;+stkStack.resize(DOUBLE_STACKSIZE);+stkStack[0]=sStkNN(root0,root1);+do {+sStkNN p=stkStack[--depth];+if(Intersect(p.a->volume,p.b->volume,xform))+{+if(depth>treshold)+{+stkStack.resize(stkStack.size()*2);+treshold=stkStack.size()-4;+}+if(p.a->isinternal())+{+if(p.b->isinternal())+{+stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a->childs[0],p.b->childs[1]);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b->childs[1]);+}+else+{+stkStack[depth++]=sStkNN(p.a->childs[0],p.b);+stkStack[depth++]=sStkNN(p.a->childs[1],p.b);+}+}+else+{+if(p.b->isinternal())+{+stkStack[depth++]=sStkNN(p.a,p.b->childs[0]);+stkStack[depth++]=sStkNN(p.a,p.b->childs[1]);+}+else+{+policy.Process(p.a,p.b);+}+}+}+} while(depth);+}+}+//+DBVT_PREFIX+inline void btDbvt::collideTT( const btDbvtNode* root0,+const btTransform& xform0,+const btDbvtNode* root1,+const btTransform& xform1,+DBVT_IPOLICY)+{+const btTransform xform=xform0.inverse()*xform1;+collideTT(root0,root1,xform,policy);+}+#endif++//+DBVT_PREFIX+inline void btDbvt::collideTV( const btDbvtNode* root,+const btDbvtVolume& vol,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root)+{+ATTRIBUTE_ALIGNED16(btDbvtVolume) volume(vol);+btAlignedObjectArray<const btDbvtNode*> stack;+stack.resize(0);+stack.reserve(SIMPLE_STACKSIZE);+stack.push_back(root);+do {+const btDbvtNode* n=stack[stack.size()-1];+stack.pop_back();+if(Intersect(n->volume,volume))+{+if(n->isinternal())+{+stack.push_back(n->childs[0]);+stack.push_back(n->childs[1]);+}+else+{+policy.Process(n);+}+}+} while(stack.size()>0);+}+}++DBVT_PREFIX+inline void btDbvt::rayTestInternal( const btDbvtNode* root,+const btVector3& rayFrom,+const btVector3& rayTo,+const btVector3& rayDirectionInverse,+unsigned int signs[3],+btScalar lambda_max,+const btVector3& aabbMin,+const btVector3& aabbMax,+DBVT_IPOLICY) const+{+(void) rayTo;+DBVT_CHECKTYPE+if(root)+{+btVector3 resultNormal;++int depth=1;+int treshold=DOUBLE_STACKSIZE-2;+btAlignedObjectArray<const btDbvtNode*> stack;+stack.resize(DOUBLE_STACKSIZE);+stack[0]=root;+btVector3 bounds[2];+do+{+const btDbvtNode* node=stack[--depth];+bounds[0] = node->volume.Mins()-aabbMax;+bounds[1] = node->volume.Maxs()-aabbMin;+btScalar tmin=1.f,lambda_min=0.f;+unsigned int result1=false;+result1 = btRayAabb2(rayFrom,rayDirectionInverse,signs,bounds,tmin,lambda_min,lambda_max);+if(result1)+{+if(node->isinternal())+{+if(depth>treshold)+{+stack.resize(stack.size()*2);+treshold=stack.size()-2;+}+stack[depth++]=node->childs[0];+stack[depth++]=node->childs[1];+}+else+{+policy.Process(node);+}+}+} while(depth);+}+}++//+DBVT_PREFIX+inline void btDbvt::rayTest( const btDbvtNode* root,+const btVector3& rayFrom,+const btVector3& rayTo,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root)+{+btVector3 rayDir = (rayTo-rayFrom);+rayDir.normalize ();++///what about division by zero? --> just set rayDirection[i] to INF/BT_LARGE_FLOAT+btVector3 rayDirectionInverse;+rayDirectionInverse[0] = rayDir[0] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[0];+rayDirectionInverse[1] = rayDir[1] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[1];+rayDirectionInverse[2] = rayDir[2] == btScalar(0.0) ? btScalar(BT_LARGE_FLOAT) : btScalar(1.0) / rayDir[2];+unsigned int signs[3] = { rayDirectionInverse[0] < 0.0, rayDirectionInverse[1] < 0.0, rayDirectionInverse[2] < 0.0};++btScalar lambda_max = rayDir.dot(rayTo-rayFrom);++btVector3 resultNormal;++btAlignedObjectArray<const btDbvtNode*> stack;++int depth=1;+int treshold=DOUBLE_STACKSIZE-2;++stack.resize(DOUBLE_STACKSIZE);+stack[0]=root;+btVector3 bounds[2];+do {+const btDbvtNode* node=stack[--depth];++bounds[0] = node->volume.Mins();+bounds[1] = node->volume.Maxs();++btScalar tmin=1.f,lambda_min=0.f;+unsigned int result1 = btRayAabb2(rayFrom,rayDirectionInverse,signs,bounds,tmin,lambda_min,lambda_max);++#ifdef COMPARE_BTRAY_AABB2+btScalar param=1.f;+bool result2 = btRayAabb(rayFrom,rayTo,node->volume.Mins(),node->volume.Maxs(),param,resultNormal);+btAssert(result1 == result2);+#endif //TEST_BTRAY_AABB2++if(result1)+{+if(node->isinternal())+{+if(depth>treshold)+{+stack.resize(stack.size()*2);+treshold=stack.size()-2;+}+stack[depth++]=node->childs[0];+stack[depth++]=node->childs[1];+}+else+{+policy.Process(node);+}+}+} while(depth);++}+}++//+DBVT_PREFIX+inline void btDbvt::collideKDOP(const btDbvtNode* root,+const btVector3* normals,+const btScalar* offsets,+int count,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root)+{+const int inside=(1<<count)-1;+btAlignedObjectArray<sStkNP> stack;+int signs[sizeof(unsigned)*8];+btAssert(count<int (sizeof(signs)/sizeof(signs[0])));+for(int i=0;i<count;++i)+{+signs[i]= ((normals[i].x()>=0)?1:0)++((normals[i].y()>=0)?2:0)++((normals[i].z()>=0)?4:0);+}+stack.reserve(SIMPLE_STACKSIZE);+stack.push_back(sStkNP(root,0));+do {+sStkNP se=stack[stack.size()-1];+bool out=false;+stack.pop_back();+for(int i=0,j=1;(!out)&&(i<count);++i,j<<=1)+{+if(0==(se.mask&j))+{+const int side=se.node->volume.Classify(normals[i],offsets[i],signs[i]);+switch(side)+{+case -1: out=true;break;+case +1: se.mask|=j;break;+}+}+}+if(!out)+{+if((se.mask!=inside)&&(se.node->isinternal()))+{+stack.push_back(sStkNP(se.node->childs[0],se.mask));+stack.push_back(sStkNP(se.node->childs[1],se.mask));+}+else+{+if(policy.AllLeaves(se.node)) enumLeaves(se.node,policy);+}+}+} while(stack.size());+}+}++//+DBVT_PREFIX+inline void btDbvt::collideOCL( const btDbvtNode* root,+const btVector3* normals,+const btScalar* offsets,+const btVector3& sortaxis,+int count,+DBVT_IPOLICY,+bool fsort)+{+DBVT_CHECKTYPE+if(root)+{+const unsigned srtsgns=(sortaxis[0]>=0?1:0)++(sortaxis[1]>=0?2:0)++(sortaxis[2]>=0?4:0);+const int inside=(1<<count)-1;+btAlignedObjectArray<sStkNPS> stock;+btAlignedObjectArray<int> ifree;+btAlignedObjectArray<int> stack;+int signs[sizeof(unsigned)*8];+btAssert(count<int (sizeof(signs)/sizeof(signs[0])));+for(int i=0;i<count;++i)+{+signs[i]= ((normals[i].x()>=0)?1:0)++((normals[i].y()>=0)?2:0)++((normals[i].z()>=0)?4:0);+}+stock.reserve(SIMPLE_STACKSIZE);+stack.reserve(SIMPLE_STACKSIZE);+ifree.reserve(SIMPLE_STACKSIZE);+stack.push_back(allocate(ifree,stock,sStkNPS(root,0,root->volume.ProjectMinimum(sortaxis,srtsgns))));+do {+const int id=stack[stack.size()-1];+sStkNPS se=stock[id];+stack.pop_back();ifree.push_back(id);+if(se.mask!=inside)+{+bool out=false;+for(int i=0,j=1;(!out)&&(i<count);++i,j<<=1)+{+if(0==(se.mask&j))+{+const int side=se.node->volume.Classify(normals[i],offsets[i],signs[i]);+switch(side)+{+case -1: out=true;break;+case +1: se.mask|=j;break;+}+}+}+if(out) continue;+}+if(policy.Descent(se.node))+{+if(se.node->isinternal())+{+const btDbvtNode* pns[]={ se.node->childs[0],se.node->childs[1]};+sStkNPS nes[]={ sStkNPS(pns[0],se.mask,pns[0]->volume.ProjectMinimum(sortaxis,srtsgns)),+sStkNPS(pns[1],se.mask,pns[1]->volume.ProjectMinimum(sortaxis,srtsgns))};+const int q=nes[0].value<nes[1].value?1:0;+int j=stack.size();+if(fsort&&(j>0))+{+/* Insert 0 */+j=nearest(&stack[0],&stock[0],nes[q].value,0,stack.size());+stack.push_back(0);+#if DBVT_USE_MEMMOVE+memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1));+#else+for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1];+#endif+stack[j]=allocate(ifree,stock,nes[q]);+/* Insert 1 */+j=nearest(&stack[0],&stock[0],nes[1-q].value,j,stack.size());+stack.push_back(0);+#if DBVT_USE_MEMMOVE+memmove(&stack[j+1],&stack[j],sizeof(int)*(stack.size()-j-1));+#else+for(int k=stack.size()-1;k>j;--k) stack[k]=stack[k-1];+#endif+stack[j]=allocate(ifree,stock,nes[1-q]);+}+else+{+stack.push_back(allocate(ifree,stock,nes[q]));+stack.push_back(allocate(ifree,stock,nes[1-q]));+}+}+else+{+policy.Process(se.node,se.value);+}+}+} while(stack.size());+}+}++//+DBVT_PREFIX+inline void btDbvt::collideTU( const btDbvtNode* root,+DBVT_IPOLICY)+{+DBVT_CHECKTYPE+if(root)+{+btAlignedObjectArray<const btDbvtNode*> stack;+stack.reserve(SIMPLE_STACKSIZE);+stack.push_back(root);+do {+const btDbvtNode* n=stack[stack.size()-1];+stack.pop_back();+if(policy.Descent(n))+{+if(n->isinternal())+{ stack.push_back(n->childs[0]);stack.push_back(n->childs[1]); }+else+{ policy.Process(n); }+}+} while(stack.size()>0);+} }  //
bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,15 +24,15 @@ // Compile time config // -#define	DBVT_BP_PROFILE					0-//#define DBVT_BP_SORTPAIRS				1-#define DBVT_BP_PREVENTFALSEUPDATE		0-#define DBVT_BP_ACCURATESLEEPING		0-#define DBVT_BP_ENABLE_BENCHMARK		0-#define DBVT_BP_MARGIN					(btScalar)0.05+#define DBVT_BP_PROFILE 0+//#define DBVT_BP_SORTPAIRS 1+#define DBVT_BP_PREVENTFALSEUPDATE 0+#define DBVT_BP_ACCURATESLEEPING 0+#define DBVT_BP_ENABLE_BENCHMARK 0+#define DBVT_BP_MARGIN (btScalar)0.05  #if DBVT_BP_PROFILE-#define	DBVT_BP_PROFILING_RATE	256+#define DBVT_BP_PROFILING_RATE 256 #include "LinearMath/btQuickprof.h" #endif @@ -41,104 +41,104 @@ // struct btDbvtProxy : btBroadphaseProxy {-	/* Fields		*/ -	//btDbvtAabbMm	aabb;-	btDbvtNode*		leaf;-	btDbvtProxy*	links[2];-	int				stage;-	/* ctor			*/ -	btDbvtProxy(const btVector3& aabbMin,const btVector3& aabbMax,void* userPtr,short int collisionFilterGroup, short int collisionFilterMask) :-	btBroadphaseProxy(aabbMin,aabbMax,userPtr,collisionFilterGroup,collisionFilterMask)-	{-		links[0]=links[1]=0;-	}+/* Fields */+//btDbvtAabbMm aabb;+btDbvtNode* leaf;+btDbvtProxy* links[2];+int stage;+/* ctor */+btDbvtProxy(const btVector3& aabbMin,const btVector3& aabbMax,void* userPtr,short int collisionFilterGroup, short int collisionFilterMask) :+btBroadphaseProxy(aabbMin,aabbMax,userPtr,collisionFilterGroup,collisionFilterMask)+{+links[0]=links[1]=0;+} }; -typedef btAlignedObjectArray<btDbvtProxy*>	btDbvtProxyArray;+typedef btAlignedObjectArray<btDbvtProxy*> btDbvtProxyArray;  ///The btDbvtBroadphase implements a broadphase using two dynamic AABB bounding volume hierarchies/trees (see btDbvt). ///One tree is used for static/non-moving objects, and another tree is used for dynamic objects. Objects can move from one tree to the other. ///This is a very fast broadphase, especially for very dynamic worlds where many objects are moving. Its insert/add and remove of objects is generally faster than the sweep and prune broadphases btAxisSweep3 and bt32BitAxisSweep3.-struct	btDbvtBroadphase : btBroadphaseInterface+struct btDbvtBroadphase : btBroadphaseInterface {-	/* Config		*/ -	enum	{-		DYNAMIC_SET			=	0,	/* Dynamic set index	*/ -		FIXED_SET			=	1,	/* Fixed set index		*/ -		STAGECOUNT			=	2	/* Number of stages		*/ -	};-	/* Fields		*/ -	btDbvt					m_sets[2];					// Dbvt sets-	btDbvtProxy*			m_stageRoots[STAGECOUNT+1];	// Stages list-	btOverlappingPairCache*	m_paircache;				// Pair cache-	btScalar				m_prediction;				// Velocity prediction-	int						m_stageCurrent;				// Current stage-	int						m_fupdates;					// % of fixed updates per frame-	int						m_dupdates;					// % of dynamic updates per frame-	int						m_cupdates;					// % of cleanup updates per frame-	int						m_newpairs;					// Number of pairs created-	int						m_fixedleft;				// Fixed optimization left-	unsigned				m_updates_call;				// Number of updates call-	unsigned				m_updates_done;				// Number of updates done-	btScalar				m_updates_ratio;			// m_updates_done/m_updates_call-	int						m_pid;						// Parse id-	int						m_cid;						// Cleanup index-	int						m_gid;						// Gen id-	bool					m_releasepaircache;			// Release pair cache on delete-	bool					m_deferedcollide;			// Defere dynamic/static collision to collide call-	bool					m_needcleanup;				// Need to run cleanup?+/* Config */+enum {+DYNAMIC_SET = 0, /* Dynamic set index */+FIXED_SET = 1, /* Fixed set index */+STAGECOUNT = 2 /* Number of stages */+};+/* Fields */+btDbvt m_sets[2]; // Dbvt sets+btDbvtProxy* m_stageRoots[STAGECOUNT+1]; // Stages list+btOverlappingPairCache* m_paircache; // Pair cache+btScalar m_prediction; // Velocity prediction+int m_stageCurrent; // Current stage+int m_fupdates; // % of fixed updates per frame+int m_dupdates; // % of dynamic updates per frame+int m_cupdates; // % of cleanup updates per frame+int m_newpairs; // Number of pairs created+int m_fixedleft; // Fixed optimization left+unsigned m_updates_call; // Number of updates call+unsigned m_updates_done; // Number of updates done+btScalar m_updates_ratio; // m_updates_done/m_updates_call+int m_pid; // Parse id+int m_cid; // Cleanup index+int m_gid; // Gen id+bool m_releasepaircache; // Release pair cache on delete+bool m_deferedcollide; // Defere dynamic/static collision to collide call+bool m_needcleanup; // Need to run cleanup? #if DBVT_BP_PROFILE-	btClock					m_clock;-	struct	{-		unsigned long		m_total;-		unsigned long		m_ddcollide;-		unsigned long		m_fdcollide;-		unsigned long		m_cleanup;-		unsigned long		m_jobcount;-	}				m_profiling;+btClock m_clock;+struct {+unsigned long m_total;+unsigned long m_ddcollide;+unsigned long m_fdcollide;+unsigned long m_cleanup;+unsigned long m_jobcount;+} m_profiling; #endif-	/* Methods		*/ -	btDbvtBroadphase(btOverlappingPairCache* paircache=0);-	~btDbvtBroadphase();-	void							collide(btDispatcher* dispatcher);-	void							optimize();-	-	/* btBroadphaseInterface Implementation	*/-	btBroadphaseProxy*				createProxy(const btVector3& aabbMin,const btVector3& aabbMax,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);-	virtual void					destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);-	virtual void					setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);-	virtual void					rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0));-	virtual void					aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback);+/* Methods */+btDbvtBroadphase(btOverlappingPairCache* paircache=0);+~btDbvtBroadphase();+void collide(btDispatcher* dispatcher);+void optimize(); -	virtual void					getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;-	virtual	void					calculateOverlappingPairs(btDispatcher* dispatcher);-	virtual	btOverlappingPairCache*	getOverlappingPairCache();-	virtual	const btOverlappingPairCache*	getOverlappingPairCache() const;-	virtual	void					getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const;-	virtual	void					printStats();+/* btBroadphaseInterface Implementation */+btBroadphaseProxy* createProxy(const btVector3& aabbMin,const btVector3& aabbMax,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,btDispatcher* dispatcher,void* multiSapProxy);+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+virtual void setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* dispatcher);+virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0), const btVector3& aabbMax = btVector3(0,0,0));+virtual void aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback); +virtual void getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;+virtual void calculateOverlappingPairs(btDispatcher* dispatcher);+virtual btOverlappingPairCache* getOverlappingPairCache();+virtual const btOverlappingPairCache* getOverlappingPairCache() const;+virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const;+virtual void printStats(); -	///reset broadphase internal structures, to ensure determinism/reproducability-	virtual void resetPool(btDispatcher* dispatcher); -	void	performDeferredRemoval(btDispatcher* dispatcher);-	-	void	setVelocityPrediction(btScalar prediction)-	{-		m_prediction = prediction;-	}-	btScalar getVelocityPrediction() const-	{-		return m_prediction;-	}+///reset broadphase internal structures, to ensure determinism/reproducability+virtual void resetPool(btDispatcher* dispatcher); -	///this setAabbForceUpdate is similar to setAabb but always forces the aabb update. -	///it is not part of the btBroadphaseInterface but specific to btDbvtBroadphase.-	///it bypasses certain optimizations that prevent aabb updates (when the aabb shrinks), see-	///http://code.google.com/p/bullet/issues/detail?id=223-	void							setAabbForceUpdate(		btBroadphaseProxy* absproxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* /*dispatcher*/);+void performDeferredRemoval(btDispatcher* dispatcher); -	static void						benchmark(btBroadphaseInterface*);+void setVelocityPrediction(btScalar prediction)+{+m_prediction = prediction;+}+btScalar getVelocityPrediction() const+{+return m_prediction;+}++///this setAabbForceUpdate is similar to setAabb but always forces the aabb update.+///it is not part of the btBroadphaseInterface but specific to btDbvtBroadphase.+///it bypasses certain optimizations that prevent aabb updates (when the aabb shrinks), see+///http://code.google.com/p/bullet/issues/detail?id=223+void setAabbForceUpdate( btBroadphaseProxy* absproxy,const btVector3& aabbMin,const btVector3& aabbMax,btDispatcher* /*dispatcher*/);++static void benchmark(btBroadphaseInterface*);   };
bullet/BulletCollision/BroadphaseCollision/btDispatcher.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,7 +20,7 @@ class btCollisionAlgorithm; struct btBroadphaseProxy; class btRigidBody;-class	btCollisionObject;+class btCollisionObject; class btOverlappingPairCache;  @@ -30,79 +30,79 @@  struct btDispatcherInfo {-	enum DispatchFunc-	{-		DISPATCH_DISCRETE = 1,-		DISPATCH_CONTINUOUS-	};-	btDispatcherInfo()-		:m_timeStep(btScalar(0.)),-		m_stepCount(0),-		m_dispatchFunc(DISPATCH_DISCRETE),-		m_timeOfImpact(btScalar(1.)),-		m_useContinuous(true),-		m_debugDraw(0),-		m_enableSatConvex(false),-		m_enableSPU(true),-		m_useEpa(true),-		m_allowedCcdPenetration(btScalar(0.04)),-		m_useConvexConservativeDistanceUtil(false),-		m_convexConservativeDistanceThreshold(0.0f),-		m_stackAllocator(0)-	{+enum DispatchFunc+{+DISPATCH_DISCRETE = 1,+DISPATCH_CONTINUOUS+};+btDispatcherInfo()+:m_timeStep(btScalar(0.)),+m_stepCount(0),+m_dispatchFunc(DISPATCH_DISCRETE),+m_timeOfImpact(btScalar(1.)),+m_useContinuous(true),+m_debugDraw(0),+m_enableSatConvex(false),+m_enableSPU(true),+m_useEpa(true),+m_allowedCcdPenetration(btScalar(0.04)),+m_useConvexConservativeDistanceUtil(false),+m_convexConservativeDistanceThreshold(0.0f),+m_stackAllocator(0)+{ -	}-	btScalar	m_timeStep;-	int			m_stepCount;-	int			m_dispatchFunc;-	mutable btScalar	m_timeOfImpact;-	bool		m_useContinuous;-	class btIDebugDraw*	m_debugDraw;-	bool		m_enableSatConvex;-	bool		m_enableSPU;-	bool		m_useEpa;-	btScalar	m_allowedCcdPenetration;-	bool		m_useConvexConservativeDistanceUtil;-	btScalar	m_convexConservativeDistanceThreshold;-	btStackAlloc*	m_stackAllocator;+}+btScalar m_timeStep;+int m_stepCount;+int m_dispatchFunc;+mutable btScalar m_timeOfImpact;+bool m_useContinuous;+class btIDebugDraw* m_debugDraw;+bool m_enableSatConvex;+bool m_enableSPU;+bool m_useEpa;+btScalar m_allowedCcdPenetration;+bool m_useConvexConservativeDistanceUtil;+btScalar m_convexConservativeDistanceThreshold;+btStackAlloc* m_stackAllocator; };  ///The btDispatcher interface class can be used in combination with broadphase to dispatch calculations for overlapping pairs. ///For example for pairwise collision detection, calculating contact points stored in btPersistentManifold or user callbacks (game logic). class btDispatcher-{+{ private:   public:-	virtual ~btDispatcher() ;+virtual ~btDispatcher() ; -	virtual btCollisionAlgorithm* findAlgorithm(btCollisionObject* body0,btCollisionObject* body1,btPersistentManifold* sharedManifold=0) = 0;+virtual btCollisionAlgorithm* findAlgorithm(btCollisionObject* body0,btCollisionObject* body1,btPersistentManifold* sharedManifold=0) = 0; -	virtual btPersistentManifold*	getNewManifold(void* body0,void* body1)=0;+virtual btPersistentManifold* getNewManifold(void* body0,void* body1)=0; -	virtual void releaseManifold(btPersistentManifold* manifold)=0;+virtual void releaseManifold(btPersistentManifold* manifold)=0; -	virtual void clearManifold(btPersistentManifold* manifold)=0;+virtual void clearManifold(btPersistentManifold* manifold)=0; -	virtual bool	needsCollision(btCollisionObject* body0,btCollisionObject* body1) = 0;+virtual bool needsCollision(btCollisionObject* body0,btCollisionObject* body1) = 0; -	virtual bool	needsResponse(btCollisionObject* body0,btCollisionObject* body1)=0;+virtual bool needsResponse(btCollisionObject* body0,btCollisionObject* body1)=0; -	virtual void	dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher)  =0;+virtual void dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher) =0; -	virtual int getNumManifolds() const = 0;+virtual int getNumManifolds() const = 0; -	virtual btPersistentManifold* getManifoldByIndexInternal(int index) = 0;+virtual btPersistentManifold* getManifoldByIndexInternal(int index) = 0; -	virtual	btPersistentManifold**	getInternalManifoldPointer() = 0;+virtual btPersistentManifold** getInternalManifoldPointer() = 0; -	virtual	btPoolAllocator*	getInternalManifoldPool() = 0;+virtual btPoolAllocator* getInternalManifoldPool() = 0; -	virtual	const btPoolAllocator*	getInternalManifoldPool() const = 0;+virtual const btPoolAllocator* getInternalManifoldPool() const = 0; -	virtual	void* allocateCollisionAlgorithm(int size)  = 0;+virtual void* allocateCollisionAlgorithm(int size) = 0; -	virtual	void freeCollisionAlgorithm(void* ptr) = 0;+virtual void freeCollisionAlgorithm(void* ptr) = 0;  }; 
bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -33,118 +33,118 @@ ///See http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=328 ///and http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1329 class btMultiSapBroadphase :public btBroadphaseInterface-{-	btSapBroadphaseArray	m_sapBroadphases;-	-	btSimpleBroadphase*		m_simpleBroadphase;+{ private:+btSapBroadphaseArray m_sapBroadphases; -	btOverlappingPairCache*	m_overlappingPairs;+btSimpleBroadphase* m_simpleBroadphase; -	class btQuantizedBvh*			m_optimizedAabbTree;+btOverlappingPairCache* m_overlappingPairs; +class btQuantizedBvh* m_optimizedAabbTree; -	bool					m_ownsPairCache;-	-	btOverlapFilterCallback*	m_filterCallback; -	int			m_invalidPair;+bool m_ownsPairCache; -	struct	btBridgeProxy-	{-		btBroadphaseProxy*		m_childProxy;-		btBroadphaseInterface*	m_childBroadphase;-	};+btOverlapFilterCallback* m_filterCallback; +int m_invalidPair; +struct btBridgeProxy+{+btBroadphaseProxy* m_childProxy;+btBroadphaseInterface* m_childBroadphase;+};++ public: -	struct	btMultiSapProxy	: public btBroadphaseProxy-	{+struct btMultiSapProxy : public btBroadphaseProxy+{ -		///array with all the entries that this proxy belongs to-		btAlignedObjectArray<btBridgeProxy*> m_bridgeProxies;-		btVector3	m_aabbMin;-		btVector3	m_aabbMax;+///array with all the entries that this proxy belongs to+btAlignedObjectArray<btBridgeProxy*> m_bridgeProxies;+btVector3 m_aabbMin;+btVector3 m_aabbMax; -		int	m_shapeType;+int m_shapeType; -/*		void*	m_userPtr;-		short int	m_collisionFilterGroup;-		short int	m_collisionFilterMask;+/* void* m_userPtr;+short int m_collisionFilterGroup;+short int m_collisionFilterMask; */-		btMultiSapProxy(const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask)-			:btBroadphaseProxy(aabbMin,aabbMax,userPtr,collisionFilterGroup,collisionFilterMask),-			m_aabbMin(aabbMin),-			m_aabbMax(aabbMax),-			m_shapeType(shapeType)-		{-			m_multiSapParentProxy =this;-		}+btMultiSapProxy(const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask)+:btBroadphaseProxy(aabbMin,aabbMax,userPtr,collisionFilterGroup,collisionFilterMask),+m_aabbMin(aabbMin),+m_aabbMax(aabbMax),+m_shapeType(shapeType)+{+m_multiSapParentProxy =this;+} -		-	}; +};+ protected:  -	btAlignedObjectArray<btMultiSapProxy*> m_multiSapProxies;+btAlignedObjectArray<btMultiSapProxy*> m_multiSapProxies;  public: -	btMultiSapBroadphase(int maxProxies = 16384,btOverlappingPairCache* pairCache=0);+btMultiSapBroadphase(int maxProxies = 16384,btOverlappingPairCache* pairCache=0);  -	btSapBroadphaseArray&	getBroadphaseArray()-	{-		return m_sapBroadphases;-	}+btSapBroadphaseArray& getBroadphaseArray()+{+return m_sapBroadphases;+} -	const btSapBroadphaseArray&	getBroadphaseArray() const-	{-		return m_sapBroadphases;-	}+const btSapBroadphaseArray& getBroadphaseArray() const+{+return m_sapBroadphases;+} -	virtual ~btMultiSapBroadphase();+virtual ~btMultiSapBroadphase(); -	virtual btBroadphaseProxy*	createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy);-	virtual void	destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);-	virtual void	setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher);-	virtual void	getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;+virtual btBroadphaseProxy* createProxy( const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr, short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy);+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+virtual void setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher);+virtual void getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const; -	virtual void	rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback,const btVector3& aabbMin=btVector3(0,0,0),const btVector3& aabbMax=btVector3(0,0,0));+virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback,const btVector3& aabbMin=btVector3(0,0,0),const btVector3& aabbMax=btVector3(0,0,0)); -	void	addToChildBroadphase(btMultiSapProxy* parentMultiSapProxy, btBroadphaseProxy* childProxy, btBroadphaseInterface*	childBroadphase);+void addToChildBroadphase(btMultiSapProxy* parentMultiSapProxy, btBroadphaseProxy* childProxy, btBroadphaseInterface* childBroadphase); -	///calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb-	virtual void	calculateOverlappingPairs(btDispatcher* dispatcher);+///calculateOverlappingPairs is optional: incremental algorithms (sweep and prune) might do it during the set aabb+virtual void calculateOverlappingPairs(btDispatcher* dispatcher); -	bool	testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);+bool testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -	virtual	btOverlappingPairCache*	getOverlappingPairCache()-	{-		return m_overlappingPairs;-	}-	virtual	const btOverlappingPairCache*	getOverlappingPairCache() const-	{-		return m_overlappingPairs;-	}+virtual btOverlappingPairCache* getOverlappingPairCache()+{+return m_overlappingPairs;+}+virtual const btOverlappingPairCache* getOverlappingPairCache() const+{+return m_overlappingPairs;+} -	///getAabb returns the axis aligned bounding box in the 'global' coordinate frame-	///will add some transform later-	virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const-	{-		aabbMin.setValue(-BT_LARGE_FLOAT,-BT_LARGE_FLOAT,-BT_LARGE_FLOAT);-		aabbMax.setValue(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT);-	}+///getAabb returns the axis aligned bounding box in the 'global' coordinate frame+///will add some transform later+virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const+{+aabbMin.setValue(-BT_LARGE_FLOAT,-BT_LARGE_FLOAT,-BT_LARGE_FLOAT);+aabbMax.setValue(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT);+} -	void	buildTree(const btVector3& bvhAabbMin,const btVector3& bvhAabbMax);+void buildTree(const btVector3& bvhAabbMin,const btVector3& bvhAabbMax); -	virtual void	printStats();+virtual void printStats(); -	void quicksort (btBroadphasePairArray& a, int lo, int hi);+void quicksort (btBroadphasePairArray& a, int lo, int hi); -	///reset broadphase internal structures, to ensure determinism/reproducability-	virtual void resetPool(btDispatcher* dispatcher);+///reset broadphase internal structures, to ensure determinism/reproducability+virtual void resetPool(btDispatcher* dispatcher);  }; 
bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,23 +24,23 @@ #include "LinearMath/btAlignedObjectArray.h" class btDispatcher; -typedef btAlignedObjectArray<btBroadphasePair>	btBroadphasePairArray;+typedef btAlignedObjectArray<btBroadphasePair> btBroadphasePairArray; -struct	btOverlapCallback+struct btOverlapCallback {-	virtual ~btOverlapCallback()-	{}-	//return true for deletion of the pair-	virtual bool	processOverlap(btBroadphasePair& pair) = 0;+virtual ~btOverlapCallback()+{}+//return true for deletion of the pair+virtual bool processOverlap(btBroadphasePair& pair) = 0;  };  struct btOverlapFilterCallback {-	virtual ~btOverlapFilterCallback()-	{}-	// return true when pairs need collision-	virtual bool	needBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const = 0;+virtual ~btOverlapFilterCallback()+{}+// return true when pairs need collision+virtual bool needBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const = 0; };  @@ -58,219 +58,219 @@ ///The btOverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the btBroadphaseInterface broadphases. ///The btHashedOverlappingPairCache and btSortedOverlappingPairCache classes are two implementations. class btOverlappingPairCache : public btOverlappingPairCallback-{+{ private: public:-	virtual ~btOverlappingPairCache() {} // this is needed so we can get to the derived class destructor+virtual ~btOverlappingPairCache() {} // this is needed so we can get to the derived class destructor -	virtual btBroadphasePair*	getOverlappingPairArrayPtr() = 0;-	-	virtual const btBroadphasePair*	getOverlappingPairArrayPtr() const = 0;+virtual btBroadphasePair* getOverlappingPairArrayPtr() = 0; -	virtual btBroadphasePairArray&	getOverlappingPairArray() = 0;+virtual const btBroadphasePair* getOverlappingPairArrayPtr() const = 0; -	virtual	void	cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher) = 0;+virtual btBroadphasePairArray& getOverlappingPairArray() = 0; -	virtual int getNumOverlappingPairs() const = 0;+virtual void cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher) = 0; -	virtual void	cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher) = 0;+virtual int getNumOverlappingPairs() const = 0; -	virtual	void setOverlapFilterCallback(btOverlapFilterCallback* callback) = 0;+virtual void cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher) = 0; -	virtual void	processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher) = 0;+virtual void setOverlapFilterCallback(btOverlapFilterCallback* callback) = 0; -	virtual btBroadphasePair* findPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1) = 0;+virtual void processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher) = 0; -	virtual bool	hasDeferredRemoval() = 0;+virtual btBroadphasePair* findPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1) = 0; -	virtual	void	setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)=0;+virtual bool hasDeferredRemoval() = 0; -	virtual void	sortOverlappingPairs(btDispatcher* dispatcher) = 0;+virtual void setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)=0; +virtual void sortOverlappingPairs(btDispatcher* dispatcher) = 0; + };  /// Hash-space based Pair Cache, thanks to Erin Catto, Box2D, http://www.box2d.org, and Pierre Terdiman, Codercorner, http://codercorner.com class btHashedOverlappingPairCache : public btOverlappingPairCache-{-	btBroadphasePairArray	m_overlappingPairArray;-	btOverlapFilterCallback* m_overlapFilterCallback;-	bool		m_blockedForChanges;+{ private:+btBroadphasePairArray m_overlappingPairArray;+btOverlapFilterCallback* m_overlapFilterCallback;+bool m_blockedForChanges;   public:-	btHashedOverlappingPairCache();-	virtual ~btHashedOverlappingPairCache();+btHashedOverlappingPairCache();+virtual ~btHashedOverlappingPairCache(); -	-	void	removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher); -	virtual void*	removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher);-	-	SIMD_FORCE_INLINE bool needsBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const-	{-		if (m_overlapFilterCallback)-			return m_overlapFilterCallback->needBroadphaseCollision(proxy0,proxy1);+void removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher); -		bool collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;-		collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);-		-		return collides;-	}+virtual void* removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher); -	// Add a pair and return the new pair. If the pair already exists,-	// no new pair is created and the old one is returned.-	virtual btBroadphasePair* 	addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)-	{-		gAddedPairs++;+SIMD_FORCE_INLINE bool needsBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const+{+if (m_overlapFilterCallback)+return m_overlapFilterCallback->needBroadphaseCollision(proxy0,proxy1); -		if (!needsBroadphaseCollision(proxy0,proxy1))-			return 0;+bool collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;+collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask); -		return internalAddPair(proxy0,proxy1);-	}+return collides;+} -	+// Add a pair and return the new pair. If the pair already exists,+// no new pair is created and the old one is returned.+virtual btBroadphasePair* addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)+{+gAddedPairs++; -	void	cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+if (!needsBroadphaseCollision(proxy0,proxy1))+return 0; -	-	virtual void	processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher);+return internalAddPair(proxy0,proxy1);+} -	virtual btBroadphasePair*	getOverlappingPairArrayPtr()-	{-		return &m_overlappingPairArray[0];-	} -	const btBroadphasePair*	getOverlappingPairArrayPtr() const-	{-		return &m_overlappingPairArray[0];-	} -	btBroadphasePairArray&	getOverlappingPairArray()-	{-		return m_overlappingPairArray;-	}+void cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher); -	const btBroadphasePairArray&	getOverlappingPairArray() const-	{-		return m_overlappingPairArray;-	} -	void	cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher);+virtual void processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher); +virtual btBroadphasePair* getOverlappingPairArrayPtr()+{+return &m_overlappingPairArray[0];+} +const btBroadphasePair* getOverlappingPairArrayPtr() const+{+return &m_overlappingPairArray[0];+} -	btBroadphasePair* findPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1);+btBroadphasePairArray& getOverlappingPairArray()+{+return m_overlappingPairArray;+} -	int GetCount() const { return m_overlappingPairArray.size(); }-//	btBroadphasePair* GetPairs() { return m_pairs; }+const btBroadphasePairArray& getOverlappingPairArray() const+{+return m_overlappingPairArray;+} -	btOverlapFilterCallback* getOverlapFilterCallback()-	{-		return m_overlapFilterCallback;-	}+void cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher); -	void setOverlapFilterCallback(btOverlapFilterCallback* callback)-	{-		m_overlapFilterCallback = callback;-	} -	int	getNumOverlappingPairs() const-	{-		return m_overlappingPairArray.size();-	}++btBroadphasePair* findPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1);++int GetCount() const { return m_overlappingPairArray.size(); }+// btBroadphasePair* GetPairs() { return m_pairs; }++btOverlapFilterCallback* getOverlapFilterCallback()+{+return m_overlapFilterCallback;+}++void setOverlapFilterCallback(btOverlapFilterCallback* callback)+{+m_overlapFilterCallback = callback;+}++int getNumOverlappingPairs() const+{+return m_overlappingPairArray.size();+} private:-	-	btBroadphasePair* 	internalAddPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -	void	growTables();+btBroadphasePair* internalAddPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -	SIMD_FORCE_INLINE bool equalsPair(const btBroadphasePair& pair, int proxyId1, int proxyId2)-	{	-		return pair.m_pProxy0->getUid() == proxyId1 && pair.m_pProxy1->getUid() == proxyId2;-	}+void growTables(); -	/*-	// Thomas Wang's hash, see: http://www.concentric.net/~Ttwang/tech/inthash.htm-	// This assumes proxyId1 and proxyId2 are 16-bit.-	SIMD_FORCE_INLINE int getHash(int proxyId1, int proxyId2)-	{-		int key = (proxyId2 << 16) | proxyId1;-		key = ~key + (key << 15);-		key = key ^ (key >> 12);-		key = key + (key << 2);-		key = key ^ (key >> 4);-		key = key * 2057;-		key = key ^ (key >> 16);-		return key;-	}-	*/+SIMD_FORCE_INLINE bool equalsPair(const btBroadphasePair& pair, int proxyId1, int proxyId2)+{+return pair.m_pProxy0->getUid() == proxyId1 && pair.m_pProxy1->getUid() == proxyId2;+} +/*+// Thomas Wang's hash, see: http://www.concentric.net/~Ttwang/tech/inthash.htm+// This assumes proxyId1 and proxyId2 are 16-bit.+SIMD_FORCE_INLINE int getHash(int proxyId1, int proxyId2)+{+int key = (proxyId2 << 16) | proxyId1;+key = ~key + (key << 15);+key = key ^ (key >> 12);+key = key + (key << 2);+key = key ^ (key >> 4);+key = key * 2057;+key = key ^ (key >> 16);+return key;+}+*/ -	-	SIMD_FORCE_INLINE	unsigned int getHash(unsigned int proxyId1, unsigned int proxyId2)-	{-		int key = static_cast<int>(((unsigned int)proxyId1) | (((unsigned int)proxyId2) <<16));-		// Thomas Wang's hash -		key += ~(key << 15);-		key ^=  (key >> 10);-		key +=  (key << 3);-		key ^=  (key >> 6);-		key += ~(key << 11);-		key ^=  (key >> 16);-		return static_cast<unsigned int>(key);-	}-	 +SIMD_FORCE_INLINE unsigned int getHash(unsigned int proxyId1, unsigned int proxyId2)+{+int key = static_cast<int>(((unsigned int)proxyId1) | (((unsigned int)proxyId2) <<16));+// Thomas Wang's hash +key += ~(key << 15);+key ^= (key >> 10);+key += (key << 3);+key ^= (key >> 6);+key += ~(key << 11);+key ^= (key >> 16);+return static_cast<unsigned int>(key);+}  -	SIMD_FORCE_INLINE btBroadphasePair* internalFindPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1, int hash)-	{-		int proxyId1 = proxy0->getUid();-		int proxyId2 = proxy1->getUid();-		#if 0 // wrong, 'equalsPair' use unsorted uids, copy-past devil striked again. Nat.-		if (proxyId1 > proxyId2) -			btSwap(proxyId1, proxyId2);-		#endif -		int index = m_hashTable[hash];-		-		while( index != BT_NULL_PAIR && equalsPair(m_overlappingPairArray[index], proxyId1, proxyId2) == false)-		{-			index = m_next[index];-		} -		if ( index == BT_NULL_PAIR )-		{-			return NULL;-		} -		btAssert(index < m_overlappingPairArray.size());+SIMD_FORCE_INLINE btBroadphasePair* internalFindPair(btBroadphaseProxy* proxy0, btBroadphaseProxy* proxy1, int hash)+{+int proxyId1 = proxy0->getUid();+int proxyId2 = proxy1->getUid();+#if 0 // wrong, 'equalsPair' use unsorted uids, copy-past devil striked again. Nat.+if (proxyId1 > proxyId2)+btSwap(proxyId1, proxyId2);+#endif -		return &m_overlappingPairArray[index];-	}+int index = m_hashTable[hash]; -	virtual bool	hasDeferredRemoval()-	{-		return false;-	}+while( index != BT_NULL_PAIR && equalsPair(m_overlappingPairArray[index], proxyId1, proxyId2) == false)+{+index = m_next[index];+} -	virtual	void	setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)-	{-		m_ghostPairCallback = ghostPairCallback;-	}+if ( index == BT_NULL_PAIR )+{+return NULL;+} -	virtual void	sortOverlappingPairs(btDispatcher* dispatcher);-	+btAssert(index < m_overlappingPairArray.size()); +return &m_overlappingPairArray[index];+}++virtual bool hasDeferredRemoval()+{+return false;+}++virtual void setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)+{+m_ghostPairCallback = ghostPairCallback;+}++virtual void sortOverlappingPairs(btDispatcher* dispatcher);++ protected:-	-	btAlignedObjectArray<int>	m_hashTable;-	btAlignedObjectArray<int>	m_next;-	btOverlappingPairCallback*	m_ghostPairCallback;-	++btAlignedObjectArray<int> m_hashTable;+btAlignedObjectArray<int> m_next;+btOverlappingPairCallback* m_ghostPairCallback;+ };  @@ -278,187 +278,187 @@  ///btSortedOverlappingPairCache maintains the objects with overlapping AABB ///Typically managed by the Broadphase, Axis3Sweep or btSimpleBroadphase-class	btSortedOverlappingPairCache : public btOverlappingPairCache-{-	protected:-		//avoid brute-force finding all the time-		btBroadphasePairArray	m_overlappingPairArray;+class btSortedOverlappingPairCache : public btOverlappingPairCache+{ private:+protected:+//avoid brute-force finding all the time+btBroadphasePairArray m_overlappingPairArray; -		//during the dispatch, check that user doesn't destroy/create proxy-		bool		m_blockedForChanges;+//during the dispatch, check that user doesn't destroy/create proxy+bool m_blockedForChanges; -		///by default, do the removal during the pair traversal-		bool		m_hasDeferredRemoval;-		-		//if set, use the callback instead of the built in filter in needBroadphaseCollision-		btOverlapFilterCallback* m_overlapFilterCallback;+///by default, do the removal during the pair traversal+bool m_hasDeferredRemoval; -		btOverlappingPairCallback*	m_ghostPairCallback;+//if set, use the callback instead of the built in filter in needBroadphaseCollision+btOverlapFilterCallback* m_overlapFilterCallback; -	public:-			-		btSortedOverlappingPairCache();	-		virtual ~btSortedOverlappingPairCache();+btOverlappingPairCallback* m_ghostPairCallback; -		virtual void	processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher);+public: -		void*	removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher);+btSortedOverlappingPairCache();+virtual ~btSortedOverlappingPairCache(); -		void	cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher);-		-		btBroadphasePair*	addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);+virtual void processAllOverlappingPairs(btOverlapCallback*,btDispatcher* dispatcher); -		btBroadphasePair*	findPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);-			-		-		void	cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+void* removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher); -		void	removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+void cleanOverlappingPair(btBroadphasePair& pair,btDispatcher* dispatcher); +btBroadphasePair* addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -		inline bool needsBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const-		{-			if (m_overlapFilterCallback)-				return m_overlapFilterCallback->needBroadphaseCollision(proxy0,proxy1);+btBroadphasePair* findPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -			bool collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;-			collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask);-			-			return collides;-		}-		-		btBroadphasePairArray&	getOverlappingPairArray()-		{-			return m_overlappingPairArray;-		} -		const btBroadphasePairArray&	getOverlappingPairArray() const-		{-			return m_overlappingPairArray;-		}+void cleanProxyFromPairs(btBroadphaseProxy* proxy,btDispatcher* dispatcher); -		+void removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);  -		btBroadphasePair*	getOverlappingPairArrayPtr()-		{-			return &m_overlappingPairArray[0];-		}+inline bool needsBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const+{+if (m_overlapFilterCallback)+return m_overlapFilterCallback->needBroadphaseCollision(proxy0,proxy1); -		const btBroadphasePair*	getOverlappingPairArrayPtr() const-		{-			return &m_overlappingPairArray[0];-		}+bool collides = (proxy0->m_collisionFilterGroup & proxy1->m_collisionFilterMask) != 0;+collides = collides && (proxy1->m_collisionFilterGroup & proxy0->m_collisionFilterMask); -		int	getNumOverlappingPairs() const-		{-			return m_overlappingPairArray.size();-		}-		-		btOverlapFilterCallback* getOverlapFilterCallback()-		{-			return m_overlapFilterCallback;-		}+return collides;+} -		void setOverlapFilterCallback(btOverlapFilterCallback* callback)-		{-			m_overlapFilterCallback = callback;-		}+btBroadphasePairArray& getOverlappingPairArray()+{+return m_overlappingPairArray;+} -		virtual bool	hasDeferredRemoval()-		{-			return m_hasDeferredRemoval;-		}+const btBroadphasePairArray& getOverlappingPairArray() const+{+return m_overlappingPairArray;+} -		virtual	void	setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)-		{-			m_ghostPairCallback = ghostPairCallback;-		} -		virtual void	sortOverlappingPairs(btDispatcher* dispatcher);-		 ++btBroadphasePair* getOverlappingPairArrayPtr()+{+return &m_overlappingPairArray[0];+}++const btBroadphasePair* getOverlappingPairArrayPtr() const+{+return &m_overlappingPairArray[0];+}++int getNumOverlappingPairs() const+{+return m_overlappingPairArray.size();+}++btOverlapFilterCallback* getOverlapFilterCallback()+{+return m_overlapFilterCallback;+}++void setOverlapFilterCallback(btOverlapFilterCallback* callback)+{+m_overlapFilterCallback = callback;+}++virtual bool hasDeferredRemoval()+{+return m_hasDeferredRemoval;+}++virtual void setInternalGhostPairCallback(btOverlappingPairCallback* ghostPairCallback)+{+m_ghostPairCallback = ghostPairCallback;+}++virtual void sortOverlappingPairs(btDispatcher* dispatcher);++ };    ///btNullPairCache skips add/removal of overlapping pairs. Userful for benchmarking and unit testing. class btNullPairCache : public btOverlappingPairCache-{+{ private: -	btBroadphasePairArray	m_overlappingPairArray;+btBroadphasePairArray m_overlappingPairArray;  public: -	virtual btBroadphasePair*	getOverlappingPairArrayPtr()-	{-		return &m_overlappingPairArray[0];-	}-	const btBroadphasePair*	getOverlappingPairArrayPtr() const-	{-		return &m_overlappingPairArray[0];-	}-	btBroadphasePairArray&	getOverlappingPairArray()-	{-		return m_overlappingPairArray;-	}-	-	virtual	void	cleanOverlappingPair(btBroadphasePair& /*pair*/,btDispatcher* /*dispatcher*/)-	{+virtual btBroadphasePair* getOverlappingPairArrayPtr()+{+return &m_overlappingPairArray[0];+}+const btBroadphasePair* getOverlappingPairArrayPtr() const+{+return &m_overlappingPairArray[0];+}+btBroadphasePairArray& getOverlappingPairArray()+{+return m_overlappingPairArray;+} -	}+virtual void cleanOverlappingPair(btBroadphasePair& /*pair*/,btDispatcher* /*dispatcher*/)+{ -	virtual int getNumOverlappingPairs() const-	{-		return 0;-	}+} -	virtual void	cleanProxyFromPairs(btBroadphaseProxy* /*proxy*/,btDispatcher* /*dispatcher*/)-	{+virtual int getNumOverlappingPairs() const+{+return 0;+} -	}+virtual void cleanProxyFromPairs(btBroadphaseProxy* /*proxy*/,btDispatcher* /*dispatcher*/)+{ -	virtual	void setOverlapFilterCallback(btOverlapFilterCallback* /*callback*/)-	{-	}+} -	virtual void	processAllOverlappingPairs(btOverlapCallback*,btDispatcher* /*dispatcher*/)-	{-	}+virtual void setOverlapFilterCallback(btOverlapFilterCallback* /*callback*/)+{+} -	virtual btBroadphasePair* findPair(btBroadphaseProxy* /*proxy0*/, btBroadphaseProxy* /*proxy1*/)-	{-		return 0;-	}+virtual void processAllOverlappingPairs(btOverlapCallback*,btDispatcher* /*dispatcher*/)+{+} -	virtual bool	hasDeferredRemoval()-	{-		return true;-	}+virtual btBroadphasePair* findPair(btBroadphaseProxy* /*proxy0*/, btBroadphaseProxy* /*proxy1*/)+{+return 0;+} -	virtual	void	setInternalGhostPairCallback(btOverlappingPairCallback* /* ghostPairCallback */)-	{+virtual bool hasDeferredRemoval()+{+return true;+} -	}+virtual void setInternalGhostPairCallback(btOverlappingPairCallback* /* ghostPairCallback */)+{ -	virtual btBroadphasePair*	addOverlappingPair(btBroadphaseProxy* /*proxy0*/,btBroadphaseProxy* /*proxy1*/)-	{-		return 0;-	}+} -	virtual void*	removeOverlappingPair(btBroadphaseProxy* /*proxy0*/,btBroadphaseProxy* /*proxy1*/,btDispatcher* /*dispatcher*/)-	{-		return 0;-	}+virtual btBroadphasePair* addOverlappingPair(btBroadphaseProxy* /*proxy0*/,btBroadphaseProxy* /*proxy1*/)+{+return 0;+} -	virtual void	removeOverlappingPairsContainingProxy(btBroadphaseProxy* /*proxy0*/,btDispatcher* /*dispatcher*/)-	{-	}-	-	virtual void	sortOverlappingPairs(btDispatcher* dispatcher)-	{-        (void) dispatcher;-	}+virtual void* removeOverlappingPair(btBroadphaseProxy* /*proxy0*/,btBroadphaseProxy* /*proxy1*/,btDispatcher* /*dispatcher*/)+{+return 0;+}++virtual void removeOverlappingPairsContainingProxy(btBroadphaseProxy* /*proxy0*/,btDispatcher* /*dispatcher*/)+{+}++virtual void sortOverlappingPairs(btDispatcher* dispatcher)+{+(void) dispatcher;+}   };
bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h view
@@ -1,12 +1,12 @@  /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,22 +18,22 @@ #define OVERLAPPING_PAIR_CALLBACK_H  class btDispatcher;-struct  btBroadphasePair;+struct btBroadphasePair;  ///The btOverlappingPairCallback class is an additional optional broadphase user callback for adding/removing overlapping pairs, similar interface to btOverlappingPairCache. class btOverlappingPairCallback-{+{ private: public:-	virtual ~btOverlappingPairCallback()-	{+virtual ~btOverlappingPairCallback()+{ -	}-	-	virtual btBroadphasePair*	addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) = 0;+} -	virtual void*	removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher) = 0;+virtual btBroadphasePair* addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) = 0; -	virtual void	removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy0,btDispatcher* dispatcher) = 0;+virtual void* removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher) = 0;++virtual void removeOverlappingPairsContainingProxy(btBroadphaseProxy* proxy0,btDispatcher* dispatcher) = 0;  }; 
bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -47,7 +47,7 @@   //Note: currently we have 16 bytes per quantized node-#define MAX_SUBTREE_SIZE_IN_BYTES  2048+#define MAX_SUBTREE_SIZE_IN_BYTES 2048  // 10 gives the potential for 1024 parts, with at most 2^21 (2097152) (minus one // actually) triangles each (since the sign bit is reserved@@ -55,104 +55,104 @@  ///btQuantizedBvhNode is a compressed aabb node, 16 bytes. ///Node can be used for leafnode or internal node. Leafnodes can point to 32-bit triangle index (non-negative range).-ATTRIBUTE_ALIGNED16	(struct) btQuantizedBvhNode+ATTRIBUTE_ALIGNED16 (struct) btQuantizedBvhNode {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	//12 bytes-	unsigned short int	m_quantizedAabbMin[3];-	unsigned short int	m_quantizedAabbMax[3];-	//4 bytes-	int	m_escapeIndexOrTriangleIndex;+//12 bytes+unsigned short int m_quantizedAabbMin[3];+unsigned short int m_quantizedAabbMax[3];+//4 bytes+int m_escapeIndexOrTriangleIndex; -	bool isLeafNode() const-	{-		//skipindex is negative (internal node), triangleindex >=0 (leafnode)-		return (m_escapeIndexOrTriangleIndex >= 0);-	}-	int getEscapeIndex() const-	{-		btAssert(!isLeafNode());-		return -m_escapeIndexOrTriangleIndex;-	}-	int	getTriangleIndex() const-	{-		btAssert(isLeafNode());-		// Get only the lower bits where the triangle index is stored-		return (m_escapeIndexOrTriangleIndex&~((~0)<<(31-MAX_NUM_PARTS_IN_BITS)));-	}-	int	getPartId() const-	{-		btAssert(isLeafNode());-		// Get only the highest bits where the part index is stored-		return (m_escapeIndexOrTriangleIndex>>(31-MAX_NUM_PARTS_IN_BITS));-	}+bool isLeafNode() const+{+//skipindex is negative (internal node), triangleindex >=0 (leafnode)+return (m_escapeIndexOrTriangleIndex >= 0); }+int getEscapeIndex() const+{+btAssert(!isLeafNode());+return -m_escapeIndexOrTriangleIndex;+}+int getTriangleIndex() const+{+btAssert(isLeafNode());+// Get only the lower bits where the triangle index is stored+return (m_escapeIndexOrTriangleIndex&~((~0)<<(31-MAX_NUM_PARTS_IN_BITS)));+}+int getPartId() const+{+btAssert(isLeafNode());+// Get only the highest bits where the part index is stored+return (m_escapeIndexOrTriangleIndex>>(31-MAX_NUM_PARTS_IN_BITS));+}+} ;  /// btOptimizedBvhNode contains both internal and leaf node information. /// Total node size is 44 bytes / node. You can use the compressed version of 16 bytes. ATTRIBUTE_ALIGNED16 (struct) btOptimizedBvhNode {-	BT_DECLARE_ALIGNED_ALLOCATOR();--	//32 bytes-	btVector3	m_aabbMinOrg;-	btVector3	m_aabbMaxOrg;+BT_DECLARE_ALIGNED_ALLOCATOR(); -	//4-	int	m_escapeIndex;+//32 bytes+btVector3 m_aabbMinOrg;+btVector3 m_aabbMaxOrg; -	//8-	//for child nodes-	int	m_subPart;-	int	m_triangleIndex;-	int	m_padding[5];//bad, due to alignment+//4+int m_escapeIndex; +//8+//for child nodes+int m_subPart;+int m_triangleIndex; +//pad the size to 64 bytes+char m_padding[20]; };   ///btBvhSubtreeInfo provides info to gather a subtree of limited size ATTRIBUTE_ALIGNED16(class) btBvhSubtreeInfo-{+{ private: public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	//12 bytes-	unsigned short int	m_quantizedAabbMin[3];-	unsigned short int	m_quantizedAabbMax[3];-	//4 bytes, points to the root of the subtree-	int			m_rootNodeIndex;-	//4 bytes-	int			m_subtreeSize;-	int			m_padding[3];+//12 bytes+unsigned short int m_quantizedAabbMin[3];+unsigned short int m_quantizedAabbMax[3];+//4 bytes, points to the root of the subtree+int m_rootNodeIndex;+//4 bytes+int m_subtreeSize;+int m_padding[3]; -	btBvhSubtreeInfo()-	{-		//memset(&m_padding[0], 0, sizeof(m_padding));-	}+btBvhSubtreeInfo()+{+//memset(&m_padding[0], 0, sizeof(m_padding));+}  -	void	setAabbFromQuantizeNode(const btQuantizedBvhNode& quantizedNode)-	{-		m_quantizedAabbMin[0] = quantizedNode.m_quantizedAabbMin[0];-		m_quantizedAabbMin[1] = quantizedNode.m_quantizedAabbMin[1];-		m_quantizedAabbMin[2] = quantizedNode.m_quantizedAabbMin[2];-		m_quantizedAabbMax[0] = quantizedNode.m_quantizedAabbMax[0];-		m_quantizedAabbMax[1] = quantizedNode.m_quantizedAabbMax[1];-		m_quantizedAabbMax[2] = quantizedNode.m_quantizedAabbMax[2];-	}+void setAabbFromQuantizeNode(const btQuantizedBvhNode& quantizedNode)+{+m_quantizedAabbMin[0] = quantizedNode.m_quantizedAabbMin[0];+m_quantizedAabbMin[1] = quantizedNode.m_quantizedAabbMin[1];+m_quantizedAabbMin[2] = quantizedNode.m_quantizedAabbMin[2];+m_quantizedAabbMax[0] = quantizedNode.m_quantizedAabbMax[0];+m_quantizedAabbMax[1] = quantizedNode.m_quantizedAabbMax[1];+m_quantizedAabbMax[2] = quantizedNode.m_quantizedAabbMax[2]; }+} ;   class btNodeOverlapCallback-{+{ private: public:-	virtual ~btNodeOverlapCallback() {};+virtual ~btNodeOverlapCallback() {}; -	virtual void processNode(int subPart, int triangleIndex) = 0;+virtual void processNode(int subPart, int triangleIndex) = 0; };  #include "LinearMath/btAlignedAllocator.h"@@ -161,417 +161,417 @@   ///for code readability:-typedef btAlignedObjectArray<btOptimizedBvhNode>	NodeArray;-typedef btAlignedObjectArray<btQuantizedBvhNode>	QuantizedNodeArray;-typedef btAlignedObjectArray<btBvhSubtreeInfo>		BvhSubtreeInfoArray;+typedef btAlignedObjectArray<btOptimizedBvhNode> NodeArray;+typedef btAlignedObjectArray<btQuantizedBvhNode> QuantizedNodeArray;+typedef btAlignedObjectArray<btBvhSubtreeInfo> BvhSubtreeInfoArray;   ///The btQuantizedBvh class stores an AABB tree that can be quickly traversed on CPU and Cell SPU. ///It is used by the btBvhTriangleMeshShape as midphase, and by the btMultiSapBroadphase. ///It is recommended to use quantization for better performance and lower memory requirements. ATTRIBUTE_ALIGNED16(class) btQuantizedBvh-{+{ private: public:-	enum btTraversalMode-	{-		TRAVERSAL_STACKLESS = 0,-		TRAVERSAL_STACKLESS_CACHE_FRIENDLY,-		TRAVERSAL_RECURSIVE-	};+enum btTraversalMode+{+TRAVERSAL_STACKLESS = 0,+TRAVERSAL_STACKLESS_CACHE_FRIENDLY,+TRAVERSAL_RECURSIVE+};  protected:  -	btVector3			m_bvhAabbMin;-	btVector3			m_bvhAabbMax;-	btVector3			m_bvhQuantization;+btVector3 m_bvhAabbMin;+btVector3 m_bvhAabbMax;+btVector3 m_bvhQuantization; -	int					m_bulletVersion;	//for serialization versioning. It could also be used to detect endianess.+int m_bulletVersion; //for serialization versioning. It could also be used to detect endianess. -	int					m_curNodeIndex;-	//quantization data-	bool				m_useQuantization;+int m_curNodeIndex;+//quantization data+bool m_useQuantization;   -	NodeArray			m_leafNodes;-	NodeArray			m_contiguousNodes;-	QuantizedNodeArray	m_quantizedLeafNodes;-	QuantizedNodeArray	m_quantizedContiguousNodes;-	-	btTraversalMode	m_traversalMode;-	BvhSubtreeInfoArray		m_SubtreeHeaders;+NodeArray m_leafNodes;+NodeArray m_contiguousNodes;+QuantizedNodeArray m_quantizedLeafNodes;+QuantizedNodeArray m_quantizedContiguousNodes; -	//This is only used for serialization so we don't have to add serialization directly to btAlignedObjectArray-	mutable int m_subtreeHeaderCount;+btTraversalMode m_traversalMode;+BvhSubtreeInfoArray m_SubtreeHeaders; -	+//This is only used for serialization so we don't have to add serialization directly to btAlignedObjectArray+mutable int m_subtreeHeaderCount;   -	///two versions, one for quantized and normal nodes. This allows code-reuse while maintaining readability (no template/macro!)-	///this might be refactored into a virtual, it is usually not calculated at run-time-	void	setInternalNodeAabbMin(int nodeIndex, const btVector3& aabbMin)-	{-		if (m_useQuantization)-		{-			quantize(&m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[0] ,aabbMin,0);-		} else-		{-			m_contiguousNodes[nodeIndex].m_aabbMinOrg = aabbMin; -		}-	}-	void	setInternalNodeAabbMax(int nodeIndex,const btVector3& aabbMax)-	{-		if (m_useQuantization)-		{-			quantize(&m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[0],aabbMax,1);-		} else-		{-			m_contiguousNodes[nodeIndex].m_aabbMaxOrg = aabbMax;-		}-	} -	btVector3 getAabbMin(int nodeIndex) const-	{-		if (m_useQuantization)-		{-			return unQuantize(&m_quantizedLeafNodes[nodeIndex].m_quantizedAabbMin[0]);-		}-		//non-quantized-		return m_leafNodes[nodeIndex].m_aabbMinOrg;+///two versions, one for quantized and normal nodes. This allows code-reuse while maintaining readability (no template/macro!)+///this might be refactored into a virtual, it is usually not calculated at run-time+void setInternalNodeAabbMin(int nodeIndex, const btVector3& aabbMin)+{+if (m_useQuantization)+{+quantize(&m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[0] ,aabbMin,0);+} else+{+m_contiguousNodes[nodeIndex].m_aabbMinOrg = aabbMin; -	}-	btVector3 getAabbMax(int nodeIndex) const-	{-		if (m_useQuantization)-		{-			return unQuantize(&m_quantizedLeafNodes[nodeIndex].m_quantizedAabbMax[0]);-		} -		//non-quantized-		return m_leafNodes[nodeIndex].m_aabbMaxOrg;-		-	}+}+}+void setInternalNodeAabbMax(int nodeIndex,const btVector3& aabbMax)+{+if (m_useQuantization)+{+quantize(&m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[0],aabbMax,1);+} else+{+m_contiguousNodes[nodeIndex].m_aabbMaxOrg = aabbMax;+}+} -	-	void	setInternalNodeEscapeIndex(int nodeIndex, int escapeIndex)-	{-		if (m_useQuantization)-		{-			m_quantizedContiguousNodes[nodeIndex].m_escapeIndexOrTriangleIndex = -escapeIndex;-		} -		else-		{-			m_contiguousNodes[nodeIndex].m_escapeIndex = escapeIndex;-		}+btVector3 getAabbMin(int nodeIndex) const+{+if (m_useQuantization)+{+return unQuantize(&m_quantizedLeafNodes[nodeIndex].m_quantizedAabbMin[0]);+}+//non-quantized+return m_leafNodes[nodeIndex].m_aabbMinOrg; -	}+}+btVector3 getAabbMax(int nodeIndex) const+{+if (m_useQuantization)+{+return unQuantize(&m_quantizedLeafNodes[nodeIndex].m_quantizedAabbMax[0]);+}+//non-quantized+return m_leafNodes[nodeIndex].m_aabbMaxOrg; -	void mergeInternalNodeAabb(int nodeIndex,const btVector3& newAabbMin,const btVector3& newAabbMax) -	{-		if (m_useQuantization)-		{-			unsigned short int quantizedAabbMin[3];-			unsigned short int quantizedAabbMax[3];-			quantize(quantizedAabbMin,newAabbMin,0);-			quantize(quantizedAabbMax,newAabbMax,1);-			for (int i=0;i<3;i++)-			{-				if (m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[i] > quantizedAabbMin[i])-					m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[i] = quantizedAabbMin[i];+} -				if (m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[i] < quantizedAabbMax[i])-					m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[i] = quantizedAabbMax[i]; -			}-		} else-		{-			//non-quantized-			m_contiguousNodes[nodeIndex].m_aabbMinOrg.setMin(newAabbMin);-			m_contiguousNodes[nodeIndex].m_aabbMaxOrg.setMax(newAabbMax);		-		}-	}+void setInternalNodeEscapeIndex(int nodeIndex, int escapeIndex)+{+if (m_useQuantization)+{+m_quantizedContiguousNodes[nodeIndex].m_escapeIndexOrTriangleIndex = -escapeIndex;+}+else+{+m_contiguousNodes[nodeIndex].m_escapeIndex = escapeIndex;+} -	void	swapLeafNodes(int firstIndex,int secondIndex);+} -	void	assignInternalNodeFromLeafNode(int internalNode,int leafNodeIndex);+void mergeInternalNodeAabb(int nodeIndex,const btVector3& newAabbMin,const btVector3& newAabbMax)+{+if (m_useQuantization)+{+unsigned short int quantizedAabbMin[3];+unsigned short int quantizedAabbMax[3];+quantize(quantizedAabbMin,newAabbMin,0);+quantize(quantizedAabbMax,newAabbMax,1);+for (int i=0;i<3;i++)+{+if (m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[i] > quantizedAabbMin[i])+m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMin[i] = quantizedAabbMin[i]; +if (m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[i] < quantizedAabbMax[i])+m_quantizedContiguousNodes[nodeIndex].m_quantizedAabbMax[i] = quantizedAabbMax[i];++}+} else+{+//non-quantized+m_contiguousNodes[nodeIndex].m_aabbMinOrg.setMin(newAabbMin);+m_contiguousNodes[nodeIndex].m_aabbMaxOrg.setMax(newAabbMax);+}+}++void swapLeafNodes(int firstIndex,int secondIndex);++void assignInternalNodeFromLeafNode(int internalNode,int leafNodeIndex);+ protected: -	 -	void	buildTree	(int startIndex,int endIndex); -	int	calcSplittingAxis(int startIndex,int endIndex);+void buildTree (int startIndex,int endIndex); -	int	sortAndCalcSplittingIndex(int startIndex,int endIndex,int splitAxis);-	-	void	walkStacklessTree(btNodeOverlapCallback* nodeCallback,const btVector3& aabbMin,const btVector3& aabbMax) const;+int calcSplittingAxis(int startIndex,int endIndex); -	void	walkStacklessQuantizedTreeAgainstRay(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin, const btVector3& aabbMax, int startNodeIndex,int endNodeIndex) const;-	void	walkStacklessQuantizedTree(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax,int startNodeIndex,int endNodeIndex) const;-	void	walkStacklessTreeAgainstRay(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin, const btVector3& aabbMax, int startNodeIndex,int endNodeIndex) const;+int sortAndCalcSplittingIndex(int startIndex,int endIndex,int splitAxis); -	///tree traversal designed for small-memory processors like PS3 SPU-	void	walkStacklessQuantizedTreeCacheFriendly(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax) const;+void walkStacklessTree(btNodeOverlapCallback* nodeCallback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	///use the 16-byte stackless 'skipindex' node tree to do a recursive traversal-	void	walkRecursiveQuantizedTreeAgainstQueryAabb(const btQuantizedBvhNode* currentNode,btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax) const;+void walkStacklessQuantizedTreeAgainstRay(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin, const btVector3& aabbMax, int startNodeIndex,int endNodeIndex) const;+void walkStacklessQuantizedTree(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax,int startNodeIndex,int endNodeIndex) const;+void walkStacklessTreeAgainstRay(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin, const btVector3& aabbMax, int startNodeIndex,int endNodeIndex) const; -	///use the 16-byte stackless 'skipindex' node tree to do a recursive traversal-	void	walkRecursiveQuantizedTreeAgainstQuantizedTree(const btQuantizedBvhNode* treeNodeA,const btQuantizedBvhNode* treeNodeB,btNodeOverlapCallback* nodeCallback) const;-	+///tree traversal designed for small-memory processors like PS3 SPU+void walkStacklessQuantizedTreeCacheFriendly(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax) const; +///use the 16-byte stackless 'skipindex' node tree to do a recursive traversal+void walkRecursiveQuantizedTreeAgainstQueryAabb(const btQuantizedBvhNode* currentNode,btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax) const; +///use the 16-byte stackless 'skipindex' node tree to do a recursive traversal+void walkRecursiveQuantizedTreeAgainstQuantizedTree(const btQuantizedBvhNode* treeNodeA,const btQuantizedBvhNode* treeNodeB,btNodeOverlapCallback* nodeCallback) const; -	void	updateSubtreeHeaders(int leftChildNodexIndex,int rightChildNodexIndex); +++void updateSubtreeHeaders(int leftChildNodexIndex,int rightChildNodexIndex);+ public:-	-	BT_DECLARE_ALIGNED_ALLOCATOR(); -	btQuantizedBvh();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	virtual ~btQuantizedBvh();+btQuantizedBvh(); -	-	///***************************************** expert/internal use only *************************-	void	setQuantizationValues(const btVector3& bvhAabbMin,const btVector3& bvhAabbMax,btScalar quantizationMargin=btScalar(1.0));-	QuantizedNodeArray&	getLeafNodeArray() {			return	m_quantizedLeafNodes;	}-	///buildInternal is expert use only: assumes that setQuantizationValues and LeafNodeArray are initialized-	void	buildInternal();-	///***************************************** expert/internal use only *************************+virtual ~btQuantizedBvh(); -	void	reportAabbOverlappingNodex(btNodeOverlapCallback* nodeCallback,const btVector3& aabbMin,const btVector3& aabbMax) const;-	void	reportRayOverlappingNodex (btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget) const;-	void	reportBoxCastOverlappingNodex(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin,const btVector3& aabbMax) const; -		SIMD_FORCE_INLINE void quantize(unsigned short* out, const btVector3& point,int isMax) const-	{+///***************************************** expert/internal use only *************************+void setQuantizationValues(const btVector3& bvhAabbMin,const btVector3& bvhAabbMax,btScalar quantizationMargin=btScalar(1.0));+QuantizedNodeArray& getLeafNodeArray() { return m_quantizedLeafNodes; }+///buildInternal is expert use only: assumes that setQuantizationValues and LeafNodeArray are initialized+void buildInternal();+///***************************************** expert/internal use only ************************* -		btAssert(m_useQuantization);+void reportAabbOverlappingNodex(btNodeOverlapCallback* nodeCallback,const btVector3& aabbMin,const btVector3& aabbMax) const;+void reportRayOverlappingNodex (btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget) const;+void reportBoxCastOverlappingNodex(btNodeOverlapCallback* nodeCallback, const btVector3& raySource, const btVector3& rayTarget, const btVector3& aabbMin,const btVector3& aabbMax) const; -		btAssert(point.getX() <= m_bvhAabbMax.getX());-		btAssert(point.getY() <= m_bvhAabbMax.getY());-		btAssert(point.getZ() <= m_bvhAabbMax.getZ());+SIMD_FORCE_INLINE void quantize(unsigned short* out, const btVector3& point,int isMax) const+{ -		btAssert(point.getX() >= m_bvhAabbMin.getX());-		btAssert(point.getY() >= m_bvhAabbMin.getY());-		btAssert(point.getZ() >= m_bvhAabbMin.getZ());+btAssert(m_useQuantization); -		btVector3 v = (point - m_bvhAabbMin) * m_bvhQuantization;-		///Make sure rounding is done in a way that unQuantize(quantizeWithClamp(...)) is conservative-		///end-points always set the first bit, so that they are sorted properly (so that neighbouring AABBs overlap properly)-		///@todo: double-check this-		if (isMax)-		{-			out[0] = (unsigned short) (((unsigned short)(v.getX()+btScalar(1.)) | 1));-			out[1] = (unsigned short) (((unsigned short)(v.getY()+btScalar(1.)) | 1));-			out[2] = (unsigned short) (((unsigned short)(v.getZ()+btScalar(1.)) | 1));-		} else-		{-			out[0] = (unsigned short) (((unsigned short)(v.getX()) & 0xfffe));-			out[1] = (unsigned short) (((unsigned short)(v.getY()) & 0xfffe));-			out[2] = (unsigned short) (((unsigned short)(v.getZ()) & 0xfffe));-		}+btAssert(point.getX() <= m_bvhAabbMax.getX());+btAssert(point.getY() <= m_bvhAabbMax.getY());+btAssert(point.getZ() <= m_bvhAabbMax.getZ()); +btAssert(point.getX() >= m_bvhAabbMin.getX());+btAssert(point.getY() >= m_bvhAabbMin.getY());+btAssert(point.getZ() >= m_bvhAabbMin.getZ()); +btVector3 v = (point - m_bvhAabbMin) * m_bvhQuantization;+///Make sure rounding is done in a way that unQuantize(quantizeWithClamp(...)) is conservative+///end-points always set the first bit, so that they are sorted properly (so that neighbouring AABBs overlap properly)+///@todo: double-check this+if (isMax)+{+out[0] = (unsigned short) (((unsigned short)(v.getX()+btScalar(1.)) | 1));+out[1] = (unsigned short) (((unsigned short)(v.getY()+btScalar(1.)) | 1));+out[2] = (unsigned short) (((unsigned short)(v.getZ()+btScalar(1.)) | 1));+} else+{+out[0] = (unsigned short) (((unsigned short)(v.getX()) & 0xfffe));+out[1] = (unsigned short) (((unsigned short)(v.getY()) & 0xfffe));+out[2] = (unsigned short) (((unsigned short)(v.getZ()) & 0xfffe));+}++ #ifdef DEBUG_CHECK_DEQUANTIZATION-		btVector3 newPoint = unQuantize(out);-		if (isMax)-		{-			if (newPoint.getX() < point.getX())-			{-				printf("unconservative X, diffX = %f, oldX=%f,newX=%f\n",newPoint.getX()-point.getX(), newPoint.getX(),point.getX());-			}-			if (newPoint.getY() < point.getY())-			{-				printf("unconservative Y, diffY = %f, oldY=%f,newY=%f\n",newPoint.getY()-point.getY(), newPoint.getY(),point.getY());-			}-			if (newPoint.getZ() < point.getZ())-			{+btVector3 newPoint = unQuantize(out);+if (isMax)+{+if (newPoint.getX() < point.getX())+{+printf("unconservative X, diffX = %f, oldX=%f,newX=%f\n",newPoint.getX()-point.getX(), newPoint.getX(),point.getX());+}+if (newPoint.getY() < point.getY())+{+printf("unconservative Y, diffY = %f, oldY=%f,newY=%f\n",newPoint.getY()-point.getY(), newPoint.getY(),point.getY());+}+if (newPoint.getZ() < point.getZ())+{ -				printf("unconservative Z, diffZ = %f, oldZ=%f,newZ=%f\n",newPoint.getZ()-point.getZ(), newPoint.getZ(),point.getZ());-			}-		} else-		{-			if (newPoint.getX() > point.getX())-			{-				printf("unconservative X, diffX = %f, oldX=%f,newX=%f\n",newPoint.getX()-point.getX(), newPoint.getX(),point.getX());-			}-			if (newPoint.getY() > point.getY())-			{-				printf("unconservative Y, diffY = %f, oldY=%f,newY=%f\n",newPoint.getY()-point.getY(), newPoint.getY(),point.getY());-			}-			if (newPoint.getZ() > point.getZ())-			{-				printf("unconservative Z, diffZ = %f, oldZ=%f,newZ=%f\n",newPoint.getZ()-point.getZ(), newPoint.getZ(),point.getZ());-			}-		}+printf("unconservative Z, diffZ = %f, oldZ=%f,newZ=%f\n",newPoint.getZ()-point.getZ(), newPoint.getZ(),point.getZ());+}+} else+{+if (newPoint.getX() > point.getX())+{+printf("unconservative X, diffX = %f, oldX=%f,newX=%f\n",newPoint.getX()-point.getX(), newPoint.getX(),point.getX());+}+if (newPoint.getY() > point.getY())+{+printf("unconservative Y, diffY = %f, oldY=%f,newY=%f\n",newPoint.getY()-point.getY(), newPoint.getY(),point.getY());+}+if (newPoint.getZ() > point.getZ())+{+printf("unconservative Z, diffZ = %f, oldZ=%f,newZ=%f\n",newPoint.getZ()-point.getZ(), newPoint.getZ(),point.getZ());+}+} #endif //DEBUG_CHECK_DEQUANTIZATION -	}+}  -	SIMD_FORCE_INLINE void quantizeWithClamp(unsigned short* out, const btVector3& point2,int isMax) const-	{+SIMD_FORCE_INLINE void quantizeWithClamp(unsigned short* out, const btVector3& point2,int isMax) const+{ -		btAssert(m_useQuantization);+btAssert(m_useQuantization); -		btVector3 clampedPoint(point2);-		clampedPoint.setMax(m_bvhAabbMin);-		clampedPoint.setMin(m_bvhAabbMax);+btVector3 clampedPoint(point2);+clampedPoint.setMax(m_bvhAabbMin);+clampedPoint.setMin(m_bvhAabbMax); -		quantize(out,clampedPoint,isMax);+quantize(out,clampedPoint,isMax); -	}-	-	SIMD_FORCE_INLINE btVector3	unQuantize(const unsigned short* vecIn) const-	{-			btVector3	vecOut;-			vecOut.setValue(-			(btScalar)(vecIn[0]) / (m_bvhQuantization.getX()),-			(btScalar)(vecIn[1]) / (m_bvhQuantization.getY()),-			(btScalar)(vecIn[2]) / (m_bvhQuantization.getZ()));-			vecOut += m_bvhAabbMin;-			return vecOut;-	}+} -	///setTraversalMode let's you choose between stackless, recursive or stackless cache friendly tree traversal. Note this is only implemented for quantized trees.-	void	setTraversalMode(btTraversalMode	traversalMode)-	{-		m_traversalMode = traversalMode;-	}+SIMD_FORCE_INLINE btVector3 unQuantize(const unsigned short* vecIn) const+{+btVector3 vecOut;+vecOut.setValue(+(btScalar)(vecIn[0]) / (m_bvhQuantization.getX()),+(btScalar)(vecIn[1]) / (m_bvhQuantization.getY()),+(btScalar)(vecIn[2]) / (m_bvhQuantization.getZ()));+vecOut += m_bvhAabbMin;+return vecOut;+} +///setTraversalMode let's you choose between stackless, recursive or stackless cache friendly tree traversal. Note this is only implemented for quantized trees.+void setTraversalMode(btTraversalMode traversalMode)+{+m_traversalMode = traversalMode;+} -	SIMD_FORCE_INLINE QuantizedNodeArray&	getQuantizedNodeArray()-	{	-		return	m_quantizedContiguousNodes;-	} +SIMD_FORCE_INLINE QuantizedNodeArray& getQuantizedNodeArray()+{+return m_quantizedContiguousNodes;+} -	SIMD_FORCE_INLINE BvhSubtreeInfoArray&	getSubtreeInfoArray()-	{-		return m_SubtreeHeaders;-	} +SIMD_FORCE_INLINE BvhSubtreeInfoArray& getSubtreeInfoArray()+{+return m_SubtreeHeaders;+}+ //////////////////////////////////////////////////////////////////// -	/////Calculate space needed to store BVH for serialization-	unsigned calculateSerializeBufferSize() const;+/////Calculate space needed to store BVH for serialization+unsigned calculateSerializeBufferSize() const; -	/// Data buffer MUST be 16 byte aligned-	virtual bool serialize(void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const;+/// Data buffer MUST be 16 byte aligned+virtual bool serialize(void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const; -	///deSerializeInPlace loads and initializes a BVH from a buffer in memory 'in place'-	static btQuantizedBvh *deSerializeInPlace(void *i_alignedDataBuffer, unsigned int i_dataBufferSize, bool i_swapEndian);+///deSerializeInPlace loads and initializes a BVH from a buffer in memory 'in place'+static btQuantizedBvh *deSerializeInPlace(void *i_alignedDataBuffer, unsigned int i_dataBufferSize, bool i_swapEndian); -	static unsigned int getAlignmentSerializationPadding();+static unsigned int getAlignmentSerializationPadding(); ////////////////////////////////////////////////////////////////////// -	-	virtual	int	calculateSerializeBufferSizeNew() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSizeNew() const; -	virtual	void deSerializeFloat(struct btQuantizedBvhFloatData& quantizedBvhFloatData);+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; -	virtual	void deSerializeDouble(struct btQuantizedBvhDoubleData& quantizedBvhDoubleData);+virtual void deSerializeFloat(struct btQuantizedBvhFloatData& quantizedBvhFloatData); +virtual void deSerializeDouble(struct btQuantizedBvhDoubleData& quantizedBvhDoubleData); + //////////////////////////////////////////////////////////////////// -	SIMD_FORCE_INLINE bool isQuantized()-	{-		return m_useQuantization;-	}+SIMD_FORCE_INLINE bool isQuantized()+{+return m_useQuantization;+}  private:-	// Special "copy" constructor that allows for in-place deserialization-	// Prevents btVector3's default constructor from being called, but doesn't inialize much else-	// ownsMemory should most likely be false if deserializing, and if you are not, don't call this (it also changes the function signature, which we need)-	btQuantizedBvh(btQuantizedBvh &other, bool ownsMemory);+// Special "copy" constructor that allows for in-place deserialization+// Prevents btVector3's default constructor from being called, but doesn't inialize much else+// ownsMemory should most likely be false if deserializing, and if you are not, don't call this (it also changes the function signature, which we need)+btQuantizedBvh(btQuantizedBvh &other, bool ownsMemory);  } ;  -struct	btBvhSubtreeInfoData+struct btBvhSubtreeInfoData {-	int			m_rootNodeIndex;-	int			m_subtreeSize;-	unsigned short m_quantizedAabbMin[3];-	unsigned short m_quantizedAabbMax[3];+int m_rootNodeIndex;+int m_subtreeSize;+unsigned short m_quantizedAabbMin[3];+unsigned short m_quantizedAabbMax[3]; };  struct btOptimizedBvhNodeFloatData {-	btVector3FloatData	m_aabbMinOrg;-	btVector3FloatData	m_aabbMaxOrg;-	int	m_escapeIndex;-	int	m_subPart;-	int	m_triangleIndex;-	char m_pad[4];+btVector3FloatData m_aabbMinOrg;+btVector3FloatData m_aabbMaxOrg;+int m_escapeIndex;+int m_subPart;+int m_triangleIndex;+char m_pad[4]; };  struct btOptimizedBvhNodeDoubleData {-	btVector3DoubleData	m_aabbMinOrg;-	btVector3DoubleData	m_aabbMaxOrg;-	int	m_escapeIndex;-	int	m_subPart;-	int	m_triangleIndex;-	char	m_pad[4];+btVector3DoubleData m_aabbMinOrg;+btVector3DoubleData m_aabbMaxOrg;+int m_escapeIndex;+int m_subPart;+int m_triangleIndex;+char m_pad[4]; };   struct btQuantizedBvhNodeData {-	unsigned short m_quantizedAabbMin[3];-	unsigned short m_quantizedAabbMax[3];-	int	m_escapeIndexOrTriangleIndex;+unsigned short m_quantizedAabbMin[3];+unsigned short m_quantizedAabbMax[3];+int m_escapeIndexOrTriangleIndex; }; -struct	btQuantizedBvhFloatData+struct btQuantizedBvhFloatData {-	btVector3FloatData			m_bvhAabbMin;-	btVector3FloatData			m_bvhAabbMax;-	btVector3FloatData			m_bvhQuantization;-	int					m_curNodeIndex;-	int					m_useQuantization;-	int					m_numContiguousLeafNodes;-	int					m_numQuantizedContiguousNodes;-	btOptimizedBvhNodeFloatData	*m_contiguousNodesPtr;-	btQuantizedBvhNodeData		*m_quantizedContiguousNodesPtr;-	btBvhSubtreeInfoData	*m_subTreeInfoPtr;-	int					m_traversalMode;-	int					m_numSubtreeHeaders;-	+btVector3FloatData m_bvhAabbMin;+btVector3FloatData m_bvhAabbMax;+btVector3FloatData m_bvhQuantization;+int m_curNodeIndex;+int m_useQuantization;+int m_numContiguousLeafNodes;+int m_numQuantizedContiguousNodes;+btOptimizedBvhNodeFloatData *m_contiguousNodesPtr;+btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr;+btBvhSubtreeInfoData *m_subTreeInfoPtr;+int m_traversalMode;+int m_numSubtreeHeaders;+ }; -struct	btQuantizedBvhDoubleData+struct btQuantizedBvhDoubleData {-	btVector3DoubleData			m_bvhAabbMin;-	btVector3DoubleData			m_bvhAabbMax;-	btVector3DoubleData			m_bvhQuantization;-	int							m_curNodeIndex;-	int							m_useQuantization;-	int							m_numContiguousLeafNodes;-	int							m_numQuantizedContiguousNodes;-	btOptimizedBvhNodeDoubleData	*m_contiguousNodesPtr;-	btQuantizedBvhNodeData			*m_quantizedContiguousNodesPtr;+btVector3DoubleData m_bvhAabbMin;+btVector3DoubleData m_bvhAabbMax;+btVector3DoubleData m_bvhQuantization;+int m_curNodeIndex;+int m_useQuantization;+int m_numContiguousLeafNodes;+int m_numQuantizedContiguousNodes;+btOptimizedBvhNodeDoubleData *m_contiguousNodesPtr;+btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr; -	int							m_traversalMode;-	int							m_numSubtreeHeaders;-	btBvhSubtreeInfoData		*m_subTreeInfoPtr;+int m_traversalMode;+int m_numSubtreeHeaders;+btBvhSubtreeInfoData *m_subTreeInfoPtr; };  -SIMD_FORCE_INLINE	int	btQuantizedBvh::calculateSerializeBufferSizeNew() const+SIMD_FORCE_INLINE int btQuantizedBvh::calculateSerializeBufferSizeNew() const {-	return sizeof(btQuantizedBvhData);+return sizeof(btQuantizedBvhData); }  
bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,147 +22,147 @@  struct btSimpleBroadphaseProxy : public btBroadphaseProxy {-	int			m_nextFree;-	-//	int			m_handleId;+int m_nextFree; -	-	btSimpleBroadphaseProxy() {};+// int m_handleId; -	btSimpleBroadphaseProxy(const btVector3& minpt,const btVector3& maxpt,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,void* multiSapProxy)-	:btBroadphaseProxy(minpt,maxpt,userPtr,collisionFilterGroup,collisionFilterMask,multiSapProxy)-	{-		(void)shapeType;-	}-	-	-	SIMD_FORCE_INLINE void SetNextFree(int next) {m_nextFree = next;}-	SIMD_FORCE_INLINE int GetNextFree() const {return m_nextFree;} -	+btSimpleBroadphaseProxy() {}; +btSimpleBroadphaseProxy(const btVector3& minpt,const btVector3& maxpt,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask,void* multiSapProxy)+:btBroadphaseProxy(minpt,maxpt,userPtr,collisionFilterGroup,collisionFilterMask,multiSapProxy)+{+(void)shapeType;+} ++SIMD_FORCE_INLINE void SetNextFree(int next) {m_nextFree = next;}+SIMD_FORCE_INLINE int GetNextFree() const {return m_nextFree;}++++ };  ///The SimpleBroadphase is just a unit-test for btAxisSweep3, bt32BitAxisSweep3, or btDbvtBroadphase, so use those classes instead. ///It is a brute force aabb culling broadphase based on O(n^2) aabb checks class btSimpleBroadphase : public btBroadphaseInterface-{+{ private:  protected: -	int		m_numHandles;						// number of active handles-	int		m_maxHandles;						// max number of handles-	int		m_LastHandleIndex;							-	-	btSimpleBroadphaseProxy* m_pHandles;						// handles pool+int m_numHandles; // number of active handles+int m_maxHandles; // max number of handles+int m_LastHandleIndex; -	void* m_pHandlesRawPtr;-	int		m_firstFreeHandle;		// free handles list-	-	int allocHandle()-	{-		btAssert(m_numHandles < m_maxHandles);-		int freeHandle = m_firstFreeHandle;-		m_firstFreeHandle = m_pHandles[freeHandle].GetNextFree();-		m_numHandles++;-		if(freeHandle > m_LastHandleIndex)-		{-			m_LastHandleIndex = freeHandle;-		}-		return freeHandle;-	}+btSimpleBroadphaseProxy* m_pHandles; // handles pool -	void freeHandle(btSimpleBroadphaseProxy* proxy)-	{-		int handle = int(proxy-m_pHandles);-		btAssert(handle >= 0 && handle < m_maxHandles);-		if(handle == m_LastHandleIndex)-		{-			m_LastHandleIndex--;-		}-		proxy->SetNextFree(m_firstFreeHandle);-		m_firstFreeHandle = handle;+void* m_pHandlesRawPtr;+int m_firstFreeHandle; // free handles list -		proxy->m_clientObject = 0;+int allocHandle()+{+btAssert(m_numHandles < m_maxHandles);+int freeHandle = m_firstFreeHandle;+m_firstFreeHandle = m_pHandles[freeHandle].GetNextFree();+m_numHandles++;+if(freeHandle > m_LastHandleIndex)+{+m_LastHandleIndex = freeHandle;+}+return freeHandle;+} -		m_numHandles--;-	}+void freeHandle(btSimpleBroadphaseProxy* proxy)+{+int handle = int(proxy-m_pHandles);+btAssert(handle >= 0 && handle < m_maxHandles);+if(handle == m_LastHandleIndex)+{+m_LastHandleIndex--;+}+proxy->SetNextFree(m_firstFreeHandle);+m_firstFreeHandle = handle; -	btOverlappingPairCache*	m_pairCache;-	bool	m_ownsPairCache;+proxy->m_clientObject = 0; -	int	m_invalidPair;+m_numHandles--;+} -	-	-	inline btSimpleBroadphaseProxy*	getSimpleProxyFromProxy(btBroadphaseProxy* proxy)-	{-		btSimpleBroadphaseProxy* proxy0 = static_cast<btSimpleBroadphaseProxy*>(proxy);-		return proxy0;-	}+btOverlappingPairCache* m_pairCache;+bool m_ownsPairCache; -	inline const btSimpleBroadphaseProxy*	getSimpleProxyFromProxy(btBroadphaseProxy* proxy) const-	{-		const btSimpleBroadphaseProxy* proxy0 = static_cast<const btSimpleBroadphaseProxy*>(proxy);-		return proxy0;-	}+int m_invalidPair; -	///reset broadphase internal structures, to ensure determinism/reproducability-	virtual void resetPool(btDispatcher* dispatcher);  -	void	validate();+inline btSimpleBroadphaseProxy* getSimpleProxyFromProxy(btBroadphaseProxy* proxy)+{+btSimpleBroadphaseProxy* proxy0 = static_cast<btSimpleBroadphaseProxy*>(proxy);+return proxy0;+} +inline const btSimpleBroadphaseProxy* getSimpleProxyFromProxy(btBroadphaseProxy* proxy) const+{+const btSimpleBroadphaseProxy* proxy0 = static_cast<const btSimpleBroadphaseProxy*>(proxy);+return proxy0;+}++///reset broadphase internal structures, to ensure determinism/reproducability+virtual void resetPool(btDispatcher* dispatcher);+++void validate();+ protected:  -	 + public:-	btSimpleBroadphase(int maxProxies=16384,btOverlappingPairCache* overlappingPairCache=0);-	virtual ~btSimpleBroadphase();+btSimpleBroadphase(int maxProxies=16384,btOverlappingPairCache* overlappingPairCache=0);+virtual ~btSimpleBroadphase();  -		static bool	aabbOverlap(btSimpleBroadphaseProxy* proxy0,btSimpleBroadphaseProxy* proxy1);+static bool aabbOverlap(btSimpleBroadphaseProxy* proxy0,btSimpleBroadphaseProxy* proxy1);  -	virtual btBroadphaseProxy*	createProxy(  const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy);+virtual btBroadphaseProxy* createProxy( const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy); -	virtual void	calculateOverlappingPairs(btDispatcher* dispatcher);+virtual void calculateOverlappingPairs(btDispatcher* dispatcher); -	virtual void	destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);-	virtual void	setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher);-	virtual void	getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const;+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+virtual void setAabb(btBroadphaseProxy* proxy,const btVector3& aabbMin,const btVector3& aabbMax, btDispatcher* dispatcher);+virtual void getAabb(btBroadphaseProxy* proxy,btVector3& aabbMin, btVector3& aabbMax ) const; -	virtual void	rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0),const btVector3& aabbMax=btVector3(0,0,0));-	virtual void	aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback);-		-	btOverlappingPairCache*	getOverlappingPairCache()-	{-		return m_pairCache;-	}-	const btOverlappingPairCache*	getOverlappingPairCache() const-	{-		return m_pairCache;-	}+virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback, const btVector3& aabbMin=btVector3(0,0,0),const btVector3& aabbMax=btVector3(0,0,0));+virtual void aabbTest(const btVector3& aabbMin, const btVector3& aabbMax, btBroadphaseAabbCallback& callback); -	bool	testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1);+btOverlappingPairCache* getOverlappingPairCache()+{+return m_pairCache;+}+const btOverlappingPairCache* getOverlappingPairCache() const+{+return m_pairCache;+} +bool testAabbOverlap(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1); -	///getAabb returns the axis aligned bounding box in the 'global' coordinate frame-	///will add some transform later-	virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const-	{-		aabbMin.setValue(-BT_LARGE_FLOAT,-BT_LARGE_FLOAT,-BT_LARGE_FLOAT);-		aabbMax.setValue(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT);-	} -	virtual void	printStats()-	{-//		printf("btSimpleBroadphase.h\n");-//		printf("numHandles = %d, maxHandles = %d\n",m_numHandles,m_maxHandles);-	}+///getAabb returns the axis aligned bounding box in the 'global' coordinate frame+///will add some transform later+virtual void getBroadphaseAabb(btVector3& aabbMin,btVector3& aabbMax) const+{+aabbMin.setValue(-BT_LARGE_FLOAT,-BT_LARGE_FLOAT,-BT_LARGE_FLOAT);+aabbMax.setValue(BT_LARGE_FLOAT,BT_LARGE_FLOAT,BT_LARGE_FLOAT);+}++virtual void printStats()+{+// printf("btSimpleBroadphase.h\n");+// printf("numHandles = %d, maxHandles = %d\n",m_numHandles,m_maxHandles);+} };  
bullet/BulletCollision/CollisionDispatch/SphereTriangleDetector.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,24 +28,24 @@ /// sphere-triangle to match the btDiscreteCollisionDetectorInterface struct SphereTriangleDetector : public btDiscreteCollisionDetectorInterface {-	virtual void	getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);+virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false); -	SphereTriangleDetector(btSphereShape* sphere,btTriangleShape* triangle, btScalar contactBreakingThreshold);+SphereTriangleDetector(btSphereShape* sphere,btTriangleShape* triangle, btScalar contactBreakingThreshold); -	virtual ~SphereTriangleDetector() {};+virtual ~SphereTriangleDetector() {}; -	bool collide(const btVector3& sphereCenter,btVector3 &point, btVector3& resultNormal, btScalar& depth, btScalar &timeOfImpact, btScalar	contactBreakingThreshold);+bool collide(const btVector3& sphereCenter,btVector3 &point, btVector3& resultNormal, btScalar& depth, btScalar &timeOfImpact, btScalar contactBreakingThreshold);  private: -	-	bool pointInTriangle(const btVector3 vertices[], const btVector3 &normal, btVector3 *p );-	bool facecontains(const btVector3 &p,const btVector3* vertices,btVector3& normal); -	btSphereShape* m_sphere;-	btTriangleShape* m_triangle;-	btScalar	m_contactBreakingThreshold;-	+bool pointInTriangle(const btVector3 vertices[], const btVector3 &normal, btVector3 *p );+bool facecontains(const btVector3 &p,const btVector3* vertices,btVector3& normal);++btSphereShape* m_sphere;+btTriangleShape* m_triangle;+btScalar m_contactBreakingThreshold;+ }; #endif //BT_SPHERE_TRIANGLE_DETECTOR_H 
bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,17 +20,17 @@  ///This class is not enabled yet (work-in-progress) to more aggressively activate objects. class btActivatingCollisionAlgorithm : public btCollisionAlgorithm-{-//	btCollisionObject* m_colObj0;-//	btCollisionObject* m_colObj1;+{ private:+// btCollisionObject* m_colObj0;+// btCollisionObject* m_colObj1;  public: -	btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci);+btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci); -	btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* colObj0,btCollisionObject* colObj1);+btActivatingCollisionAlgorithm (const btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* colObj0,btCollisionObject* colObj1); -	virtual ~btActivatingCollisionAlgorithm();+virtual ~btActivatingCollisionAlgorithm();  }; #endif //__BT_ACTIVATING_COLLISION_ALGORITHM_H
bullet/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,40 +25,40 @@  ///box-box collision detection class btBox2dBox2dCollisionAlgorithm : public btActivatingCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+ public:-	btBox2dBox2dCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)-		: btActivatingCollisionAlgorithm(ci) {}+btBox2dBox2dCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)+: btActivatingCollisionAlgorithm(ci) {} -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btBox2dBox2dCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+btBox2dBox2dCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); -	virtual ~btBox2dBox2dCollisionAlgorithm();+virtual ~btBox2dBox2dCollisionAlgorithm(); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+}  -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			int bbsize = sizeof(btBox2dBox2dCollisionAlgorithm);-			void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);-			return new(ptr) btBox2dBox2dCollisionAlgorithm(0,ci,body0,body1);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+int bbsize = sizeof(btBox2dBox2dCollisionAlgorithm);+void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);+return new(ptr) btBox2dBox2dCollisionAlgorithm(0,ci,body0,body1);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,40 +25,40 @@  ///box-box collision detection class btBoxBoxCollisionAlgorithm : public btActivatingCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+ public:-	btBoxBoxCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)-		: btActivatingCollisionAlgorithm(ci) {}+btBoxBoxCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)+: btActivatingCollisionAlgorithm(ci) {} -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btBoxBoxCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+btBoxBoxCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); -	virtual ~btBoxBoxCollisionAlgorithm();+virtual ~btBoxBoxCollisionAlgorithm(); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+}  -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			int bbsize = sizeof(btBoxBoxCollisionAlgorithm);-			void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);-			return new(ptr) btBoxBoxCollisionAlgorithm(0,ci,body0,body1);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+int bbsize = sizeof(btBoxBoxCollisionAlgorithm);+void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);+return new(ptr) btBoxBoxCollisionAlgorithm(0,ci,body0,body1);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btBoxBoxDetector.h view
@@ -1,15 +1,15 @@ /*- * Box-Box collision detection re-distributed under the ZLib license with permission from Russell L. Smith- * Original version is from Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.- * All rights reserved.  Email: russ@q12.org   Web: www.q12.org+* Box-Box collision detection re-distributed under the ZLib license with permission from Russell L. Smith+* Original version is from Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith.+* All rights reserved. Email: russ@q12.org Web: www.q12.org  Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,16 +28,16 @@ /// re-distributed under the Zlib license with permission from Russell L. Smith struct btBoxBoxDetector : public btDiscreteCollisionDetectorInterface {-	btBoxShape* m_box1;-	btBoxShape* m_box2;+btBoxShape* m_box1;+btBoxShape* m_box2;  public: -	btBoxBoxDetector(btBoxShape* box1,btBoxShape* box2);+btBoxBoxDetector(btBoxShape* box1,btBoxShape* box2); -	virtual ~btBoxBoxDetector() {};+virtual ~btBoxBoxDetector() {}; -	virtual void	getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);+virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);  }; 
bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,23 +24,23 @@ ///btCollisionConfiguration allows to configure Bullet collision detection ///stack allocator size, default collision algorithms and persistent manifold pool size ///@todo: describe the meaning-class	btCollisionConfiguration-{+class btCollisionConfiguration+{ private:  public: -	virtual ~btCollisionConfiguration()-	{-	}+virtual ~btCollisionConfiguration()+{+} -	///memory pools-	virtual btPoolAllocator* getPersistentManifoldPool() = 0;+///memory pools+virtual btPoolAllocator* getPersistentManifoldPool() = 0; -	virtual btPoolAllocator* getCollisionAlgorithmPool() = 0;+virtual btPoolAllocator* getCollisionAlgorithmPool() = 0; -	virtual btStackAlloc*	getStackAllocator() = 0;+virtual btStackAlloc* getStackAllocator() = 0; -	virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1) =0;+virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1) =0;  }; 
bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,21 +25,21 @@ ///Used by the btCollisionDispatcher to register and create instances for btCollisionAlgorithm struct btCollisionAlgorithmCreateFunc {-	bool m_swapped;-	-	btCollisionAlgorithmCreateFunc()-		:m_swapped(false)-	{-	}-	virtual ~btCollisionAlgorithmCreateFunc(){};+bool m_swapped; -	virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& , btCollisionObject* body0,btCollisionObject* body1)-	{-		-		(void)body0;-		(void)body1;-		return 0;-	}+btCollisionAlgorithmCreateFunc()+:m_swapped(false)+{+}+virtual ~btCollisionAlgorithmCreateFunc(){};++virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& , btCollisionObject* body0,btCollisionObject* body1)+{++(void)body0;+(void)body1;+return 0;+} }; #endif //BT_COLLISION_CREATE_FUNC 
bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -41,130 +41,130 @@ ///btCollisionDispatcher supports algorithms that handle ConvexConvex and ConvexConcave collision pairs. ///Time of Impact, Closest Points and Penetration Depth. class btCollisionDispatcher : public btDispatcher-{+{ private:  protected: -	int		m_dispatcherFlags;+int m_dispatcherFlags; -	btAlignedObjectArray<btPersistentManifold*>	m_manifoldsPtr;+btAlignedObjectArray<btPersistentManifold*> m_manifoldsPtr; -	btManifoldResult	m_defaultManifoldResult;+btManifoldResult m_defaultManifoldResult; -	btNearCallback		m_nearCallback;-	-	btPoolAllocator*	m_collisionAlgorithmPoolAllocator;+btNearCallback m_nearCallback; -	btPoolAllocator*	m_persistentManifoldPoolAllocator;+btPoolAllocator* m_collisionAlgorithmPoolAllocator; -	btCollisionAlgorithmCreateFunc* m_doubleDispatch[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES];+btPoolAllocator* m_persistentManifoldPoolAllocator; -	btCollisionConfiguration*	m_collisionConfiguration;+btCollisionAlgorithmCreateFunc* m_doubleDispatch[MAX_BROADPHASE_COLLISION_TYPES][MAX_BROADPHASE_COLLISION_TYPES]; +btCollisionConfiguration* m_collisionConfiguration; + public: -	enum DispatcherFlags-	{-		CD_STATIC_STATIC_REPORTED = 1,-		CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD = 2,-		CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION = 4-	};+enum DispatcherFlags+{+CD_STATIC_STATIC_REPORTED = 1,+CD_USE_RELATIVE_CONTACT_BREAKING_THRESHOLD = 2,+CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION = 4+}; -	int	getDispatcherFlags() const-	{-		return m_dispatcherFlags;-	}+int getDispatcherFlags() const+{+return m_dispatcherFlags;+} -	void	setDispatcherFlags(int flags)-	{-		m_dispatcherFlags = flags;-	}+void setDispatcherFlags(int flags)+{+m_dispatcherFlags = flags;+} -	///registerCollisionCreateFunc allows registration of custom/alternative collision create functions-	void	registerCollisionCreateFunc(int proxyType0,int proxyType1, btCollisionAlgorithmCreateFunc* createFunc);+///registerCollisionCreateFunc allows registration of custom/alternative collision create functions+void registerCollisionCreateFunc(int proxyType0,int proxyType1, btCollisionAlgorithmCreateFunc* createFunc); -	int	getNumManifolds() const-	{ -		return int( m_manifoldsPtr.size());-	}+int getNumManifolds() const+{+return int( m_manifoldsPtr.size());+} -	btPersistentManifold**	getInternalManifoldPointer()-	{-		return &m_manifoldsPtr[0];-	}+btPersistentManifold** getInternalManifoldPointer()+{+return &m_manifoldsPtr[0];+} -	 btPersistentManifold* getManifoldByIndexInternal(int index)-	{-		return m_manifoldsPtr[index];-	}+btPersistentManifold* getManifoldByIndexInternal(int index)+{+return m_manifoldsPtr[index];+} -	 const btPersistentManifold* getManifoldByIndexInternal(int index) const-	{-		return m_manifoldsPtr[index];-	}+const btPersistentManifold* getManifoldByIndexInternal(int index) const+{+return m_manifoldsPtr[index];+} -	btCollisionDispatcher (btCollisionConfiguration* collisionConfiguration);+btCollisionDispatcher (btCollisionConfiguration* collisionConfiguration); -	virtual ~btCollisionDispatcher();+virtual ~btCollisionDispatcher(); -	virtual btPersistentManifold*	getNewManifold(void* b0,void* b1);-	-	virtual void releaseManifold(btPersistentManifold* manifold);+virtual btPersistentManifold* getNewManifold(void* b0,void* b1); +virtual void releaseManifold(btPersistentManifold* manifold); -	virtual void clearManifold(btPersistentManifold* manifold); -			-	btCollisionAlgorithm* findAlgorithm(btCollisionObject* body0,btCollisionObject* body1,btPersistentManifold* sharedManifold = 0);-		-	virtual bool	needsCollision(btCollisionObject* body0,btCollisionObject* body1);-	-	virtual bool	needsResponse(btCollisionObject* body0,btCollisionObject* body1);-	-	virtual void	dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher) ;+virtual void clearManifold(btPersistentManifold* manifold); -	void	setNearCallback(btNearCallback	nearCallback)-	{-		m_nearCallback = nearCallback; -	} -	btNearCallback	getNearCallback() const-	{-		return m_nearCallback;-	}+btCollisionAlgorithm* findAlgorithm(btCollisionObject* body0,btCollisionObject* body1,btPersistentManifold* sharedManifold = 0); -	//by default, Bullet will use this near callback-	static void  defaultNearCallback(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, const btDispatcherInfo& dispatchInfo);+virtual bool needsCollision(btCollisionObject* body0,btCollisionObject* body1); -	virtual	void* allocateCollisionAlgorithm(int size);+virtual bool needsResponse(btCollisionObject* body0,btCollisionObject* body1); -	virtual	void freeCollisionAlgorithm(void* ptr);+virtual void dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher) ; -	btCollisionConfiguration*	getCollisionConfiguration()-	{-		return m_collisionConfiguration;-	}+void setNearCallback(btNearCallback nearCallback)+{+m_nearCallback = nearCallback;+} -	const btCollisionConfiguration*	getCollisionConfiguration() const-	{-		return m_collisionConfiguration;-	}+btNearCallback getNearCallback() const+{+return m_nearCallback;+} -	void	setCollisionConfiguration(btCollisionConfiguration* config)-	{-		m_collisionConfiguration = config;-	}+//by default, Bullet will use this near callback+static void defaultNearCallback(btBroadphasePair& collisionPair, btCollisionDispatcher& dispatcher, const btDispatcherInfo& dispatchInfo); -	virtual	btPoolAllocator*	getInternalManifoldPool()-	{-		return m_persistentManifoldPoolAllocator;-	}+virtual void* allocateCollisionAlgorithm(int size); -	virtual	const btPoolAllocator*	getInternalManifoldPool() const-	{-		return m_persistentManifoldPoolAllocator;-	}+virtual void freeCollisionAlgorithm(void* ptr);++btCollisionConfiguration* getCollisionConfiguration()+{+return m_collisionConfiguration;+}++const btCollisionConfiguration* getCollisionConfiguration() const+{+return m_collisionConfiguration;+}++void setCollisionConfiguration(btCollisionConfiguration* config)+{+m_collisionConfiguration = config;+}++virtual btPoolAllocator* getInternalManifoldPool()+{+return m_persistentManifoldPoolAllocator;+}++virtual const btPoolAllocator* getInternalManifoldPool() const+{+return m_persistentManifoldPoolAllocator;+}  }; 
bullet/BulletCollision/CollisionDispatch/btCollisionObject.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,8 +25,8 @@ #define DISABLE_DEACTIVATION 4 #define DISABLE_SIMULATION 5 -struct	btBroadphaseProxy;-class	btCollisionShape;+struct btBroadphaseProxy;+class btCollisionShape; struct btCollisionShapeData; #include "LinearMath/btMotionState.h" #include "LinearMath/btAlignedAllocator.h"@@ -43,480 +43,480 @@ #endif  -/// btCollisionObject can be used to manage collision detection objects. +/// btCollisionObject can be used to manage collision detection objects. /// btCollisionObject maintains all information that is needed for a collision detection: Shape, Transform and AABB proxy. /// They can be added to the btCollisionWorld.-ATTRIBUTE_ALIGNED16(class)	btCollisionObject-{+ATTRIBUTE_ALIGNED16(class) btCollisionObject+{ private:  protected: -	btTransform	m_worldTransform;+btTransform m_worldTransform; -	///m_interpolationWorldTransform is used for CCD and interpolation-	///it can be either previous or future (predicted) transform-	btTransform	m_interpolationWorldTransform;-	//those two are experimental: just added for bullet time effect, so you can still apply impulses (directly modifying velocities) -	//without destroying the continuous interpolated motion (which uses this interpolation velocities)-	btVector3	m_interpolationLinearVelocity;-	btVector3	m_interpolationAngularVelocity;-	-	btVector3	m_anisotropicFriction;-	int			m_hasAnisotropicFriction;-	btScalar	m_contactProcessingThreshold;	+///m_interpolationWorldTransform is used for CCD and interpolation+///it can be either previous or future (predicted) transform+btTransform m_interpolationWorldTransform;+//those two are experimental: just added for bullet time effect, so you can still apply impulses (directly modifying velocities)+//without destroying the continuous interpolated motion (which uses this interpolation velocities)+btVector3 m_interpolationLinearVelocity;+btVector3 m_interpolationAngularVelocity; -	btBroadphaseProxy*		m_broadphaseHandle;-	btCollisionShape*		m_collisionShape;-	///m_extensionPointer is used by some internal low-level Bullet extensions.-	void*					m_extensionPointer;-	-	///m_rootCollisionShape is temporarily used to store the original collision shape-	///The m_collisionShape might be temporarily replaced by a child collision shape during collision detection purposes-	///If it is NULL, the m_collisionShape is not temporarily replaced.-	btCollisionShape*		m_rootCollisionShape;+btVector3 m_anisotropicFriction;+int m_hasAnisotropicFriction;+btScalar m_contactProcessingThreshold; -	int				m_collisionFlags;+btBroadphaseProxy* m_broadphaseHandle;+btCollisionShape* m_collisionShape;+///m_extensionPointer is used by some internal low-level Bullet extensions.+void* m_extensionPointer; -	int				m_islandTag1;-	int				m_companionId;+///m_rootCollisionShape is temporarily used to store the original collision shape+///The m_collisionShape might be temporarily replaced by a child collision shape during collision detection purposes+///If it is NULL, the m_collisionShape is not temporarily replaced.+btCollisionShape* m_rootCollisionShape; -	int				m_activationState1;-	btScalar			m_deactivationTime;+int m_collisionFlags; -	btScalar		m_friction;-	btScalar		m_restitution;+int m_islandTag1;+int m_companionId; -	///m_internalType is reserved to distinguish Bullet's btCollisionObject, btRigidBody, btSoftBody, btGhostObject etc.-	///do not assign your own m_internalType unless you write a new dynamics object class.-	int				m_internalType;+int m_activationState1;+btScalar m_deactivationTime; -	///users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer-	void*			m_userObjectPointer;+btScalar m_friction;+btScalar m_restitution; -	///time of impact calculation-	btScalar		m_hitFraction; -	-	///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::-	btScalar		m_ccdSweptSphereRadius;+///m_internalType is reserved to distinguish Bullet's btCollisionObject, btRigidBody, btSoftBody, btGhostObject etc.+///do not assign your own m_internalType unless you write a new dynamics object class.+int m_internalType; -	/// Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold-	btScalar		m_ccdMotionThreshold;-	-	/// If some object should have elaborate collision filtering by sub-classes-	int			m_checkCollideWith;+///users can point to their objects, m_userPointer is not used by Bullet, see setUserPointer/getUserPointer+void* m_userObjectPointer; -	virtual bool	checkCollideWithOverride(btCollisionObject* /* co */)-	{-		return true;-	}+///time of impact calculation+btScalar m_hitFraction; +///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::+btScalar m_ccdSweptSphereRadius;++/// Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold+btScalar m_ccdMotionThreshold;++/// If some object should have elaborate collision filtering by sub-classes+int m_checkCollideWith;++virtual bool checkCollideWithOverride(btCollisionObject* /* co */)+{+return true;+}+ public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	enum CollisionFlags-	{-		CF_STATIC_OBJECT= 1,-		CF_KINEMATIC_OBJECT= 2,-		CF_NO_CONTACT_RESPONSE = 4,-		CF_CUSTOM_MATERIAL_CALLBACK = 8,//this allows per-triangle material (friction/restitution)-		CF_CHARACTER_OBJECT = 16,-		CF_DISABLE_VISUALIZE_OBJECT = 32, //disable debug drawing-		CF_DISABLE_SPU_COLLISION_PROCESSING = 64//disable parallel/SPU processing-	};+enum CollisionFlags+{+CF_STATIC_OBJECT= 1,+CF_KINEMATIC_OBJECT= 2,+CF_NO_CONTACT_RESPONSE = 4,+CF_CUSTOM_MATERIAL_CALLBACK = 8,//this allows per-triangle material (friction/restitution)+CF_CHARACTER_OBJECT = 16,+CF_DISABLE_VISUALIZE_OBJECT = 32, //disable debug drawing+CF_DISABLE_SPU_COLLISION_PROCESSING = 64//disable parallel/SPU processing+}; -	enum	CollisionObjectTypes-	{-		CO_COLLISION_OBJECT =1,-		CO_RIGID_BODY=2,-		///CO_GHOST_OBJECT keeps track of all objects overlapping its AABB and that pass its collision filter-		///It is useful for collision sensors, explosion objects, character controller etc.-		CO_GHOST_OBJECT=4,-		CO_SOFT_BODY=8,-		CO_HF_FLUID=16,-		CO_USER_TYPE=32-	};+enum CollisionObjectTypes+{+CO_COLLISION_OBJECT =1,+CO_RIGID_BODY=2,+///CO_GHOST_OBJECT keeps track of all objects overlapping its AABB and that pass its collision filter+///It is useful for collision sensors, explosion objects, character controller etc.+CO_GHOST_OBJECT=4,+CO_SOFT_BODY=8,+CO_HF_FLUID=16,+CO_USER_TYPE=32+}; -	SIMD_FORCE_INLINE bool mergesSimulationIslands() const-	{-		///static objects, kinematic and object without contact response don't merge islands-		return  ((m_collisionFlags & (CF_STATIC_OBJECT | CF_KINEMATIC_OBJECT | CF_NO_CONTACT_RESPONSE) )==0);-	}+SIMD_FORCE_INLINE bool mergesSimulationIslands() const+{+///static objects, kinematic and object without contact response don't merge islands+return ((m_collisionFlags & (CF_STATIC_OBJECT | CF_KINEMATIC_OBJECT | CF_NO_CONTACT_RESPONSE) )==0);+} -	const btVector3& getAnisotropicFriction() const-	{-		return m_anisotropicFriction;-	}-	void	setAnisotropicFriction(const btVector3& anisotropicFriction)-	{-		m_anisotropicFriction = anisotropicFriction;-		m_hasAnisotropicFriction = (anisotropicFriction[0]!=1.f) || (anisotropicFriction[1]!=1.f) || (anisotropicFriction[2]!=1.f);-	}-	bool	hasAnisotropicFriction() const-	{-		return m_hasAnisotropicFriction!=0;-	}+const btVector3& getAnisotropicFriction() const+{+return m_anisotropicFriction;+}+void setAnisotropicFriction(const btVector3& anisotropicFriction)+{+m_anisotropicFriction = anisotropicFriction;+m_hasAnisotropicFriction = (anisotropicFriction[0]!=1.f) || (anisotropicFriction[1]!=1.f) || (anisotropicFriction[2]!=1.f);+}+bool hasAnisotropicFriction() const+{+return m_hasAnisotropicFriction!=0;+} -	///the constraint solver can discard solving contacts, if the distance is above this threshold. 0 by default.-	///Note that using contacts with positive distance can improve stability. It increases, however, the chance of colliding with degerate contacts, such as 'interior' triangle edges-	void	setContactProcessingThreshold( btScalar contactProcessingThreshold)-	{-		m_contactProcessingThreshold = contactProcessingThreshold;-	}-	btScalar	getContactProcessingThreshold() const-	{-		return m_contactProcessingThreshold;-	}+///the constraint solver can discard solving contacts, if the distance is above this threshold. 0 by default.+///Note that using contacts with positive distance can improve stability. It increases, however, the chance of colliding with degerate contacts, such as 'interior' triangle edges+void setContactProcessingThreshold( btScalar contactProcessingThreshold)+{+m_contactProcessingThreshold = contactProcessingThreshold;+}+btScalar getContactProcessingThreshold() const+{+return m_contactProcessingThreshold;+} -	SIMD_FORCE_INLINE bool		isStaticObject() const {-		return (m_collisionFlags & CF_STATIC_OBJECT) != 0;-	}+SIMD_FORCE_INLINE bool isStaticObject() const {+return (m_collisionFlags & CF_STATIC_OBJECT) != 0;+} -	SIMD_FORCE_INLINE bool		isKinematicObject() const-	{-		return (m_collisionFlags & CF_KINEMATIC_OBJECT) != 0;-	}+SIMD_FORCE_INLINE bool isKinematicObject() const+{+return (m_collisionFlags & CF_KINEMATIC_OBJECT) != 0;+} -	SIMD_FORCE_INLINE bool		isStaticOrKinematicObject() const-	{-		return (m_collisionFlags & (CF_KINEMATIC_OBJECT | CF_STATIC_OBJECT)) != 0 ;-	}+SIMD_FORCE_INLINE bool isStaticOrKinematicObject() const+{+return (m_collisionFlags & (CF_KINEMATIC_OBJECT | CF_STATIC_OBJECT)) != 0 ;+} -	SIMD_FORCE_INLINE bool		hasContactResponse() const {-		return (m_collisionFlags & CF_NO_CONTACT_RESPONSE)==0;-	}+SIMD_FORCE_INLINE bool hasContactResponse() const {+return (m_collisionFlags & CF_NO_CONTACT_RESPONSE)==0;+} -	-	btCollisionObject(); -	virtual ~btCollisionObject();+btCollisionObject(); -	virtual void	setCollisionShape(btCollisionShape* collisionShape)-	{-		m_collisionShape = collisionShape;-		m_rootCollisionShape = collisionShape;-	}+virtual ~btCollisionObject(); -	SIMD_FORCE_INLINE const btCollisionShape*	getCollisionShape() const-	{-		return m_collisionShape;-	}+virtual void setCollisionShape(btCollisionShape* collisionShape)+{+m_collisionShape = collisionShape;+m_rootCollisionShape = collisionShape;+} -	SIMD_FORCE_INLINE btCollisionShape*	getCollisionShape()-	{-		return m_collisionShape;-	}+SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const+{+return m_collisionShape;+} -	SIMD_FORCE_INLINE const btCollisionShape*	getRootCollisionShape() const-	{-		return m_rootCollisionShape;-	}+SIMD_FORCE_INLINE btCollisionShape* getCollisionShape()+{+return m_collisionShape;+} -	SIMD_FORCE_INLINE btCollisionShape*	getRootCollisionShape()-	{-		return m_rootCollisionShape;-	}+SIMD_FORCE_INLINE const btCollisionShape* getRootCollisionShape() const+{+return m_rootCollisionShape;+} -	///Avoid using this internal API call-	///internalSetTemporaryCollisionShape is used to temporary replace the actual collision shape by a child collision shape.-	void	internalSetTemporaryCollisionShape(btCollisionShape* collisionShape)-	{-		m_collisionShape = collisionShape;-	}+SIMD_FORCE_INLINE btCollisionShape* getRootCollisionShape()+{+return m_rootCollisionShape;+} -	///Avoid using this internal API call, the extension pointer is used by some Bullet extensions. -	///If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.-	void*		internalGetExtensionPointer() const-	{-		return m_extensionPointer;-	}-	///Avoid using this internal API call, the extension pointer is used by some Bullet extensions-	///If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.-	void	internalSetExtensionPointer(void* pointer)-	{-		m_extensionPointer = pointer;-	}+///Avoid using this internal API call+///internalSetTemporaryCollisionShape is used to temporary replace the actual collision shape by a child collision shape.+void internalSetTemporaryCollisionShape(btCollisionShape* collisionShape)+{+m_collisionShape = collisionShape;+} -	SIMD_FORCE_INLINE	int	getActivationState() const { return m_activationState1;}-	-	void setActivationState(int newState);+///Avoid using this internal API call, the extension pointer is used by some Bullet extensions.+///If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.+void* internalGetExtensionPointer() const+{+return m_extensionPointer;+}+///Avoid using this internal API call, the extension pointer is used by some Bullet extensions+///If you need to store your own user pointer, use 'setUserPointer/getUserPointer' instead.+void internalSetExtensionPointer(void* pointer)+{+m_extensionPointer = pointer;+} -	void	setDeactivationTime(btScalar time)-	{-		m_deactivationTime = time;-	}-	btScalar	getDeactivationTime() const-	{-		return m_deactivationTime;-	}+SIMD_FORCE_INLINE int getActivationState() const { return m_activationState1;} -	void forceActivationState(int newState);+void setActivationState(int newState); -	void	activate(bool forceActivation = false);+void setDeactivationTime(btScalar time)+{+m_deactivationTime = time;+}+btScalar getDeactivationTime() const+{+return m_deactivationTime;+} -	SIMD_FORCE_INLINE bool isActive() const-	{-		return ((getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));-	}+void forceActivationState(int newState); -	void	setRestitution(btScalar rest)-	{-		m_restitution = rest;-	}-	btScalar	getRestitution() const-	{-		return m_restitution;-	}-	void	setFriction(btScalar frict)-	{-		m_friction = frict;-	}-	btScalar	getFriction() const-	{-		return m_friction;-	}+void activate(bool forceActivation = false); -	///reserved for Bullet internal usage-	int	getInternalType() const-	{-		return m_internalType;-	}+SIMD_FORCE_INLINE bool isActive() const+{+return ((getActivationState() != ISLAND_SLEEPING) && (getActivationState() != DISABLE_SIMULATION));+} -	btTransform&	getWorldTransform()-	{-		return m_worldTransform;-	}+void setRestitution(btScalar rest)+{+m_restitution = rest;+}+btScalar getRestitution() const+{+return m_restitution;+}+void setFriction(btScalar frict)+{+m_friction = frict;+}+btScalar getFriction() const+{+return m_friction;+} -	const btTransform&	getWorldTransform() const-	{-		return m_worldTransform;-	}+///reserved for Bullet internal usage+int getInternalType() const+{+return m_internalType;+} -	void	setWorldTransform(const btTransform& worldTrans)-	{-		m_worldTransform = worldTrans;-	}+btTransform& getWorldTransform()+{+return m_worldTransform;+} +const btTransform& getWorldTransform() const+{+return m_worldTransform;+} -	SIMD_FORCE_INLINE btBroadphaseProxy*	getBroadphaseHandle()-	{-		return m_broadphaseHandle;-	}+void setWorldTransform(const btTransform& worldTrans)+{+m_worldTransform = worldTrans;+} -	SIMD_FORCE_INLINE const btBroadphaseProxy*	getBroadphaseHandle() const-	{-		return m_broadphaseHandle;-	} -	void	setBroadphaseHandle(btBroadphaseProxy* handle)-	{-		m_broadphaseHandle = handle;-	}+SIMD_FORCE_INLINE btBroadphaseProxy* getBroadphaseHandle()+{+return m_broadphaseHandle;+} +SIMD_FORCE_INLINE const btBroadphaseProxy* getBroadphaseHandle() const+{+return m_broadphaseHandle;+} -	const btTransform&	getInterpolationWorldTransform() const-	{-		return m_interpolationWorldTransform;-	}+void setBroadphaseHandle(btBroadphaseProxy* handle)+{+m_broadphaseHandle = handle;+} -	btTransform&	getInterpolationWorldTransform()-	{-		return m_interpolationWorldTransform;-	} -	void	setInterpolationWorldTransform(const btTransform&	trans)-	{-		m_interpolationWorldTransform = trans;-	}+const btTransform& getInterpolationWorldTransform() const+{+return m_interpolationWorldTransform;+} -	void	setInterpolationLinearVelocity(const btVector3& linvel)-	{-		m_interpolationLinearVelocity = linvel;-	}+btTransform& getInterpolationWorldTransform()+{+return m_interpolationWorldTransform;+} -	void	setInterpolationAngularVelocity(const btVector3& angvel)-	{-		m_interpolationAngularVelocity = angvel;-	}+void setInterpolationWorldTransform(const btTransform& trans)+{+m_interpolationWorldTransform = trans;+} -	const btVector3&	getInterpolationLinearVelocity() const-	{-		return m_interpolationLinearVelocity;-	}+void setInterpolationLinearVelocity(const btVector3& linvel)+{+m_interpolationLinearVelocity = linvel;+} -	const btVector3&	getInterpolationAngularVelocity() const-	{-		return m_interpolationAngularVelocity;-	}+void setInterpolationAngularVelocity(const btVector3& angvel)+{+m_interpolationAngularVelocity = angvel;+} -	SIMD_FORCE_INLINE int getIslandTag() const-	{-		return	m_islandTag1;-	}+const btVector3& getInterpolationLinearVelocity() const+{+return m_interpolationLinearVelocity;+} -	void	setIslandTag(int tag)-	{-		m_islandTag1 = tag;-	}+const btVector3& getInterpolationAngularVelocity() const+{+return m_interpolationAngularVelocity;+} -	SIMD_FORCE_INLINE int getCompanionId() const-	{-		return	m_companionId;-	}+SIMD_FORCE_INLINE int getIslandTag() const+{+return m_islandTag1;+} -	void	setCompanionId(int id)-	{-		m_companionId = id;-	}+void setIslandTag(int tag)+{+m_islandTag1 = tag;+} -	SIMD_FORCE_INLINE btScalar			getHitFraction() const-	{-		return m_hitFraction; -	}+SIMD_FORCE_INLINE int getCompanionId() const+{+return m_companionId;+} -	void	setHitFraction(btScalar hitFraction)-	{-		m_hitFraction = hitFraction;-	}+void setCompanionId(int id)+{+m_companionId = id;+} -	-	SIMD_FORCE_INLINE int	getCollisionFlags() const-	{-		return m_collisionFlags;-	}+SIMD_FORCE_INLINE btScalar getHitFraction() const+{+return m_hitFraction;+} -	void	setCollisionFlags(int flags)-	{-		m_collisionFlags = flags;-	}-	-	///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::-	btScalar			getCcdSweptSphereRadius() const-	{-		return m_ccdSweptSphereRadius;-	}+void setHitFraction(btScalar hitFraction)+{+m_hitFraction = hitFraction;+} -	///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::-	void	setCcdSweptSphereRadius(btScalar radius)-	{-		m_ccdSweptSphereRadius = radius;-	} -	btScalar 	getCcdMotionThreshold() const-	{-		return m_ccdMotionThreshold;-	}+SIMD_FORCE_INLINE int getCollisionFlags() const+{+return m_collisionFlags;+} -	btScalar 	getCcdSquareMotionThreshold() const-	{-		return m_ccdMotionThreshold*m_ccdMotionThreshold;-	}+void setCollisionFlags(int flags)+{+m_collisionFlags = flags;+} +///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::+btScalar getCcdSweptSphereRadius() const+{+return m_ccdSweptSphereRadius;+} +///Swept sphere radius (0.0 by default), see btConvexConvexAlgorithm::+void setCcdSweptSphereRadius(btScalar radius)+{+m_ccdSweptSphereRadius = radius;+} -	/// Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold-	void	setCcdMotionThreshold(btScalar ccdMotionThreshold)-	{-		m_ccdMotionThreshold = ccdMotionThreshold;-	}+btScalar getCcdMotionThreshold() const+{+return m_ccdMotionThreshold;+} -	///users can point to their objects, userPointer is not used by Bullet-	void*	getUserPointer() const-	{-		return m_userObjectPointer;-	}-	-	///users can point to their objects, userPointer is not used by Bullet-	void	setUserPointer(void* userPointer)-	{-		m_userObjectPointer = userPointer;-	}+btScalar getCcdSquareMotionThreshold() const+{+return m_ccdMotionThreshold*m_ccdMotionThreshold;+}  -	inline bool checkCollideWith(btCollisionObject* co)-	{-		if (m_checkCollideWith)-			return checkCollideWithOverride(co); -		return true;-	}+/// Don't do continuous collision detection if the motion (in one step) is less then m_ccdMotionThreshold+void setCcdMotionThreshold(btScalar ccdMotionThreshold)+{+m_ccdMotionThreshold = ccdMotionThreshold;+} -	virtual	int	calculateSerializeBufferSize()	const;+///users can point to their objects, userPointer is not used by Bullet+void* getUserPointer() const+{+return m_userObjectPointer;+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, class btSerializer* serializer) const;+///users can point to their objects, userPointer is not used by Bullet+void setUserPointer(void* userPointer)+{+m_userObjectPointer = userPointer;+} -	virtual void serializeSingleObject(class btSerializer* serializer) const; +inline bool checkCollideWith(btCollisionObject* co)+{+if (m_checkCollideWith)+return checkCollideWithOverride(co);++return true;+}++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, class btSerializer* serializer) const;++virtual void serializeSingleObject(class btSerializer* serializer) const;+ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCollisionObjectDoubleData+struct btCollisionObjectDoubleData {-	void					*m_broadphaseHandle;-	void					*m_collisionShape;-	btCollisionShapeData	*m_rootCollisionShape;-	char					*m_name;+void *m_broadphaseHandle;+void *m_collisionShape;+btCollisionShapeData *m_rootCollisionShape;+char *m_name; -	btTransformDoubleData	m_worldTransform;-	btTransformDoubleData	m_interpolationWorldTransform;-	btVector3DoubleData		m_interpolationLinearVelocity;-	btVector3DoubleData		m_interpolationAngularVelocity;-	btVector3DoubleData		m_anisotropicFriction;-	double					m_contactProcessingThreshold;	-	double					m_deactivationTime;-	double					m_friction;-	double					m_restitution;-	double					m_hitFraction; -	double					m_ccdSweptSphereRadius;-	double					m_ccdMotionThreshold;+btTransformDoubleData m_worldTransform;+btTransformDoubleData m_interpolationWorldTransform;+btVector3DoubleData m_interpolationLinearVelocity;+btVector3DoubleData m_interpolationAngularVelocity;+btVector3DoubleData m_anisotropicFriction;+double m_contactProcessingThreshold;+double m_deactivationTime;+double m_friction;+double m_restitution;+double m_hitFraction;+double m_ccdSweptSphereRadius;+double m_ccdMotionThreshold; -	int						m_hasAnisotropicFriction;-	int						m_collisionFlags;-	int						m_islandTag1;-	int						m_companionId;-	int						m_activationState1;-	int						m_internalType;-	int						m_checkCollideWith;+int m_hasAnisotropicFriction;+int m_collisionFlags;+int m_islandTag1;+int m_companionId;+int m_activationState1;+int m_internalType;+int m_checkCollideWith; -	char	m_padding[4];+char m_padding[4]; };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCollisionObjectFloatData+struct btCollisionObjectFloatData {-	void					*m_broadphaseHandle;-	void					*m_collisionShape;-	btCollisionShapeData	*m_rootCollisionShape;-	char					*m_name;+void *m_broadphaseHandle;+void *m_collisionShape;+btCollisionShapeData *m_rootCollisionShape;+char *m_name; -	btTransformFloatData	m_worldTransform;-	btTransformFloatData	m_interpolationWorldTransform;-	btVector3FloatData		m_interpolationLinearVelocity;-	btVector3FloatData		m_interpolationAngularVelocity;-	btVector3FloatData		m_anisotropicFriction;-	float					m_contactProcessingThreshold;	-	float					m_deactivationTime;-	float					m_friction;-	float					m_restitution;-	float					m_hitFraction; -	float					m_ccdSweptSphereRadius;-	float					m_ccdMotionThreshold;+btTransformFloatData m_worldTransform;+btTransformFloatData m_interpolationWorldTransform;+btVector3FloatData m_interpolationLinearVelocity;+btVector3FloatData m_interpolationAngularVelocity;+btVector3FloatData m_anisotropicFriction;+float m_contactProcessingThreshold;+float m_deactivationTime;+float m_friction;+float m_restitution;+float m_hitFraction;+float m_ccdSweptSphereRadius;+float m_ccdMotionThreshold; -	int						m_hasAnisotropicFriction;-	int						m_collisionFlags;-	int						m_islandTag1;-	int						m_companionId;-	int						m_activationState1;-	int						m_internalType;-	int						m_checkCollideWith;+int m_hasAnisotropicFriction;+int m_collisionFlags;+int m_islandTag1;+int m_companionId;+int m_activationState1;+int m_internalType;+int m_checkCollideWith; };   -SIMD_FORCE_INLINE	int	btCollisionObject::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btCollisionObject::calculateSerializeBufferSize() const {-	return sizeof(btCollisionObjectData);+return sizeof(btCollisionObjectData); }  
bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://bulletphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://bulletphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -15,53 +15,53 @@   /**- * @mainpage Bullet Documentation- *- * @section intro_sec Introduction- * Bullet Collision Detection & Physics SDK- *- * Bullet is a Collision Detection and Rigid Body Dynamics Library. The Library is Open Source and free for commercial use, under the ZLib license ( http://opensource.org/licenses/zlib-license.php ).- *- * The main documentation is Bullet_User_Manual.pdf, included in the source code distribution.- * There is the Physics Forum for feedback and general Collision Detection and Physics discussions.- * Please visit http://www.bulletphysics.com- *- * @section install_sec Installation- *- * @subsection step1 Step 1: Download- * You can download the Bullet Physics Library from the Google Code repository: http://code.google.com/p/bullet/downloads/list- *- * @subsection step2 Step 2: Building- * Bullet main build system for all platforms is cmake, you can download http://www.cmake.org- * cmake can autogenerate projectfiles for Microsoft Visual Studio, Apple Xcode, KDevelop and Unix Makefiles.- * The easiest is to run the CMake cmake-gui graphical user interface and choose the options and generate projectfiles.- * You can also use cmake in the command-line. Here are some examples for various platforms:- * cmake . -G "Visual Studio 9 2008"- * cmake . -G Xcode- * cmake . -G "Unix Makefiles"- * Although cmake is recommended, you can also use autotools for UNIX: ./autogen.sh ./configure to create a Makefile and then run make.- * - * @subsection step3 Step 3: Testing demos- * Try to run and experiment with BasicDemo executable as a starting point.- * Bullet can be used in several ways, as Full Rigid Body simulation, as Collision Detector Library or Low Level / Snippets like the GJK Closest Point calculation.- * The Dependencies can be seen in this documentation under Directories- * - * @subsection step4 Step 4: Integrating in your application, full Rigid Body and Soft Body simulation- * Check out BasicDemo how to create a btDynamicsWorld, btRigidBody and btCollisionShape, Stepping the simulation and synchronizing your graphics object transform.- * Check out SoftDemo how to use soft body dynamics, using btSoftRigidDynamicsWorld.- * @subsection step5 Step 5 : Integrate the Collision Detection Library (without Dynamics and other Extras)- * Bullet Collision Detection can also be used without the Dynamics/Extras.- * Check out btCollisionWorld and btCollisionObject, and the CollisionInterfaceDemo.- * @subsection step6 Step 6 : Use Snippets like the GJK Closest Point calculation.- * Bullet has been designed in a modular way keeping dependencies to a minimum. The ConvexHullDistance demo demonstrates direct use of btGjkPairDetector.- *- * @section copyright Copyright- * For up-to-data information and copyright and contributors list check out the Bullet_User_Manual.pdf- * - */- - +* @mainpage Bullet Documentation+*+* @section intro_sec Introduction+* Bullet Collision Detection & Physics SDK+*+* Bullet is a Collision Detection and Rigid Body Dynamics Library. The Library is Open Source and free for commercial use, under the ZLib license ( http://opensource.org/licenses/zlib-license.php ).+*+* The main documentation is Bullet_User_Manual.pdf, included in the source code distribution.+* There is the Physics Forum for feedback and general Collision Detection and Physics discussions.+* Please visit http://www.bulletphysics.com+*+* @section install_sec Installation+*+* @subsection step1 Step 1: Download+* You can download the Bullet Physics Library from the Google Code repository: http://code.google.com/p/bullet/downloads/list+*+* @subsection step2 Step 2: Building+* Bullet main build system for all platforms is cmake, you can download http://www.cmake.org+* cmake can autogenerate projectfiles for Microsoft Visual Studio, Apple Xcode, KDevelop and Unix Makefiles.+* The easiest is to run the CMake cmake-gui graphical user interface and choose the options and generate projectfiles.+* You can also use cmake in the command-line. Here are some examples for various platforms:+* cmake . -G "Visual Studio 9 2008"+* cmake . -G Xcode+* cmake . -G "Unix Makefiles"+* Although cmake is recommended, you can also use autotools for UNIX: ./autogen.sh ./configure to create a Makefile and then run make.+*+* @subsection step3 Step 3: Testing demos+* Try to run and experiment with BasicDemo executable as a starting point.+* Bullet can be used in several ways, as Full Rigid Body simulation, as Collision Detector Library or Low Level / Snippets like the GJK Closest Point calculation.+* The Dependencies can be seen in this documentation under Directories+*+* @subsection step4 Step 4: Integrating in your application, full Rigid Body and Soft Body simulation+* Check out BasicDemo how to create a btDynamicsWorld, btRigidBody and btCollisionShape, Stepping the simulation and synchronizing your graphics object transform.+* Check out SoftDemo how to use soft body dynamics, using btSoftRigidDynamicsWorld.+* @subsection step5 Step 5 : Integrate the Collision Detection Library (without Dynamics and other Extras)+* Bullet Collision Detection can also be used without the Dynamics/Extras.+* Check out btCollisionWorld and btCollisionObject, and the CollisionInterfaceDemo.+* @subsection step6 Step 6 : Use Snippets like the GJK Closest Point calculation.+* Bullet has been designed in a modular way keeping dependencies to a minimum. The ConvexHullDistance demo demonstrates direct use of btGjkPairDetector.+*+* @section copyright Copyright+* For up-to-data information and copyright and contributors list check out the Bullet_User_Manual.pdf+*+*/ ++ #ifndef BT_COLLISION_WORLD_H #define BT_COLLISION_WORLD_H @@ -80,428 +80,428 @@  ///CollisionWorld is interface and container for the collision detection class btCollisionWorld-{+{ private: -	+ protected: -	btAlignedObjectArray<btCollisionObject*>	m_collisionObjects;-	-	btDispatcher*	m_dispatcher1;+btAlignedObjectArray<btCollisionObject*> m_collisionObjects; -	btDispatcherInfo	m_dispatchInfo;+btDispatcher* m_dispatcher1; -	btStackAlloc*	m_stackAlloc;+btDispatcherInfo m_dispatchInfo; -	btBroadphaseInterface*	m_broadphasePairCache;+btStackAlloc* m_stackAlloc; -	btIDebugDraw*	m_debugDrawer;+btBroadphaseInterface* m_broadphasePairCache; -	///m_forceUpdateAllAabbs can be set to false as an optimization to only update active object AABBs-	///it is true by default, because it is error-prone (setting the position of static objects wouldn't update their AABB)-	bool m_forceUpdateAllAabbs;+btIDebugDraw* m_debugDrawer; -	void	serializeCollisionObjects(btSerializer* serializer);+///m_forceUpdateAllAabbs can be set to false as an optimization to only update active object AABBs+///it is true by default, because it is error-prone (setting the position of static objects wouldn't update their AABB)+bool m_forceUpdateAllAabbs; +void serializeCollisionObjects(btSerializer* serializer);+ public: -	//this constructor doesn't own the dispatcher and paircache/broadphase-	btCollisionWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphasePairCache, btCollisionConfiguration* collisionConfiguration);+//this constructor doesn't own the dispatcher and paircache/broadphase+btCollisionWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphasePairCache, btCollisionConfiguration* collisionConfiguration); -	virtual ~btCollisionWorld();+virtual ~btCollisionWorld(); -	void	setBroadphase(btBroadphaseInterface*	pairCache)-	{-		m_broadphasePairCache = pairCache;-	}+void setBroadphase(btBroadphaseInterface* pairCache)+{+m_broadphasePairCache = pairCache;+} -	const btBroadphaseInterface*	getBroadphase() const-	{-		return m_broadphasePairCache;-	}+const btBroadphaseInterface* getBroadphase() const+{+return m_broadphasePairCache;+} -	btBroadphaseInterface*	getBroadphase()-	{-		return m_broadphasePairCache;-	}+btBroadphaseInterface* getBroadphase()+{+return m_broadphasePairCache;+} -	btOverlappingPairCache*	getPairCache()-	{-		return m_broadphasePairCache->getOverlappingPairCache();-	}+btOverlappingPairCache* getPairCache()+{+return m_broadphasePairCache->getOverlappingPairCache();+}  -	btDispatcher*	getDispatcher()-	{-		return m_dispatcher1;-	}+btDispatcher* getDispatcher()+{+return m_dispatcher1;+} -	const btDispatcher*	getDispatcher() const-	{-		return m_dispatcher1;-	}+const btDispatcher* getDispatcher() const+{+return m_dispatcher1;+} -	void	updateSingleAabb(btCollisionObject* colObj);+void updateSingleAabb(btCollisionObject* colObj); -	virtual void	updateAabbs();-	-	virtual void	setDebugDrawer(btIDebugDraw*	debugDrawer)-	{-			m_debugDrawer = debugDrawer;-	}+virtual void updateAabbs(); -	virtual btIDebugDraw*	getDebugDrawer()-	{-		return m_debugDrawer;-	}+virtual void setDebugDrawer(btIDebugDraw* debugDrawer)+{+m_debugDrawer = debugDrawer;+} -	virtual void	debugDrawWorld();+virtual btIDebugDraw* getDebugDrawer()+{+return m_debugDrawer;+} -	virtual void debugDrawObject(const btTransform& worldTransform, const btCollisionShape* shape, const btVector3& color);+virtual void debugDrawWorld(); +virtual void debugDrawObject(const btTransform& worldTransform, const btCollisionShape* shape, const btVector3& color); -	///LocalShapeInfo gives extra information for complex shapes-	///Currently, only btTriangleMeshShape is available, so it just contains triangleIndex and subpart-	struct	LocalShapeInfo-	{-		int	m_shapePart;-		int	m_triangleIndex;-		-		//const btCollisionShape*	m_shapeTemp;-		//const btTransform*	m_shapeLocalTransform;-	}; -	struct	LocalRayResult-	{-		LocalRayResult(btCollisionObject*	collisionObject, -			LocalShapeInfo*	localShapeInfo,-			const btVector3&		hitNormalLocal,-			btScalar hitFraction)-		:m_collisionObject(collisionObject),-		m_localShapeInfo(localShapeInfo),-		m_hitNormalLocal(hitNormalLocal),-		m_hitFraction(hitFraction)-		{-		}+///LocalShapeInfo gives extra information for complex shapes+///Currently, only btTriangleMeshShape is available, so it just contains triangleIndex and subpart+struct LocalShapeInfo+{+int m_shapePart;+int m_triangleIndex; -		btCollisionObject*		m_collisionObject;-		LocalShapeInfo*			m_localShapeInfo;-		btVector3				m_hitNormalLocal;-		btScalar				m_hitFraction;+//const btCollisionShape* m_shapeTemp;+//const btTransform* m_shapeLocalTransform;+}; -	};+struct LocalRayResult+{+LocalRayResult(btCollisionObject* collisionObject,+LocalShapeInfo* localShapeInfo,+const btVector3& hitNormalLocal,+btScalar hitFraction)+:m_collisionObject(collisionObject),+m_localShapeInfo(localShapeInfo),+m_hitNormalLocal(hitNormalLocal),+m_hitFraction(hitFraction)+{+} -	///RayResultCallback is used to report new raycast results-	struct	RayResultCallback-	{-		btScalar	m_closestHitFraction;-		btCollisionObject*		m_collisionObject;-		short int	m_collisionFilterGroup;-		short int	m_collisionFilterMask;-      //@BP Mod - Custom flags, currently used to enable backface culling on tri-meshes, see btRaycastCallback-      unsigned int m_flags;+btCollisionObject* m_collisionObject;+LocalShapeInfo* m_localShapeInfo;+btVector3 m_hitNormalLocal;+btScalar m_hitFraction; -		virtual ~RayResultCallback()-		{-		}-		bool	hasHit() const-		{-			return (m_collisionObject != 0);-		}+}; -		RayResultCallback()-			:m_closestHitFraction(btScalar(1.)),-			m_collisionObject(0),-			m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),-			m_collisionFilterMask(btBroadphaseProxy::AllFilter),-         //@BP Mod-         m_flags(0)-		{-		}+///RayResultCallback is used to report new raycast results+struct RayResultCallback+{+btScalar m_closestHitFraction;+btCollisionObject* m_collisionObject;+short int m_collisionFilterGroup;+short int m_collisionFilterMask;+//@BP Mod - Custom flags, currently used to enable backface culling on tri-meshes, see btRaycastCallback+unsigned int m_flags; -		virtual bool needsCollision(btBroadphaseProxy* proxy0) const-		{-			bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;-			collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);-			return collides;-		}+virtual ~RayResultCallback()+{+}+bool hasHit() const+{+return (m_collisionObject != 0);+} +RayResultCallback()+:m_closestHitFraction(btScalar(1.)),+m_collisionObject(0),+m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),+m_collisionFilterMask(btBroadphaseProxy::AllFilter),+//@BP Mod+m_flags(0)+{+} -		virtual	btScalar	addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace) = 0;-	};+virtual bool needsCollision(btBroadphaseProxy* proxy0) const+{+bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;+collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);+return collides;+} -	struct	ClosestRayResultCallback : public RayResultCallback-	{-		ClosestRayResultCallback(const btVector3&	rayFromWorld,const btVector3&	rayToWorld)-		:m_rayFromWorld(rayFromWorld),-		m_rayToWorld(rayToWorld)-		{-		} -		btVector3	m_rayFromWorld;//used to calculate hitPointWorld from hitFraction-		btVector3	m_rayToWorld;+virtual btScalar addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace) = 0;+}; -		btVector3	m_hitNormalWorld;-		btVector3	m_hitPointWorld;-			-		virtual	btScalar	addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace)-		{-			//caller already does the filter on the m_closestHitFraction-			btAssert(rayResult.m_hitFraction <= m_closestHitFraction);-			-			m_closestHitFraction = rayResult.m_hitFraction;-			m_collisionObject = rayResult.m_collisionObject;-			if (normalInWorldSpace)-			{-				m_hitNormalWorld = rayResult.m_hitNormalLocal;-			} else-			{-				///need to transform normal into worldspace-				m_hitNormalWorld = m_collisionObject->getWorldTransform().getBasis()*rayResult.m_hitNormalLocal;-			}-			m_hitPointWorld.setInterpolate3(m_rayFromWorld,m_rayToWorld,rayResult.m_hitFraction);-			return rayResult.m_hitFraction;-		}-	};+struct ClosestRayResultCallback : public RayResultCallback+{+ClosestRayResultCallback(const btVector3& rayFromWorld,const btVector3& rayToWorld)+:m_rayFromWorld(rayFromWorld),+m_rayToWorld(rayToWorld)+{+} -	struct	AllHitsRayResultCallback : public RayResultCallback-	{-		AllHitsRayResultCallback(const btVector3&	rayFromWorld,const btVector3&	rayToWorld)-		:m_rayFromWorld(rayFromWorld),-		m_rayToWorld(rayToWorld)-		{-		}+btVector3 m_rayFromWorld;//used to calculate hitPointWorld from hitFraction+btVector3 m_rayToWorld; -		btAlignedObjectArray<btCollisionObject*>		m_collisionObjects;+btVector3 m_hitNormalWorld;+btVector3 m_hitPointWorld; -		btVector3	m_rayFromWorld;//used to calculate hitPointWorld from hitFraction-		btVector3	m_rayToWorld;+virtual btScalar addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace)+{+//caller already does the filter on the m_closestHitFraction+btAssert(rayResult.m_hitFraction <= m_closestHitFraction); -		btAlignedObjectArray<btVector3>	m_hitNormalWorld;-		btAlignedObjectArray<btVector3>	m_hitPointWorld;-		btAlignedObjectArray<btScalar> m_hitFractions;-			-		virtual	btScalar	addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace)-		{-			m_collisionObject = rayResult.m_collisionObject;-			m_collisionObjects.push_back(rayResult.m_collisionObject);-			btVector3 hitNormalWorld;-			if (normalInWorldSpace)-			{-				hitNormalWorld = rayResult.m_hitNormalLocal;-			} else-			{-				///need to transform normal into worldspace-				hitNormalWorld = m_collisionObject->getWorldTransform().getBasis()*rayResult.m_hitNormalLocal;-			}-			m_hitNormalWorld.push_back(hitNormalWorld);-			btVector3 hitPointWorld;-			hitPointWorld.setInterpolate3(m_rayFromWorld,m_rayToWorld,rayResult.m_hitFraction);-			m_hitPointWorld.push_back(hitPointWorld);-			m_hitFractions.push_back(rayResult.m_hitFraction);-			return m_closestHitFraction;-		}-	};+m_closestHitFraction = rayResult.m_hitFraction;+m_collisionObject = rayResult.m_collisionObject;+if (normalInWorldSpace)+{+m_hitNormalWorld = rayResult.m_hitNormalLocal;+} else+{+///need to transform normal into worldspace+m_hitNormalWorld = m_collisionObject->getWorldTransform().getBasis()*rayResult.m_hitNormalLocal;+}+m_hitPointWorld.setInterpolate3(m_rayFromWorld,m_rayToWorld,rayResult.m_hitFraction);+return rayResult.m_hitFraction;+}+}; +struct AllHitsRayResultCallback : public RayResultCallback+{+AllHitsRayResultCallback(const btVector3& rayFromWorld,const btVector3& rayToWorld)+:m_rayFromWorld(rayFromWorld),+m_rayToWorld(rayToWorld)+{+} -	struct LocalConvexResult-	{-		LocalConvexResult(btCollisionObject*	hitCollisionObject, -			LocalShapeInfo*	localShapeInfo,-			const btVector3&		hitNormalLocal,-			const btVector3&		hitPointLocal,-			btScalar hitFraction-			)-		:m_hitCollisionObject(hitCollisionObject),-		m_localShapeInfo(localShapeInfo),-		m_hitNormalLocal(hitNormalLocal),-		m_hitPointLocal(hitPointLocal),-		m_hitFraction(hitFraction)-		{-		}+btAlignedObjectArray<btCollisionObject*> m_collisionObjects; -		btCollisionObject*		m_hitCollisionObject;-		LocalShapeInfo*			m_localShapeInfo;-		btVector3				m_hitNormalLocal;-		btVector3				m_hitPointLocal;-		btScalar				m_hitFraction;-	};+btVector3 m_rayFromWorld;//used to calculate hitPointWorld from hitFraction+btVector3 m_rayToWorld; -	///RayResultCallback is used to report new raycast results-	struct	ConvexResultCallback-	{-		btScalar	m_closestHitFraction;-		short int	m_collisionFilterGroup;-		short int	m_collisionFilterMask;-		-		ConvexResultCallback()-			:m_closestHitFraction(btScalar(1.)),-			m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),-			m_collisionFilterMask(btBroadphaseProxy::AllFilter)-		{-		}+btAlignedObjectArray<btVector3> m_hitNormalWorld;+btAlignedObjectArray<btVector3> m_hitPointWorld;+btAlignedObjectArray<btScalar> m_hitFractions; -		virtual ~ConvexResultCallback()-		{-		}-		-		bool	hasHit() const-		{-			return (m_closestHitFraction < btScalar(1.));-		}+virtual btScalar addSingleResult(LocalRayResult& rayResult,bool normalInWorldSpace)+{+m_collisionObject = rayResult.m_collisionObject;+m_collisionObjects.push_back(rayResult.m_collisionObject);+btVector3 hitNormalWorld;+if (normalInWorldSpace)+{+hitNormalWorld = rayResult.m_hitNormalLocal;+} else+{+///need to transform normal into worldspace+hitNormalWorld = m_collisionObject->getWorldTransform().getBasis()*rayResult.m_hitNormalLocal;+}+m_hitNormalWorld.push_back(hitNormalWorld);+btVector3 hitPointWorld;+hitPointWorld.setInterpolate3(m_rayFromWorld,m_rayToWorld,rayResult.m_hitFraction);+m_hitPointWorld.push_back(hitPointWorld);+m_hitFractions.push_back(rayResult.m_hitFraction);+return m_closestHitFraction;+}+}; -		 -		virtual bool needsCollision(btBroadphaseProxy* proxy0) const-		{-			bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;-			collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);-			return collides;-		}+struct LocalConvexResult+{+LocalConvexResult(btCollisionObject* hitCollisionObject,+LocalShapeInfo* localShapeInfo,+const btVector3& hitNormalLocal,+const btVector3& hitPointLocal,+btScalar hitFraction+)+:m_hitCollisionObject(hitCollisionObject),+m_localShapeInfo(localShapeInfo),+m_hitNormalLocal(hitNormalLocal),+m_hitPointLocal(hitPointLocal),+m_hitFraction(hitFraction)+{+} -		virtual	btScalar	addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace) = 0;-	};+btCollisionObject* m_hitCollisionObject;+LocalShapeInfo* m_localShapeInfo;+btVector3 m_hitNormalLocal;+btVector3 m_hitPointLocal;+btScalar m_hitFraction;+}; -	struct	ClosestConvexResultCallback : public ConvexResultCallback-	{-		ClosestConvexResultCallback(const btVector3&	convexFromWorld,const btVector3&	convexToWorld)-		:m_convexFromWorld(convexFromWorld),-		m_convexToWorld(convexToWorld),-		m_hitCollisionObject(0)-		{-		}+///RayResultCallback is used to report new raycast results+struct ConvexResultCallback+{+btScalar m_closestHitFraction;+short int m_collisionFilterGroup;+short int m_collisionFilterMask; -		btVector3	m_convexFromWorld;//used to calculate hitPointWorld from hitFraction-		btVector3	m_convexToWorld;+ConvexResultCallback()+:m_closestHitFraction(btScalar(1.)),+m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),+m_collisionFilterMask(btBroadphaseProxy::AllFilter)+{+} -		btVector3	m_hitNormalWorld;-		btVector3	m_hitPointWorld;-		btCollisionObject*	m_hitCollisionObject;-		-		virtual	btScalar	addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace)-		{+virtual ~ConvexResultCallback()+{+}++bool hasHit() const+{+return (m_closestHitFraction < btScalar(1.));+}++++virtual bool needsCollision(btBroadphaseProxy* proxy0) const+{+bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;+collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);+return collides;+}++virtual btScalar addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace) = 0;+};++struct ClosestConvexResultCallback : public ConvexResultCallback+{+ClosestConvexResultCallback(const btVector3& convexFromWorld,const btVector3& convexToWorld)+:m_convexFromWorld(convexFromWorld),+m_convexToWorld(convexToWorld),+m_hitCollisionObject(0)+{+}++btVector3 m_convexFromWorld;//used to calculate hitPointWorld from hitFraction+btVector3 m_convexToWorld;++btVector3 m_hitNormalWorld;+btVector3 m_hitPointWorld;+btCollisionObject* m_hitCollisionObject;++virtual btScalar addSingleResult(LocalConvexResult& convexResult,bool normalInWorldSpace)+{ //caller already does the filter on the m_closestHitFraction-			btAssert(convexResult.m_hitFraction <= m_closestHitFraction);-						-			m_closestHitFraction = convexResult.m_hitFraction;-			m_hitCollisionObject = convexResult.m_hitCollisionObject;-			if (normalInWorldSpace)-			{-				m_hitNormalWorld = convexResult.m_hitNormalLocal;-			} else-			{-				///need to transform normal into worldspace-				m_hitNormalWorld = m_hitCollisionObject->getWorldTransform().getBasis()*convexResult.m_hitNormalLocal;-			}-			m_hitPointWorld = convexResult.m_hitPointLocal;-			return convexResult.m_hitFraction;-		}-	};+btAssert(convexResult.m_hitFraction <= m_closestHitFraction); -	///ContactResultCallback is used to report contact points-	struct	ContactResultCallback-	{-		short int	m_collisionFilterGroup;-		short int	m_collisionFilterMask;-		-		ContactResultCallback()-			:m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),-			m_collisionFilterMask(btBroadphaseProxy::AllFilter)-		{-		}+m_closestHitFraction = convexResult.m_hitFraction;+m_hitCollisionObject = convexResult.m_hitCollisionObject;+if (normalInWorldSpace)+{+m_hitNormalWorld = convexResult.m_hitNormalLocal;+} else+{+///need to transform normal into worldspace+m_hitNormalWorld = m_hitCollisionObject->getWorldTransform().getBasis()*convexResult.m_hitNormalLocal;+}+m_hitPointWorld = convexResult.m_hitPointLocal;+return convexResult.m_hitFraction;+}+}; -		virtual ~ContactResultCallback()-		{-		}-		-		virtual bool needsCollision(btBroadphaseProxy* proxy0) const-		{-			bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;-			collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);-			return collides;-		}+///ContactResultCallback is used to report contact points+struct ContactResultCallback+{+short int m_collisionFilterGroup;+short int m_collisionFilterMask; -		virtual	btScalar	addSingleResult(btManifoldPoint& cp,	const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1) = 0;-	};+ContactResultCallback()+:m_collisionFilterGroup(btBroadphaseProxy::DefaultFilter),+m_collisionFilterMask(btBroadphaseProxy::AllFilter)+{+} +virtual ~ContactResultCallback()+{+} +virtual bool needsCollision(btBroadphaseProxy* proxy0) const+{+bool collides = (proxy0->m_collisionFilterGroup & m_collisionFilterMask) != 0;+collides = collides && (m_collisionFilterGroup & proxy0->m_collisionFilterMask);+return collides;+} -	int	getNumCollisionObjects() const-	{-		return int(m_collisionObjects.size());-	}+virtual btScalar addSingleResult(btManifoldPoint& cp, const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1) = 0;+}; -	/// rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback-	/// This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.-	virtual void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const;  -	/// convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback-	/// This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback.-	void    convexSweepTest (const btConvexShape* castShape, const btTransform& from, const btTransform& to, ConvexResultCallback& resultCallback,  btScalar allowedCcdPenetration = btScalar(0.)) const; -	///contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback.-	///it reports one or more contact points for every overlapping object (including the one with deepest penetration)-	void	contactTest(btCollisionObject* colObj, ContactResultCallback& resultCallback);+int getNumCollisionObjects() const+{+return int(m_collisionObjects.size());+} -	///contactTest performs a discrete collision test between two collision objects and calls the resultCallback if overlap if detected.-	///it reports one or more contact points (including the one with deepest penetration)-	void	contactPairTest(btCollisionObject* colObjA, btCollisionObject* colObjB, ContactResultCallback& resultCallback);+/// rayTest performs a raycast on all objects in the btCollisionWorld, and calls the resultCallback+/// This allows for several queries: first hit, all hits, any hit, dependent on the value returned by the callback.+virtual void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const; +/// convexTest performs a swept convex cast on all objects in the btCollisionWorld, and calls the resultCallback+/// This allows for several queries: first hit, all hits, any hit, dependent on the value return by the callback.+void convexSweepTest (const btConvexShape* castShape, const btTransform& from, const btTransform& to, ConvexResultCallback& resultCallback, btScalar allowedCcdPenetration = btScalar(0.)) const; -	/// rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest.-	/// In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape.-	/// This allows more customization.-	static void	rayTestSingle(const btTransform& rayFromTrans,const btTransform& rayToTrans,-					  btCollisionObject* collisionObject,-					  const btCollisionShape* collisionShape,-					  const btTransform& colObjWorldTransform,-					  RayResultCallback& resultCallback);+///contactTest performs a discrete collision test between colObj against all objects in the btCollisionWorld, and calls the resultCallback.+///it reports one or more contact points for every overlapping object (including the one with deepest penetration)+void contactTest(btCollisionObject* colObj, ContactResultCallback& resultCallback); -	/// objectQuerySingle performs a collision detection query and calls the resultCallback. It is used internally by rayTest.-	static void	objectQuerySingle(const btConvexShape* castShape, const btTransform& rayFromTrans,const btTransform& rayToTrans,-					  btCollisionObject* collisionObject,-					  const btCollisionShape* collisionShape,-					  const btTransform& colObjWorldTransform,-					  ConvexResultCallback& resultCallback, btScalar	allowedPenetration);+///contactTest performs a discrete collision test between two collision objects and calls the resultCallback if overlap if detected.+///it reports one or more contact points (including the one with deepest penetration)+void contactPairTest(btCollisionObject* colObjA, btCollisionObject* colObjB, ContactResultCallback& resultCallback); -	virtual void	addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter); -	btCollisionObjectArray& getCollisionObjectArray()-	{-		return m_collisionObjects;-	}+/// rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest.+/// In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape.+/// This allows more customization.+static void rayTestSingle(const btTransform& rayFromTrans,const btTransform& rayToTrans,+btCollisionObject* collisionObject,+const btCollisionShape* collisionShape,+const btTransform& colObjWorldTransform,+RayResultCallback& resultCallback); -	const btCollisionObjectArray& getCollisionObjectArray() const-	{-		return m_collisionObjects;-	}+/// objectQuerySingle performs a collision detection query and calls the resultCallback. It is used internally by rayTest.+static void objectQuerySingle(const btConvexShape* castShape, const btTransform& rayFromTrans,const btTransform& rayToTrans,+btCollisionObject* collisionObject,+const btCollisionShape* collisionShape,+const btTransform& colObjWorldTransform,+ConvexResultCallback& resultCallback, btScalar allowedPenetration); +virtual void addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter); -	virtual void	removeCollisionObject(btCollisionObject* collisionObject);+btCollisionObjectArray& getCollisionObjectArray()+{+return m_collisionObjects;+} -	virtual void	performDiscreteCollisionDetection();+const btCollisionObjectArray& getCollisionObjectArray() const+{+return m_collisionObjects;+} -	btDispatcherInfo& getDispatchInfo()-	{-		return m_dispatchInfo;-	} -	const btDispatcherInfo& getDispatchInfo() const-	{-		return m_dispatchInfo;-	}-	-	bool	getForceUpdateAllAabbs() const-	{-		return m_forceUpdateAllAabbs;-	}-	void setForceUpdateAllAabbs( bool forceUpdateAllAabbs)-	{-		m_forceUpdateAllAabbs = forceUpdateAllAabbs;-	}+virtual void removeCollisionObject(btCollisionObject* collisionObject); -	///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (Bullet/Demos/SerializeDemo)-	virtual	void	serialize(btSerializer* serializer);+virtual void performDiscreteCollisionDetection();++btDispatcherInfo& getDispatchInfo()+{+return m_dispatchInfo;+}++const btDispatcherInfo& getDispatchInfo() const+{+return m_dispatchInfo;+}++bool getForceUpdateAllAabbs() const+{+return m_forceUpdateAllAabbs;+}+void setForceUpdateAllAabbs( bool forceUpdateAllAabbs)+{+m_forceUpdateAllAabbs = forceUpdateAllAabbs;+}++///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (Bullet/Demos/SerializeDemo)+virtual void serialize(btSerializer* serializer);  }; 
bullet/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,58 +28,58 @@ class btDispatcher; class btCollisionObject; -/// btCompoundCollisionAlgorithm  supports collision between CompoundCollisionShapes and other collision shapes-class btCompoundCollisionAlgorithm  : public btActivatingCollisionAlgorithm-{-	btAlignedObjectArray<btCollisionAlgorithm*> m_childCollisionAlgorithms;-	bool m_isSwapped;+/// btCompoundCollisionAlgorithm supports collision between CompoundCollisionShapes and other collision shapes+class btCompoundCollisionAlgorithm : public btActivatingCollisionAlgorithm+{ private:+btAlignedObjectArray<btCollisionAlgorithm*> m_childCollisionAlgorithms;+bool m_isSwapped; -	class btPersistentManifold*	m_sharedManifold;-	bool					m_ownsManifold;+class btPersistentManifold* m_sharedManifold;+bool m_ownsManifold; -	int	m_compoundShapeRevision;//to keep track of changes, so that childAlgorithm array can be updated-	-	void	removeChildAlgorithms();-	-	void	preallocateChildAlgorithms(btCollisionObject* body0,btCollisionObject* body1);+int m_compoundShapeRevision;//to keep track of changes, so that childAlgorithm array can be updated +void removeChildAlgorithms();++void preallocateChildAlgorithms(btCollisionObject* body0,btCollisionObject* body1);+ public: -	btCompoundCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped);+btCompoundCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped); -	virtual ~btCompoundCollisionAlgorithm();+virtual ~btCompoundCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btScalar	calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		int i;-		for (i=0;i<m_childCollisionAlgorithms.size();i++)-		{-			if (m_childCollisionAlgorithms[i])-				m_childCollisionAlgorithms[i]->getAllContactManifolds(manifoldArray);-		}-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+int i;+for (i=0;i<m_childCollisionAlgorithms.size();i++)+{+if (m_childCollisionAlgorithms[i])+m_childCollisionAlgorithms[i]->getAllContactManifolds(manifoldArray);+}+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btCompoundCollisionAlgorithm));-			return new(mem) btCompoundCollisionAlgorithm(ci,body0,body1,false);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btCompoundCollisionAlgorithm));+return new(mem) btCompoundCollisionAlgorithm(ci,body0,body1,false);+}+}; -	struct SwappedCreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btCompoundCollisionAlgorithm));-			return new(mem) btCompoundCollisionAlgorithm(ci,body0,body1,true);-		}-	};+struct SwappedCreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btCompoundCollisionAlgorithm));+return new(mem) btCompoundCollisionAlgorithm(ci,body0,body1,true);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -31,63 +31,63 @@ ///The convex2dConvex2dAlgorithm collision algorithm support 2d collision detection for btConvex2dShape ///Currently it requires the btMinkowskiPenetrationDepthSolver, it has support for 2d penetration depth computation class btConvex2dConvex2dAlgorithm : public btActivatingCollisionAlgorithm-{-	btSimplexSolverInterface*		m_simplexSolver;-	btConvexPenetrationDepthSolver* m_pdSolver;+{ private:+btSimplexSolverInterface* m_simplexSolver;+btConvexPenetrationDepthSolver* m_pdSolver; -	-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	bool			m_lowLevelOfDetail;-	-	int m_numPerturbationIterations;-	int m_minimumPointsPerturbationThreshold; +bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+bool m_lowLevelOfDetail;++int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold;+ public: -	btConvex2dConvex2dAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1, btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold);+btConvex2dConvex2dAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1, btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold);  -	virtual ~btConvex2dConvex2dAlgorithm();+virtual ~btConvex2dConvex2dAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		///should we use m_ownManifold to avoid adding duplicates?-		if (m_manifoldPtr && m_ownManifold)-			manifoldArray.push_back(m_manifoldPtr);-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+///should we use m_ownManifold to avoid adding duplicates?+if (m_manifoldPtr && m_ownManifold)+manifoldArray.push_back(m_manifoldPtr);+}  -	void	setLowLevelOfDetail(bool useLowLevel);+void setLowLevelOfDetail(bool useLowLevel);  -	const btPersistentManifold*	getManifold()-	{-		return m_manifoldPtr;-	}+const btPersistentManifold* getManifold()+{+return m_manifoldPtr;+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{ -		btConvexPenetrationDepthSolver*		m_pdSolver;-		btSimplexSolverInterface*			m_simplexSolver;-		int m_numPerturbationIterations;-		int m_minimumPointsPerturbationThreshold;+btConvexPenetrationDepthSolver* m_pdSolver;+btSimplexSolverInterface* m_simplexSolver;+int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold; -		CreateFunc(btSimplexSolverInterface*			simplexSolver, btConvexPenetrationDepthSolver* pdSolver);-		-		virtual ~CreateFunc();+CreateFunc(btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver); -		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvex2dConvex2dAlgorithm));-			return new(mem) btConvex2dConvex2dAlgorithm(ci.m_manifold,ci,body0,body1,m_simplexSolver,m_pdSolver,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);-		}-	};+virtual ~CreateFunc();++virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvex2dConvex2dAlgorithm));+return new(mem) btConvex2dConvex2dAlgorithm(ci.m_manifold,ci,body0,body1,m_simplexSolver,m_pdSolver,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);+}+};   };
bullet/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -27,89 +27,89 @@  ///For each triangle in the concave mesh that overlaps with the AABB of a convex (m_convexProxy), processTriangle is called. class btConvexTriangleCallback : public btTriangleCallback-{-	btCollisionObject* m_convexBody;-	btCollisionObject* m_triBody;+{ private:+btCollisionObject* m_convexBody;+btCollisionObject* m_triBody; -	btVector3	m_aabbMin;-	btVector3	m_aabbMax ;+btVector3 m_aabbMin;+btVector3 m_aabbMax ;  -	btManifoldResult* m_resultOut;-	btDispatcher*	m_dispatcher;-	const btDispatcherInfo* m_dispatchInfoPtr;-	btScalar m_collisionMarginTriangle;-	+btManifoldResult* m_resultOut;+btDispatcher* m_dispatcher;+const btDispatcherInfo* m_dispatchInfoPtr;+btScalar m_collisionMarginTriangle;+ public:-int	m_triangleCount;-	-	btPersistentManifold*	m_manifoldPtr;+int m_triangleCount; -	btConvexTriangleCallback(btDispatcher* dispatcher,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped);+btPersistentManifold* m_manifoldPtr; -	void	setTimeStepAndCounters(btScalar collisionMarginTriangle,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btConvexTriangleCallback(btDispatcher* dispatcher,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped); -	virtual ~btConvexTriangleCallback();+void setTimeStepAndCounters(btScalar collisionMarginTriangle,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);-	-	void clearCache();+virtual ~btConvexTriangleCallback(); -	SIMD_FORCE_INLINE const btVector3& getAabbMin() const-	{-		return m_aabbMin;-	}-	SIMD_FORCE_INLINE const btVector3& getAabbMax() const-	{-		return m_aabbMax;-	}+virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); +void clearCache();++SIMD_FORCE_INLINE const btVector3& getAabbMin() const+{+return m_aabbMin;+}+SIMD_FORCE_INLINE const btVector3& getAabbMax() const+{+return m_aabbMax;+}+ };    -/// btConvexConcaveCollisionAlgorithm  supports collision between convex shapes and (concave) trianges meshes.-class btConvexConcaveCollisionAlgorithm  : public btActivatingCollisionAlgorithm-{+/// btConvexConcaveCollisionAlgorithm supports collision between convex shapes and (concave) trianges meshes.+class btConvexConcaveCollisionAlgorithm : public btActivatingCollisionAlgorithm+{ private: -	bool	m_isSwapped;+bool m_isSwapped; -	btConvexTriangleCallback m_btConvexTriangleCallback;+btConvexTriangleCallback m_btConvexTriangleCallback;    public: -	btConvexConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped);+btConvexConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped); -	virtual ~btConvexConcaveCollisionAlgorithm();+virtual ~btConvexConcaveCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btScalar	calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray);-	-	void	clearCache();+virtual void getAllContactManifolds(btManifoldArray& manifoldArray); -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConcaveCollisionAlgorithm));-			return new(mem) btConvexConcaveCollisionAlgorithm(ci,body0,body1,false);-		}-	};+void clearCache(); -	struct SwappedCreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConcaveCollisionAlgorithm));-			return new(mem) btConvexConcaveCollisionAlgorithm(ci,body0,body1,true);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConcaveCollisionAlgorithm));+return new(mem) btConvexConcaveCollisionAlgorithm(ci,body0,body1,false);+}+};++struct SwappedCreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConcaveCollisionAlgorithm));+return new(mem) btConvexConcaveCollisionAlgorithm(ci,body0,body1,true);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -38,70 +38,70 @@ ///Multiple contact points are calculated by perturbing the orientation of the smallest object orthogonal to the separating normal. ///This idea was described by Gino van den Bergen in this forum topic http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=288&p=888#p888 class btConvexConvexAlgorithm : public btActivatingCollisionAlgorithm-{+{ private: #ifdef USE_SEPDISTANCE_UTIL2-	btConvexSeparatingDistanceUtil	m_sepDistance;+btConvexSeparatingDistanceUtil m_sepDistance; #endif-	btSimplexSolverInterface*		m_simplexSolver;-	btConvexPenetrationDepthSolver* m_pdSolver;+btSimplexSolverInterface* m_simplexSolver;+btConvexPenetrationDepthSolver* m_pdSolver; -	-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	bool			m_lowLevelOfDetail;-	-	int m_numPerturbationIterations;-	int m_minimumPointsPerturbationThreshold; +bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+bool m_lowLevelOfDetail; -	///cache separating vector to speedup collision detection-	+int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold; ++///cache separating vector to speedup collision detection++ public: -	btConvexConvexAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1, btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold);+btConvexConvexAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1, btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver, int numPerturbationIterations, int minimumPointsPerturbationThreshold);  -	virtual ~btConvexConvexAlgorithm();+virtual ~btConvexConvexAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		///should we use m_ownManifold to avoid adding duplicates?-		if (m_manifoldPtr && m_ownManifold)-			manifoldArray.push_back(m_manifoldPtr);-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+///should we use m_ownManifold to avoid adding duplicates?+if (m_manifoldPtr && m_ownManifold)+manifoldArray.push_back(m_manifoldPtr);+}  -	void	setLowLevelOfDetail(bool useLowLevel);+void setLowLevelOfDetail(bool useLowLevel);  -	const btPersistentManifold*	getManifold()-	{-		return m_manifoldPtr;-	}+const btPersistentManifold* getManifold()+{+return m_manifoldPtr;+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{ -		btConvexPenetrationDepthSolver*		m_pdSolver;-		btSimplexSolverInterface*			m_simplexSolver;-		int m_numPerturbationIterations;-		int m_minimumPointsPerturbationThreshold;+btConvexPenetrationDepthSolver* m_pdSolver;+btSimplexSolverInterface* m_simplexSolver;+int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold; -		CreateFunc(btSimplexSolverInterface*			simplexSolver, btConvexPenetrationDepthSolver* pdSolver);-		-		virtual ~CreateFunc();+CreateFunc(btSimplexSolverInterface* simplexSolver, btConvexPenetrationDepthSolver* pdSolver); -		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConvexAlgorithm));-			return new(mem) btConvexConvexAlgorithm(ci.m_manifold,ci,body0,body1,m_simplexSolver,m_pdSolver,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);-		}-	};+virtual ~CreateFunc();++virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexConvexAlgorithm));+return new(mem) btConvexConvexAlgorithm(ci.m_manifold,ci,body0,body1,m_simplexSolver,m_pdSolver,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);+}+};   };
bullet/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -24,59 +24,59 @@  #include "LinearMath/btVector3.h" -/// btSphereBoxCollisionAlgorithm  provides sphere-box collision detection.+/// btSphereBoxCollisionAlgorithm provides sphere-box collision detection. /// Other features are frame-coherency (persistent data) and collision response. class btConvexPlaneCollisionAlgorithm : public btCollisionAlgorithm-{-	bool		m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	bool		m_isSwapped;-	int			m_numPerturbationIterations;-	int			m_minimumPointsPerturbationThreshold;+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+bool m_isSwapped;+int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold;  public: -	btConvexPlaneCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped, int numPerturbationIterations,int minimumPointsPerturbationThreshold);+btConvexPlaneCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped, int numPerturbationIterations,int minimumPointsPerturbationThreshold); -	virtual ~btConvexPlaneCollisionAlgorithm();+virtual ~btConvexPlaneCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	void collideSingleContact (const btQuaternion& perturbeRot, btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+void collideSingleContact (const btQuaternion& perturbeRot, btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		int	m_numPerturbationIterations;-		int m_minimumPointsPerturbationThreshold;-			-		CreateFunc() -			: m_numPerturbationIterations(1),-			m_minimumPointsPerturbationThreshold(1)-		{-		}-		-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexPlaneCollisionAlgorithm));-			if (!m_swapped)-			{-				return new(mem) btConvexPlaneCollisionAlgorithm(0,ci,body0,body1,false,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);-			} else-			{-				return new(mem) btConvexPlaneCollisionAlgorithm(0,ci,body0,body1,true,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);-			}-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+int m_numPerturbationIterations;+int m_minimumPointsPerturbationThreshold;++CreateFunc()+: m_numPerturbationIterations(1),+m_minimumPointsPerturbationThreshold(0)+{+}++virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btConvexPlaneCollisionAlgorithm));+if (!m_swapped)+{+return new(mem) btConvexPlaneCollisionAlgorithm(0,ci,body0,body1,false,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);+} else+{+return new(mem) btConvexPlaneCollisionAlgorithm(0,ci,body0,body1,true,m_numPerturbationIterations,m_minimumPointsPerturbationThreshold);+}+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,28 +20,28 @@ class btVoronoiSimplexSolver; class btConvexPenetrationDepthSolver; -struct	btDefaultCollisionConstructionInfo+struct btDefaultCollisionConstructionInfo {-	btStackAlloc*		m_stackAlloc;-	btPoolAllocator*	m_persistentManifoldPool;-	btPoolAllocator*	m_collisionAlgorithmPool;-	int					m_defaultMaxPersistentManifoldPoolSize;-	int					m_defaultMaxCollisionAlgorithmPoolSize;-	int					m_customCollisionAlgorithmMaxElementSize;-	int					m_defaultStackAllocatorSize;-	int					m_useEpaPenetrationAlgorithm;+btStackAlloc* m_stackAlloc;+btPoolAllocator* m_persistentManifoldPool;+btPoolAllocator* m_collisionAlgorithmPool;+int m_defaultMaxPersistentManifoldPoolSize;+int m_defaultMaxCollisionAlgorithmPoolSize;+int m_customCollisionAlgorithmMaxElementSize;+int m_defaultStackAllocatorSize;+int m_useEpaPenetrationAlgorithm; -	btDefaultCollisionConstructionInfo()-		:m_stackAlloc(0),-		m_persistentManifoldPool(0),-		m_collisionAlgorithmPool(0),-		m_defaultMaxPersistentManifoldPoolSize(4096),-		m_defaultMaxCollisionAlgorithmPoolSize(4096),-		m_customCollisionAlgorithmMaxElementSize(0),-		m_defaultStackAllocatorSize(0),-		m_useEpaPenetrationAlgorithm(true)-	{-	}+btDefaultCollisionConstructionInfo()+:m_stackAlloc(0),+m_persistentManifoldPool(0),+m_collisionAlgorithmPool(0),+m_defaultMaxPersistentManifoldPoolSize(4096),+m_defaultMaxCollisionAlgorithmPoolSize(4096),+m_customCollisionAlgorithmMaxElementSize(0),+m_defaultStackAllocatorSize(0),+m_useEpaPenetrationAlgorithm(true)+{+} };  @@ -49,85 +49,87 @@ ///btCollisionConfiguration allows to configure Bullet collision detection ///stack allocator, pool memory allocators ///@todo: describe the meaning-class	btDefaultCollisionConfiguration : public btCollisionConfiguration-{+class btDefaultCollisionConfiguration : public btCollisionConfiguration+{ private:  protected: -	int	m_persistentManifoldPoolSize;-	-	btStackAlloc*	m_stackAlloc;-	bool	m_ownsStackAllocator;+int m_persistentManifoldPoolSize; -	btPoolAllocator*	m_persistentManifoldPool;-	bool	m_ownsPersistentManifoldPool;+btStackAlloc* m_stackAlloc;+bool m_ownsStackAllocator; +btPoolAllocator* m_persistentManifoldPool;+bool m_ownsPersistentManifoldPool; -	btPoolAllocator*	m_collisionAlgorithmPool;-	bool	m_ownsCollisionAlgorithmPool; -	//default simplex/penetration depth solvers-	btVoronoiSimplexSolver*	m_simplexSolver;-	btConvexPenetrationDepthSolver*	m_pdSolver;-	-	//default CreationFunctions, filling the m_doubleDispatch table-	btCollisionAlgorithmCreateFunc*	m_convexConvexCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_convexConcaveCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_swappedConvexConcaveCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_compoundCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_swappedCompoundCreateFunc;-	btCollisionAlgorithmCreateFunc* m_emptyCreateFunc;-	btCollisionAlgorithmCreateFunc* m_sphereSphereCF;+btPoolAllocator* m_collisionAlgorithmPool;+bool m_ownsCollisionAlgorithmPool;++//default simplex/penetration depth solvers+btVoronoiSimplexSolver* m_simplexSolver;+btConvexPenetrationDepthSolver* m_pdSolver;++//default CreationFunctions, filling the m_doubleDispatch table+btCollisionAlgorithmCreateFunc* m_convexConvexCreateFunc;+btCollisionAlgorithmCreateFunc* m_convexConcaveCreateFunc;+btCollisionAlgorithmCreateFunc* m_swappedConvexConcaveCreateFunc;+btCollisionAlgorithmCreateFunc* m_compoundCreateFunc;+btCollisionAlgorithmCreateFunc* m_swappedCompoundCreateFunc;+btCollisionAlgorithmCreateFunc* m_emptyCreateFunc;+btCollisionAlgorithmCreateFunc* m_sphereSphereCF; #ifdef USE_BUGGY_SPHERE_BOX_ALGORITHM-	btCollisionAlgorithmCreateFunc* m_sphereBoxCF;-	btCollisionAlgorithmCreateFunc* m_boxSphereCF;+btCollisionAlgorithmCreateFunc* m_sphereBoxCF;+btCollisionAlgorithmCreateFunc* m_boxSphereCF; #endif //USE_BUGGY_SPHERE_BOX_ALGORITHM -	btCollisionAlgorithmCreateFunc* m_boxBoxCF;-	btCollisionAlgorithmCreateFunc*	m_sphereTriangleCF;-	btCollisionAlgorithmCreateFunc*	m_triangleSphereCF;-	btCollisionAlgorithmCreateFunc*	m_planeConvexCF;-	btCollisionAlgorithmCreateFunc*	m_convexPlaneCF;-	+btCollisionAlgorithmCreateFunc* m_boxBoxCF;+btCollisionAlgorithmCreateFunc* m_sphereTriangleCF;+btCollisionAlgorithmCreateFunc* m_triangleSphereCF;+btCollisionAlgorithmCreateFunc* m_planeConvexCF;+btCollisionAlgorithmCreateFunc* m_convexPlaneCF;+ public:  -	btDefaultCollisionConfiguration(const btDefaultCollisionConstructionInfo& constructionInfo = btDefaultCollisionConstructionInfo());+btDefaultCollisionConfiguration(const btDefaultCollisionConstructionInfo& constructionInfo = btDefaultCollisionConstructionInfo()); -	virtual ~btDefaultCollisionConfiguration();+virtual ~btDefaultCollisionConfiguration(); -		///memory pools-	virtual btPoolAllocator* getPersistentManifoldPool()-	{-		return m_persistentManifoldPool;-	}+///memory pools+virtual btPoolAllocator* getPersistentManifoldPool()+{+return m_persistentManifoldPool;+} -	virtual btPoolAllocator* getCollisionAlgorithmPool()-	{-		return m_collisionAlgorithmPool;-	}+virtual btPoolAllocator* getCollisionAlgorithmPool()+{+return m_collisionAlgorithmPool;+} -	virtual btStackAlloc*	getStackAllocator()-	{-		return m_stackAlloc;-	}+virtual btStackAlloc* getStackAllocator()+{+return m_stackAlloc;+} -	virtual	btVoronoiSimplexSolver*	getSimplexSolver()-	{-		return m_simplexSolver;-	}+virtual btVoronoiSimplexSolver* getSimplexSolver()+{+return m_simplexSolver;+}  -	virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1);+virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1); -	///Use this method to allow to generate multiple contact points between at once, between two objects using the generic convex-convex algorithm.-	///By default, this feature is disabled for best performance.-	///@param numPerturbationIterations controls the number of collision queries. Set it to zero to disable the feature.-	///@param minimumPointsPerturbationThreshold is the minimum number of points in the contact cache, above which the feature is disabled-	///3 is a good value for both params, if you want to enable the feature. This is because the default contact cache contains a maximum of 4 points, and one collision query at the unperturbed orientation is performed first.-	///See Bullet/Demos/CollisionDemo for an example how this feature gathers multiple points.-	///@todo we could add a per-object setting of those parameters, for level-of-detail collision detection.-	void	setConvexConvexMultipointIterations(int numPerturbationIterations=3, int minimumPointsPerturbationThreshold = 3);+///Use this method to allow to generate multiple contact points between at once, between two objects using the generic convex-convex algorithm.+///By default, this feature is disabled for best performance.+///@param numPerturbationIterations controls the number of collision queries. Set it to zero to disable the feature.+///@param minimumPointsPerturbationThreshold is the minimum number of points in the contact cache, above which the feature is disabled+///3 is a good value for both params, if you want to enable the feature. This is because the default contact cache contains a maximum of 4 points, and one collision query at the unperturbed orientation is performed first.+///See Bullet/Demos/CollisionDemo for an example how this feature gathers multiple points.+///@todo we could add a per-object setting of those parameters, for level-of-detail collision detection.+void setConvexConvexMultipointIterations(int numPerturbationIterations=3, int minimumPointsPerturbationThreshold = 3);++void setPlaneConvexMultipointIterations(int numPerturbationIterations=3, int minimumPointsPerturbationThreshold = 3);  }; 
bullet/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,30 +24,30 @@ ///EmptyAlgorithm is a stub for unsupported collision pairs. ///The dispatcher can dispatch a persistent btEmptyAlgorithm to avoid a search every frame. class btEmptyAlgorithm : public btCollisionAlgorithm-{+{ private:  public:-	-	btEmptyAlgorithm(const btCollisionAlgorithmConstructionInfo& ci); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btEmptyAlgorithm(const btCollisionAlgorithmConstructionInfo& ci); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-	}+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			(void)body0;-			(void)body1;-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btEmptyAlgorithm));-			return new(mem) btEmptyAlgorithm(ci);-		}-	};+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+}++struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+(void)body0;+(void)body1;+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btEmptyAlgorithm));+return new(mem) btEmptyAlgorithm(ci);+}+};  } ATTRIBUTE_ALIGNED(16); 
bullet/BulletCollision/CollisionDispatch/btGhostObject.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -32,89 +32,89 @@ ///This is useful for creating a character controller, collision sensors/triggers, explosions etc. ///We plan on adding rayTest and other queries for the btGhostObject ATTRIBUTE_ALIGNED16(class) btGhostObject : public btCollisionObject-{+{ private: protected: -	btAlignedObjectArray<btCollisionObject*> m_overlappingObjects;+btAlignedObjectArray<btCollisionObject*> m_overlappingObjects;  public: -	btGhostObject();+btGhostObject(); -	virtual ~btGhostObject();+virtual ~btGhostObject(); -	void	convexSweepTest(const class btConvexShape* castShape, const btTransform& convexFromWorld, const btTransform& convexToWorld, btCollisionWorld::ConvexResultCallback& resultCallback, btScalar allowedCcdPenetration = 0.f) const;+void convexSweepTest(const class btConvexShape* castShape, const btTransform& convexFromWorld, const btTransform& convexToWorld, btCollisionWorld::ConvexResultCallback& resultCallback, btScalar allowedCcdPenetration = 0.f) const; -	void	rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, btCollisionWorld::RayResultCallback& resultCallback) const; +void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, btCollisionWorld::RayResultCallback& resultCallback) const; -	///this method is mainly for expert/internal use only.-	virtual void	addOverlappingObjectInternal(btBroadphaseProxy* otherProxy, btBroadphaseProxy* thisProxy=0);-	///this method is mainly for expert/internal use only.-	virtual void	removeOverlappingObjectInternal(btBroadphaseProxy* otherProxy,btDispatcher* dispatcher,btBroadphaseProxy* thisProxy=0);+///this method is mainly for expert/internal use only.+virtual void addOverlappingObjectInternal(btBroadphaseProxy* otherProxy, btBroadphaseProxy* thisProxy=0);+///this method is mainly for expert/internal use only.+virtual void removeOverlappingObjectInternal(btBroadphaseProxy* otherProxy,btDispatcher* dispatcher,btBroadphaseProxy* thisProxy=0); -	int	getNumOverlappingObjects() const-	{-		return m_overlappingObjects.size();-	}+int getNumOverlappingObjects() const+{+return m_overlappingObjects.size();+} -	btCollisionObject*	getOverlappingObject(int index)-	{-		return m_overlappingObjects[index];-	}+btCollisionObject* getOverlappingObject(int index)+{+return m_overlappingObjects[index];+} -	const btCollisionObject*	getOverlappingObject(int index) const-	{-		return m_overlappingObjects[index];-	}+const btCollisionObject* getOverlappingObject(int index) const+{+return m_overlappingObjects[index];+} -	btAlignedObjectArray<btCollisionObject*>&	getOverlappingPairs()-	{-		return m_overlappingObjects;-	}+btAlignedObjectArray<btCollisionObject*>& getOverlappingPairs()+{+return m_overlappingObjects;+} -	const btAlignedObjectArray<btCollisionObject*>	getOverlappingPairs() const-	{-		return m_overlappingObjects;-	}+const btAlignedObjectArray<btCollisionObject*> getOverlappingPairs() const+{+return m_overlappingObjects;+} -	//-	// internal cast-	//+//+// internal cast+// -	static const btGhostObject*	upcast(const btCollisionObject* colObj)-	{-		if (colObj->getInternalType()==CO_GHOST_OBJECT)-			return (const btGhostObject*)colObj;-		return 0;-	}-	static btGhostObject*			upcast(btCollisionObject* colObj)-	{-		if (colObj->getInternalType()==CO_GHOST_OBJECT)-			return (btGhostObject*)colObj;-		return 0;-	}+static const btGhostObject* upcast(const btCollisionObject* colObj)+{+if (colObj->getInternalType()==CO_GHOST_OBJECT)+return (const btGhostObject*)colObj;+return 0;+}+static btGhostObject* upcast(btCollisionObject* colObj)+{+if (colObj->getInternalType()==CO_GHOST_OBJECT)+return (btGhostObject*)colObj;+return 0;+}  }; -class	btPairCachingGhostObject : public btGhostObject-{-	btHashedOverlappingPairCache*	m_hashPairCache;+class btPairCachingGhostObject : public btGhostObject+{ private:+btHashedOverlappingPairCache* m_hashPairCache;  public: -	btPairCachingGhostObject();+btPairCachingGhostObject(); -	virtual ~btPairCachingGhostObject();+virtual ~btPairCachingGhostObject(); -	///this method is mainly for expert/internal use only.-	virtual void	addOverlappingObjectInternal(btBroadphaseProxy* otherProxy, btBroadphaseProxy* thisProxy=0);+///this method is mainly for expert/internal use only.+virtual void addOverlappingObjectInternal(btBroadphaseProxy* otherProxy, btBroadphaseProxy* thisProxy=0); -	virtual void	removeOverlappingObjectInternal(btBroadphaseProxy* otherProxy,btDispatcher* dispatcher,btBroadphaseProxy* thisProxy=0);+virtual void removeOverlappingObjectInternal(btBroadphaseProxy* otherProxy,btDispatcher* dispatcher,btBroadphaseProxy* thisProxy=0); -	btHashedOverlappingPairCache*	getOverlappingPairCache()-	{-		return m_hashPairCache;-	}+btHashedOverlappingPairCache* getOverlappingPairCache()+{+return m_hashPairCache;+}  }; @@ -122,52 +122,52 @@  ///The btGhostPairCallback interfaces and forwards adding and removal of overlapping pairs from the btBroadphaseInterface to btGhostObject. class btGhostPairCallback : public btOverlappingPairCallback-{-	+{ private:+ public:-	btGhostPairCallback()-	{-	}+btGhostPairCallback()+{+} -	virtual ~btGhostPairCallback()-	{-		-	}+virtual ~btGhostPairCallback()+{ -	virtual btBroadphasePair*	addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)-	{-		btCollisionObject* colObj0 = (btCollisionObject*) proxy0->m_clientObject;-		btCollisionObject* colObj1 = (btCollisionObject*) proxy1->m_clientObject;-		btGhostObject* ghost0 = 		btGhostObject::upcast(colObj0);-		btGhostObject* ghost1 = 		btGhostObject::upcast(colObj1);-		if (ghost0)-			ghost0->addOverlappingObjectInternal(proxy1, proxy0);-		if (ghost1)-			ghost1->addOverlappingObjectInternal(proxy0, proxy1);-		return 0;-	}+} -	virtual void*	removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher)-	{-		btCollisionObject* colObj0 = (btCollisionObject*) proxy0->m_clientObject;-		btCollisionObject* colObj1 = (btCollisionObject*) proxy1->m_clientObject;-		btGhostObject* ghost0 = 		btGhostObject::upcast(colObj0);-		btGhostObject* ghost1 = 		btGhostObject::upcast(colObj1);-		if (ghost0)-			ghost0->removeOverlappingObjectInternal(proxy1,dispatcher,proxy0);-		if (ghost1)-			ghost1->removeOverlappingObjectInternal(proxy0,dispatcher,proxy1);-		return 0;-	}+virtual btBroadphasePair* addOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1)+{+btCollisionObject* colObj0 = (btCollisionObject*) proxy0->m_clientObject;+btCollisionObject* colObj1 = (btCollisionObject*) proxy1->m_clientObject;+btGhostObject* ghost0 = btGhostObject::upcast(colObj0);+btGhostObject* ghost1 = btGhostObject::upcast(colObj1);+if (ghost0)+ghost0->addOverlappingObjectInternal(proxy1, proxy0);+if (ghost1)+ghost1->addOverlappingObjectInternal(proxy0, proxy1);+return 0;+} -	virtual void	removeOverlappingPairsContainingProxy(btBroadphaseProxy* /*proxy0*/,btDispatcher* /*dispatcher*/)-	{-		btAssert(0);-		//need to keep track of all ghost objects and call them here-		//m_hashPairCache->removeOverlappingPairsContainingProxy(proxy0,dispatcher);-	}+virtual void* removeOverlappingPair(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1,btDispatcher* dispatcher)+{+btCollisionObject* colObj0 = (btCollisionObject*) proxy0->m_clientObject;+btCollisionObject* colObj1 = (btCollisionObject*) proxy1->m_clientObject;+btGhostObject* ghost0 = btGhostObject::upcast(colObj0);+btGhostObject* ghost1 = btGhostObject::upcast(colObj1);+if (ghost0)+ghost0->removeOverlappingObjectInternal(proxy1,dispatcher,proxy0);+if (ghost1)+ghost1->removeOverlappingObjectInternal(proxy0,dispatcher,proxy1);+return 0;+} -	+virtual void removeOverlappingPairsContainingProxy(btBroadphaseProxy* /*proxy0*/,btDispatcher* /*dispatcher*/)+{+btAssert(0);+//need to keep track of all ghost objects and call them here+//m_hashPairCache->removeOverlappingPairsContainingProxy(proxy0,dispatcher);+}++  }; 
bullet/BulletCollision/CollisionDispatch/btInternalEdgeUtility.h view
@@ -19,26 +19,26 @@  enum btInternalEdgeAdjustFlags {-	BT_TRIANGLE_CONVEX_BACKFACE_MODE = 1,-	BT_TRIANGLE_CONCAVE_DOUBLE_SIDED = 2, //double sided options are experimental, single sided is recommended-	BT_TRIANGLE_CONVEX_DOUBLE_SIDED = 4+BT_TRIANGLE_CONVEX_BACKFACE_MODE = 1,+BT_TRIANGLE_CONCAVE_DOUBLE_SIDED = 2, //double sided options are experimental, single sided is recommended+BT_TRIANGLE_CONVEX_DOUBLE_SIDED = 4 };   ///Call btGenerateInternalEdgeInfo to create triangle info, store in the shape 'userInfo'-void	btGenerateInternalEdgeInfo (btBvhTriangleMeshShape*trimeshShape, btTriangleInfoMap* triangleInfoMap);+void btGenerateInternalEdgeInfo (btBvhTriangleMeshShape*trimeshShape, btTriangleInfoMap* triangleInfoMap);   ///Call the btFixMeshNormal to adjust the collision normal, using the triangle info map (generated using btGenerateInternalEdgeInfo) ///If this info map is missing, or the triangle is not store in this map, nothing will be done-void	btAdjustInternalEdgeContacts(btManifoldPoint& cp, const btCollisionObject* trimeshColObj0,const btCollisionObject* otherColObj1, int partId0, int index0, int normalAdjustFlags = 0);+void btAdjustInternalEdgeContacts(btManifoldPoint& cp, const btCollisionObject* trimeshColObj0,const btCollisionObject* otherColObj1, int partId0, int index0, int normalAdjustFlags = 0);  ///Enable the BT_INTERNAL_EDGE_DEBUG_DRAW define and call btSetDebugDrawer, to get visual info to see if the internal edge utility works properly. ///If the utility doesn't work properly, you might have to adjust the threshold values in btTriangleInfoMap //#define BT_INTERNAL_EDGE_DEBUG_DRAW  #ifdef BT_INTERNAL_EDGE_DEBUG_DRAW-void	btSetDebugDrawer(btIDebugDraw* debugDrawer);+void btSetDebugDrawer(btIDebugDraw* debugDrawer); #endif //BT_INTERNAL_EDGE_DEBUG_DRAW  
bullet/BulletCollision/CollisionDispatch/btManifoldResult.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,104 +25,104 @@  #include "LinearMath/btTransform.h" -typedef bool (*ContactAddedCallback)(btManifoldPoint& cp,	const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1);-extern ContactAddedCallback		gContactAddedCallback;+typedef bool (*ContactAddedCallback)(btManifoldPoint& cp, const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1);+extern ContactAddedCallback gContactAddedCallback;  //#define DEBUG_PART_INDEX 1  -///btManifoldResult is a helper class to manage  contact results.+///btManifoldResult is a helper class to manage contact results. class btManifoldResult : public btDiscreteCollisionDetectorInterface::Result-{+{ private: protected: -	btPersistentManifold* m_manifoldPtr;+btPersistentManifold* m_manifoldPtr; -	//we need this for compounds-	btTransform	m_rootTransA;-	btTransform	m_rootTransB;+//we need this for compounds+btTransform m_rootTransA;+btTransform m_rootTransB; -	btCollisionObject* m_body0;-	btCollisionObject* m_body1;-	int	m_partId0;-	int m_partId1;-	int m_index0;-	int m_index1;-	+btCollisionObject* m_body0;+btCollisionObject* m_body1;+int m_partId0;+int m_partId1;+int m_index0;+int m_index1; + public: -	btManifoldResult()+btManifoldResult() #ifdef DEBUG_PART_INDEX-		:-	m_partId0(-1),-	m_partId1(-1),-	m_index0(-1),-	m_index1(-1)+:+m_partId0(-1),+m_partId1(-1),+m_index0(-1),+m_index1(-1) #endif //DEBUG_PART_INDEX-	{-	}+{+} -	btManifoldResult(btCollisionObject* body0,btCollisionObject* body1);+btManifoldResult(btCollisionObject* body0,btCollisionObject* body1); -	virtual ~btManifoldResult() {};+virtual ~btManifoldResult() {}; -	void	setPersistentManifold(btPersistentManifold* manifoldPtr)-	{-		m_manifoldPtr = manifoldPtr;-	}+void setPersistentManifold(btPersistentManifold* manifoldPtr)+{+m_manifoldPtr = manifoldPtr;+} -	const btPersistentManifold*	getPersistentManifold() const-	{-		return m_manifoldPtr;-	}-	btPersistentManifold*	getPersistentManifold()-	{-		return m_manifoldPtr;-	}+const btPersistentManifold* getPersistentManifold() const+{+return m_manifoldPtr;+}+btPersistentManifold* getPersistentManifold()+{+return m_manifoldPtr;+} -	virtual void setShapeIdentifiersA(int partId0,int index0)-	{-		m_partId0=partId0;-		m_index0=index0;-	}+virtual void setShapeIdentifiersA(int partId0,int index0)+{+m_partId0=partId0;+m_index0=index0;+} -	virtual void setShapeIdentifiersB(	int partId1,int index1)-	{-		m_partId1=partId1;-		m_index1=index1;-	}+virtual void setShapeIdentifiersB( int partId1,int index1)+{+m_partId1=partId1;+m_index1=index1;+}  -	virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth);+virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth); -	SIMD_FORCE_INLINE	void refreshContactPoints()-	{-		btAssert(m_manifoldPtr);-		if (!m_manifoldPtr->getNumContacts())-			return;+SIMD_FORCE_INLINE void refreshContactPoints()+{+btAssert(m_manifoldPtr);+if (!m_manifoldPtr->getNumContacts())+return; -		bool isSwapped = m_manifoldPtr->getBody0() != m_body0;+bool isSwapped = m_manifoldPtr->getBody0() != m_body0; -		if (isSwapped)-		{-			m_manifoldPtr->refreshContactPoints(m_rootTransB,m_rootTransA);-		} else-		{-			m_manifoldPtr->refreshContactPoints(m_rootTransA,m_rootTransB);-		}-	}+if (isSwapped)+{+m_manifoldPtr->refreshContactPoints(m_rootTransB,m_rootTransA);+} else+{+m_manifoldPtr->refreshContactPoints(m_rootTransA,m_rootTransB);+}+} -	const btCollisionObject* getBody0Internal() const-	{-		return m_body0;-	}+const btCollisionObject* getBody0Internal() const+{+return m_body0;+} -	const btCollisionObject* getBody1Internal() const-	{-		return m_body1;-	}-	+const btCollisionObject* getBody1Internal() const+{+return m_body1;+}+ };  #endif //BT_MANIFOLD_RESULT_H
bullet/BulletCollision/CollisionDispatch/btSimulationIslandManager.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,51 +29,51 @@  ///SimulationIslandManager creates and handles simulation islands, using btUnionFind class btSimulationIslandManager-{-	btUnionFind m_unionFind;+{ private:+btUnionFind m_unionFind; -	btAlignedObjectArray<btPersistentManifold*>  m_islandmanifold;-	btAlignedObjectArray<btCollisionObject* >  m_islandBodies;-	-	bool m_splitIslands;-	+btAlignedObjectArray<btPersistentManifold*> m_islandmanifold;+btAlignedObjectArray<btCollisionObject* > m_islandBodies;++bool m_splitIslands;+ public:-	btSimulationIslandManager();-	virtual ~btSimulationIslandManager();+btSimulationIslandManager();+virtual ~btSimulationIslandManager();  -	void initUnionFind(int n);	-	-		-	btUnionFind& getUnionFind() { return m_unionFind;}+void initUnionFind(int n); -	virtual	void	updateActivationState(btCollisionWorld* colWorld,btDispatcher* dispatcher);-	virtual	void	storeIslandActivationState(btCollisionWorld* world); +btUnionFind& getUnionFind() { return m_unionFind;} -	void	findUnions(btDispatcher* dispatcher,btCollisionWorld* colWorld);+virtual void updateActivationState(btCollisionWorld* colWorld,btDispatcher* dispatcher);+virtual void storeIslandActivationState(btCollisionWorld* world); -	 -	struct	IslandCallback-	{-		virtual ~IslandCallback() {};+void findUnions(btDispatcher* dispatcher,btCollisionWorld* colWorld); -		virtual	void	ProcessIsland(btCollisionObject** bodies,int numBodies,class btPersistentManifold**	manifolds,int numManifolds, int islandId) = 0;-	}; -	void	buildAndProcessIslands(btDispatcher* dispatcher,btCollisionWorld* collisionWorld, IslandCallback* callback); -	void buildIslands(btDispatcher* dispatcher,btCollisionWorld* colWorld);+struct IslandCallback+{+virtual ~IslandCallback() {}; -	bool getSplitIslands()-	{-		return m_splitIslands;-	}-	void setSplitIslands(bool doSplitIslands)-	{-		m_splitIslands = doSplitIslands;-	}+virtual void ProcessIsland(btCollisionObject** bodies,int numBodies,class btPersistentManifold** manifolds,int numManifolds, int islandId) = 0;+};++void buildAndProcessIslands(btDispatcher* dispatcher,btCollisionWorld* collisionWorld, IslandCallback* callback);++void buildIslands(btDispatcher* dispatcher,btCollisionWorld* colWorld);++bool getSplitIslands()+{+return m_splitIslands;+}+void setSplitIslands(bool doSplitIslands)+{+m_splitIslands = doSplitIslands;+}  }; 
bullet/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,50 +24,50 @@  #include "LinearMath/btVector3.h" -/// btSphereBoxCollisionAlgorithm  provides sphere-box collision detection.+/// btSphereBoxCollisionAlgorithm provides sphere-box collision detection. /// Other features are frame-coherency (persistent data) and collision response. class btSphereBoxCollisionAlgorithm : public btActivatingCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	bool	m_isSwapped;-	+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+bool m_isSwapped;+ public: -	btSphereBoxCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped);+btSphereBoxCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped); -	virtual ~btSphereBoxCollisionAlgorithm();+virtual ~btSphereBoxCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+} -	btScalar getSphereDistance( btCollisionObject* boxObj,btVector3& v3PointOnBox, btVector3& v3PointOnSphere, const btVector3& v3SphereCenter, btScalar fRadius );+btScalar getSphereDistance( btCollisionObject* boxObj,btVector3& v3PointOnBox, btVector3& v3PointOnSphere, const btVector3& v3SphereCenter, btScalar fRadius ); -	btScalar getSpherePenetration( btCollisionObject* boxObj, btVector3& v3PointOnBox, btVector3& v3PointOnSphere, const btVector3& v3SphereCenter, btScalar fRadius, const btVector3& aabbMin, const btVector3& aabbMax);-	-	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereBoxCollisionAlgorithm));-			if (!m_swapped)-			{-				return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0,body1,false);-			} else-			{-				return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0,body1,true);-			}-		}-	};+btScalar getSpherePenetration( btCollisionObject* boxObj, btVector3& v3PointOnBox, btVector3& v3PointOnSphere, const btVector3& v3SphereCenter, btScalar fRadius, const btVector3& aabbMin, const btVector3& aabbMax);++struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereBoxCollisionAlgorithm));+if (!m_swapped)+{+return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0,body1,false);+} else+{+return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0,body1,true);+}+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,42 +23,42 @@  class btPersistentManifold; -/// btSphereSphereCollisionAlgorithm  provides sphere-sphere collision detection.+/// btSphereSphereCollisionAlgorithm provides sphere-sphere collision detection. /// Other features are frame-coherency (persistent data) and collision response. /// Also provides the most basic sample for custom/user btCollisionAlgorithm class btSphereSphereCollisionAlgorithm : public btActivatingCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+ public:-	btSphereSphereCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+btSphereSphereCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); -	btSphereSphereCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)-		: btActivatingCollisionAlgorithm(ci) {}+btSphereSphereCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)+: btActivatingCollisionAlgorithm(ci) {} -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}-	-	virtual ~btSphereSphereCollisionAlgorithm();+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereSphereCollisionAlgorithm));-			return new(mem) btSphereSphereCollisionAlgorithm(0,ci,body0,body1);-		}-	};+virtual ~btSphereSphereCollisionAlgorithm();++struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereSphereCollisionAlgorithm));+return new(mem) btSphereSphereCollisionAlgorithm(0,ci,body0,body1);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,46 +22,46 @@ class btPersistentManifold; #include "btCollisionDispatcher.h" -/// btSphereSphereCollisionAlgorithm  provides sphere-sphere collision detection.+/// btSphereSphereCollisionAlgorithm provides sphere-sphere collision detection. /// Other features are frame-coherency (persistent data) and collision response. /// Also provides the most basic sample for custom/user btCollisionAlgorithm class btSphereTriangleCollisionAlgorithm : public btActivatingCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;-	bool	m_swapped;-	+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr;+bool m_swapped;+ public:-	btSphereTriangleCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool swapped);+btSphereTriangleCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool swapped); -	btSphereTriangleCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)-		: btActivatingCollisionAlgorithm(ci) {}+btSphereTriangleCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)+: btActivatingCollisionAlgorithm(ci) {} -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-		{-			manifoldArray.push_back(m_manifoldPtr);-		}-	}-	-	virtual ~btSphereTriangleCollisionAlgorithm();+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+{+manifoldArray.push_back(m_manifoldPtr);+}+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereTriangleCollisionAlgorithm));+virtual ~btSphereTriangleCollisionAlgorithm(); -			return new(mem) btSphereTriangleCollisionAlgorithm(ci.m_manifold,ci,body0,body1,m_swapped);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{++virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{++void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSphereTriangleCollisionAlgorithm));++return new(mem) btSphereTriangleCollisionAlgorithm(ci.m_manifold,ci,body0,body1,m_swapped);+}+};  }; 
bullet/BulletCollision/CollisionDispatch/btUnionFind.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,107 +23,107 @@ ///see for discussion of static island optimizations by Vroonsh here: http://code.google.com/p/bullet/issues/detail?id=406 #define STATIC_SIMULATION_ISLAND_OPTIMIZATION 1 -struct	btElement+struct btElement {-	int	m_id;-	int	m_sz;+int m_id;+int m_sz; };  ///UnionFind calculates connected subsets // Implements weighted Quick Union with path compression // optimization: could use short ints instead of ints (halving memory, would limit the number of rigid bodies to 64k, sounds reasonable) class btUnionFind-  {-    private:-		btAlignedObjectArray<btElement>	m_elements;+{ private:+private:+btAlignedObjectArray<btElement> m_elements; -    public:-	  -		btUnionFind();-		~btUnionFind();+public: -	-		//this is a special operation, destroying the content of btUnionFind.-		//it sorts the elements, based on island id, in order to make it easy to iterate over islands-		void	sortIslands();+btUnionFind();+~btUnionFind(); -	  void	reset(int N); -	  SIMD_FORCE_INLINE int	getNumElements() const-	  {-		  return int(m_elements.size());-	  }-	  SIMD_FORCE_INLINE bool  isRoot(int x) const-	  {-		  return (x == m_elements[x].m_id);-	  }+//this is a special operation, destroying the content of btUnionFind.+//it sorts the elements, based on island id, in order to make it easy to iterate over islands+void sortIslands(); -	  btElement&	getElement(int index)-	  {-		  return m_elements[index];-	  }-	  const btElement& getElement(int index) const-	  {-		  return m_elements[index];-	  }-   -	  void	allocate(int N);-	  void	Free();+void reset(int N); +SIMD_FORCE_INLINE int getNumElements() const+{+return int(m_elements.size());+}+SIMD_FORCE_INLINE bool isRoot(int x) const+{+return (x == m_elements[x].m_id);+} +btElement& getElement(int index)+{+return m_elements[index];+}+const btElement& getElement(int index) const+{+return m_elements[index];+} +void allocate(int N);+void Free(); -	  int find(int p, int q)-		{ -			return (find(p) == find(q)); -		} -		void unite(int p, int q)-		{-			int i = find(p), j = find(q);-			if (i == j) -				return; ++int find(int p, int q)+{+return (find(p) == find(q));+}++void unite(int p, int q)+{+int i = find(p), j = find(q);+if (i == j)+return;+ #ifndef USE_PATH_COMPRESSION-			//weighted quick union, this keeps the 'trees' balanced, and keeps performance of unite O( log(n) )-			if (m_elements[i].m_sz < m_elements[j].m_sz)-			{ -				m_elements[i].m_id = j; m_elements[j].m_sz += m_elements[i].m_sz; -			}-			else -			{ -				m_elements[j].m_id = i; m_elements[i].m_sz += m_elements[j].m_sz; -			}+//weighted quick union, this keeps the 'trees' balanced, and keeps performance of unite O( log(n) )+if (m_elements[i].m_sz < m_elements[j].m_sz)+{+m_elements[i].m_id = j; m_elements[j].m_sz += m_elements[i].m_sz;+}+else+{+m_elements[j].m_id = i; m_elements[i].m_sz += m_elements[j].m_sz;+} #else-			m_elements[i].m_id = j; m_elements[j].m_sz += m_elements[i].m_sz; +m_elements[i].m_id = j; m_elements[j].m_sz += m_elements[i].m_sz; #endif //USE_PATH_COMPRESSION-		}+} -		int find(int x)-		{ -			//btAssert(x < m_N);-			//btAssert(x >= 0);+int find(int x)+{+//btAssert(x < m_N);+//btAssert(x >= 0); -			while (x != m_elements[x].m_id) -			{-		//not really a reason not to use path compression, and it flattens the trees/improves find performance dramatically-	-		#ifdef USE_PATH_COMPRESSION-				const btElement* elementPtr = &m_elements[m_elements[x].m_id];-				m_elements[x].m_id = elementPtr->m_id;-				x = elementPtr->m_id;			-		#else//-				x = m_elements[x].m_id;-		#endif		-				//btAssert(x < m_N);-				//btAssert(x >= 0);+while (x != m_elements[x].m_id)+{+//not really a reason not to use path compression, and it flattens the trees/improves find performance dramatically -			}-			return x; -		}+#ifdef USE_PATH_COMPRESSION+const btElement* elementPtr = &m_elements[m_elements[x].m_id];+m_elements[x].m_id = elementPtr->m_id;+x = elementPtr->m_id;+#else//+x = m_elements[x].m_id;+#endif+//btAssert(x < m_N);+//btAssert(x >= 0); +}+return x;+} -  };++};   #endif //BT_UNION_FIND_H
bullet/BulletCollision/CollisionShapes/btBox2dShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,337 +24,343 @@  ///The btBox2dShape is a box primitive around the origin, its sides axis aligned with length specified by half extents, in local shape coordinates. When used as part of a btCollisionObject or btRigidBody it will be an oriented box in world space. class btBox2dShape: public btPolyhedralConvexShape-{+{ private: -	//btVector3	m_boxHalfExtents1; //use m_implicitShapeDimensions instead+//btVector3 m_boxHalfExtents1; //use m_implicitShapeDimensions instead -	btVector3 m_centroid;-	btVector3 m_vertices[4];-	btVector3 m_normals[4];+btVector3 m_centroid;+btVector3 m_vertices[4];+btVector3 m_normals[4];  public: -	btVector3 getHalfExtentsWithMargin() const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();-		btVector3 margin(getMargin(),getMargin(),getMargin());-		halfExtents += margin;-		return halfExtents;-	}-	-	const btVector3& getHalfExtentsWithoutMargin() const-	{-		return m_implicitShapeDimensions;//changed in Bullet 2.63: assume the scaling and margin are included-	}-	+btVector3 getHalfExtentsWithMargin() const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();+btVector3 margin(getMargin(),getMargin(),getMargin());+halfExtents += margin;+return halfExtents;+} -	virtual btVector3	localGetSupportingVertex(const btVector3& vec) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();-		btVector3 margin(getMargin(),getMargin(),getMargin());-		halfExtents += margin;-		-		return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-			btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-			btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));-	}+const btVector3& getHalfExtentsWithoutMargin() const+{+return m_implicitShapeDimensions;//changed in Bullet 2.63: assume the scaling and margin are included+} -	SIMD_FORCE_INLINE  btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const-	{-		const btVector3& halfExtents = getHalfExtentsWithoutMargin();-		-		return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-			btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-			btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));-	} -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const-	{-		const btVector3& halfExtents = getHalfExtentsWithoutMargin();-	-		for (int i=0;i<numVectors;i++)-		{-			const btVector3& vec = vectors[i];-			supportVerticesOut[i].setValue(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-				btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-				btFsels(vec.z(), halfExtents.z(), -halfExtents.z())); -		}+virtual btVector3 localGetSupportingVertex(const btVector3& vec) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();+btVector3 margin(getMargin(),getMargin(),getMargin());+halfExtents += margin; -	}+return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} +SIMD_FORCE_INLINE btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const+{+const btVector3& halfExtents = getHalfExtentsWithoutMargin(); -	btBox2dShape( const btVector3& boxHalfExtents) -		: btPolyhedralConvexShape(),-		m_centroid(0,0,0)-	{-		m_vertices[0].setValue(-boxHalfExtents.getX(),-boxHalfExtents.getY(),0);-		m_vertices[1].setValue(boxHalfExtents.getX(),-boxHalfExtents.getY(),0);-		m_vertices[2].setValue(boxHalfExtents.getX(),boxHalfExtents.getY(),0);-		m_vertices[3].setValue(-boxHalfExtents.getX(),boxHalfExtents.getY(),0);+return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} -		m_normals[0].setValue(0,-1,0);-		m_normals[1].setValue(1,0,0);-		m_normals[2].setValue(0,1,0);-		m_normals[3].setValue(-1,0,0);+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const+{+const btVector3& halfExtents = getHalfExtentsWithoutMargin(); -		m_shapeType = BOX_2D_SHAPE_PROXYTYPE;-		btVector3 margin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = (boxHalfExtents * m_localScaling) - margin;-	};+for (int i=0;i<numVectors;i++)+{+const btVector3& vec = vectors[i];+supportVerticesOut[i].setValue(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} -	virtual void setMargin(btScalar collisionMargin)-	{-		//correct the m_implicitShapeDimensions for the margin-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		-		btConvexInternalShape::setMargin(collisionMargin);-		btVector3 newMargin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;+} -	}-	virtual void	setLocalScaling(const btVector3& scaling)-	{-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling; -		btConvexInternalShape::setLocalScaling(scaling);+///a btBox2dShape is a flat 2D box in the X-Y plane (Z extents are zero)+btBox2dShape( const btVector3& boxHalfExtents)+: btPolyhedralConvexShape(),+m_centroid(0,0,0)+{+m_vertices[0].setValue(-boxHalfExtents.getX(),-boxHalfExtents.getY(),0);+m_vertices[1].setValue(boxHalfExtents.getX(),-boxHalfExtents.getY(),0);+m_vertices[2].setValue(boxHalfExtents.getX(),boxHalfExtents.getY(),0);+m_vertices[3].setValue(-boxHalfExtents.getX(),boxHalfExtents.getY(),0); -		m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin;+m_normals[0].setValue(0,-1,0);+m_normals[1].setValue(1,0,0);+m_normals[2].setValue(0,1,0);+m_normals[3].setValue(-1,0,0); -	}+btScalar minDimension = boxHalfExtents.getX();+if (minDimension>boxHalfExtents.getY())+minDimension = boxHalfExtents.getY();+setSafeMargin(minDimension); -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+m_shapeType = BOX_2D_SHAPE_PROXYTYPE;+btVector3 margin(getMargin(),getMargin(),getMargin());+m_implicitShapeDimensions = (boxHalfExtents * m_localScaling) - margin;+}; -	+virtual void setMargin(btScalar collisionMargin)+{+//correct the m_implicitShapeDimensions for the margin+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+btConvexInternalShape::setMargin(collisionMargin);+btVector3 newMargin(getMargin(),getMargin(),getMargin());+m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin; +}+virtual void setLocalScaling(const btVector3& scaling)+{+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;+btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling; +btConvexInternalShape::setLocalScaling(scaling); +m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin; +} -	int	getVertexCount() const-	{-		return 4;-	}+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual int getNumVertices()const-	{-		return 4;-	} -	const btVector3* getVertices() const-	{-		return &m_vertices[0];-	} -	const btVector3* getNormals() const-	{-		return &m_normals[0];-	}+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;     +int getVertexCount() const+{+return 4;+} +virtual int getNumVertices()const+{+return 4;+} -	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const-	{-		//this plane might not be aligned...-		btVector4 plane ;-		getPlaneEquation(plane,i);-		planeNormal = btVector3(plane.getX(),plane.getY(),plane.getZ());-		planeSupport = localGetSupportingVertex(-planeNormal);-	}+const btVector3* getVertices() const+{+return &m_vertices[0];+} +const btVector3* getNormals() const+{+return &m_normals[0];+} -	const btVector3& getCentroid() const-	{-		return m_centroid;-	}-	-	virtual int getNumPlanes() const-	{-		return 6;-	}	-	-	 -	virtual int getNumEdges() const-	{-		return 12;-	}  -	virtual void getVertex(int i,btVector3& vtx) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin(); -		vtx = btVector3(-				halfExtents.x() * (1-(i&1)) - halfExtents.x() * (i&1),-				halfExtents.y() * (1-((i&2)>>1)) - halfExtents.y() * ((i&2)>>1),-				halfExtents.z() * (1-((i&4)>>2)) - halfExtents.z() * ((i&4)>>2));-	}-	 -	virtual void	getPlaneEquation(btVector4& plane,int i) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin(); -		switch (i)-		{-		case 0:-			plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.),-halfExtents.x());-			break;-		case 1:-			plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.),-halfExtents.x());-			break;-		case 2:-			plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.),-halfExtents.y());-			break;-		case 3:-			plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.),-halfExtents.y());-			break;-		case 4:-			plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.),-halfExtents.z());-			break;-		case 5:-			plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.),-halfExtents.z());-			break;-		default:-			btAssert(0);-		}-	}+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const+{+//this plane might not be aligned...+btVector4 plane ;+getPlaneEquation(plane,i);+planeNormal = btVector3(plane.getX(),plane.getY(),plane.getZ());+planeSupport = localGetSupportingVertex(-planeNormal);+} -	-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const-	//virtual void getEdge(int i,Edge& edge) const-	{-		int edgeVert0 = 0;-		int edgeVert1 = 0; -		switch (i)-		{-		case 0:-				edgeVert0 = 0;-				edgeVert1 = 1;-			break;-		case 1:-				edgeVert0 = 0;-				edgeVert1 = 2;-			break;-		case 2:-			edgeVert0 = 1;-			edgeVert1 = 3;+const btVector3& getCentroid() const+{+return m_centroid;+} -			break;-		case 3:-			edgeVert0 = 2;-			edgeVert1 = 3;-			break;-		case 4:-			edgeVert0 = 0;-			edgeVert1 = 4;-			break;-		case 5:-			edgeVert0 = 1;-			edgeVert1 = 5;+virtual int getNumPlanes() const+{+return 6;+} -			break;-		case 6:-			edgeVert0 = 2;-			edgeVert1 = 6;-			break;-		case 7:-			edgeVert0 = 3;-			edgeVert1 = 7;-			break;-		case 8:-			edgeVert0 = 4;-			edgeVert1 = 5;-			break;-		case 9:-			edgeVert0 = 4;-			edgeVert1 = 6;-			break;-		case 10:-			edgeVert0 = 5;-			edgeVert1 = 7;-			break;-		case 11:-			edgeVert0 = 6;-			edgeVert1 = 7;-			break;-		default:-			btAssert(0); -		} -		getVertex(edgeVert0,pa );-		getVertex(edgeVert1,pb );-	}+virtual int getNumEdges() const+{+return 12;+}  +virtual void getVertex(int i,btVector3& vtx) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin(); +vtx = btVector3(+halfExtents.x() * (1-(i&1)) - halfExtents.x() * (i&1),+halfExtents.y() * (1-((i&2)>>1)) - halfExtents.y() * ((i&2)>>1),+halfExtents.z() * (1-((i&4)>>2)) - halfExtents.z() * ((i&4)>>2));+} -	-	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin(); -		//btScalar minDist = 2*tolerance;-		-		bool result =	(pt.x() <= (halfExtents.x()+tolerance)) &&-						(pt.x() >= (-halfExtents.x()-tolerance)) &&-						(pt.y() <= (halfExtents.y()+tolerance)) &&-						(pt.y() >= (-halfExtents.y()-tolerance)) &&-						(pt.z() <= (halfExtents.z()+tolerance)) &&-						(pt.z() >= (-halfExtents.z()-tolerance));-		-		return result;-	}+virtual void getPlaneEquation(btVector4& plane,int i) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin(); +switch (i)+{+case 0:+plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.),-halfExtents.x());+break;+case 1:+plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.),-halfExtents.x());+break;+case 2:+plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.),-halfExtents.y());+break;+case 3:+plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.),-halfExtents.y());+break;+case 4:+plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.),-halfExtents.z());+break;+case 5:+plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.),-halfExtents.z());+break;+default:+btAssert(0);+}+} -	//debugging-	virtual const char*	getName()const-	{-		return "Box2d";-	} -	virtual int		getNumPreferredPenetrationDirections() const-	{-		return 6;-	}-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const-	{-		switch (index)-		{-		case 0:-			penetrationVector.setValue(btScalar(1.),btScalar(0.),btScalar(0.));-			break;-		case 1:-			penetrationVector.setValue(btScalar(-1.),btScalar(0.),btScalar(0.));-			break;-		case 2:-			penetrationVector.setValue(btScalar(0.),btScalar(1.),btScalar(0.));-			break;-		case 3:-			penetrationVector.setValue(btScalar(0.),btScalar(-1.),btScalar(0.));-			break;-		case 4:-			penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(1.));-			break;-		case 5:-			penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(-1.));-			break;-		default:-			btAssert(0);-		}-	}+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const+//virtual void getEdge(int i,Edge& edge) const+{+int edgeVert0 = 0;+int edgeVert1 = 0;++switch (i)+{+case 0:+edgeVert0 = 0;+edgeVert1 = 1;+break;+case 1:+edgeVert0 = 0;+edgeVert1 = 2;+break;+case 2:+edgeVert0 = 1;+edgeVert1 = 3;++break;+case 3:+edgeVert0 = 2;+edgeVert1 = 3;+break;+case 4:+edgeVert0 = 0;+edgeVert1 = 4;+break;+case 5:+edgeVert0 = 1;+edgeVert1 = 5;++break;+case 6:+edgeVert0 = 2;+edgeVert1 = 6;+break;+case 7:+edgeVert0 = 3;+edgeVert1 = 7;+break;+case 8:+edgeVert0 = 4;+edgeVert1 = 5;+break;+case 9:+edgeVert0 = 4;+edgeVert1 = 6;+break;+case 10:+edgeVert0 = 5;+edgeVert1 = 7;+break;+case 11:+edgeVert0 = 6;+edgeVert1 = 7;+break;+default:+btAssert(0);++}++getVertex(edgeVert0,pa );+getVertex(edgeVert1,pb );+}++++++virtual bool isInside(const btVector3& pt,btScalar tolerance) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();++//btScalar minDist = 2*tolerance;++bool result = (pt.x() <= (halfExtents.x()+tolerance)) &&+(pt.x() >= (-halfExtents.x()-tolerance)) &&+(pt.y() <= (halfExtents.y()+tolerance)) &&+(pt.y() >= (-halfExtents.y()-tolerance)) &&+(pt.z() <= (halfExtents.z()+tolerance)) &&+(pt.z() >= (-halfExtents.z()-tolerance));++return result;+}+++//debugging+virtual const char* getName()const+{+return "Box2d";+}++virtual int getNumPreferredPenetrationDirections() const+{+return 6;+}++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const+{+switch (index)+{+case 0:+penetrationVector.setValue(btScalar(1.),btScalar(0.),btScalar(0.));+break;+case 1:+penetrationVector.setValue(btScalar(-1.),btScalar(0.),btScalar(0.));+break;+case 2:+penetrationVector.setValue(btScalar(0.),btScalar(1.),btScalar(0.));+break;+case 3:+penetrationVector.setValue(btScalar(0.),btScalar(-1.),btScalar(0.));+break;+case 4:+penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(1.));+break;+case 5:+penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(-1.));+break;+default:+btAssert(0);+}+}  }; 
bullet/BulletCollision/CollisionShapes/btBoxShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,291 +24,285 @@  ///The btBoxShape is a box primitive around the origin, its sides axis aligned with length specified by half extents, in local shape coordinates. When used as part of a btCollisionObject or btRigidBody it will be an oriented box in world space. class btBoxShape: public btPolyhedralConvexShape-{+{ private: -	//btVector3	m_boxHalfExtents1; //use m_implicitShapeDimensions instead+//btVector3 m_boxHalfExtents1; //use m_implicitShapeDimensions instead   public: -	btVector3 getHalfExtentsWithMargin() const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();-		btVector3 margin(getMargin(),getMargin(),getMargin());-		halfExtents += margin;-		return halfExtents;-	}-	-	const btVector3& getHalfExtentsWithoutMargin() const-	{-		return m_implicitShapeDimensions;//scaling is included, margin is not-	}-	+btVector3 getHalfExtentsWithMargin() const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();+btVector3 margin(getMargin(),getMargin(),getMargin());+halfExtents += margin;+return halfExtents;+} -	virtual btVector3	localGetSupportingVertex(const btVector3& vec) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();-		btVector3 margin(getMargin(),getMargin(),getMargin());-		halfExtents += margin;-		-		return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-			btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-			btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));-	}+const btVector3& getHalfExtentsWithoutMargin() const+{+return m_implicitShapeDimensions;//scaling is included, margin is not+} -	SIMD_FORCE_INLINE  btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const-	{-		const btVector3& halfExtents = getHalfExtentsWithoutMargin();-		-		return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-			btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-			btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));-	} -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const-	{-		const btVector3& halfExtents = getHalfExtentsWithoutMargin();-	-		for (int i=0;i<numVectors;i++)-		{-			const btVector3& vec = vectors[i];-			supportVerticesOut[i].setValue(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),-				btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),-				btFsels(vec.z(), halfExtents.z(), -halfExtents.z())); -		}+virtual btVector3 localGetSupportingVertex(const btVector3& vec) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();+btVector3 margin(getMargin(),getMargin(),getMargin());+halfExtents += margin; -	}+return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} +SIMD_FORCE_INLINE btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const+{+const btVector3& halfExtents = getHalfExtentsWithoutMargin(); -	btBoxShape( const btVector3& boxHalfExtents) -		: btPolyhedralConvexShape()-	{-		m_shapeType = BOX_SHAPE_PROXYTYPE;-		btVector3 margin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = (boxHalfExtents * m_localScaling) - margin;-	};+return btVector3(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} -	virtual void setMargin(btScalar collisionMargin)-	{-		//correct the m_implicitShapeDimensions for the margin-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		-		btConvexInternalShape::setMargin(collisionMargin);-		btVector3 newMargin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const+{+const btVector3& halfExtents = getHalfExtentsWithoutMargin(); -	}-	virtual void	setLocalScaling(const btVector3& scaling)-	{-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling;+for (int i=0;i<numVectors;i++)+{+const btVector3& vec = vectors[i];+supportVerticesOut[i].setValue(btFsels(vec.x(), halfExtents.x(), -halfExtents.x()),+btFsels(vec.y(), halfExtents.y(), -halfExtents.y()),+btFsels(vec.z(), halfExtents.z(), -halfExtents.z()));+} -		btConvexInternalShape::setLocalScaling(scaling);+} -		m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin; -	}+btBoxShape( const btVector3& boxHalfExtents); -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void setMargin(btScalar collisionMargin)+{+//correct the m_implicitShapeDimensions for the margin+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin; -	+btConvexInternalShape::setMargin(collisionMargin);+btVector3 newMargin(getMargin(),getMargin(),getMargin());+m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+}+virtual void setLocalScaling(const btVector3& scaling)+{+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;+btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling; -	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const-	{-		//this plane might not be aligned...-		btVector4 plane ;-		getPlaneEquation(plane,i);-		planeNormal = btVector3(plane.getX(),plane.getY(),plane.getZ());-		planeSupport = localGetSupportingVertex(-planeNormal);-	}+btConvexInternalShape::setLocalScaling(scaling); -	-	virtual int getNumPlanes() const-	{-		return 6;-	}	-	-	virtual int	getNumVertices() const -	{-		return 8;-	}+m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin; -	virtual int getNumEdges() const-	{-		return 12;-	}+} +virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void getVertex(int i,btVector3& vtx) const-	{-		btVector3 halfExtents = getHalfExtentsWithMargin(); -		vtx = btVector3(-				halfExtents.x() * (1-(i&1)) - halfExtents.x() * (i&1),-				halfExtents.y() * (1-((i&2)>>1)) - halfExtents.y() * ((i&2)>>1),-				halfExtents.z() * (1-((i&4)>>2)) - halfExtents.z() * ((i&4)>>2));-	}-	 -	virtual void	getPlaneEquation(btVector4& plane,int i) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -		switch (i)-		{-		case 0:-			plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.),-halfExtents.x());-			break;-		case 1:-			plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.),-halfExtents.x());-			break;-		case 2:-			plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.),-halfExtents.y());-			break;-		case 3:-			plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.),-halfExtents.y());-			break;-		case 4:-			plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.),-halfExtents.z());-			break;-		case 5:-			plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.),-halfExtents.z());-			break;-		default:-			btAssert(0);-		}-	}+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const+{+//this plane might not be aligned...+btVector4 plane ;+getPlaneEquation(plane,i);+planeNormal = btVector3(plane.getX(),plane.getY(),plane.getZ());+planeSupport = localGetSupportingVertex(-planeNormal);+} -	-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const-	//virtual void getEdge(int i,Edge& edge) const-	{-		int edgeVert0 = 0;-		int edgeVert1 = 0; -		switch (i)-		{-		case 0:-				edgeVert0 = 0;-				edgeVert1 = 1;-			break;-		case 1:-				edgeVert0 = 0;-				edgeVert1 = 2;-			break;-		case 2:-			edgeVert0 = 1;-			edgeVert1 = 3;+virtual int getNumPlanes() const+{+return 6;+} -			break;-		case 3:-			edgeVert0 = 2;-			edgeVert1 = 3;-			break;-		case 4:-			edgeVert0 = 0;-			edgeVert1 = 4;-			break;-		case 5:-			edgeVert0 = 1;-			edgeVert1 = 5;+virtual int getNumVertices() const+{+return 8;+} -			break;-		case 6:-			edgeVert0 = 2;-			edgeVert1 = 6;-			break;-		case 7:-			edgeVert0 = 3;-			edgeVert1 = 7;-			break;-		case 8:-			edgeVert0 = 4;-			edgeVert1 = 5;-			break;-		case 9:-			edgeVert0 = 4;-			edgeVert1 = 6;-			break;-		case 10:-			edgeVert0 = 5;-			edgeVert1 = 7;-			break;-		case 11:-			edgeVert0 = 6;-			edgeVert1 = 7;-			break;-		default:-			btAssert(0);+virtual int getNumEdges() const+{+return 12;+} -		} -		getVertex(edgeVert0,pa );-		getVertex(edgeVert1,pb );-	}+virtual void getVertex(int i,btVector3& vtx) const+{+btVector3 halfExtents = getHalfExtentsWithMargin(); +vtx = btVector3(+halfExtents.x() * (1-(i&1)) - halfExtents.x() * (i&1),+halfExtents.y() * (1-((i&2)>>1)) - halfExtents.y() * ((i&2)>>1),+halfExtents.z() * (1-((i&4)>>2)) - halfExtents.z() * ((i&4)>>2));+}  +virtual void getPlaneEquation(btVector4& plane,int i) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin(); -	-	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();+switch (i)+{+case 0:+plane.setValue(btScalar(1.),btScalar(0.),btScalar(0.),-halfExtents.x());+break;+case 1:+plane.setValue(btScalar(-1.),btScalar(0.),btScalar(0.),-halfExtents.x());+break;+case 2:+plane.setValue(btScalar(0.),btScalar(1.),btScalar(0.),-halfExtents.y());+break;+case 3:+plane.setValue(btScalar(0.),btScalar(-1.),btScalar(0.),-halfExtents.y());+break;+case 4:+plane.setValue(btScalar(0.),btScalar(0.),btScalar(1.),-halfExtents.z());+break;+case 5:+plane.setValue(btScalar(0.),btScalar(0.),btScalar(-1.),-halfExtents.z());+break;+default:+btAssert(0);+}+} -		//btScalar minDist = 2*tolerance;-		-		bool result =	(pt.x() <= (halfExtents.x()+tolerance)) &&-						(pt.x() >= (-halfExtents.x()-tolerance)) &&-						(pt.y() <= (halfExtents.y()+tolerance)) &&-						(pt.y() >= (-halfExtents.y()-tolerance)) &&-						(pt.z() <= (halfExtents.z()+tolerance)) &&-						(pt.z() >= (-halfExtents.z()-tolerance));-		-		return result;-	} +virtual void getEdge(int i,btVector3& pa,btVector3& pb) const+//virtual void getEdge(int i,Edge& edge) const+{+int edgeVert0 = 0;+int edgeVert1 = 0; -	//debugging-	virtual const char*	getName()const-	{-		return "Box";-	}+switch (i)+{+case 0:+edgeVert0 = 0;+edgeVert1 = 1;+break;+case 1:+edgeVert0 = 0;+edgeVert1 = 2;+break;+case 2:+edgeVert0 = 1;+edgeVert1 = 3; -	virtual int		getNumPreferredPenetrationDirections() const-	{-		return 6;-	}-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const-	{-		switch (index)-		{-		case 0:-			penetrationVector.setValue(btScalar(1.),btScalar(0.),btScalar(0.));-			break;-		case 1:-			penetrationVector.setValue(btScalar(-1.),btScalar(0.),btScalar(0.));-			break;-		case 2:-			penetrationVector.setValue(btScalar(0.),btScalar(1.),btScalar(0.));-			break;-		case 3:-			penetrationVector.setValue(btScalar(0.),btScalar(-1.),btScalar(0.));-			break;-		case 4:-			penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(1.));-			break;-		case 5:-			penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(-1.));-			break;-		default:-			btAssert(0);-		}-	}+break;+case 3:+edgeVert0 = 2;+edgeVert1 = 3;+break;+case 4:+edgeVert0 = 0;+edgeVert1 = 4;+break;+case 5:+edgeVert0 = 1;+edgeVert1 = 5;++break;+case 6:+edgeVert0 = 2;+edgeVert1 = 6;+break;+case 7:+edgeVert0 = 3;+edgeVert1 = 7;+break;+case 8:+edgeVert0 = 4;+edgeVert1 = 5;+break;+case 9:+edgeVert0 = 4;+edgeVert1 = 6;+break;+case 10:+edgeVert0 = 5;+edgeVert1 = 7;+break;+case 11:+edgeVert0 = 6;+edgeVert1 = 7;+break;+default:+btAssert(0);++}++getVertex(edgeVert0,pa );+getVertex(edgeVert1,pb );+}++++++virtual bool isInside(const btVector3& pt,btScalar tolerance) const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();++//btScalar minDist = 2*tolerance;++bool result = (pt.x() <= (halfExtents.x()+tolerance)) &&+(pt.x() >= (-halfExtents.x()-tolerance)) &&+(pt.y() <= (halfExtents.y()+tolerance)) &&+(pt.y() >= (-halfExtents.y()-tolerance)) &&+(pt.z() <= (halfExtents.z()+tolerance)) &&+(pt.z() >= (-halfExtents.z()-tolerance));++return result;+}+++//debugging+virtual const char* getName()const+{+return "Box";+}++virtual int getNumPreferredPenetrationDirections() const+{+return 6;+}++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const+{+switch (index)+{+case 0:+penetrationVector.setValue(btScalar(1.),btScalar(0.),btScalar(0.));+break;+case 1:+penetrationVector.setValue(btScalar(-1.),btScalar(0.),btScalar(0.));+break;+case 2:+penetrationVector.setValue(btScalar(0.),btScalar(1.),btScalar(0.));+break;+case 3:+penetrationVector.setValue(btScalar(0.),btScalar(-1.),btScalar(0.));+break;+case 4:+penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(1.));+break;+case 5:+penetrationVector.setValue(btScalar(0.),btScalar(0.),btScalar(-1.));+break;+default:+btAssert(0);+}+}  }; 
bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,112 +26,112 @@ ///Instead of building the bounding volume hierarchy acceleration structure, it is also possible to serialize (save) and deserialize (load) the structure from disk. ///See Demos\ConcaveDemo\ConcavePhysicsDemo.cpp for an example. ATTRIBUTE_ALIGNED16(class) btBvhTriangleMeshShape : public btTriangleMeshShape-{+{ private: -	btOptimizedBvh*	m_bvh;-	btTriangleInfoMap*	m_triangleInfoMap;+btOptimizedBvh* m_bvh;+btTriangleInfoMap* m_triangleInfoMap; -	bool m_useQuantizedAabbCompression;-	bool m_ownsBvh;-	bool m_pad[11];////need padding due to alignment+bool m_useQuantizedAabbCompression;+bool m_ownsBvh;+bool m_pad[11];////need padding due to alignment  public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	-	btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression, bool buildBvh = true); -	///optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb-	btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression,const btVector3& bvhAabbMin,const btVector3& bvhAabbMax, bool buildBvh = true);-	-	virtual ~btBvhTriangleMeshShape();+btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression, bool buildBvh = true); -	bool getOwnsBvh () const-	{-		return m_ownsBvh;-	}+///optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb+btBvhTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression,const btVector3& bvhAabbMin,const btVector3& bvhAabbMax, bool buildBvh = true); +virtual ~btBvhTriangleMeshShape(); -	-	void performRaycast (btTriangleCallback* callback, const btVector3& raySource, const btVector3& rayTarget);-	void performConvexcast (btTriangleCallback* callback, const btVector3& boxSource, const btVector3& boxTarget, const btVector3& boxMin, const btVector3& boxMax);+bool getOwnsBvh () const+{+return m_ownsBvh;+} -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	void	refitTree(const btVector3& aabbMin,const btVector3& aabbMax); -	///for a fast incremental refit of parts of the tree. Note: the entire AABB of the tree will become more conservative, it never shrinks-	void	partialRefitTree(const btVector3& aabbMin,const btVector3& aabbMax);+void performRaycast (btTriangleCallback* callback, const btVector3& raySource, const btVector3& rayTarget);+void performConvexcast (btTriangleCallback* callback, const btVector3& boxSource, const btVector3& boxTarget, const btVector3& boxMin, const btVector3& boxMax); -	//debugging-	virtual const char*	getName()const {return "BVHTRIANGLEMESH";}+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; +void refitTree(const btVector3& aabbMin,const btVector3& aabbMax); -	virtual void	setLocalScaling(const btVector3& scaling);-	-	btOptimizedBvh*	getOptimizedBvh()-	{-		return m_bvh;-	}+///for a fast incremental refit of parts of the tree. Note: the entire AABB of the tree will become more conservative, it never shrinks+void partialRefitTree(const btVector3& aabbMin,const btVector3& aabbMax); -	void	setOptimizedBvh(btOptimizedBvh* bvh, const btVector3& localScaling=btVector3(1,1,1));+//debugging+virtual const char* getName()const {return "BVHTRIANGLEMESH";} -	void    buildOptimizedBvh(); -	bool	usesQuantizedAabbCompression() const-	{-		return	m_useQuantizedAabbCompression;-	}+virtual void setLocalScaling(const btVector3& scaling); -	void	setTriangleInfoMap(btTriangleInfoMap* triangleInfoMap)-	{-		m_triangleInfoMap = triangleInfoMap;-	}+btOptimizedBvh* getOptimizedBvh()+{+return m_bvh;+} -	const btTriangleInfoMap*	getTriangleInfoMap() const-	{-		return m_triangleInfoMap;-	}-	-	btTriangleInfoMap*	getTriangleInfoMap()-	{-		return m_triangleInfoMap;-	}+void setOptimizedBvh(btOptimizedBvh* bvh, const btVector3& localScaling=btVector3(1,1,1)); -	virtual	int	calculateSerializeBufferSize() const;+void buildOptimizedBvh(); -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+bool usesQuantizedAabbCompression() const+{+return m_useQuantizedAabbCompression;+} -	virtual void	serializeSingleBvh(btSerializer* serializer) const;+void setTriangleInfoMap(btTriangleInfoMap* triangleInfoMap)+{+m_triangleInfoMap = triangleInfoMap;+} -	virtual void	serializeSingleTriangleInfoMap(btSerializer* serializer) const;+const btTriangleInfoMap* getTriangleInfoMap() const+{+return m_triangleInfoMap;+} +btTriangleInfoMap* getTriangleInfoMap()+{+return m_triangleInfoMap;+}++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++virtual void serializeSingleBvh(btSerializer* serializer) const;++virtual void serializeSingleTriangleInfoMap(btSerializer* serializer) const;+ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btTriangleMeshShapeData+struct btTriangleMeshShapeData {-	btCollisionShapeData	m_collisionShapeData;+btCollisionShapeData m_collisionShapeData; -	btStridingMeshInterfaceData m_meshInterface;+btStridingMeshInterfaceData m_meshInterface; -	btQuantizedBvhFloatData		*m_quantizedFloatBvh;-	btQuantizedBvhDoubleData	*m_quantizedDoubleBvh;+btQuantizedBvhFloatData *m_quantizedFloatBvh;+btQuantizedBvhDoubleData *m_quantizedDoubleBvh; -	btTriangleInfoMapData	*m_triangleInfoMap;-	-	float	m_collisionMargin;+btTriangleInfoMapData *m_triangleInfoMap; -	char m_pad3[4];-	+float m_collisionMargin;++char m_pad3[4];+ };  -SIMD_FORCE_INLINE	int	btBvhTriangleMeshShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btBvhTriangleMeshShape::calculateSerializeBufferSize() const {-	return sizeof(btTriangleMeshShapeData);+return sizeof(btTriangleMeshShapeData); }  
bullet/BulletCollision/CollisionShapes/btCapsuleShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,150 +24,150 @@ ///The total height is height+2*radius, so the height is just the height between the center of each 'sphere' of the capsule caps. ///The btCapsuleShape is a convex hull of two spheres. The btMultiSphereShape is a more general collision shape that takes the convex hull of multiple sphere, so it can also represent a capsule when just using two spheres. class btCapsuleShape : public btConvexInternalShape-{+{ private: protected:-	int	m_upAxis;+int m_upAxis;  protected:-	///only used for btCapsuleShapeZ and btCapsuleShapeX subclasses.-	btCapsuleShape() : btConvexInternalShape() {m_shapeType = CAPSULE_SHAPE_PROXYTYPE;};+///only used for btCapsuleShapeZ and btCapsuleShapeX subclasses.+btCapsuleShape() : btConvexInternalShape() {m_shapeType = CAPSULE_SHAPE_PROXYTYPE;};  public:-	btCapsuleShape(btScalar radius,btScalar height);+btCapsuleShape(btScalar radius,btScalar height); -	///CollisionShape Interface-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+///CollisionShape Interface+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	/// btConvexShape Interface-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+/// btConvexShape Interface+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	-	virtual void setMargin(btScalar collisionMargin)-	{-		//correct the m_implicitShapeDimensions for the margin-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		-		btConvexInternalShape::setMargin(collisionMargin);-		btVector3 newMargin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	}+virtual void setMargin(btScalar collisionMargin)+{+//correct the m_implicitShapeDimensions for the margin+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin; -	virtual void getAabb (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const-	{-			btVector3 halfExtents(getRadius(),getRadius(),getRadius());-			halfExtents[m_upAxis] = getRadius() + getHalfHeight();-			halfExtents += btVector3(getMargin(),getMargin(),getMargin());-			btMatrix3x3 abs_b = t.getBasis().absolute();  -			btVector3 center = t.getOrigin();-			btVector3 extent = btVector3(abs_b[0].dot(halfExtents),abs_b[1].dot(halfExtents),abs_b[2].dot(halfExtents));		  -			-			aabbMin = center - extent;-			aabbMax = center + extent;-	}+btConvexInternalShape::setMargin(collisionMargin);+btVector3 newMargin(getMargin(),getMargin(),getMargin());+m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin; -	virtual const char*	getName()const -	{-		return "CapsuleShape";-	}+} -	int	getUpAxis() const-	{-		return m_upAxis;-	}+virtual void getAabb (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const+{+btVector3 halfExtents(getRadius(),getRadius(),getRadius());+halfExtents[m_upAxis] = getRadius() + getHalfHeight();+halfExtents += btVector3(getMargin(),getMargin(),getMargin());+btMatrix3x3 abs_b = t.getBasis().absolute();+btVector3 center = t.getOrigin();+btVector3 extent = btVector3(abs_b[0].dot(halfExtents),abs_b[1].dot(halfExtents),abs_b[2].dot(halfExtents)); -	btScalar	getRadius() const-	{-		int radiusAxis = (m_upAxis+2)%3;-		return m_implicitShapeDimensions[radiusAxis];-	}+aabbMin = center - extent;+aabbMax = center + extent;+} -	btScalar	getHalfHeight() const-	{-		return m_implicitShapeDimensions[m_upAxis];-	}+virtual const char* getName()const+{+return "CapsuleShape";+} -	virtual void	setLocalScaling(const btVector3& scaling)-	{-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling;+int getUpAxis() const+{+return m_upAxis;+} -		btConvexInternalShape::setLocalScaling(scaling);+btScalar getRadius() const+{+int radiusAxis = (m_upAxis+2)%3;+return m_implicitShapeDimensions[radiusAxis];+} -		m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin;+btScalar getHalfHeight() const+{+return m_implicitShapeDimensions[m_upAxis];+} -	}+virtual void setLocalScaling(const btVector3& scaling)+{+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;+btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling; -	virtual	int	calculateSerializeBufferSize() const;+btConvexInternalShape::setLocalScaling(scaling); -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin; +} +virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++ };  ///btCapsuleShapeX represents a capsule around the Z axis ///the total height is height+2*radius, so the height is just the height between the center of each 'sphere' of the capsule caps. class btCapsuleShapeX : public btCapsuleShape-{+{ private: public: -	btCapsuleShapeX(btScalar radius,btScalar height);-		-	//debugging-	virtual const char*	getName()const-	{-		return "CapsuleX";-	}+btCapsuleShapeX(btScalar radius,btScalar height); -	+//debugging+virtual const char* getName()const+{+return "CapsuleX";+} ++ };  ///btCapsuleShapeZ represents a capsule around the Z axis ///the total height is height+2*radius, so the height is just the height between the center of each 'sphere' of the capsule caps. class btCapsuleShapeZ : public btCapsuleShape-{+{ private: public:-	btCapsuleShapeZ(btScalar radius,btScalar height);+btCapsuleShapeZ(btScalar radius,btScalar height); -		//debugging-	virtual const char*	getName()const-	{-		return "CapsuleZ";-	}+//debugging+virtual const char* getName()const+{+return "CapsuleZ";+} -	+ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCapsuleShapeData+struct btCapsuleShapeData {-	btConvexInternalShapeData	m_convexInternalShapeData;+btConvexInternalShapeData m_convexInternalShapeData; -	int	m_upAxis;+int m_upAxis; -	char	m_padding[4];+char m_padding[4]; }; -SIMD_FORCE_INLINE	int	btCapsuleShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btCapsuleShape::calculateSerializeBufferSize() const {-	return sizeof(btCapsuleShapeData);+return sizeof(btCapsuleShapeData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btCapsuleShape::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btCapsuleShape::serialize(void* dataBuffer, btSerializer* serializer) const {-	btCapsuleShapeData* shapeData = (btCapsuleShapeData*) dataBuffer;-	-	btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData,serializer);+btCapsuleShapeData* shapeData = (btCapsuleShapeData*) dataBuffer; -	shapeData->m_upAxis = m_upAxis;-	-	return "btCapsuleShapeData";+btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData,serializer);++shapeData->m_upAxis = m_upAxis;++return "btCapsuleShapeData"; }  #endif //BT_CAPSULE_SHAPE_H
bullet/BulletCollision/CollisionShapes/btCollisionMargin.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,8 +16,9 @@ #ifndef BT_COLLISION_MARGIN_H #define BT_COLLISION_MARGIN_H -//used by Gjk and some other algorithms-+///The CONVEX_DISTANCE_MARGIN is a default collision margin for convex collision shapes derived from btConvexInternalShape.+///This collision margin is used by Gjk and some other algorithms+///Note that when creating small objects, you need to make sure to set a smaller collision margin, using the 'setMargin' API #define CONVEX_DISTANCE_MARGIN btScalar(0.04)// btScalar(0.1)//;//btScalar(0.01)  
bullet/BulletCollision/CollisionShapes/btCollisionShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,123 +25,123 @@  ///The btCollisionShape class provides an interface for collision shapes that can be shared among btCollisionObjects. class btCollisionShape-{+{ private: protected:-	int m_shapeType;-	void* m_userPointer;+int m_shapeType;+void* m_userPointer;  public: -	btCollisionShape() : m_shapeType (INVALID_SHAPE_PROXYTYPE), m_userPointer(0)-	{-	}+btCollisionShape() : m_shapeType (INVALID_SHAPE_PROXYTYPE), m_userPointer(0)+{+} -	virtual ~btCollisionShape()-	{-	}+virtual ~btCollisionShape()+{+} -	///getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.-	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0;+///getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; -	virtual void	getBoundingSphere(btVector3& center,btScalar& radius) const;+virtual void getBoundingSphere(btVector3& center,btScalar& radius) const; -	///getAngularMotionDisc returns the maximus radius needed for Conservative Advancement to handle time-of-impact with rotations.-	virtual btScalar	getAngularMotionDisc() const;+///getAngularMotionDisc returns the maximus radius needed for Conservative Advancement to handle time-of-impact with rotations.+virtual btScalar getAngularMotionDisc() const; -	virtual btScalar	getContactBreakingThreshold(btScalar defaultContactThresholdFactor) const;+virtual btScalar getContactBreakingThreshold(btScalar defaultContactThresholdFactor) const;  -	///calculateTemporalAabb calculates the enclosing aabb for the moving object over interval [0..timeStep)-	///result is conservative-	void calculateTemporalAabb(const btTransform& curTrans,const btVector3& linvel,const btVector3& angvel,btScalar timeStep, btVector3& temporalAabbMin,btVector3& temporalAabbMax) const;+///calculateTemporalAabb calculates the enclosing aabb for the moving object over interval [0..timeStep)+///result is conservative+void calculateTemporalAabb(const btTransform& curTrans,const btVector3& linvel,const btVector3& angvel,btScalar timeStep, btVector3& temporalAabbMin,btVector3& temporalAabbMax) const;   -	SIMD_FORCE_INLINE bool	isPolyhedral() const-	{-		return btBroadphaseProxy::isPolyhedral(getShapeType());-	}+SIMD_FORCE_INLINE bool isPolyhedral() const+{+return btBroadphaseProxy::isPolyhedral(getShapeType());+} -	SIMD_FORCE_INLINE bool	isConvex2d() const-	{-		return btBroadphaseProxy::isConvex2d(getShapeType());-	}+SIMD_FORCE_INLINE bool isConvex2d() const+{+return btBroadphaseProxy::isConvex2d(getShapeType());+} -	SIMD_FORCE_INLINE bool	isConvex() const-	{-		return btBroadphaseProxy::isConvex(getShapeType());-	}-	SIMD_FORCE_INLINE bool	isNonMoving() const-	{-		return btBroadphaseProxy::isNonMoving(getShapeType());-	}-	SIMD_FORCE_INLINE bool	isConcave() const-	{-		return btBroadphaseProxy::isConcave(getShapeType());-	}-	SIMD_FORCE_INLINE bool	isCompound() const-	{-		return btBroadphaseProxy::isCompound(getShapeType());-	}+SIMD_FORCE_INLINE bool isConvex() const+{+return btBroadphaseProxy::isConvex(getShapeType());+}+SIMD_FORCE_INLINE bool isNonMoving() const+{+return btBroadphaseProxy::isNonMoving(getShapeType());+}+SIMD_FORCE_INLINE bool isConcave() const+{+return btBroadphaseProxy::isConcave(getShapeType());+}+SIMD_FORCE_INLINE bool isCompound() const+{+return btBroadphaseProxy::isCompound(getShapeType());+} -	SIMD_FORCE_INLINE bool	isSoftBody() const-	{-		return btBroadphaseProxy::isSoftBody(getShapeType());-	}+SIMD_FORCE_INLINE bool isSoftBody() const+{+return btBroadphaseProxy::isSoftBody(getShapeType());+} -	///isInfinite is used to catch simulation error (aabb check)-	SIMD_FORCE_INLINE bool isInfinite() const-	{-		return btBroadphaseProxy::isInfinite(getShapeType());-	}+///isInfinite is used to catch simulation error (aabb check)+SIMD_FORCE_INLINE bool isInfinite() const+{+return btBroadphaseProxy::isInfinite(getShapeType());+}  #ifndef __SPU__-	virtual void	setLocalScaling(const btVector3& scaling) =0;-	virtual const btVector3& getLocalScaling() const =0;-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const = 0;+virtual void setLocalScaling(const btVector3& scaling) =0;+virtual const btVector3& getLocalScaling() const =0;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const = 0;   //debugging support-	virtual const char*	getName()const =0 ;+virtual const char* getName()const =0 ; #endif //__SPU__ -	-	int		getShapeType() const { return m_shapeType; }-	virtual void	setMargin(btScalar margin) = 0;-	virtual btScalar	getMargin() const = 0; -	-	///optional user data pointer-	void	setUserPointer(void*  userPtr)-	{-		m_userPointer = userPtr;-	}+int getShapeType() const { return m_shapeType; }+virtual void setMargin(btScalar margin) = 0;+virtual btScalar getMargin() const = 0; -	void*	getUserPointer() const-	{-		return m_userPointer;-	} -	virtual	int	calculateSerializeBufferSize() const;+///optional user data pointer+void setUserPointer(void* userPtr)+{+m_userPointer = userPtr;+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+void* getUserPointer() const+{+return m_userPointer;+} -	virtual void	serializeSingleShape(btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; -};	+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; +virtual void serializeSingleShape(btSerializer* serializer) const;++};+ ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCollisionShapeData+struct btCollisionShapeData {-	char	*m_name;-	int		m_shapeType;-	char	m_padding[4];+char *m_name;+int m_shapeType;+char m_padding[4]; }; -SIMD_FORCE_INLINE	int	btCollisionShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btCollisionShape::calculateSerializeBufferSize() const {-	return sizeof(btCollisionShapeData);+return sizeof(btCollisionShapeData); }  
bullet/BulletCollision/CollisionShapes/btCompoundShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,178 +29,178 @@  ATTRIBUTE_ALIGNED16(struct) btCompoundShapeChild {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btTransform			m_transform;-	btCollisionShape*	m_childShape;-	int					m_childShapeType;-	btScalar			m_childMargin;-	struct btDbvtNode*	m_node;+btTransform m_transform;+btCollisionShape* m_childShape;+int m_childShapeType;+btScalar m_childMargin;+struct btDbvtNode* m_node; };  SIMD_FORCE_INLINE bool operator==(const btCompoundShapeChild& c1, const btCompoundShapeChild& c2) {-	return  ( c1.m_transform      == c2.m_transform &&-		c1.m_childShape     == c2.m_childShape &&-		c1.m_childShapeType == c2.m_childShapeType &&-		c1.m_childMargin    == c2.m_childMargin );+return ( c1.m_transform == c2.m_transform &&+c1.m_childShape == c2.m_childShape &&+c1.m_childShapeType == c2.m_childShapeType &&+c1.m_childMargin == c2.m_childMargin ); }  /// The btCompoundShape allows to store multiple other btCollisionShapes /// This allows for moving concave collision objects. This is more general then the static concave btBvhTriangleMeshShape.-/// It has an (optional) dynamic aabb tree to accelerate early rejection tests. +/// It has an (optional) dynamic aabb tree to accelerate early rejection tests. /// @todo: This aabb tree can also be use to speed up ray tests on btCompoundShape, see http://code.google.com/p/bullet/issues/detail?id=25 /// Currently, removal of child shapes is only supported when disabling the aabb tree (pass 'false' in the constructor of btCompoundShape)-ATTRIBUTE_ALIGNED16(class) btCompoundShape	: public btCollisionShape-{-	btAlignedObjectArray<btCompoundShapeChild> m_children;-	btVector3						m_localAabbMin;-	btVector3						m_localAabbMax;+ATTRIBUTE_ALIGNED16(class) btCompoundShape : public btCollisionShape+{ private:+btAlignedObjectArray<btCompoundShapeChild> m_children;+btVector3 m_localAabbMin;+btVector3 m_localAabbMax; -	btDbvt*							m_dynamicAabbTree;+btDbvt* m_dynamicAabbTree; -	///increment m_updateRevision when adding/removing/replacing child shapes, so that some caches can be updated-	int								m_updateRevision;+///increment m_updateRevision when adding/removing/replacing child shapes, so that some caches can be updated+int m_updateRevision; -	btScalar	m_collisionMargin;+btScalar m_collisionMargin;  protected:-	btVector3	m_localScaling;+btVector3 m_localScaling;  public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btCompoundShape(bool enableDynamicAabbTree = true);+btCompoundShape(bool enableDynamicAabbTree = true); -	virtual ~btCompoundShape();+virtual ~btCompoundShape(); -	void	addChildShape(const btTransform& localTransform,btCollisionShape* shape);+void addChildShape(const btTransform& localTransform,btCollisionShape* shape); -	/// Remove all children shapes that contain the specified shape-	virtual void removeChildShape(btCollisionShape* shape);+/// Remove all children shapes that contain the specified shape+virtual void removeChildShape(btCollisionShape* shape); -	void removeChildShapeByIndex(int childShapeindex);+void removeChildShapeByIndex(int childShapeindex);  -	int		getNumChildShapes() const-	{-		return int (m_children.size());-	}+int getNumChildShapes() const+{+return int (m_children.size());+} -	btCollisionShape* getChildShape(int index)-	{-		return m_children[index].m_childShape;-	}-	const btCollisionShape* getChildShape(int index) const-	{-		return m_children[index].m_childShape;-	}+btCollisionShape* getChildShape(int index)+{+return m_children[index].m_childShape;+}+const btCollisionShape* getChildShape(int index) const+{+return m_children[index].m_childShape;+} -	btTransform&	getChildTransform(int index)-	{-		return m_children[index].m_transform;-	}-	const btTransform&	getChildTransform(int index) const-	{-		return m_children[index].m_transform;-	}+btTransform& getChildTransform(int index)+{+return m_children[index].m_transform;+}+const btTransform& getChildTransform(int index) const+{+return m_children[index].m_transform;+} -	///set a new transform for a child, and update internal data structures (local aabb and dynamic tree)-	void	updateChildTransform(int childIndex, const btTransform& newChildTransform, bool shouldRecalculateLocalAabb = true);+///set a new transform for a child, and update internal data structures (local aabb and dynamic tree)+void updateChildTransform(int childIndex, const btTransform& newChildTransform, bool shouldRecalculateLocalAabb = true);  -	btCompoundShapeChild* getChildList()-	{-		return &m_children[0];-	}+btCompoundShapeChild* getChildList()+{+return &m_children[0];+} -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	virtual	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	/** Re-calculate the local Aabb. Is called at the end of removeChildShapes. -	Use this yourself if you modify the children or their transforms. */-	virtual void recalculateLocalAabb(); +/** Re-calculate the local Aabb. Is called at the end of removeChildShapes.+Use this yourself if you modify the children or their transforms. */+virtual void recalculateLocalAabb(); -	virtual void	setLocalScaling(const btVector3& scaling);+virtual void setLocalScaling(const btVector3& scaling); -	virtual const btVector3& getLocalScaling() const -	{-		return m_localScaling;-	}+virtual const btVector3& getLocalScaling() const+{+return m_localScaling;+} -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void	setMargin(btScalar margin)-	{-		m_collisionMargin = margin;-	}-	virtual btScalar	getMargin() const-	{-		return m_collisionMargin;-	}-	virtual const char*	getName()const-	{-		return "Compound";-	}+virtual void setMargin(btScalar margin)+{+m_collisionMargin = margin;+}+virtual btScalar getMargin() const+{+return m_collisionMargin;+}+virtual const char* getName()const+{+return "Compound";+} -	const btDbvt*	getDynamicAabbTree() const-	{-		return m_dynamicAabbTree;-	}-	-	btDbvt*	getDynamicAabbTree()-	{-		return m_dynamicAabbTree;-	}+const btDbvt* getDynamicAabbTree() const+{+return m_dynamicAabbTree;+} -	void createAabbTreeFromChildren();+btDbvt* getDynamicAabbTree()+{+return m_dynamicAabbTree;+} -	///computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia-	///and the center of mass to the current coordinate system. "masses" points to an array of masses of the children. The resulting transform-	///"principal" has to be applied inversely to all children transforms in order for the local coordinate system of the compound-	///shape to be centered at the center of mass and to coincide with the principal axes. This also necessitates a correction of the world transform-	///of the collision object by the principal transform.-	void calculatePrincipalAxisTransform(btScalar* masses, btTransform& principal, btVector3& inertia) const;+void createAabbTreeFromChildren(); -	int	getUpdateRevision() const-	{-		return m_updateRevision;-	}+///computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia+///and the center of mass to the current coordinate system. "masses" points to an array of masses of the children. The resulting transform+///"principal" has to be applied inversely to all children transforms in order for the local coordinate system of the compound+///shape to be centered at the center of mass and to coincide with the principal axes. This also necessitates a correction of the world transform+///of the collision object by the principal transform.+void calculatePrincipalAxisTransform(btScalar* masses, btTransform& principal, btVector3& inertia) const; -	virtual	int	calculateSerializeBufferSize() const;+int getUpdateRevision() const+{+return m_updateRevision;+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; +///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; + };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 struct btCompoundShapeChildData {-	btTransformFloatData	m_transform;-	btCollisionShapeData	*m_childShape;-	int						m_childShapeType;-	float					m_childMargin;+btTransformFloatData m_transform;+btCollisionShapeData *m_childShape;+int m_childShapeType;+float m_childMargin; };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCompoundShapeData+struct btCompoundShapeData {-	btCollisionShapeData		m_collisionShapeData;+btCollisionShapeData m_collisionShapeData; -	btCompoundShapeChildData	*m_childShapePtr;+btCompoundShapeChildData *m_childShapePtr; -	int							m_numChildShapes;+int m_numChildShapes; -	float	m_collisionMargin;+float m_collisionMargin;  };  -SIMD_FORCE_INLINE	int	btCompoundShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btCompoundShape::calculateSerializeBufferSize() const {-	return sizeof(btCompoundShapeData);+return sizeof(btCompoundShapeData); }  
bullet/BulletCollision/CollisionShapes/btConcaveShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,35 +23,35 @@ /// PHY_ScalarType enumerates possible scalar types. /// See the btStridingMeshInterface or btHeightfieldTerrainShape for its use typedef enum PHY_ScalarType {-	PHY_FLOAT,-	PHY_DOUBLE,-	PHY_INTEGER,-	PHY_SHORT,-	PHY_FIXEDPOINT88,-	PHY_UCHAR+PHY_FLOAT,+PHY_DOUBLE,+PHY_INTEGER,+PHY_SHORT,+PHY_FIXEDPOINT88,+PHY_UCHAR } PHY_ScalarType;  ///The btConcaveShape class provides an interface for non-moving (static) concave shapes. ///It has been implemented by the btStaticPlaneShape, btBvhTriangleMeshShape and btHeightfieldTerrainShape. class btConcaveShape : public btCollisionShape-{+{ private: protected:-	btScalar m_collisionMargin;+btScalar m_collisionMargin;  public:-	btConcaveShape();+btConcaveShape(); -	virtual ~btConcaveShape();+virtual ~btConcaveShape(); -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const = 0;+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const = 0; -	virtual btScalar getMargin() const {-		return m_collisionMargin;-	}-	virtual void setMargin(btScalar collisionMargin)-	{-		m_collisionMargin = collisionMargin;-	}+virtual btScalar getMargin() const {+return m_collisionMargin;+}+virtual void setMargin(btScalar collisionMargin)+{+m_collisionMargin = collisionMargin;+}   
bullet/BulletCollision/CollisionShapes/btConeShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,80 +24,80 @@  { -	btScalar m_sinAngle;-	btScalar m_radius;-	btScalar m_height;-	int		m_coneIndices[3];-	btVector3 coneLocalSupport(const btVector3& v) const;+btScalar m_sinAngle;+btScalar m_radius;+btScalar m_height;+int m_coneIndices[3];+btVector3 coneLocalSupport(const btVector3& v) const;   public:-	btConeShape (btScalar radius,btScalar height);-	-	virtual btVector3	localGetSupportingVertex(const btVector3& vec) const;-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec) const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+btConeShape (btScalar radius,btScalar height); -	btScalar getRadius() const { return m_radius;}-	btScalar getHeight() const { return m_height;}+virtual btVector3 localGetSupportingVertex(const btVector3& vec) const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec) const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; +btScalar getRadius() const { return m_radius;}+btScalar getHeight() const { return m_height;} -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const-	{-		btTransform identity;-		identity.setIdentity();-		btVector3 aabbMin,aabbMax;-		getAabb(identity,aabbMin,aabbMax); -		btVector3 halfExtents = (aabbMax-aabbMin)*btScalar(0.5);+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const+{+btTransform identity;+identity.setIdentity();+btVector3 aabbMin,aabbMax;+getAabb(identity,aabbMin,aabbMax); -		btScalar margin = getMargin();+btVector3 halfExtents = (aabbMax-aabbMin)*btScalar(0.5); -		btScalar lx=btScalar(2.)*(halfExtents.x()+margin);-		btScalar ly=btScalar(2.)*(halfExtents.y()+margin);-		btScalar lz=btScalar(2.)*(halfExtents.z()+margin);-		const btScalar x2 = lx*lx;-		const btScalar y2 = ly*ly;-		const btScalar z2 = lz*lz;-		const btScalar scaledmass = mass * btScalar(0.08333333);+btScalar margin = getMargin(); -		inertia = scaledmass * (btVector3(y2+z2,x2+z2,x2+y2));+btScalar lx=btScalar(2.)*(halfExtents.x()+margin);+btScalar ly=btScalar(2.)*(halfExtents.y()+margin);+btScalar lz=btScalar(2.)*(halfExtents.z()+margin);+const btScalar x2 = lx*lx;+const btScalar y2 = ly*ly;+const btScalar z2 = lz*lz;+const btScalar scaledmass = mass * btScalar(0.08333333); -//		inertia.x() = scaledmass * (y2+z2);-//		inertia.y() = scaledmass * (x2+z2);-//		inertia.z() = scaledmass * (x2+y2);-	}+inertia = scaledmass * (btVector3(y2+z2,x2+z2,x2+y2)); +// inertia.x() = scaledmass * (y2+z2);+// inertia.y() = scaledmass * (x2+z2);+// inertia.z() = scaledmass * (x2+y2);+} -		virtual const char*	getName()const -		{-			return "Cone";-		}-		-		///choose upAxis index-		void	setConeUpIndex(int upIndex);-		-		int	getConeUpIndex() const-		{-			return m_coneIndices[1];-		} -	virtual void	setLocalScaling(const btVector3& scaling);+virtual const char* getName()const+{+return "Cone";+} +///choose upAxis index+void setConeUpIndex(int upIndex);++int getConeUpIndex() const+{+return m_coneIndices[1];+}++virtual void setLocalScaling(const btVector3& scaling);+ };  ///btConeShape implements a Cone shape, around the X axis class btConeShapeX : public btConeShape-{-	public:-		btConeShapeX(btScalar radius,btScalar height);+{ private:+public:+btConeShapeX(btScalar radius,btScalar height); };  ///btConeShapeZ implements a Cone shape, around the Z axis class btConeShapeZ : public btConeShape-{-	public:-		btConeShapeZ(btScalar radius,btScalar height);+{ private:+public:+btConeShapeZ(btScalar radius,btScalar height); }; #endif //BT_CONE_MINKOWSKI_H 
bullet/BulletCollision/CollisionShapes/btConvex2dShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,57 +22,57 @@ ///The btConvex2dShape allows to use arbitrary convex shapes as 2d convex shapes, with the Z component assumed to be 0. ///For 2d boxes, the btBox2dShape is recommended. class btConvex2dShape : public btConvexShape-{-	btConvexShape*	m_childConvexShape;+{ private:+btConvexShape* m_childConvexShape; -	public:-	-	btConvex2dShape(	btConvexShape* convexChildShape);-	-	virtual ~btConvex2dShape();-	-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+public: -	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;+btConvex2dShape( btConvexShape* convexChildShape); -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+virtual ~btConvex2dShape(); -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	btConvexShape*	getChildShape() -	{-		return m_childConvexShape;-	}+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const; -	const btConvexShape*	getChildShape() const-	{-		return m_childConvexShape;-	}+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual const char*	getName()const -	{-		return "Convex2dShape";-	}-	+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; +btConvexShape* getChildShape()+{+return m_childConvexShape;+} -	///////////////////////////+const btConvexShape* getChildShape() const+{+return m_childConvexShape;+} +virtual const char* getName()const+{+return "Convex2dShape";+} -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	setLocalScaling(const btVector3& scaling) ;-	virtual const btVector3& getLocalScaling() const ;+/////////////////////////// -	virtual void	setMargin(btScalar margin);-	virtual btScalar	getMargin() const; -	virtual int		getNumPreferredPenetrationDirections() const;-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const;+///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++virtual void setLocalScaling(const btVector3& scaling) ;+virtual const btVector3& getLocalScaling() const ;++virtual void setMargin(btScalar margin);+virtual btScalar getMargin() const;++virtual int getNumPreferredPenetrationDirections() const;++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const;   };
bullet/BulletCollision/CollisionShapes/btConvexHullShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,95 +24,97 @@ ///The btConvexHullShape implements an implicit convex hull of an array of vertices. ///Bullet provides a general and fast collision detector for convex shapes based on GJK and EPA using localGetSupportingVertex. ATTRIBUTE_ALIGNED16(class) btConvexHullShape : public btPolyhedralConvexAabbCachingShape-{-	btAlignedObjectArray<btVector3>	m_unscaledPoints;+{ private:+btAlignedObjectArray<btVector3> m_unscaledPoints;  public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	-	///this constructor optionally takes in a pointer to points. Each point is assumed to be 3 consecutive btScalar (x,y,z), the striding defines the number of bytes between each point, in memory.-	///It is easier to not pass any points in the constructor, and just add one point at a time, using addPoint.-	///btConvexHullShape make an internal copy of the points.-	btConvexHullShape(const btScalar* points=0,int numPoints=0, int stride=sizeof(btVector3)); -	void addPoint(const btVector3& point);+///this constructor optionally takes in a pointer to points. Each point is assumed to be 3 consecutive btScalar (x,y,z), the striding defines the number of bytes between each point, in memory.+///It is easier to not pass any points in the constructor, and just add one point at a time, using addPoint.+///btConvexHullShape make an internal copy of the points.+btConvexHullShape(const btScalar* points=0,int numPoints=0, int stride=sizeof(btVector3)); -	-	btVector3* getUnscaledPoints()-	{-		return &m_unscaledPoints[0];-	}+void addPoint(const btVector3& point); -	const btVector3* getUnscaledPoints() const-	{-		return &m_unscaledPoints[0];-	} -	///getPoints is obsolete, please use getUnscaledPoints-	const btVector3* getPoints() const-	{-		return getUnscaledPoints();-	}+btVector3* getUnscaledPoints()+{+return &m_unscaledPoints[0];+} -	+const btVector3* getUnscaledPoints() const+{+return &m_unscaledPoints[0];+} +///getPoints is obsolete, please use getUnscaledPoints+const btVector3* getPoints() const+{+return getUnscaledPoints();+} -	SIMD_FORCE_INLINE	btVector3 getScaledPoint(int i) const-	{-		return m_unscaledPoints[i] * m_localScaling;-	} -	SIMD_FORCE_INLINE	int getNumPoints() const -	{-		return m_unscaledPoints.size();-	} -	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	 +SIMD_FORCE_INLINE btVector3 getScaledPoint(int i) const+{+return m_unscaledPoints[i] * m_localScaling;+} -	//debugging-	virtual const char*	getName()const {return "Convex";}+SIMD_FORCE_INLINE int getNumPoints() const+{+return m_unscaledPoints.size();+} -	-	virtual int	getNumVertices() const;-	virtual int getNumEdges() const;-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;-	virtual void getVertex(int i,btVector3& vtx) const;-	virtual int	getNumPlanes() const;-	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;-	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const;+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	///in case we receive negative scaling-	virtual void	setLocalScaling(const btVector3& scaling); -	virtual	int	calculateSerializeBufferSize() const;+virtual void project(const btTransform& trans, const btVector3& dir, float& min, float& max) const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const; +//debugging+virtual const char* getName()const {return "Convex";}+++virtual int getNumVertices() const;+virtual int getNumEdges() const;+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;+virtual void getVertex(int i,btVector3& vtx) const;+virtual int getNumPlanes() const;+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;+virtual bool isInside(const btVector3& pt,btScalar tolerance) const;++///in case we receive negative scaling+virtual void setLocalScaling(const btVector3& scaling);++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;+ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btConvexHullShapeData+struct btConvexHullShapeData {-	btConvexInternalShapeData	m_convexInternalShapeData;+btConvexInternalShapeData m_convexInternalShapeData; -	btVector3FloatData	*m_unscaledPointsFloatPtr;-	btVector3DoubleData	*m_unscaledPointsDoublePtr;+btVector3FloatData *m_unscaledPointsFloatPtr;+btVector3DoubleData *m_unscaledPointsDoublePtr; -	int		m_numUnscaledPoints;-	char m_padding3[4];+int m_numUnscaledPoints;+char m_padding3[4];  };  -SIMD_FORCE_INLINE	int	btConvexHullShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btConvexHullShape::calculateSerializeBufferSize() const {-	return sizeof(btConvexHullShapeData);+return sizeof(btConvexHullShapeData); }  
bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,136 +21,158 @@   ///The btConvexInternalShape is an internal base class, shared by most convex shape implementations.+///The btConvexInternalShape uses a default collision margin set to CONVEX_DISTANCE_MARGIN.+///This collision margin used by Gjk and some other algorithms, see also btCollisionMargin.h+///Note that when creating small shapes (derived from btConvexInternalShape),+///you need to make sure to set a smaller collision margin, using the 'setMargin' API+///There is a automatic mechanism 'setSafeMargin' used by btBoxShape and btCylinderShape class btConvexInternalShape : public btConvexShape-{+{ private: -	protected:+protected: -	//local scaling. collisionMargin is not scaled !-	btVector3	m_localScaling;+//local scaling. collisionMargin is not scaled !+btVector3 m_localScaling; -	btVector3	m_implicitShapeDimensions;-	-	btScalar	m_collisionMargin;+btVector3 m_implicitShapeDimensions; -	btScalar	m_padding;+btScalar m_collisionMargin; -	btConvexInternalShape();+btScalar m_padding; +btConvexInternalShape();+ public: -	 -	virtual ~btConvexInternalShape()-	{ -	}+virtual ~btConvexInternalShape()+{ -	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;+} -	const btVector3& getImplicitShapeDimensions() const-	{-		return m_implicitShapeDimensions;-	}+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const; -	///warning: use setImplicitShapeDimensions with care-	///changing a collision shape while the body is in the world is not recommended,-	///it is best to remove the body from the world, then make the change, and re-add it-	///alternatively flush the contact points, see documentation for 'cleanProxyFromPairs'-	void	setImplicitShapeDimensions(const btVector3& dimensions)-	{-		m_implicitShapeDimensions = dimensions;-	}+const btVector3& getImplicitShapeDimensions() const+{+return m_implicitShapeDimensions;+} -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-	{-		getAabbSlow(t,aabbMin,aabbMax);-	}+///warning: use setImplicitShapeDimensions with care+///changing a collision shape while the body is in the world is not recommended,+///it is best to remove the body from the world, then make the change, and re-add it+///alternatively flush the contact points, see documentation for 'cleanProxyFromPairs'+void setImplicitShapeDimensions(const btVector3& dimensions)+{+m_implicitShapeDimensions = dimensions;+} +void setSafeMargin(btScalar minDimension, btScalar defaultMarginMultiplier = 0.1f)+{+btScalar safeMargin = defaultMarginMultiplier*minDimension;+if (safeMargin < getMargin())+{+setMargin(safeMargin);+}+}+void setSafeMargin(const btVector3& halfExtents, btScalar defaultMarginMultiplier = 0.1f)+{+//see http://code.google.com/p/bullet/issues/detail?id=349+//this margin check could could be added to other collision shapes too,+//or add some assert/warning somewhere+btScalar minDimension=halfExtents[halfExtents.minAxis()];+setSafeMargin(minDimension, defaultMarginMultiplier);+} -	-	virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{+getAabbSlow(t,aabbMin,aabbMax);+}  -	virtual void	setLocalScaling(const btVector3& scaling);-	virtual const btVector3& getLocalScaling() const -	{-		return m_localScaling;-	} -	const btVector3& getLocalScalingNV() const -	{-		return m_localScaling;-	}+virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	setMargin(btScalar margin)-	{-		m_collisionMargin = margin;-	}-	virtual btScalar	getMargin() const-	{-		return m_collisionMargin;-	} -	btScalar	getMarginNV() const-	{-		return m_collisionMargin;-	}+virtual void setLocalScaling(const btVector3& scaling);+virtual const btVector3& getLocalScaling() const+{+return m_localScaling;+} -	virtual int		getNumPreferredPenetrationDirections() const-	{-		return 0;-	}-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const-	{-		(void)penetrationVector;-		(void)index;-		btAssert(0);-	}+const btVector3& getLocalScalingNV() const+{+return m_localScaling;+} -	virtual	int	calculateSerializeBufferSize() const;+virtual void setMargin(btScalar margin)+{+m_collisionMargin = margin;+}+virtual btScalar getMargin() const+{+return m_collisionMargin;+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+btScalar getMarginNV() const+{+return m_collisionMargin;+} -	+virtual int getNumPreferredPenetrationDirections() const+{+return 0;+}++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const+{+(void)penetrationVector;+(void)index;+btAssert(0);+}++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btConvexInternalShapeData+struct btConvexInternalShapeData {-	btCollisionShapeData	m_collisionShapeData;+btCollisionShapeData m_collisionShapeData; -	btVector3FloatData	m_localScaling;+btVector3FloatData m_localScaling; -	btVector3FloatData	m_implicitShapeDimensions;-	-	float			m_collisionMargin;+btVector3FloatData m_implicitShapeDimensions; -	int	m_padding;+float m_collisionMargin; +int m_padding;+ };   -SIMD_FORCE_INLINE	int	btConvexInternalShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btConvexInternalShape::calculateSerializeBufferSize() const {-	return sizeof(btConvexInternalShapeData);+return sizeof(btConvexInternalShapeData); }  ///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btConvexInternalShape::serialize(void* dataBuffer, btSerializer* serializer) const+SIMD_FORCE_INLINE const char* btConvexInternalShape::serialize(void* dataBuffer, btSerializer* serializer) const {-	btConvexInternalShapeData* shapeData = (btConvexInternalShapeData*) dataBuffer;-	btCollisionShape::serialize(&shapeData->m_collisionShapeData, serializer);+btConvexInternalShapeData* shapeData = (btConvexInternalShapeData*) dataBuffer;+btCollisionShape::serialize(&shapeData->m_collisionShapeData, serializer); -	m_implicitShapeDimensions.serializeFloat(shapeData->m_implicitShapeDimensions);-	m_localScaling.serializeFloat(shapeData->m_localScaling);-	shapeData->m_collisionMargin = float(m_collisionMargin);+m_implicitShapeDimensions.serializeFloat(shapeData->m_implicitShapeDimensions);+m_localScaling.serializeFloat(shapeData->m_localScaling);+shapeData->m_collisionMargin = float(m_collisionMargin); -	return "btConvexInternalShapeData";+return "btConvexInternalShapeData"; }  @@ -158,44 +180,44 @@  ///btConvexInternalAabbCachingShape adds local aabb caching for convex shapes, to avoid expensive bounding box calculations class btConvexInternalAabbCachingShape : public btConvexInternalShape-{-	btVector3	m_localAabbMin;-	btVector3	m_localAabbMax;-	bool		m_isLocalAabbValid;-	+{ private:+btVector3 m_localAabbMin;+btVector3 m_localAabbMax;+bool m_isLocalAabbValid;+ protected:-					-	btConvexInternalAabbCachingShape();-	-	void setCachedLocalAabb (const btVector3& aabbMin, const btVector3& aabbMax)-	{-		m_isLocalAabbValid = true;-		m_localAabbMin = aabbMin;-		m_localAabbMax = aabbMax;-	} -	inline void getCachedLocalAabb (btVector3& aabbMin, btVector3& aabbMax) const-	{-		btAssert(m_isLocalAabbValid);-		aabbMin = m_localAabbMin;-		aabbMax = m_localAabbMax;-	}+btConvexInternalAabbCachingShape(); -	inline void getNonvirtualAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax, btScalar margin) const-	{+void setCachedLocalAabb (const btVector3& aabbMin, const btVector3& aabbMax)+{+m_isLocalAabbValid = true;+m_localAabbMin = aabbMin;+m_localAabbMax = aabbMax;+} -		//lazy evaluation of local aabb-		btAssert(m_isLocalAabbValid);-		btTransformAabb(m_localAabbMin,m_localAabbMax,margin,trans,aabbMin,aabbMax);-	}-		+inline void getCachedLocalAabb (btVector3& aabbMin, btVector3& aabbMax) const+{+btAssert(m_isLocalAabbValid);+aabbMin = m_localAabbMin;+aabbMax = m_localAabbMax;+}++inline void getNonvirtualAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax, btScalar margin) const+{++//lazy evaluation of local aabb+btAssert(m_isLocalAabbValid);+btTransformAabb(m_localAabbMin,m_localAabbMax,margin,trans,aabbMin,aabbMax);+}+ public:-		-	virtual void	setLocalScaling(const btVector3& scaling); -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void setLocalScaling(const btVector3& scaling); -	void	recalcLocalAabb();+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++void recalcLocalAabb();  }; 
bullet/BulletCollision/CollisionShapes/btConvexPointCloudShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,82 +22,82 @@  ///The btConvexPointCloudShape implements an implicit convex hull of an array of vertices. ATTRIBUTE_ALIGNED16(class) btConvexPointCloudShape : public btPolyhedralConvexAabbCachingShape-{-	btVector3* m_unscaledPoints;-	int m_numPoints;+{ private:+btVector3* m_unscaledPoints;+int m_numPoints;  public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btConvexPointCloudShape()-	{-		m_localScaling.setValue(1.f,1.f,1.f);-		m_shapeType = CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE;-		m_unscaledPoints = 0;-		m_numPoints = 0;-	}+btConvexPointCloudShape()+{+m_localScaling.setValue(1.f,1.f,1.f);+m_shapeType = CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE;+m_unscaledPoints = 0;+m_numPoints = 0;+} -	btConvexPointCloudShape(btVector3* points,int numPoints, const btVector3& localScaling,bool computeAabb = true)-	{-		m_localScaling = localScaling;-		m_shapeType = CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE;-		m_unscaledPoints = points;-		m_numPoints = numPoints;+btConvexPointCloudShape(btVector3* points,int numPoints, const btVector3& localScaling,bool computeAabb = true)+{+m_localScaling = localScaling;+m_shapeType = CONVEX_POINT_CLOUD_SHAPE_PROXYTYPE;+m_unscaledPoints = points;+m_numPoints = numPoints; -		if (computeAabb)-			recalcLocalAabb();-	}+if (computeAabb)+recalcLocalAabb();+} -	void setPoints (btVector3* points, int numPoints, bool computeAabb = true,const btVector3& localScaling=btVector3(1.f,1.f,1.f))-	{-		m_unscaledPoints = points;-		m_numPoints = numPoints;-		m_localScaling = localScaling;+void setPoints (btVector3* points, int numPoints, bool computeAabb = true,const btVector3& localScaling=btVector3(1.f,1.f,1.f))+{+m_unscaledPoints = points;+m_numPoints = numPoints;+m_localScaling = localScaling; -		if (computeAabb)-			recalcLocalAabb();-	}+if (computeAabb)+recalcLocalAabb();+} -	SIMD_FORCE_INLINE	btVector3* getUnscaledPoints()-	{-		return m_unscaledPoints;-	}+SIMD_FORCE_INLINE btVector3* getUnscaledPoints()+{+return m_unscaledPoints;+} -	SIMD_FORCE_INLINE	const btVector3* getUnscaledPoints() const-	{-		return m_unscaledPoints;-	}+SIMD_FORCE_INLINE const btVector3* getUnscaledPoints() const+{+return m_unscaledPoints;+} -	SIMD_FORCE_INLINE	int getNumPoints() const -	{-		return m_numPoints;-	}+SIMD_FORCE_INLINE int getNumPoints() const+{+return m_numPoints;+} -	SIMD_FORCE_INLINE	btVector3	getScaledPoint( int index) const-	{-		return m_unscaledPoints[index] * m_localScaling;-	}+SIMD_FORCE_INLINE btVector3 getScaledPoint( int index) const+{+return m_unscaledPoints[index] * m_localScaling;+}  #ifndef __SPU__-	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; #endif  -	//debugging-	virtual const char*	getName()const {return "ConvexPointCloud";}+//debugging+virtual const char* getName()const {return "ConvexPointCloud";} -	virtual int	getNumVertices() const;-	virtual int getNumEdges() const;-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;-	virtual void getVertex(int i,btVector3& vtx) const;-	virtual int	getNumPlanes() const;-	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;-	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const;+virtual int getNumVertices() const;+virtual int getNumEdges() const;+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;+virtual void getVertex(int i,btVector3& vtx) const;+virtual int getNumPlanes() const;+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;+virtual bool isInside(const btVector3& pt,btScalar tolerance) const; -	///in case we receive negative scaling-	virtual void	setLocalScaling(const btVector3& scaling);+///in case we receive negative scaling+virtual void setLocalScaling(const btVector3& scaling); };  
bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.h view
@@ -1,54 +1,62 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2011 Advanced Micro Devices, Inc.  http://bulletphysics.org
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-///This file was written by Erwin Coumans
-
-
-#ifndef _BT_POLYHEDRAL_FEATURES_H
-#define _BT_POLYHEDRAL_FEATURES_H
-
-#include "LinearMath/btTransform.h"
-#include "LinearMath/btAlignedObjectArray.h"
-
-
-struct btFace
-{
-	btAlignedObjectArray<int>	m_indices;
-	btAlignedObjectArray<int>	m_connectedFaces;
-	float	m_plane[4];
-};
-
-
-class btConvexPolyhedron
-{
-	public:
-	btConvexPolyhedron();
-	virtual	~btConvexPolyhedron();
-
-	btAlignedObjectArray<btVector3>	m_vertices;
-	btAlignedObjectArray<btFace>	m_faces;
-	btAlignedObjectArray<btVector3> m_uniqueEdges;
-	btVector3		m_localCenter;
-
-	void	initialize();
-
-	void project(const btTransform& trans, const btVector3& dir, float& min, float& max) const;
-};
-
-	
-#endif //_BT_POLYHEDRAL_FEATURES_H
-
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2011 Advanced Micro Devices, Inc. http://bulletphysics.org++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++///This file was written by Erwin Coumans+++#ifndef _BT_POLYHEDRAL_FEATURES_H+#define _BT_POLYHEDRAL_FEATURES_H++#include "LinearMath/btTransform.h"+#include "LinearMath/btAlignedObjectArray.h"++#define TEST_INTERNAL_OBJECTS 1+++struct btFace+{+btAlignedObjectArray<int> m_indices;+// btAlignedObjectArray<int> m_connectedFaces;+btScalar m_plane[4];+};+++class btConvexPolyhedron+{ private:+public:+btConvexPolyhedron();+virtual ~btConvexPolyhedron();++btAlignedObjectArray<btVector3> m_vertices;+btAlignedObjectArray<btFace> m_faces;+btAlignedObjectArray<btVector3> m_uniqueEdges;++btVector3 m_localCenter;+btVector3 m_extents;+btScalar m_radius;+btVector3 mC;+btVector3 mE;++void initialize();+bool testContainment() const;++void project(const btTransform& trans, const btVector3& dir, btScalar& min, btScalar& max) const;+};+++#endif //_BT_POLYHEDRAL_FEATURES_H++
bullet/BulletCollision/CollisionShapes/btConvexShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,52 +29,54 @@ /// The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape, btConvexHullShape etc. /// It describes general convex shapes using the localGetSupportingVertex interface, used by collision detectors such as btGjkPairDetector. ATTRIBUTE_ALIGNED16(class) btConvexShape : public btCollisionShape-{+{ private:   public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btConvexShape ();+btConvexShape (); -	virtual ~btConvexShape();+virtual ~btConvexShape(); -	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const = 0;+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const = 0; -	////////-	#ifndef __SPU__-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec) const=0;-	#endif //#ifndef __SPU__+////////+#ifndef __SPU__+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec) const=0;+#endif //#ifndef __SPU__ -	btVector3 localGetSupportVertexWithoutMarginNonVirtual (const btVector3& vec) const;-	btVector3 localGetSupportVertexNonVirtual (const btVector3& vec) const;-	btScalar getMarginNonVirtual () const;-	void getAabbNonVirtual (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const;+btVector3 localGetSupportVertexWithoutMarginNonVirtual (const btVector3& vec) const;+btVector3 localGetSupportVertexNonVirtual (const btVector3& vec) const;+btScalar getMarginNonVirtual () const;+void getAabbNonVirtual (const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const; -	-	//notice that the vectors should be unit length-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const= 0;+virtual void project(const btTransform& trans, const btVector3& dir, float& min, float& max) const; -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; -	virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0;+//notice that the vectors should be unit length+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const= 0; -	virtual void	setLocalScaling(const btVector3& scaling) =0;-	virtual const btVector3& getLocalScaling() const =0;+///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; -	virtual void	setMargin(btScalar margin)=0;+virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const =0; -	virtual btScalar	getMargin() const=0;+virtual void setLocalScaling(const btVector3& scaling) =0;+virtual const btVector3& getLocalScaling() const =0; -	virtual int		getNumPreferredPenetrationDirections() const=0;-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const=0;+virtual void setMargin(btScalar margin)=0; +virtual btScalar getMargin() const=0; -	-	+virtual int getNumPreferredPenetrationDirections() const=0;++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const=0;++++ };  
bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,47 +23,47 @@ /// The btConvexTriangleMeshShape is a convex hull of a triangle mesh, but the performance is not as good as btConvexHullShape. /// A small benefit of this class is that it uses the btStridingMeshInterface, so you can avoid the duplication of the triangle mesh data. Nevertheless, most users should use the much better performing btConvexHullShape instead. class btConvexTriangleMeshShape : public btPolyhedralConvexAabbCachingShape-{+{ private: -	class btStridingMeshInterface*	m_stridingMesh;+class btStridingMeshInterface* m_stridingMesh;  public:-	btConvexTriangleMeshShape(btStridingMeshInterface* meshInterface, bool calcAabb = true);+btConvexTriangleMeshShape(btStridingMeshInterface* meshInterface, bool calcAabb = true); -	class btStridingMeshInterface*	getMeshInterface()-	{-		return m_stridingMesh;-	}-	const class btStridingMeshInterface* getMeshInterface() const-	{-		return m_stridingMesh;-	}-	-	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	-	//debugging-	virtual const char*	getName()const {return "ConvexTrimesh";}-	-	virtual int	getNumVertices() const;-	virtual int getNumEdges() const;-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;-	virtual void getVertex(int i,btVector3& vtx) const;-	virtual int	getNumPlanes() const;-	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;-	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const;+class btStridingMeshInterface* getMeshInterface()+{+return m_stridingMesh;+}+const class btStridingMeshInterface* getMeshInterface() const+{+return m_stridingMesh;+} -	-	virtual void	setLocalScaling(const btVector3& scaling);-	virtual const btVector3& getLocalScaling() const;+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	///computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia-	///and the center of mass to the current coordinate system. A mass of 1 is assumed, for other masses just multiply the computed "inertia"-	///by the mass. The resulting transform "principal" has to be applied inversely to the mesh in order for the local coordinate system of the-	///shape to be centered at the center of mass and to coincide with the principal axes. This also necessitates a correction of the world transform-	///of the collision object by the principal transform. This method also computes the volume of the convex mesh.-	void calculatePrincipalAxisTransform(btTransform& principal, btVector3& inertia, btScalar& volume) const;+//debugging+virtual const char* getName()const {return "ConvexTrimesh";}++virtual int getNumVertices() const;+virtual int getNumEdges() const;+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;+virtual void getVertex(int i,btVector3& vtx) const;+virtual int getNumPlanes() const;+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const;+virtual bool isInside(const btVector3& pt,btScalar tolerance) const;+++virtual void setLocalScaling(const btVector3& scaling);+virtual const btVector3& getLocalScaling() const;++///computes the exact moment of inertia and the transform from the coordinate system defined by the principal axes of the moment of inertia+///and the center of mass to the current coordinate system. A mass of 1 is assumed, for other masses just multiply the computed "inertia"+///by the mass. The resulting transform "principal" has to be applied inversely to the mesh in order for the local coordinate system of the+///shape to be centered at the center of mass and to coincide with the principal axes. This also necessitates a correction of the world transform+///of the collision object by the principal transform. This method also computes the volume of the convex mesh.+void calculatePrincipalAxisTransform(btTransform& principal, btVector3& inertia, btScalar& volume) const;  }; 
bullet/BulletCollision/CollisionShapes/btCylinderShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -27,171 +27,171 @@  protected: -	int	m_upAxis;+int m_upAxis;  public: -	btVector3 getHalfExtentsWithMargin() const-	{-		btVector3 halfExtents = getHalfExtentsWithoutMargin();-		btVector3 margin(getMargin(),getMargin(),getMargin());-		halfExtents += margin;-		return halfExtents;-	}-	-	const btVector3& getHalfExtentsWithoutMargin() const-	{-		return m_implicitShapeDimensions;//changed in Bullet 2.63: assume the scaling and margin are included-	}+btVector3 getHalfExtentsWithMargin() const+{+btVector3 halfExtents = getHalfExtentsWithoutMargin();+btVector3 margin(getMargin(),getMargin(),getMargin());+halfExtents += margin;+return halfExtents;+} -	btCylinderShape (const btVector3& halfExtents);-	-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+const btVector3& getHalfExtentsWithoutMargin() const+{+return m_implicitShapeDimensions;//changed in Bullet 2.63: assume the scaling and margin are included+} -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+btCylinderShape (const btVector3& halfExtents); -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void setMargin(btScalar collisionMargin)-	{-		//correct the m_implicitShapeDimensions for the margin-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		-		btConvexInternalShape::setMargin(collisionMargin);-		btVector3 newMargin(getMargin(),getMargin(),getMargin());-		m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	}+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual btVector3	localGetSupportingVertex(const btVector3& vec) const-	{+virtual void setMargin(btScalar collisionMargin)+{+//correct the m_implicitShapeDimensions for the margin+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin; -		btVector3 supVertex;-		supVertex = localGetSupportingVertexWithoutMargin(vec);-		-		if ( getMargin()!=btScalar(0.) )-		{-			btVector3 vecnorm = vec;-			if (vecnorm .length2() < (SIMD_EPSILON*SIMD_EPSILON))-			{-				vecnorm.setValue(btScalar(-1.),btScalar(-1.),btScalar(-1.));-			} -			vecnorm.normalize();-			supVertex+= getMargin() * vecnorm;-		}-		return supVertex;-	}+btConvexInternalShape::setMargin(collisionMargin);+btVector3 newMargin(getMargin(),getMargin(),getMargin());+m_implicitShapeDimensions = implicitShapeDimensionsWithMargin - newMargin; +} -	//use box inertia-	//	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual btVector3 localGetSupportingVertex(const btVector3& vec) const+{ +btVector3 supVertex;+supVertex = localGetSupportingVertexWithoutMargin(vec); -	int	getUpAxis() const-	{-		return m_upAxis;-	}+if ( getMargin()!=btScalar(0.) )+{+btVector3 vecnorm = vec;+if (vecnorm .length2() < (SIMD_EPSILON*SIMD_EPSILON))+{+vecnorm.setValue(btScalar(-1.),btScalar(-1.),btScalar(-1.));+}+vecnorm.normalize();+supVertex+= getMargin() * vecnorm;+}+return supVertex;+} -	virtual btScalar getRadius() const-	{-		return getHalfExtentsWithMargin().getX();-	} -	virtual void	setLocalScaling(const btVector3& scaling)-	{-		btVector3 oldMargin(getMargin(),getMargin(),getMargin());-		btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;-		btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling;+//use box inertia+// virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -		btConvexInternalShape::setLocalScaling(scaling); -		m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin;+int getUpAxis() const+{+return m_upAxis;+} -	}+virtual btScalar getRadius() const+{+return getHalfExtentsWithMargin().getX();+} -	//debugging-	virtual const char*	getName()const-	{-		return "CylinderY";-	}+virtual void setLocalScaling(const btVector3& scaling)+{+btVector3 oldMargin(getMargin(),getMargin(),getMargin());+btVector3 implicitShapeDimensionsWithMargin = m_implicitShapeDimensions+oldMargin;+btVector3 unScaledImplicitShapeDimensionsWithMargin = implicitShapeDimensionsWithMargin / m_localScaling; -	virtual	int	calculateSerializeBufferSize() const;+btConvexInternalShape::setLocalScaling(scaling); -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+m_implicitShapeDimensions = (unScaledImplicitShapeDimensionsWithMargin * m_localScaling) - oldMargin; +}++//debugging+virtual const char* getName()const+{+return "CylinderY";+}++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;+ };  class btCylinderShapeX : public btCylinderShape-{+{ private: public:-	btCylinderShapeX (const btVector3& halfExtents);+btCylinderShapeX (const btVector3& halfExtents); -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	-		//debugging-	virtual const char*	getName()const-	{-		return "CylinderX";-	}+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual btScalar getRadius() const-	{-		return getHalfExtentsWithMargin().getY();-	}+//debugging+virtual const char* getName()const+{+return "CylinderX";+} +virtual btScalar getRadius() const+{+return getHalfExtentsWithMargin().getY();+}+ };  class btCylinderShapeZ : public btCylinderShape-{+{ private: public:-	btCylinderShapeZ (const btVector3& halfExtents);+btCylinderShapeZ (const btVector3& halfExtents); -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -		//debugging-	virtual const char*	getName()const-	{-		return "CylinderZ";-	}+//debugging+virtual const char* getName()const+{+return "CylinderZ";+} -	virtual btScalar getRadius() const-	{-		return getHalfExtentsWithMargin().getX();-	}+virtual btScalar getRadius() const+{+return getHalfExtentsWithMargin().getX();+}  };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btCylinderShapeData+struct btCylinderShapeData {-	btConvexInternalShapeData	m_convexInternalShapeData;+btConvexInternalShapeData m_convexInternalShapeData; -	int	m_upAxis;+int m_upAxis; -	char	m_padding[4];+char m_padding[4]; }; -SIMD_FORCE_INLINE	int	btCylinderShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btCylinderShape::calculateSerializeBufferSize() const {-	return sizeof(btCylinderShapeData);+return sizeof(btCylinderShapeData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btCylinderShape::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btCylinderShape::serialize(void* dataBuffer, btSerializer* serializer) const {-	btCylinderShapeData* shapeData = (btCylinderShapeData*) dataBuffer;-	-	btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData,serializer);+btCylinderShapeData* shapeData = (btCylinderShapeData*) dataBuffer; -	shapeData->m_upAxis = m_upAxis;-	-	return "btCylinderShapeData";+btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData,serializer);++shapeData->m_upAxis = m_upAxis;++return "btCylinderShapeData"; }  
bullet/BulletCollision/CollisionShapes/btEmptyShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,40 +28,40 @@  /// The btEmptyShape is a collision shape without actual collision detection shape, so most users should ignore this class. /// It can be replaced by another shape during runtime, but the inertia tensor should be recomputed.-class btEmptyShape	: public btConcaveShape-{+class btEmptyShape : public btConcaveShape+{ private: public:-	btEmptyShape();+btEmptyShape(); -	virtual ~btEmptyShape();+virtual ~btEmptyShape();  -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;  -	virtual void	setLocalScaling(const btVector3& scaling)-	{-		m_localScaling = scaling;-	}-	virtual const btVector3& getLocalScaling() const -	{-		return m_localScaling;-	}+virtual void setLocalScaling(const btVector3& scaling)+{+m_localScaling = scaling;+}+virtual const btVector3& getLocalScaling() const+{+return m_localScaling;+} -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;-	-	virtual const char*	getName()const-	{-		return "Empty";-	}+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void processAllTriangles(btTriangleCallback* ,const btVector3& ,const btVector3& ) const-	{-	}+virtual const char* getName()const+{+return "Empty";+} +virtual void processAllTriangles(btTriangleCallback* ,const btVector3& ,const btVector3& ) const+{+}+ protected:-	btVector3	m_localScaling;+btVector3 m_localScaling;  }; 
bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,141 +20,141 @@  ///btHeightfieldTerrainShape simulates a 2D heightfield terrain /**-  The caller is responsible for maintaining the heightfield array; this-  class does not make a copy.+The caller is responsible for maintaining the heightfield array; this+class does not make a copy. -  The heightfield can be dynamic so long as the min/max height values-  capture the extremes (heights must always be in that range).+The heightfield can be dynamic so long as the min/max height values+capture the extremes (heights must always be in that range). -  The local origin of the heightfield is assumed to be the exact-  center (as determined by width and length and height, with each-  axis multiplied by the localScaling).+The local origin of the heightfield is assumed to be the exact+center (as determined by width and length and height, with each+axis multiplied by the localScaling). -  \b NOTE: be careful with coordinates.  If you have a heightfield with a local-  min height of -100m, and a max height of +500m, you may be tempted to place it-  at the origin (0,0) and expect the heights in world coordinates to be-  -100 to +500 meters.-  Actually, the heights will be -300 to +300m, because bullet will re-center-  the heightfield based on its AABB (which is determined by the min/max-  heights).  So keep in mind that once you create a btHeightfieldTerrainShape-  object, the heights will be adjusted relative to the center of the AABB.  This-  is different to the behavior of many rendering engines, but is useful for-  physics engines.+\b NOTE: be careful with coordinates. If you have a heightfield with a local+min height of -100m, and a max height of +500m, you may be tempted to place it+at the origin (0,0) and expect the heights in world coordinates to be+-100 to +500 meters.+Actually, the heights will be -300 to +300m, because bullet will re-center+the heightfield based on its AABB (which is determined by the min/max+heights). So keep in mind that once you create a btHeightfieldTerrainShape+object, the heights will be adjusted relative to the center of the AABB. This+is different to the behavior of many rendering engines, but is useful for+physics engines. -  Most (but not all) rendering and heightfield libraries assume upAxis = 1-  (that is, the y-axis is "up").  This class allows any of the 3 coordinates-  to be "up".  Make sure your choice of axis is consistent with your rendering-  system.+Most (but not all) rendering and heightfield libraries assume upAxis = 1+(that is, the y-axis is "up"). This class allows any of the 3 coordinates+to be "up". Make sure your choice of axis is consistent with your rendering+system. -  The heightfield heights are determined from the data type used for the-  heightfieldData array.  +The heightfield heights are determined from the data type used for the+heightfieldData array. -   - PHY_UCHAR: height at a point is the uchar value at the-       grid point, multipled by heightScale.  uchar isn't recommended-       because of its inability to deal with negative values, and-       low resolution (8-bit).+- PHY_UCHAR: height at a point is the uchar value at the+grid point, multipled by heightScale. uchar isn't recommended+because of its inability to deal with negative values, and+low resolution (8-bit). -   - PHY_SHORT: height at a point is the short int value at that grid-       point, multipled by heightScale.+- PHY_SHORT: height at a point is the short int value at that grid+point, multipled by heightScale. -   - PHY_FLOAT: height at a point is the float value at that grid-       point.  heightScale is ignored when using the float heightfield-       data type.+- PHY_FLOAT: height at a point is the float value at that grid+point. heightScale is ignored when using the float heightfield+data type. -  Whatever the caller specifies as minHeight and maxHeight will be honored.-  The class will not inspect the heightfield to discover the actual minimum-  or maximum heights.  These values are used to determine the heightfield's-  axis-aligned bounding box, multiplied by localScaling.+Whatever the caller specifies as minHeight and maxHeight will be honored.+The class will not inspect the heightfield to discover the actual minimum+or maximum heights. These values are used to determine the heightfield's+axis-aligned bounding box, multiplied by localScaling. -  For usage and testing see the TerrainDemo.- */+For usage and testing see the TerrainDemo.+*/ class btHeightfieldTerrainShape : public btConcaveShape-{+{ private: protected:-	btVector3	m_localAabbMin;-	btVector3	m_localAabbMax;-	btVector3	m_localOrigin;+btVector3 m_localAabbMin;+btVector3 m_localAabbMax;+btVector3 m_localOrigin; -	///terrain data-	int	m_heightStickWidth;-	int m_heightStickLength;-	btScalar	m_minHeight;-	btScalar	m_maxHeight;-	btScalar m_width;-	btScalar m_length;-	btScalar m_heightScale;-	union-	{-		unsigned char*	m_heightfieldDataUnsignedChar;-		short*		m_heightfieldDataShort;-		btScalar*			m_heightfieldDataFloat;-		void*			m_heightfieldDataUnknown;-	};+///terrain data+int m_heightStickWidth;+int m_heightStickLength;+btScalar m_minHeight;+btScalar m_maxHeight;+btScalar m_width;+btScalar m_length;+btScalar m_heightScale;+union+{+unsigned char* m_heightfieldDataUnsignedChar;+short* m_heightfieldDataShort;+btScalar* m_heightfieldDataFloat;+void* m_heightfieldDataUnknown;+}; -	PHY_ScalarType	m_heightDataType;	-	bool	m_flipQuadEdges;-  bool  m_useDiamondSubdivision;+PHY_ScalarType m_heightDataType;+bool m_flipQuadEdges;+bool m_useDiamondSubdivision; -	int	m_upAxis;-	-	btVector3	m_localScaling;+int m_upAxis; -	virtual btScalar	getRawHeightFieldValue(int x,int y) const;-	void		quantizeWithClamp(int* out, const btVector3& point,int isMax) const;-	void		getVertex(int x,int y,btVector3& vertex) const;+btVector3 m_localScaling; +virtual btScalar getRawHeightFieldValue(int x,int y) const;+void quantizeWithClamp(int* out, const btVector3& point,int isMax) const;+void getVertex(int x,int y,btVector3& vertex) const;  -	/// protected initialization-	/**-	  Handles the work of constructors so that public constructors can be-	  backwards-compatible without a lot of copy/paste.-	 */-	void initialize(int heightStickWidth, int heightStickLength,-	                void* heightfieldData, btScalar heightScale,-	                btScalar minHeight, btScalar maxHeight, int upAxis,-	                PHY_ScalarType heightDataType, bool flipQuadEdges); +/// protected initialization+/**+Handles the work of constructors so that public constructors can be+backwards-compatible without a lot of copy/paste.+*/+void initialize(int heightStickWidth, int heightStickLength,+void* heightfieldData, btScalar heightScale,+btScalar minHeight, btScalar maxHeight, int upAxis,+PHY_ScalarType heightDataType, bool flipQuadEdges);+ public:-	/// preferred constructor-	/**-	  This constructor supports a range of heightfield-	  data types, and allows for a non-zero minimum height value.-	  heightScale is needed for any integer-based heightfield data types.-	 */-	btHeightfieldTerrainShape(int heightStickWidth,int heightStickLength,-	                          void* heightfieldData, btScalar heightScale,-	                          btScalar minHeight, btScalar maxHeight,-	                          int upAxis, PHY_ScalarType heightDataType,-	                          bool flipQuadEdges);+/// preferred constructor+/**+This constructor supports a range of heightfield+data types, and allows for a non-zero minimum height value.+heightScale is needed for any integer-based heightfield data types.+*/+btHeightfieldTerrainShape(int heightStickWidth,int heightStickLength,+void* heightfieldData, btScalar heightScale,+btScalar minHeight, btScalar maxHeight,+int upAxis, PHY_ScalarType heightDataType,+bool flipQuadEdges); -	/// legacy constructor-	/**-	  The legacy constructor assumes the heightfield has a minimum height-	  of zero.  Only unsigned char or floats are supported.  For legacy-	  compatibility reasons, heightScale is calculated as maxHeight / 65535 -	  (and is only used when useFloatData = false).- 	 */-	btHeightfieldTerrainShape(int heightStickWidth,int heightStickLength,void* heightfieldData, btScalar maxHeight,int upAxis,bool useFloatData,bool flipQuadEdges);+/// legacy constructor+/**+The legacy constructor assumes the heightfield has a minimum height+of zero. Only unsigned char or floats are supported. For legacy+compatibility reasons, heightScale is calculated as maxHeight / 65535+(and is only used when useFloatData = false).+*/+btHeightfieldTerrainShape(int heightStickWidth,int heightStickLength,void* heightfieldData, btScalar maxHeight,int upAxis,bool useFloatData,bool flipQuadEdges); -	virtual ~btHeightfieldTerrainShape();+virtual ~btHeightfieldTerrainShape();  -	void setUseDiamondSubdivision(bool useDiamondSubdivision=true) { m_useDiamondSubdivision = useDiamondSubdivision;}+void setUseDiamondSubdivision(bool useDiamondSubdivision=true) { m_useDiamondSubdivision = useDiamondSubdivision;}  -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void	setLocalScaling(const btVector3& scaling);-	-	virtual const btVector3& getLocalScaling() const;-	-	//debugging-	virtual const char*	getName()const {return "HEIGHTFIELD";}+virtual void setLocalScaling(const btVector3& scaling);++virtual const btVector3& getLocalScaling() const;++//debugging+virtual const char* getName()const {return "HEIGHTFIELD";}  }; 
bullet/BulletCollision/CollisionShapes/btMaterial.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,15 +20,15 @@  // Material class to be used by btMultimaterialTriangleMeshShape to store triangle properties class btMaterial-{-    // public members so that materials can change due to world events+{ private:+// public members so that materials can change due to world events public:-    btScalar m_friction;-    btScalar m_restitution;-    int pad[2];+btScalar m_friction;+btScalar m_restitution;+int pad[2]; -    btMaterial(){}-    btMaterial(btScalar fric, btScalar rest) { m_friction = fric; m_restitution = rest; }+btMaterial(){}+btMaterial(btScalar fric, btScalar rest) { m_friction = fric; m_restitution = rest; } };  #endif // BT_MATERIAL_H
bullet/BulletCollision/CollisionShapes/btMinkowskiSumShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,40 +21,40 @@  /// The btMinkowskiSumShape is only for advanced users. This shape represents implicit based minkowski sum of two convex implicit shapes. class btMinkowskiSumShape : public btConvexInternalShape-{+{ private: -	btTransform	m_transA;-	btTransform	m_transB;-	const btConvexShape*	m_shapeA;-	const btConvexShape*	m_shapeB;+btTransform m_transA;+btTransform m_transB;+const btConvexShape* m_shapeA;+const btConvexShape* m_shapeB;  public: -	btMinkowskiSumShape(const btConvexShape* shapeA,const btConvexShape* shapeB);+btMinkowskiSumShape(const btConvexShape* shapeA,const btConvexShape* shapeB); -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;  -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	void	setTransformA(const btTransform&	transA) { m_transA = transA;}-	void	setTransformB(const btTransform&	transB) { m_transB = transB;}+void setTransformA(const btTransform& transA) { m_transA = transA;}+void setTransformB(const btTransform& transB) { m_transB = transB;} -	const btTransform& getTransformA()const  { return m_transA;}-	const btTransform& GetTransformB()const  { return m_transB;}+const btTransform& getTransformA()const { return m_transA;}+const btTransform& GetTransformB()const { return m_transB;}  -	virtual btScalar	getMargin() const;+virtual btScalar getMargin() const; -	const btConvexShape*	getShapeA() const { return m_shapeA;}-	const btConvexShape*	getShapeB() const { return m_shapeB;}+const btConvexShape* getShapeA() const { return m_shapeA;}+const btConvexShape* getShapeB() const { return m_shapeB;} -	virtual const char*	getName()const -	{-		return "MinkowskiSum";-	}+virtual const char* getName()const+{+return "MinkowskiSum";+} };  #endif //BT_MINKOWSKI_SUM_SHAPE_H
bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,72 +26,72 @@ ///The btMultiSphereShape represents the convex hull of a collection of spheres. You can create special capsules or other smooth volumes. ///It is possible to animate the spheres for deformation, but call 'recalcLocalAabb' after changing any sphere position/radius class btMultiSphereShape : public btConvexInternalAabbCachingShape-{-	-	btAlignedObjectArray<btVector3> m_localPositionArray;-	btAlignedObjectArray<btScalar>  m_radiArray;-	+{ private:++btAlignedObjectArray<btVector3> m_localPositionArray;+btAlignedObjectArray<btScalar> m_radiArray;+ public:-	btMultiSphereShape (const btVector3* positions,const btScalar* radi,int numSpheres);+btMultiSphereShape (const btVector3* positions,const btScalar* radi,int numSpheres); -	///CollisionShape Interface-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+///CollisionShape Interface+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	/// btConvexShape Interface-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+/// btConvexShape Interface+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	-	int	getSphereCount() const-	{-		return m_localPositionArray.size();-	}+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	const btVector3&	getSpherePosition(int index) const-	{-		return m_localPositionArray[index];-	}+int getSphereCount() const+{+return m_localPositionArray.size();+} -	btScalar	getSphereRadius(int index) const-	{-		return m_radiArray[index];-	}+const btVector3& getSpherePosition(int index) const+{+return m_localPositionArray[index];+} +btScalar getSphereRadius(int index) const+{+return m_radiArray[index];+} -	virtual const char*	getName()const -	{-		return "MultiSphere";-	} -	virtual	int	calculateSerializeBufferSize() const;+virtual const char* getName()const+{+return "MultiSphere";+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; +///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; + };  -struct	btPositionAndRadius+struct btPositionAndRadius {-	btVector3FloatData	m_pos;-	float		m_radius;+btVector3FloatData m_pos;+float m_radius; }; -struct	btMultiSphereShapeData+struct btMultiSphereShapeData {-	btConvexInternalShapeData	m_convexInternalShapeData;+btConvexInternalShapeData m_convexInternalShapeData; -	btPositionAndRadius	*m_localPositionArrayPtr;-	int				m_localPositionArraySize;-	char	m_padding[4];+btPositionAndRadius *m_localPositionArrayPtr;+int m_localPositionArraySize;+char m_padding[4]; };   -SIMD_FORCE_INLINE	int	btMultiSphereShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btMultiSphereShape::calculateSerializeBufferSize() const {-	return sizeof(btMultiSphereShapeData);+return sizeof(btMultiSphereShapeData); }  
bullet/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,96 +23,96 @@  ///The BvhTriangleMaterialMeshShape extends the btBvhTriangleMeshShape. Its main contribution is the interface into a material array, which allows per-triangle friction and restitution. ATTRIBUTE_ALIGNED16(class) btMultimaterialTriangleMeshShape : public btBvhTriangleMeshShape-{-    btAlignedObjectArray <btMaterial*> m_materialList;-    int ** m_triangleMaterials;+{ private:+btAlignedObjectArray <btMaterial*> m_materialList;+int ** m_triangleMaterials;  public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -    btMultimaterialTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression, bool buildBvh = true):-        btBvhTriangleMeshShape(meshInterface, useQuantizedAabbCompression, buildBvh)-        {-            m_shapeType = MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE;+btMultimaterialTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression, bool buildBvh = true):+btBvhTriangleMeshShape(meshInterface, useQuantizedAabbCompression, buildBvh)+{+m_shapeType = MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE; -            const unsigned char *vertexbase;-            int numverts;-            PHY_ScalarType type;-            int stride;-            const unsigned char *indexbase;-            int indexstride;-            int numfaces;-            PHY_ScalarType indicestype;+const unsigned char *vertexbase;+int numverts;+PHY_ScalarType type;+int stride;+const unsigned char *indexbase;+int indexstride;+int numfaces;+PHY_ScalarType indicestype; -            //m_materialLookup = (int**)(btAlignedAlloc(sizeof(int*) * meshInterface->getNumSubParts(), 16));+//m_materialLookup = (int**)(btAlignedAlloc(sizeof(int*) * meshInterface->getNumSubParts(), 16)); -            for(int i = 0; i < meshInterface->getNumSubParts(); i++)-            {-                m_meshInterface->getLockedReadOnlyVertexIndexBase(-                    &vertexbase,-                    numverts,-                    type,-                    stride,-                    &indexbase,-                    indexstride,-                    numfaces,-                    indicestype,-                    i);-                //m_materialLookup[i] = (int*)(btAlignedAlloc(sizeof(int) * numfaces, 16));-            }-        }+for(int i = 0; i < meshInterface->getNumSubParts(); i++)+{+m_meshInterface->getLockedReadOnlyVertexIndexBase(+&vertexbase,+numverts,+type,+stride,+&indexbase,+indexstride,+numfaces,+indicestype,+i);+//m_materialLookup[i] = (int*)(btAlignedAlloc(sizeof(int) * numfaces, 16));+}+} -	///optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb-	btMultimaterialTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression,const btVector3& bvhAabbMin,const btVector3& bvhAabbMax, bool buildBvh = true):-        btBvhTriangleMeshShape(meshInterface, useQuantizedAabbCompression, bvhAabbMin, bvhAabbMax, buildBvh)-        {-            m_shapeType = MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE;+///optionally pass in a larger bvh aabb, used for quantization. This allows for deformations within this aabb+btMultimaterialTriangleMeshShape(btStridingMeshInterface* meshInterface, bool useQuantizedAabbCompression,const btVector3& bvhAabbMin,const btVector3& bvhAabbMax, bool buildBvh = true):+btBvhTriangleMeshShape(meshInterface, useQuantizedAabbCompression, bvhAabbMin, bvhAabbMax, buildBvh)+{+m_shapeType = MULTIMATERIAL_TRIANGLE_MESH_PROXYTYPE; -            const unsigned char *vertexbase;-            int numverts;-            PHY_ScalarType type;-            int stride;-            const unsigned char *indexbase;-            int indexstride;-            int numfaces;-            PHY_ScalarType indicestype;+const unsigned char *vertexbase;+int numverts;+PHY_ScalarType type;+int stride;+const unsigned char *indexbase;+int indexstride;+int numfaces;+PHY_ScalarType indicestype; -            //m_materialLookup = (int**)(btAlignedAlloc(sizeof(int*) * meshInterface->getNumSubParts(), 16));+//m_materialLookup = (int**)(btAlignedAlloc(sizeof(int*) * meshInterface->getNumSubParts(), 16)); -            for(int i = 0; i < meshInterface->getNumSubParts(); i++)-            {-                m_meshInterface->getLockedReadOnlyVertexIndexBase(-                    &vertexbase,-                    numverts,-                    type,-                    stride,-                    &indexbase,-                    indexstride,-                    numfaces,-                    indicestype,-                    i);-                //m_materialLookup[i] = (int*)(btAlignedAlloc(sizeof(int) * numfaces * 2, 16));-            }-        }-	-    virtual ~btMultimaterialTriangleMeshShape()-    {+for(int i = 0; i < meshInterface->getNumSubParts(); i++)+{+m_meshInterface->getLockedReadOnlyVertexIndexBase(+&vertexbase,+numverts,+type,+stride,+&indexbase,+indexstride,+numfaces,+indicestype,+i);+//m_materialLookup[i] = (int*)(btAlignedAlloc(sizeof(int) * numfaces * 2, 16));+}+}++virtual ~btMultimaterialTriangleMeshShape()+{ /*-        for(int i = 0; i < m_meshInterface->getNumSubParts(); i++)-        {-            btAlignedFree(m_materialValues[i]);-            m_materialLookup[i] = NULL;-        }-        btAlignedFree(m_materialValues);-        m_materialLookup = NULL;+for(int i = 0; i < m_meshInterface->getNumSubParts(); i++)+{+btAlignedFree(m_materialValues[i]);+m_materialLookup[i] = NULL;+}+btAlignedFree(m_materialValues);+m_materialLookup = NULL; */-    }-	//debugging-	virtual const char*	getName()const {return "MULTIMATERIALTRIANGLEMESH";}+}+//debugging+virtual const char* getName()const {return "MULTIMATERIALTRIANGLEMESH";} -    ///Obtains the material for a specific triangle-    const btMaterial * getMaterialProperties(int partID, int triIndex);+///Obtains the material for a specific triangle+const btMaterial * getMaterialProperties(int partID, int triIndex);  } ;
bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,36 +25,36 @@  ///The btOptimizedBvh extends the btQuantizedBvh to create AABB tree for triangle meshes, through the btStridingMeshInterface. ATTRIBUTE_ALIGNED16(class) btOptimizedBvh : public btQuantizedBvh-{-	+{ private:+ public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR();  protected:  public: -	btOptimizedBvh();+btOptimizedBvh(); -	virtual ~btOptimizedBvh();+virtual ~btOptimizedBvh(); -	void	build(btStridingMeshInterface* triangles,bool useQuantizedAabbCompression, const btVector3& bvhAabbMin, const btVector3& bvhAabbMax);+void build(btStridingMeshInterface* triangles,bool useQuantizedAabbCompression, const btVector3& bvhAabbMin, const btVector3& bvhAabbMax); -	void	refit(btStridingMeshInterface* triangles,const btVector3& aabbMin,const btVector3& aabbMax);+void refit(btStridingMeshInterface* triangles,const btVector3& aabbMin,const btVector3& aabbMax); -	void	refitPartial(btStridingMeshInterface* triangles,const btVector3& aabbMin, const btVector3& aabbMax);+void refitPartial(btStridingMeshInterface* triangles,const btVector3& aabbMin, const btVector3& aabbMax); -	void	updateBvhNodes(btStridingMeshInterface* meshInterface,int firstNode,int endNode,int index);+void updateBvhNodes(btStridingMeshInterface* meshInterface,int firstNode,int endNode,int index); -	/// Data buffer MUST be 16 byte aligned-	virtual bool serializeInPlace(void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const-	{-		return btQuantizedBvh::serialize(o_alignedDataBuffer,i_dataBufferSize,i_swapEndian);+/// Data buffer MUST be 16 byte aligned+virtual bool serializeInPlace(void *o_alignedDataBuffer, unsigned i_dataBufferSize, bool i_swapEndian) const+{+return btQuantizedBvh::serialize(o_alignedDataBuffer,i_dataBufferSize,i_swapEndian); -	}+} -	///deSerializeInPlace loads and initializes a BVH from a buffer in memory 'in place'-	static btOptimizedBvh *deSerializeInPlace(void *i_alignedDataBuffer, unsigned int i_dataBufferSize, bool i_swapEndian);+///deSerializeInPlace loads and initializes a BVH from a buffer in memory 'in place'+static btOptimizedBvh *deSerializeInPlace(void *i_alignedDataBuffer, unsigned int i_dataBufferSize, bool i_swapEndian);   };
bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,89 +23,89 @@  ///The btPolyhedralConvexShape is an internal interface class for polyhedral convex shapes. class btPolyhedralConvexShape : public btConvexInternalShape-{-	+{ private: + protected:-	-	btConvexPolyhedron* m_polyhedron; +btConvexPolyhedron* m_polyhedron;+ public: -	btPolyhedralConvexShape();+btPolyhedralConvexShape(); -	virtual ~btPolyhedralConvexShape();+virtual ~btPolyhedralConvexShape(); -	///optional method mainly used to generate multiple contact points by clipping polyhedral features (faces/edges)-	virtual bool	initializePolyhedralFeatures();+///optional method mainly used to generate multiple contact points by clipping polyhedral features (faces/edges)+virtual bool initializePolyhedralFeatures(); -	const btConvexPolyhedron*	getConvexPolyhedron() const-	{-		return m_polyhedron;-	}+const btConvexPolyhedron* getConvexPolyhedron() const+{+return m_polyhedron;+} -	//brute force implementations+//brute force implementations -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;-	-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;-	-	-	virtual int	getNumVertices() const = 0 ;-	virtual int getNumEdges() const = 0;-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const = 0;-	virtual void getVertex(int i,btVector3& vtx) const = 0;-	virtual int	getNumPlanes() const = 0;-	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const = 0;-//	virtual int getIndex(int i) const = 0 ; +virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const = 0;-	+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;+++virtual int getNumVertices() const = 0 ;+virtual int getNumEdges() const = 0;+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const = 0;+virtual void getVertex(int i,btVector3& vtx) const = 0;+virtual int getNumPlanes() const = 0;+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i ) const = 0;+// virtual int getIndex(int i) const = 0 ;++virtual bool isInside(const btVector3& pt,btScalar tolerance) const = 0;+ };   ///The btPolyhedralConvexAabbCachingShape adds aabb caching to the btPolyhedralConvexShape class btPolyhedralConvexAabbCachingShape : public btPolyhedralConvexShape-{+{ private: -	btVector3	m_localAabbMin;-	btVector3	m_localAabbMax;-	bool		m_isLocalAabbValid;-		+btVector3 m_localAabbMin;+btVector3 m_localAabbMax;+bool m_isLocalAabbValid;+ protected: -	void setCachedLocalAabb (const btVector3& aabbMin, const btVector3& aabbMax)-	{-		m_isLocalAabbValid = true;-		m_localAabbMin = aabbMin;-		m_localAabbMax = aabbMax;-	}+void setCachedLocalAabb (const btVector3& aabbMin, const btVector3& aabbMax)+{+m_isLocalAabbValid = true;+m_localAabbMin = aabbMin;+m_localAabbMax = aabbMax;+} -	inline void getCachedLocalAabb (btVector3& aabbMin, btVector3& aabbMax) const-	{-		btAssert(m_isLocalAabbValid);-		aabbMin = m_localAabbMin;-		aabbMax = m_localAabbMax;-	}+inline void getCachedLocalAabb (btVector3& aabbMin, btVector3& aabbMax) const+{+btAssert(m_isLocalAabbValid);+aabbMin = m_localAabbMin;+aabbMax = m_localAabbMax;+}  public: -	btPolyhedralConvexAabbCachingShape();-	-	inline void getNonvirtualAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax, btScalar margin) const-	{+btPolyhedralConvexAabbCachingShape(); -		//lazy evaluation of local aabb-		btAssert(m_isLocalAabbValid);-		btTransformAabb(m_localAabbMin,m_localAabbMax,margin,trans,aabbMin,aabbMax);-	}+inline void getNonvirtualAabb(const btTransform& trans,btVector3& aabbMin,btVector3& aabbMax, btScalar margin) const+{ -	virtual void	setLocalScaling(const btVector3& scaling);+//lazy evaluation of local aabb+btAssert(m_isLocalAabbValid);+btTransformAabb(m_localAabbMin,m_localAabbMax,margin,trans,aabbMin,aabbMax);+} -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void setLocalScaling(const btVector3& scaling); -	void	recalcLocalAabb();+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++void recalcLocalAabb();  }; 
bullet/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,71 +22,71 @@ ///The btScaledBvhTriangleMeshShape allows to instance a scaled version of an existing btBvhTriangleMeshShape. ///Note that each btBvhTriangleMeshShape still can have its own local scaling, independent from this btScaledBvhTriangleMeshShape 'localScaling' ATTRIBUTE_ALIGNED16(class) btScaledBvhTriangleMeshShape : public btConcaveShape-{-	-	-	btVector3	m_localScaling;+{ private: -	btBvhTriangleMeshShape*	m_bvhTriMeshShape; +btVector3 m_localScaling;++btBvhTriangleMeshShape* m_bvhTriMeshShape;+ public:  -	btScaledBvhTriangleMeshShape(btBvhTriangleMeshShape* childShape,const btVector3& localScaling);+btScaledBvhTriangleMeshShape(btBvhTriangleMeshShape* childShape,const btVector3& localScaling); -	virtual ~btScaledBvhTriangleMeshShape();+virtual ~btScaledBvhTriangleMeshShape();  -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;-	virtual void	setLocalScaling(const btVector3& scaling);-	virtual const btVector3& getLocalScaling() const;-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void setLocalScaling(const btVector3& scaling);+virtual const btVector3& getLocalScaling() const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	btBvhTriangleMeshShape*	getChildShape()-	{-		return m_bvhTriMeshShape;-	}+btBvhTriangleMeshShape* getChildShape()+{+return m_bvhTriMeshShape;+} -	const btBvhTriangleMeshShape*	getChildShape() const-	{-		return m_bvhTriMeshShape;-	}+const btBvhTriangleMeshShape* getChildShape() const+{+return m_bvhTriMeshShape;+} -	//debugging-	virtual const char*	getName()const {return "SCALEDBVHTRIANGLEMESH";}+//debugging+virtual const char* getName()const {return "SCALEDBVHTRIANGLEMESH";} -	virtual	int	calculateSerializeBufferSize() const;+virtual int calculateSerializeBufferSize() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;  };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btScaledTriangleMeshShapeData+struct btScaledTriangleMeshShapeData {-	btTriangleMeshShapeData	m_trimeshShapeData;+btTriangleMeshShapeData m_trimeshShapeData; -	btVector3FloatData	m_localScaling;+btVector3FloatData m_localScaling; };  -SIMD_FORCE_INLINE	int	btScaledBvhTriangleMeshShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btScaledBvhTriangleMeshShape::calculateSerializeBufferSize() const {-	return sizeof(btScaledTriangleMeshShapeData);+return sizeof(btScaledTriangleMeshShapeData); }   ///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btScaledBvhTriangleMeshShape::serialize(void* dataBuffer, btSerializer* serializer) const+SIMD_FORCE_INLINE const char* btScaledBvhTriangleMeshShape::serialize(void* dataBuffer, btSerializer* serializer) const {-	btScaledTriangleMeshShapeData* scaledMeshData = (btScaledTriangleMeshShapeData*) dataBuffer;-	m_bvhTriMeshShape->serialize(&scaledMeshData->m_trimeshShapeData,serializer);-	scaledMeshData->m_trimeshShapeData.m_collisionShapeData.m_shapeType = SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE;-	m_localScaling.serializeFloat(scaledMeshData->m_localScaling);-	return "btScaledTriangleMeshShapeData";+btScaledTriangleMeshShapeData* scaledMeshData = (btScaledTriangleMeshShapeData*) dataBuffer;+m_bvhTriMeshShape->serialize(&scaledMeshData->m_trimeshShapeData,serializer);+scaledMeshData->m_trimeshShapeData.m_collisionShapeData.m_shapeType = SCALED_TRIANGLE_MESH_SHAPE_PROXYTYPE;+m_localScaling.serializeFloat(scaledMeshData->m_localScaling);+return "btScaledTriangleMeshShapeData"; }  
bullet/BulletCollision/CollisionShapes/btShapeHull.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,34 +26,34 @@ ///It can be useful for to simplify a complex convex object and for visualization of a non-polyhedral convex object. ///It approximates the convex hull using the supporting vertex of 42 directions. class btShapeHull-{+{ private: protected: -	btAlignedObjectArray<btVector3> m_vertices;-	btAlignedObjectArray<unsigned int> m_indices;-	unsigned int m_numIndices;-	const btConvexShape* m_shape;+btAlignedObjectArray<btVector3> m_vertices;+btAlignedObjectArray<unsigned int> m_indices;+unsigned int m_numIndices;+const btConvexShape* m_shape; -	static btVector3* getUnitSpherePoints();+static btVector3* getUnitSpherePoints();  public:-	btShapeHull (const btConvexShape* shape);-	~btShapeHull ();+btShapeHull (const btConvexShape* shape);+~btShapeHull (); -	bool buildHull (btScalar margin);+bool buildHull (btScalar margin); -	int numTriangles () const;-	int numVertices () const;-	int numIndices () const;+int numTriangles () const;+int numVertices () const;+int numIndices () const; -	const btVector3* getVertexPointer() const-	{-		return &m_vertices[0];-	}-	const unsigned int* getIndexPointer() const-	{-		return &m_indices[0];-	}+const btVector3* getVertexPointer() const+{+return &m_vertices[0];+}+const unsigned int* getIndexPointer() const+{+return &m_indices[0];+} };  #endif //BT_SHAPE_HULL_H
bullet/BulletCollision/CollisionShapes/btSphereShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,49 +22,49 @@ ATTRIBUTE_ALIGNED16(class) btSphereShape : public btConvexInternalShape  {-	+ public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btSphereShape (btScalar radius) : btConvexInternalShape ()-	{-		m_shapeType = SPHERE_SHAPE_PROXYTYPE;-		m_implicitShapeDimensions.setX(radius);-		m_collisionMargin = radius;-	}-	-	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;-	//notice that the vectors should be unit length-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+btSphereShape (btScalar radius) : btConvexInternalShape ()+{+m_shapeType = SPHERE_SHAPE_PROXYTYPE;+m_implicitShapeDimensions.setX(radius);+m_collisionMargin = radius;+} +virtual btVector3 localGetSupportingVertex(const btVector3& vec)const;+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+//notice that the vectors should be unit length+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; +virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	btScalar	getRadius() const { return m_implicitShapeDimensions.getX() * m_localScaling.getX();} -	void	setUnscaledRadius(btScalar	radius)-	{-		m_implicitShapeDimensions.setX(radius);-		btConvexInternalShape::setMargin(radius);-	}+btScalar getRadius() const { return m_implicitShapeDimensions.getX() * m_localScaling.getX();} -	//debugging-	virtual const char*	getName()const {return "SPHERE";}+void setUnscaledRadius(btScalar radius)+{+m_implicitShapeDimensions.setX(radius);+btConvexInternalShape::setMargin(radius);+} -	virtual void	setMargin(btScalar margin)-	{-		btConvexInternalShape::setMargin(margin);-	}-	virtual btScalar	getMargin() const-	{-		//to improve gjk behaviour, use radius+margin as the full margin, so never get into the penetration case-		//this means, non-uniform scaling is not supported anymore-		return getRadius();-	}+//debugging+virtual const char* getName()const {return "SPHERE";}++virtual void setMargin(btScalar margin)+{+btConvexInternalShape::setMargin(margin);+}+virtual btScalar getMargin() const+{+//to improve gjk behaviour, use radius+margin as the full margin, so never get into the penetration case+//this means, non-uniform scaling is not supported anymore+return getRadius();+}   };
bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,79 +21,79 @@  ///The btStaticPlaneShape simulates an infinite non-moving (static) collision plane. ATTRIBUTE_ALIGNED16(class) btStaticPlaneShape : public btConcaveShape-{+{ private: protected:-	btVector3	m_localAabbMin;-	btVector3	m_localAabbMax;-	-	btVector3	m_planeNormal;-	btScalar      m_planeConstant;-	btVector3	m_localScaling;+btVector3 m_localAabbMin;+btVector3 m_localAabbMax; +btVector3 m_planeNormal;+btScalar m_planeConstant;+btVector3 m_localScaling;+ public:-	btStaticPlaneShape(const btVector3& planeNormal,btScalar planeConstant);+btStaticPlaneShape(const btVector3& planeNormal,btScalar planeConstant); -	virtual ~btStaticPlaneShape();+virtual ~btStaticPlaneShape();  -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void	setLocalScaling(const btVector3& scaling);-	virtual const btVector3& getLocalScaling() const;-	-	const btVector3&	getPlaneNormal() const-	{-		return	m_planeNormal;-	}+virtual void setLocalScaling(const btVector3& scaling);+virtual const btVector3& getLocalScaling() const; -	const btScalar&	getPlaneConstant() const-	{-		return	m_planeConstant;-	}+const btVector3& getPlaneNormal() const+{+return m_planeNormal;+} -	//debugging-	virtual const char*	getName()const {return "STATICPLANE";}+const btScalar& getPlaneConstant() const+{+return m_planeConstant;+} -	virtual	int	calculateSerializeBufferSize() const;+//debugging+virtual const char* getName()const {return "STATICPLANE";} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; +///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; + };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btStaticPlaneShapeData+struct btStaticPlaneShapeData {-	btCollisionShapeData	m_collisionShapeData;+btCollisionShapeData m_collisionShapeData; -	btVector3FloatData	m_localScaling;-	btVector3FloatData	m_planeNormal;-	float			m_planeConstant;-	char	m_pad[4];+btVector3FloatData m_localScaling;+btVector3FloatData m_planeNormal;+float m_planeConstant;+char m_pad[4]; };  -SIMD_FORCE_INLINE	int	btStaticPlaneShape::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btStaticPlaneShape::calculateSerializeBufferSize() const {-	return sizeof(btStaticPlaneShapeData);+return sizeof(btStaticPlaneShapeData); }  ///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btStaticPlaneShape::serialize(void* dataBuffer, btSerializer* serializer) const+SIMD_FORCE_INLINE const char* btStaticPlaneShape::serialize(void* dataBuffer, btSerializer* serializer) const {-	btStaticPlaneShapeData* planeData = (btStaticPlaneShapeData*) dataBuffer;-	btCollisionShape::serialize(&planeData->m_collisionShapeData,serializer);+btStaticPlaneShapeData* planeData = (btStaticPlaneShapeData*) dataBuffer;+btCollisionShape::serialize(&planeData->m_collisionShapeData,serializer); -	m_localScaling.serializeFloat(planeData->m_localScaling);-	m_planeNormal.serializeFloat(planeData->m_planeNormal);-	planeData->m_planeConstant = float(m_planeConstant);-		-	return "btStaticPlaneShapeData";+m_localScaling.serializeFloat(planeData->m_localScaling);+m_planeNormal.serializeFloat(planeData->m_planeNormal);+planeData->m_planeConstant = float(m_planeConstant);++return "btStaticPlaneShapeData"; }  
bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,137 +24,137 @@   -///	The btStridingMeshInterface is the interface class for high performance generic access to triangle meshes, used in combination with btBvhTriangleMeshShape and some other collision shapes.+/// The btStridingMeshInterface is the interface class for high performance generic access to triangle meshes, used in combination with btBvhTriangleMeshShape and some other collision shapes. /// Using index striding of 3*sizeof(integer) it can use triangle arrays, using index striding of 1*sizeof(integer) it can handle triangle strips. /// It allows for sharing graphics and collision meshes. Also it provides locking/unlocking of graphics meshes that are in gpu memory.-class  btStridingMeshInterface+class btStridingMeshInterface+{ private:+protected:++btVector3 m_scaling;++public:+btStridingMeshInterface() :m_scaling(btScalar(1.),btScalar(1.),btScalar(1.)) {-	protected:-	-		btVector3 m_scaling; -	public:-		btStridingMeshInterface() :m_scaling(btScalar(1.),btScalar(1.),btScalar(1.))-		{+} -		}+virtual ~btStridingMeshInterface(); -		virtual ~btStridingMeshInterface();  +virtual void InternalProcessAllTriangles(btInternalTriangleIndexCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -		virtual void	InternalProcessAllTriangles(btInternalTriangleIndexCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+///brute force method to calculate aabb+void calculateAabbBruteForce(btVector3& aabbMin,btVector3& aabbMax); -		///brute force method to calculate aabb-		void	calculateAabbBruteForce(btVector3& aabbMin,btVector3& aabbMax);+/// get read and write access to a subpart of a triangle mesh+/// this subpart has a continuous array of vertices and indices+/// in this way the mesh can be handled as chunks of memory with striding+/// very similar to OpenGL vertexarray support+/// make a call to unLockVertexBase when the read and write access is finished+virtual void getLockedVertexIndexBase(unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& stride,unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0)=0; -		/// get read and write access to a subpart of a triangle mesh-		/// this subpart has a continuous array of vertices and indices-		/// in this way the mesh can be handled as chunks of memory with striding-		/// very similar to OpenGL vertexarray support-		/// make a call to unLockVertexBase when the read and write access is finished	-		virtual void	getLockedVertexIndexBase(unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& stride,unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0)=0;-		-		virtual void	getLockedReadOnlyVertexIndexBase(const unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& stride,const unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0) const=0;-	-		/// unLockVertexBase finishes the access to a subpart of the triangle mesh-		/// make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished-		virtual void	unLockVertexBase(int subpart)=0;+virtual void getLockedReadOnlyVertexIndexBase(const unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& stride,const unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0) const=0; -		virtual void	unLockReadOnlyVertexBase(int subpart) const=0;+/// unLockVertexBase finishes the access to a subpart of the triangle mesh+/// make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished+virtual void unLockVertexBase(int subpart)=0; +virtual void unLockReadOnlyVertexBase(int subpart) const=0; -		/// getNumSubParts returns the number of seperate subparts-		/// each subpart has a continuous array of vertices and indices-		virtual int		getNumSubParts() const=0; -		virtual void	preallocateVertices(int numverts)=0;-		virtual void	preallocateIndices(int numindices)=0;+/// getNumSubParts returns the number of seperate subparts+/// each subpart has a continuous array of vertices and indices+virtual int getNumSubParts() const=0; -		virtual bool	hasPremadeAabb() const { return false; }-		virtual void	setPremadeAabb(const btVector3& aabbMin, const btVector3& aabbMax ) const-                {-                        (void) aabbMin;-                        (void) aabbMax;-                }-		virtual void	getPremadeAabb(btVector3* aabbMin, btVector3* aabbMax ) const-        {-            (void) aabbMin;-            (void) aabbMax;-        }+virtual void preallocateVertices(int numverts)=0;+virtual void preallocateIndices(int numindices)=0; -		const btVector3&	getScaling() const {-			return m_scaling;-		}-		void	setScaling(const btVector3& scaling)-		{-			m_scaling = scaling;-		}+virtual bool hasPremadeAabb() const { return false; }+virtual void setPremadeAabb(const btVector3& aabbMin, const btVector3& aabbMax ) const+{+(void) aabbMin;+(void) aabbMax;+}+virtual void getPremadeAabb(btVector3* aabbMin, btVector3* aabbMax ) const+{+(void) aabbMin;+(void) aabbMax;+} -		virtual	int	calculateSerializeBufferSize() const;+const btVector3& getScaling() const {+return m_scaling;+}+void setScaling(const btVector3& scaling)+{+m_scaling = scaling;+} -		///fills the dataBuffer and returns the struct name (and 0 on failure)-		virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; +///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const; + }; -struct	btIntIndexData+struct btIntIndexData {-	int	m_value;+int m_value; }; -struct	btShortIntIndexData+struct btShortIntIndexData {-	short m_value;-	char m_pad[2];+short m_value;+char m_pad[2]; }; -struct	btShortIntIndexTripletData+struct btShortIntIndexTripletData {-	short	m_values[3];-	char	m_pad[2];+short m_values[3];+char m_pad[2]; }; -struct	btCharIndexTripletData+struct btCharIndexTripletData {-	unsigned char m_values[3];-	char	m_pad;+unsigned char m_values[3];+char m_pad; };   ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btMeshPartData+struct btMeshPartData {-	btVector3FloatData			*m_vertices3f;-	btVector3DoubleData			*m_vertices3d;+btVector3FloatData *m_vertices3f;+btVector3DoubleData *m_vertices3d; -	btIntIndexData				*m_indices32;-	btShortIntIndexTripletData	*m_3indices16;-	btCharIndexTripletData		*m_3indices8;+btIntIndexData *m_indices32;+btShortIntIndexTripletData *m_3indices16;+btCharIndexTripletData *m_3indices8; -	btShortIntIndexData			*m_indices16;//backwards compatibility+btShortIntIndexData *m_indices16;//backwards compatibility -	int                     m_numTriangles;//length of m_indices = m_numTriangles-	int                     m_numVertices;+int m_numTriangles;//length of m_indices = m_numTriangles+int m_numVertices; };   ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btStridingMeshInterfaceData+struct btStridingMeshInterfaceData {-	btMeshPartData	*m_meshPartsPtr;-	btVector3FloatData	m_scaling;-	int	m_numMeshParts;-	char m_padding[4];+btMeshPartData *m_meshPartsPtr;+btVector3FloatData m_scaling;+int m_numMeshParts;+char m_padding[4]; };    -SIMD_FORCE_INLINE	int	btStridingMeshInterface::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btStridingMeshInterface::calculateSerializeBufferSize() const {-	return sizeof(btStridingMeshInterfaceData);+return sizeof(btStridingMeshInterfaceData); }  
bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,51 +23,51 @@  ///The btBU_Simplex1to4 implements tetrahedron, triangle, line, vertex collision shapes. In most cases it is better to use btConvexHullShape instead. class btBU_Simplex1to4 : public btPolyhedralConvexAabbCachingShape-{+{ private: protected: -	int	m_numVertices;-	btVector3	m_vertices[4];+int m_numVertices;+btVector3 m_vertices[4];  public:-	btBU_Simplex1to4();+btBU_Simplex1to4(); -	btBU_Simplex1to4(const btVector3& pt0);-	btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1);-	btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1,const btVector3& pt2);-	btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1,const btVector3& pt2,const btVector3& pt3);+btBU_Simplex1to4(const btVector3& pt0);+btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1);+btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1,const btVector3& pt2);+btBU_Simplex1to4(const btVector3& pt0,const btVector3& pt1,const btVector3& pt2,const btVector3& pt3); -    -	void	reset()-	{-		m_numVertices = 0;-	}-	-	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	void addVertex(const btVector3& pt);+void reset()+{+m_numVertices = 0;+} -	//PolyhedralConvexShape interface+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual int	getNumVertices() const;+void addVertex(const btVector3& pt); -	virtual int getNumEdges() const;+//PolyhedralConvexShape interface -	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const;-	-	virtual void getVertex(int i,btVector3& vtx) const;+virtual int getNumVertices() const; -	virtual int	getNumPlanes() const;+virtual int getNumEdges() const; -	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i) const;+virtual void getEdge(int i,btVector3& pa,btVector3& pb) const; -	virtual int getIndex(int i) const;+virtual void getVertex(int i,btVector3& vtx) const; -	virtual	bool isInside(const btVector3& pt,btScalar tolerance) const;+virtual int getNumPlanes() const; +virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i) const; -	///getName is for debugging-	virtual const char*	getName()const { return "btBU_Simplex1to4";}+virtual int getIndex(int i) const;++virtual bool isInside(const btVector3& pt,btScalar tolerance) const;+++///getName is for debugging+virtual const char* getName()const { return "btBU_Simplex1to4";}  }; 
bullet/BulletCollision/CollisionShapes/btTriangleBuffer.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -19,49 +19,49 @@ #include "btTriangleCallback.h" #include "LinearMath/btAlignedObjectArray.h" -struct	btTriangle+struct btTriangle {-	btVector3	m_vertex0;-	btVector3	m_vertex1;-	btVector3	m_vertex2;-	int	m_partId;-	int	m_triangleIndex;+btVector3 m_vertex0;+btVector3 m_vertex1;+btVector3 m_vertex2;+int m_partId;+int m_triangleIndex; };  ///The btTriangleBuffer callback can be useful to collect and store overlapping triangles between AABB and concave objects that support 'processAllTriangles' ///Example usage of this class:-///			btTriangleBuffer	triBuf;-///			concaveShape->processAllTriangles(&triBuf,aabbMin, aabbMax);-///			for (int i=0;i<triBuf.getNumTriangles();i++)-///			{-///				const btTriangle& tri = triBuf.getTriangle(i);-///				//do something useful here with the triangle-///			}+/// btTriangleBuffer triBuf;+/// concaveShape->processAllTriangles(&triBuf,aabbMin, aabbMax);+/// for (int i=0;i<triBuf.getNumTriangles();i++)+/// {+/// const btTriangle& tri = triBuf.getTriangle(i);+/// //do something useful here with the triangle+/// } class btTriangleBuffer : public btTriangleCallback-{+{ private: -	btAlignedObjectArray<btTriangle>	m_triangleBuffer;-	+btAlignedObjectArray<btTriangle> m_triangleBuffer;+ public:  -	virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);-	-	int	getNumTriangles() const-	{-		return int(m_triangleBuffer.size());-	}-	-	const btTriangle&	getTriangle(int index) const-	{-		return m_triangleBuffer[index];-	}+virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); -	void	clearBuffer()-	{-		m_triangleBuffer.clear();-	}-	+int getNumTriangles() const+{+return int(m_triangleBuffer.size());+}++const btTriangle& getTriangle(int index) const+{+return m_triangleBuffer[index];+}++void clearBuffer()+{+m_triangleBuffer.clear();+}+ };  
bullet/BulletCollision/CollisionShapes/btTriangleCallback.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,21 +20,21 @@   ///The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTriangles.-///This callback is called by processAllTriangles for all btConcaveShape derived class, such as  btBvhTriangleMeshShape, btStaticPlaneShape and btHeightfieldTerrainShape.+///This callback is called by processAllTriangles for all btConcaveShape derived class, such as btBvhTriangleMeshShape, btStaticPlaneShape and btHeightfieldTerrainShape. class btTriangleCallback-{+{ private: public: -	virtual ~btTriangleCallback();-	virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex) = 0;+virtual ~btTriangleCallback();+virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex) = 0; };  class btInternalTriangleIndexCallback-{+{ private: public: -	virtual ~btInternalTriangleIndexCallback();-	virtual void internalProcessTriangleIndex(btVector3* triangle,int partId,int  triangleIndex) = 0;+virtual ~btInternalTriangleIndexCallback();+virtual void internalProcessTriangleIndex(btVector3* triangle,int partId,int triangleIndex) = 0; };  
bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,41 +23,41 @@  ///The btIndexedMesh indexes a single vertex and index array. Multiple btIndexedMesh objects can be passed into a btTriangleIndexVertexArray using addIndexedMesh. ///Instead of the number of indices, we pass the number of triangles.-ATTRIBUTE_ALIGNED16( struct)	btIndexedMesh+ATTRIBUTE_ALIGNED16( struct) btIndexedMesh {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -   int                     m_numTriangles;-   const unsigned char *   m_triangleIndexBase;-   int                     m_triangleIndexStride;-   int                     m_numVertices;-   const unsigned char *   m_vertexBase;-   int                     m_vertexStride;+int m_numTriangles;+const unsigned char * m_triangleIndexBase;+int m_triangleIndexStride;+int m_numVertices;+const unsigned char * m_vertexBase;+int m_vertexStride; -   // The index type is set when adding an indexed mesh to the-   // btTriangleIndexVertexArray, do not set it manually-   PHY_ScalarType m_indexType;+// The index type is set when adding an indexed mesh to the+// btTriangleIndexVertexArray, do not set it manually+PHY_ScalarType m_indexType; -   // The vertex type has a default type similar to Bullet's precision mode (float or double)-   // but can be set manually if you for example run Bullet with double precision but have-   // mesh data in single precision..-   PHY_ScalarType m_vertexType;+// The vertex type has a default type similar to Bullet's precision mode (float or double)+// but can be set manually if you for example run Bullet with double precision but have+// mesh data in single precision..+PHY_ScalarType m_vertexType;  -   btIndexedMesh()-	   :m_indexType(PHY_INTEGER),+btIndexedMesh()+:m_indexType(PHY_INTEGER), #ifdef BT_USE_DOUBLE_PRECISION-      m_vertexType(PHY_DOUBLE)+m_vertexType(PHY_DOUBLE) #else // BT_USE_DOUBLE_PRECISION-      m_vertexType(PHY_FLOAT)+m_vertexType(PHY_FLOAT) #endif // BT_USE_DOUBLE_PRECISION-      {-      }+{ }+} ;  -typedef btAlignedObjectArray<btIndexedMesh>	IndexedMeshArray;+typedef btAlignedObjectArray<btIndexedMesh> IndexedMeshArray;  ///The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing triangle/index arrays. ///Additional meshes can be added using addIndexedMesh@@ -66,64 +66,64 @@ ATTRIBUTE_ALIGNED16( class) btTriangleIndexVertexArray : public btStridingMeshInterface { protected:-	IndexedMeshArray	m_indexedMeshes;-	int m_pad[2];-	mutable int m_hasAabb; // using int instead of bool to maintain alignment-	mutable btVector3 m_aabbMin;-	mutable btVector3 m_aabbMax;+IndexedMeshArray m_indexedMeshes;+int m_pad[2];+mutable int m_hasAabb; // using int instead of bool to maintain alignment+mutable btVector3 m_aabbMin;+mutable btVector3 m_aabbMax;  public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btTriangleIndexVertexArray() : m_hasAabb(0)-	{-	}+btTriangleIndexVertexArray() : m_hasAabb(0)+{+} -	virtual ~btTriangleIndexVertexArray();+virtual ~btTriangleIndexVertexArray(); -	//just to be backwards compatible-	btTriangleIndexVertexArray(int numTriangles,int* triangleIndexBase,int triangleIndexStride,int numVertices,btScalar* vertexBase,int vertexStride);-	-	void	addIndexedMesh(const btIndexedMesh& mesh, PHY_ScalarType indexType = PHY_INTEGER)-	{-		m_indexedMeshes.push_back(mesh);-		m_indexedMeshes[m_indexedMeshes.size()-1].m_indexType = indexType;-	}-	-	-	virtual void	getLockedVertexIndexBase(unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& vertexStride,unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0);+//just to be backwards compatible+btTriangleIndexVertexArray(int numTriangles,int* triangleIndexBase,int triangleIndexStride,int numVertices,btScalar* vertexBase,int vertexStride); -	virtual void	getLockedReadOnlyVertexIndexBase(const unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& vertexStride,const unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0) const;+void addIndexedMesh(const btIndexedMesh& mesh, PHY_ScalarType indexType = PHY_INTEGER)+{+m_indexedMeshes.push_back(mesh);+m_indexedMeshes[m_indexedMeshes.size()-1].m_indexType = indexType;+} -	/// unLockVertexBase finishes the access to a subpart of the triangle mesh-	/// make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished-	virtual void	unLockVertexBase(int subpart) {(void)subpart;} -	virtual void	unLockReadOnlyVertexBase(int subpart) const {(void)subpart;}+virtual void getLockedVertexIndexBase(unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& vertexStride,unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0); -	/// getNumSubParts returns the number of seperate subparts-	/// each subpart has a continuous array of vertices and indices-	virtual int		getNumSubParts() const { -		return (int)m_indexedMeshes.size();-	}+virtual void getLockedReadOnlyVertexIndexBase(const unsigned char **vertexbase, int& numverts,PHY_ScalarType& type, int& vertexStride,const unsigned char **indexbase,int & indexstride,int& numfaces,PHY_ScalarType& indicestype,int subpart=0) const; -	IndexedMeshArray&	getIndexedMeshArray()-	{-		return m_indexedMeshes;-	}+/// unLockVertexBase finishes the access to a subpart of the triangle mesh+/// make a call to unLockVertexBase when the read and write access (using getLockedVertexIndexBase) is finished+virtual void unLockVertexBase(int subpart) {(void)subpart;} -	const IndexedMeshArray&	getIndexedMeshArray() const-	{-		return m_indexedMeshes;-	}+virtual void unLockReadOnlyVertexBase(int subpart) const {(void)subpart;} -	virtual void	preallocateVertices(int numverts){(void) numverts;}-	virtual void	preallocateIndices(int numindices){(void) numindices;}+/// getNumSubParts returns the number of seperate subparts+/// each subpart has a continuous array of vertices and indices+virtual int getNumSubParts() const {+return (int)m_indexedMeshes.size();+} -	virtual bool	hasPremadeAabb() const;-	virtual void	setPremadeAabb(const btVector3& aabbMin, const btVector3& aabbMax ) const;-	virtual void	getPremadeAabb(btVector3* aabbMin, btVector3* aabbMax ) const;+IndexedMeshArray& getIndexedMeshArray()+{+return m_indexedMeshes;+}++const IndexedMeshArray& getIndexedMeshArray() const+{+return m_indexedMeshes;+}++virtual void preallocateVertices(int numverts){(void) numverts;}+virtual void preallocateIndices(int numindices){(void) numindices;}++virtual bool hasPremadeAabb() const;+virtual void setPremadeAabb(const btVector3& aabbMin, const btVector3& aabbMax ) const;+virtual void getPremadeAabb(btVector3* aabbMin, btVector3* aabbMax ) const;  } ;
bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,62 +21,62 @@ #include "btTriangleIndexVertexArray.h"  -ATTRIBUTE_ALIGNED16( struct)	btMaterialProperties+ATTRIBUTE_ALIGNED16( struct) btMaterialProperties {-    ///m_materialBase ==========> 2 btScalar values make up one material, friction then restitution-    int m_numMaterials;-    const unsigned char * m_materialBase;-    int m_materialStride;-    PHY_ScalarType m_materialType;-    ///m_numTriangles <=========== This exists in the btIndexedMesh object for the same subpart, but since we're-    ///                           padding the structure, it can be reproduced at no real cost-    ///m_triangleMaterials =====> 1 integer value makes up one entry-    ///                           eg: m_triangleMaterials[1] = 5; // This will set triangle 2 to use material 5-    int m_numTriangles; -    const unsigned char * m_triangleMaterialsBase;-    int m_triangleMaterialStride;-    ///m_triangleType <========== Automatically set in addMaterialProperties-    PHY_ScalarType m_triangleType;+///m_materialBase ==========> 2 btScalar values make up one material, friction then restitution+int m_numMaterials;+const unsigned char * m_materialBase;+int m_materialStride;+PHY_ScalarType m_materialType;+///m_numTriangles <=========== This exists in the btIndexedMesh object for the same subpart, but since we're+/// padding the structure, it can be reproduced at no real cost+///m_triangleMaterials =====> 1 integer value makes up one entry+/// eg: m_triangleMaterials[1] = 5; // This will set triangle 2 to use material 5+int m_numTriangles;+const unsigned char * m_triangleMaterialsBase;+int m_triangleMaterialStride;+///m_triangleType <========== Automatically set in addMaterialProperties+PHY_ScalarType m_triangleType; }; -typedef btAlignedObjectArray<btMaterialProperties>	MaterialArray;+typedef btAlignedObjectArray<btMaterialProperties> MaterialArray;  ///Teh btTriangleIndexVertexMaterialArray is built on TriangleIndexVertexArray ///The addition of a material array allows for the utilization of the partID and-///triangleIndex that are returned in the ContactAddedCallback.  As with+///triangleIndex that are returned in the ContactAddedCallback. As with ///TriangleIndexVertexArray, no duplicate is made of the material data, so it ///is the users responsibility to maintain the array during the lifetime of the ///TriangleIndexVertexMaterialArray. ATTRIBUTE_ALIGNED16(class) btTriangleIndexVertexMaterialArray : public btTriangleIndexVertexArray-{+{ private: protected:-    MaterialArray       m_materials;-		+MaterialArray m_materials;+ public:-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -    btTriangleIndexVertexMaterialArray()-	{-	}+btTriangleIndexVertexMaterialArray()+{+} -    btTriangleIndexVertexMaterialArray(int numTriangles,int* triangleIndexBase,int triangleIndexStride,-        int numVertices,btScalar* vertexBase,int vertexStride,-        int numMaterials, unsigned char* materialBase, int materialStride,-        int* triangleMaterialsBase, int materialIndexStride);+btTriangleIndexVertexMaterialArray(int numTriangles,int* triangleIndexBase,int triangleIndexStride,+int numVertices,btScalar* vertexBase,int vertexStride,+int numMaterials, unsigned char* materialBase, int materialStride,+int* triangleMaterialsBase, int materialIndexStride); -    virtual ~btTriangleIndexVertexMaterialArray() {}+virtual ~btTriangleIndexVertexMaterialArray() {} -    void	addMaterialProperties(const btMaterialProperties& mat, PHY_ScalarType triangleType = PHY_INTEGER)-    {-        m_materials.push_back(mat);-        m_materials[m_materials.size()-1].m_triangleType = triangleType;-    }+void addMaterialProperties(const btMaterialProperties& mat, PHY_ScalarType triangleType = PHY_INTEGER)+{+m_materials.push_back(mat);+m_materials[m_materials.size()-1].m_triangleType = triangleType;+} -    virtual void getLockedMaterialBase(unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride,-        unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType ,int subpart = 0);+virtual void getLockedMaterialBase(unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride,+unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType ,int subpart = 0); -    virtual void getLockedReadOnlyMaterialBase(const unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride,-        const unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart = 0);+virtual void getLockedReadOnlyMaterialBase(const unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride,+const unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart = 0);  } ;
bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2010 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2010 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -32,22 +32,22 @@   ///The btTriangleInfo structure stores information to adjust collision normals to avoid collisions against internal edges-///it can be generated using -struct	btTriangleInfo+///it can be generated using+struct btTriangleInfo {-	btTriangleInfo()-	{-		m_edgeV0V1Angle = SIMD_2_PI;-		m_edgeV1V2Angle = SIMD_2_PI;-		m_edgeV2V0Angle = SIMD_2_PI;-		m_flags=0;-	}+btTriangleInfo()+{+m_edgeV0V1Angle = SIMD_2_PI;+m_edgeV1V2Angle = SIMD_2_PI;+m_edgeV2V0Angle = SIMD_2_PI;+m_flags=0;+} -	int			m_flags;+int m_flags; -	btScalar	m_edgeV0V1Angle;-	btScalar	m_edgeV1V2Angle;-	btScalar	m_edgeV2V0Angle;+btScalar m_edgeV0V1Angle;+btScalar m_edgeV1V2Angle;+btScalar m_edgeV2V0Angle;  }; @@ -55,185 +55,185 @@   ///The btTriangleInfoMap stores edge angle information for some triangles. You can compute this information yourself or using btGenerateInternalEdgeInfo.-struct	btTriangleInfoMap : public btInternalTriangleInfoMap+struct btTriangleInfoMap : public btInternalTriangleInfoMap {-	btScalar	m_convexEpsilon;///used to determine if an edge or contact normal is convex, using the dot product-	btScalar	m_planarEpsilon; ///used to determine if a triangle edge is planar with zero angle-	btScalar	m_equalVertexThreshold; ///used to compute connectivity: if the distance between two vertices is smaller than m_equalVertexThreshold, they are considered to be 'shared'-	btScalar	m_edgeDistanceThreshold; ///used to determine edge contacts: if the closest distance between a contact point and an edge is smaller than this distance threshold it is considered to "hit the edge"-	btScalar	m_maxEdgeAngleThreshold; //ignore edges that connect triangles at an angle larger than this m_maxEdgeAngleThreshold-	btScalar	m_zeroAreaThreshold; ///used to determine if a triangle is degenerate (length squared of cross product of 2 triangle edges < threshold)-	-	-	btTriangleInfoMap()-	{-		m_convexEpsilon = 0.00f;-		m_planarEpsilon = 0.0001f;-		m_equalVertexThreshold = btScalar(0.0001)*btScalar(0.0001);-		m_edgeDistanceThreshold = btScalar(0.1);-		m_zeroAreaThreshold = btScalar(0.0001)*btScalar(0.0001);-		m_maxEdgeAngleThreshold = SIMD_2_PI;-	}-	virtual ~btTriangleInfoMap() {}+btScalar m_convexEpsilon;///used to determine if an edge or contact normal is convex, using the dot product+btScalar m_planarEpsilon; ///used to determine if a triangle edge is planar with zero angle+btScalar m_equalVertexThreshold; ///used to compute connectivity: if the distance between two vertices is smaller than m_equalVertexThreshold, they are considered to be 'shared'+btScalar m_edgeDistanceThreshold; ///used to determine edge contacts: if the closest distance between a contact point and an edge is smaller than this distance threshold it is considered to "hit the edge"+btScalar m_maxEdgeAngleThreshold; //ignore edges that connect triangles at an angle larger than this m_maxEdgeAngleThreshold+btScalar m_zeroAreaThreshold; ///used to determine if a triangle is degenerate (length squared of cross product of 2 triangle edges < threshold) -	virtual	int	calculateSerializeBufferSize() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+btTriangleInfoMap()+{+m_convexEpsilon = 0.00f;+m_planarEpsilon = 0.0001f;+m_equalVertexThreshold = btScalar(0.0001)*btScalar(0.0001);+m_edgeDistanceThreshold = btScalar(0.1);+m_zeroAreaThreshold = btScalar(0.0001)*btScalar(0.0001);+m_maxEdgeAngleThreshold = SIMD_2_PI;+}+virtual ~btTriangleInfoMap() {} -	void	deSerialize(struct btTriangleInfoMapData& data);+virtual int calculateSerializeBufferSize() const; +///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++void deSerialize(struct btTriangleInfoMapData& data);+ }; -struct	btTriangleInfoData+struct btTriangleInfoData {-	int			m_flags;-	float	m_edgeV0V1Angle;-	float	m_edgeV1V2Angle;-	float	m_edgeV2V0Angle;+int m_flags;+float m_edgeV0V1Angle;+float m_edgeV1V2Angle;+float m_edgeV2V0Angle; }; -struct	btTriangleInfoMapData+struct btTriangleInfoMapData {-	int					*m_hashTablePtr;-	int					*m_nextPtr;-	btTriangleInfoData	*m_valueArrayPtr;-	int					*m_keyArrayPtr;+int *m_hashTablePtr;+int *m_nextPtr;+btTriangleInfoData *m_valueArrayPtr;+int *m_keyArrayPtr; -	float	m_convexEpsilon;-	float	m_planarEpsilon;-	float	m_equalVertexThreshold; -	float	m_edgeDistanceThreshold;-	float	m_zeroAreaThreshold;+float m_convexEpsilon;+float m_planarEpsilon;+float m_equalVertexThreshold;+float m_edgeDistanceThreshold;+float m_zeroAreaThreshold; -	int		m_nextSize;-	int		m_hashTableSize;-	int		m_numValues;-	int		m_numKeys;-	char	m_padding[4];+int m_nextSize;+int m_hashTableSize;+int m_numValues;+int m_numKeys;+char m_padding[4]; }; -SIMD_FORCE_INLINE	int	btTriangleInfoMap::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btTriangleInfoMap::calculateSerializeBufferSize() const {-	return sizeof(btTriangleInfoMapData);+return sizeof(btTriangleInfoMapData); }  ///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btTriangleInfoMap::serialize(void* dataBuffer, btSerializer* serializer) const+SIMD_FORCE_INLINE const char* btTriangleInfoMap::serialize(void* dataBuffer, btSerializer* serializer) const {-	btTriangleInfoMapData* tmapData = (btTriangleInfoMapData*) dataBuffer;-	tmapData->m_convexEpsilon = m_convexEpsilon;-	tmapData->m_planarEpsilon = m_planarEpsilon;-	tmapData->m_equalVertexThreshold = m_equalVertexThreshold;-	tmapData->m_edgeDistanceThreshold = m_edgeDistanceThreshold;-	tmapData->m_zeroAreaThreshold = m_zeroAreaThreshold;-	-	tmapData->m_hashTableSize = m_hashTable.size();+btTriangleInfoMapData* tmapData = (btTriangleInfoMapData*) dataBuffer;+tmapData->m_convexEpsilon = m_convexEpsilon;+tmapData->m_planarEpsilon = m_planarEpsilon;+tmapData->m_equalVertexThreshold = m_equalVertexThreshold;+tmapData->m_edgeDistanceThreshold = m_edgeDistanceThreshold;+tmapData->m_zeroAreaThreshold = m_zeroAreaThreshold; -	tmapData->m_hashTablePtr = tmapData->m_hashTableSize ? (int*)serializer->getUniquePointer((void*)&m_hashTable[0]) : 0;-	if (tmapData->m_hashTablePtr)-	{ -		//serialize an int buffer-		int sz = sizeof(int);-		int numElem = tmapData->m_hashTableSize;-		btChunk* chunk = serializer->allocate(sz,numElem);-		int* memPtr = (int*)chunk->m_oldPtr;-		for (int i=0;i<numElem;i++,memPtr++)-		{-			*memPtr = m_hashTable[i];-		}-		serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*)&m_hashTable[0]);+tmapData->m_hashTableSize = m_hashTable.size(); -	}+tmapData->m_hashTablePtr = tmapData->m_hashTableSize ? (int*)serializer->getUniquePointer((void*)&m_hashTable[0]) : 0;+if (tmapData->m_hashTablePtr)+{+//serialize an int buffer+int sz = sizeof(int);+int numElem = tmapData->m_hashTableSize;+btChunk* chunk = serializer->allocate(sz,numElem);+int* memPtr = (int*)chunk->m_oldPtr;+for (int i=0;i<numElem;i++,memPtr++)+{+*memPtr = m_hashTable[i];+}+serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*)&m_hashTable[0]); -	tmapData->m_nextSize = m_next.size();-	tmapData->m_nextPtr = tmapData->m_nextSize? (int*)serializer->getUniquePointer((void*)&m_next[0]): 0;-	if (tmapData->m_nextPtr)-	{-		int sz = sizeof(int);-		int numElem = tmapData->m_nextSize;-		btChunk* chunk = serializer->allocate(sz,numElem);-		int* memPtr = (int*)chunk->m_oldPtr;-		for (int i=0;i<numElem;i++,memPtr++)-		{-			*memPtr = m_next[i];-		}-		serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*)&m_next[0]);-	}-	-	tmapData->m_numValues = m_valueArray.size();-	tmapData->m_valueArrayPtr = tmapData->m_numValues ? (btTriangleInfoData*)serializer->getUniquePointer((void*)&m_valueArray[0]): 0;-	if (tmapData->m_valueArrayPtr)-	{-		int sz = sizeof(btTriangleInfoData);-		int numElem = tmapData->m_numValues;-		btChunk* chunk = serializer->allocate(sz,numElem);-		btTriangleInfoData* memPtr = (btTriangleInfoData*)chunk->m_oldPtr;-		for (int i=0;i<numElem;i++,memPtr++)-		{-			memPtr->m_edgeV0V1Angle = m_valueArray[i].m_edgeV0V1Angle;-			memPtr->m_edgeV1V2Angle = m_valueArray[i].m_edgeV1V2Angle;-			memPtr->m_edgeV2V0Angle = m_valueArray[i].m_edgeV2V0Angle;-			memPtr->m_flags = m_valueArray[i].m_flags;-		}-		serializer->finalizeChunk(chunk,"btTriangleInfoData",BT_ARRAY_CODE,(void*) &m_valueArray[0]);-	}-	-	tmapData->m_numKeys = m_keyArray.size();-	tmapData->m_keyArrayPtr = tmapData->m_numKeys ? (int*)serializer->getUniquePointer((void*)&m_keyArray[0]) : 0;-	if (tmapData->m_keyArrayPtr)-	{-		int sz = sizeof(int);-		int numElem = tmapData->m_numValues;-		btChunk* chunk = serializer->allocate(sz,numElem);-		int* memPtr = (int*)chunk->m_oldPtr;-		for (int i=0;i<numElem;i++,memPtr++)-		{-			*memPtr = m_keyArray[i].getUid1();-		}-		serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*) &m_keyArray[0]);+} -	}-	return "btTriangleInfoMapData";+tmapData->m_nextSize = m_next.size();+tmapData->m_nextPtr = tmapData->m_nextSize? (int*)serializer->getUniquePointer((void*)&m_next[0]): 0;+if (tmapData->m_nextPtr)+{+int sz = sizeof(int);+int numElem = tmapData->m_nextSize;+btChunk* chunk = serializer->allocate(sz,numElem);+int* memPtr = (int*)chunk->m_oldPtr;+for (int i=0;i<numElem;i++,memPtr++)+{+*memPtr = m_next[i]; }+serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*)&m_next[0]);+} +tmapData->m_numValues = m_valueArray.size();+tmapData->m_valueArrayPtr = tmapData->m_numValues ? (btTriangleInfoData*)serializer->getUniquePointer((void*)&m_valueArray[0]): 0;+if (tmapData->m_valueArrayPtr)+{+int sz = sizeof(btTriangleInfoData);+int numElem = tmapData->m_numValues;+btChunk* chunk = serializer->allocate(sz,numElem);+btTriangleInfoData* memPtr = (btTriangleInfoData*)chunk->m_oldPtr;+for (int i=0;i<numElem;i++,memPtr++)+{+memPtr->m_edgeV0V1Angle = m_valueArray[i].m_edgeV0V1Angle;+memPtr->m_edgeV1V2Angle = m_valueArray[i].m_edgeV1V2Angle;+memPtr->m_edgeV2V0Angle = m_valueArray[i].m_edgeV2V0Angle;+memPtr->m_flags = m_valueArray[i].m_flags;+}+serializer->finalizeChunk(chunk,"btTriangleInfoData",BT_ARRAY_CODE,(void*) &m_valueArray[0]);+} +tmapData->m_numKeys = m_keyArray.size();+tmapData->m_keyArrayPtr = tmapData->m_numKeys ? (int*)serializer->getUniquePointer((void*)&m_keyArray[0]) : 0;+if (tmapData->m_keyArrayPtr)+{+int sz = sizeof(int);+int numElem = tmapData->m_numValues;+btChunk* chunk = serializer->allocate(sz,numElem);+int* memPtr = (int*)chunk->m_oldPtr;+for (int i=0;i<numElem;i++,memPtr++)+{+*memPtr = m_keyArray[i].getUid1();+}+serializer->finalizeChunk(chunk,"int",BT_ARRAY_CODE,(void*) &m_keyArray[0]); +}+return "btTriangleInfoMapData";+}+++ ///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	void	btTriangleInfoMap::deSerialize(btTriangleInfoMapData& tmapData )+SIMD_FORCE_INLINE void btTriangleInfoMap::deSerialize(btTriangleInfoMapData& tmapData ) {  -	m_convexEpsilon = tmapData.m_convexEpsilon;-	m_planarEpsilon = tmapData.m_planarEpsilon;-	m_equalVertexThreshold = tmapData.m_equalVertexThreshold;-	m_edgeDistanceThreshold = tmapData.m_edgeDistanceThreshold;-	m_zeroAreaThreshold = tmapData.m_zeroAreaThreshold;-	m_hashTable.resize(tmapData.m_hashTableSize);-	int i =0;-	for (i=0;i<tmapData.m_hashTableSize;i++)-	{-		m_hashTable[i] = tmapData.m_hashTablePtr[i];-	}-	m_next.resize(tmapData.m_nextSize);-	for (i=0;i<tmapData.m_nextSize;i++)-	{-		m_next[i] = tmapData.m_nextPtr[i];-	}-	m_valueArray.resize(tmapData.m_numValues);-	for (i=0;i<tmapData.m_numValues;i++)-	{-		m_valueArray[i].m_edgeV0V1Angle = tmapData.m_valueArrayPtr[i].m_edgeV0V1Angle;-		m_valueArray[i].m_edgeV1V2Angle = tmapData.m_valueArrayPtr[i].m_edgeV1V2Angle;-		m_valueArray[i].m_edgeV2V0Angle = tmapData.m_valueArrayPtr[i].m_edgeV2V0Angle;-		m_valueArray[i].m_flags = tmapData.m_valueArrayPtr[i].m_flags;-	}-	-	m_keyArray.resize(tmapData.m_numKeys,btHashInt(0));-	for (i=0;i<tmapData.m_numKeys;i++)-	{-		m_keyArray[i].setUid1(tmapData.m_keyArrayPtr[i]);-	}+m_convexEpsilon = tmapData.m_convexEpsilon;+m_planarEpsilon = tmapData.m_planarEpsilon;+m_equalVertexThreshold = tmapData.m_equalVertexThreshold;+m_edgeDistanceThreshold = tmapData.m_edgeDistanceThreshold;+m_zeroAreaThreshold = tmapData.m_zeroAreaThreshold;+m_hashTable.resize(tmapData.m_hashTableSize);+int i =0;+for (i=0;i<tmapData.m_hashTableSize;i++)+{+m_hashTable[i] = tmapData.m_hashTablePtr[i];+}+m_next.resize(tmapData.m_nextSize);+for (i=0;i<tmapData.m_nextSize;i++)+{+m_next[i] = tmapData.m_nextPtr[i];+}+m_valueArray.resize(tmapData.m_numValues);+for (i=0;i<tmapData.m_numValues;i++)+{+m_valueArray[i].m_edgeV0V1Angle = tmapData.m_valueArrayPtr[i].m_edgeV0V1Angle;+m_valueArray[i].m_edgeV1V2Angle = tmapData.m_valueArrayPtr[i].m_edgeV1V2Angle;+m_valueArray[i].m_edgeV2V0Angle = tmapData.m_valueArrayPtr[i].m_edgeV2V0Angle;+m_valueArray[i].m_flags = tmapData.m_valueArrayPtr[i].m_flags;+}++m_keyArray.resize(tmapData.m_numKeys,btHashInt(0));+for (i=0;i<tmapData.m_numKeys;i++)+{+m_keyArray[i].setUid1(tmapData.m_keyArrayPtr[i]);+} }  
bullet/BulletCollision/CollisionShapes/btTriangleMesh.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,44 +25,44 @@ ///If you want to share triangle/index data between graphics mesh and collision mesh (btBvhTriangleMeshShape), you can directly use btTriangleIndexVertexArray or derive your own class from btStridingMeshInterface. ///Performance of btTriangleMesh and btTriangleIndexVertexArray used in a btBvhTriangleMeshShape is the same. class btTriangleMesh : public btTriangleIndexVertexArray-{-	btAlignedObjectArray<btVector3>	m_4componentVertices;-	btAlignedObjectArray<float>		m_3componentVertices;+{ private:+btAlignedObjectArray<btVector3> m_4componentVertices;+btAlignedObjectArray<float> m_3componentVertices; -	btAlignedObjectArray<unsigned int>		m_32bitIndices;-	btAlignedObjectArray<unsigned short int>		m_16bitIndices;-	bool	m_use32bitIndices;-	bool	m_use4componentVertices;-	+btAlignedObjectArray<unsigned int> m_32bitIndices;+btAlignedObjectArray<unsigned short int> m_16bitIndices;+bool m_use32bitIndices;+bool m_use4componentVertices; -	public:-		btScalar	m_weldingThreshold; -		btTriangleMesh (bool use32bitIndices=true,bool use4componentVertices=true);+public:+btScalar m_weldingThreshold; -		bool	getUse32bitIndices() const-		{-			return m_use32bitIndices;-		}+btTriangleMesh (bool use32bitIndices=true,bool use4componentVertices=true); -		bool	getUse4componentVertices() const-		{-			return m_use4componentVertices;-		}-		///By default addTriangle won't search for duplicate vertices, because the search is very slow for large triangle meshes.-		///In general it is better to directly use btTriangleIndexVertexArray instead.-		void	addTriangle(const btVector3& vertex0,const btVector3& vertex1,const btVector3& vertex2, bool removeDuplicateVertices=false);-		-		int getNumTriangles() const;+bool getUse32bitIndices() const+{+return m_use32bitIndices;+} -		virtual void	preallocateVertices(int numverts){(void) numverts;}-		virtual void	preallocateIndices(int numindices){(void) numindices;}+bool getUse4componentVertices() const+{+return m_use4componentVertices;+}+///By default addTriangle won't search for duplicate vertices, because the search is very slow for large triangle meshes.+///In general it is better to directly use btTriangleIndexVertexArray instead.+void addTriangle(const btVector3& vertex0,const btVector3& vertex1,const btVector3& vertex2, bool removeDuplicateVertices=false); -		///findOrAddVertex is an internal method, use addTriangle instead-		int		findOrAddVertex(const btVector3& vertex, bool removeDuplicateVertices);-		///addIndex is an internal method, use addTriangle instead-		void	addIndex(int index);-		+int getNumTriangles() const;++virtual void preallocateVertices(int numverts){(void) numverts;}+virtual void preallocateIndices(int numindices){(void) numindices;}++///findOrAddVertex is an internal method, use addTriangle instead+int findOrAddVertex(const btVector3& vertex, bool removeDuplicateVertices);+///addIndex is an internal method, use addTriangle instead+void addIndex(int index);+ };  #endif //BT_TRIANGLE_MESH_H
bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,64 +22,64 @@  ///The btTriangleMeshShape is an internal concave triangle mesh interface. Don't use this class directly, use btBvhTriangleMeshShape instead. class btTriangleMeshShape : public btConcaveShape-{+{ private: protected:-	btVector3	m_localAabbMin;-	btVector3	m_localAabbMax;-	btStridingMeshInterface* m_meshInterface;+btVector3 m_localAabbMin;+btVector3 m_localAabbMax;+btStridingMeshInterface* m_meshInterface; -	///btTriangleMeshShape constructor has been disabled/protected, so that users will not mistakenly use this class.-	///Don't use btTriangleMeshShape but use btBvhTriangleMeshShape instead!-	btTriangleMeshShape(btStridingMeshInterface* meshInterface);+///btTriangleMeshShape constructor has been disabled/protected, so that users will not mistakenly use this class.+///Don't use btTriangleMeshShape but use btBvhTriangleMeshShape instead!+btTriangleMeshShape(btStridingMeshInterface* meshInterface);  public: -	virtual ~btTriangleMeshShape();+virtual ~btTriangleMeshShape(); -	virtual btVector3 localGetSupportingVertex(const btVector3& vec) const;+virtual btVector3 localGetSupportingVertex(const btVector3& vec) const; -	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const-	{-		btAssert(0);-		return localGetSupportingVertex(vec);-	}+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const+{+btAssert(0);+return localGetSupportingVertex(vec);+} -	void	recalcLocalAabb();+void recalcLocalAabb(); -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const; -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; -	virtual void	setLocalScaling(const btVector3& scaling);-	virtual const btVector3& getLocalScaling() const;-	-	btStridingMeshInterface* getMeshInterface()-	{-		return m_meshInterface;-	}+virtual void setLocalScaling(const btVector3& scaling);+virtual const btVector3& getLocalScaling() const; -	const btStridingMeshInterface* getMeshInterface() const-	{-		return m_meshInterface;-	}+btStridingMeshInterface* getMeshInterface()+{+return m_meshInterface;+} -	const btVector3& getLocalAabbMin() const-	{-		return m_localAabbMin;-	}-	const btVector3& getLocalAabbMax() const-	{-		return m_localAabbMax;-	}+const btStridingMeshInterface* getMeshInterface() const+{+return m_meshInterface;+} +const btVector3& getLocalAabbMin() const+{+return m_localAabbMin;+}+const btVector3& getLocalAabbMax() const+{+return m_localAabbMax;+}  -	//debugging-	virtual const char*	getName()const {return "TRIANGLEMESH";} -	+//debugging+virtual const char* getName()const {return "TRIANGLEMESH";}++  }; 
bullet/BulletCollision/CollisionShapes/btTriangleShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,160 +20,160 @@ #include "btBoxShape.h"  ATTRIBUTE_ALIGNED16(class) btTriangleShape : public btPolyhedralConvexShape-{+{ private:   public: -	btVector3	m_vertices1[3];+btVector3 m_vertices1[3]; -	virtual int getNumVertices() const-	{-		return 3;-	}+virtual int getNumVertices() const+{+return 3;+} -	btVector3& getVertexPtr(int index)-	{-		return m_vertices1[index];-	}+btVector3& getVertexPtr(int index)+{+return m_vertices1[index];+} -	const btVector3& getVertexPtr(int index) const-	{-		return m_vertices1[index];-	}-	virtual void getVertex(int index,btVector3& vert) const-	{-		vert = m_vertices1[index];-	}+const btVector3& getVertexPtr(int index) const+{+return m_vertices1[index];+}+virtual void getVertex(int index,btVector3& vert) const+{+vert = m_vertices1[index];+} -	virtual int getNumEdges() const-	{-		return 3;-	}-	-	virtual void getEdge(int i,btVector3& pa,btVector3& pb) const-	{-		getVertex(i,pa);-		getVertex((i+1)%3,pb);-	}+virtual int getNumEdges() const+{+return 3;+} +virtual void getEdge(int i,btVector3& pa,btVector3& pb) const+{+getVertex(i,pa);+getVertex((i+1)%3,pb);+} -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax)const -	{-//		btAssert(0);-		getAabbSlow(t,aabbMin,aabbMax);-	} -	btVector3 localGetSupportingVertexWithoutMargin(const btVector3& dir)const -	{-		btVector3 dots(dir.dot(m_vertices1[0]), dir.dot(m_vertices1[1]), dir.dot(m_vertices1[2]));-	  	return m_vertices1[dots.maxAxis()];+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax)const+{+// btAssert(0);+getAabbSlow(t,aabbMin,aabbMax);+} -	}+btVector3 localGetSupportingVertexWithoutMargin(const btVector3& dir)const+{+btVector3 dots(dir.dot(m_vertices1[0]), dir.dot(m_vertices1[1]), dir.dot(m_vertices1[2]));+return m_vertices1[dots.maxAxis()]; -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const-	{-		for (int i=0;i<numVectors;i++)-		{-			const btVector3& dir = vectors[i];-			btVector3 dots(dir.dot(m_vertices1[0]), dir.dot(m_vertices1[1]), dir.dot(m_vertices1[2]));-  			supportVerticesOut[i] = m_vertices1[dots.maxAxis()];-		}+} -	}+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const+{+for (int i=0;i<numVectors;i++)+{+const btVector3& dir = vectors[i];+btVector3 dots(dir.dot(m_vertices1[0]), dir.dot(m_vertices1[1]), dir.dot(m_vertices1[2]));+supportVerticesOut[i] = m_vertices1[dots.maxAxis()];+} -	btTriangleShape() : btPolyhedralConvexShape ()-    {-		m_shapeType = TRIANGLE_SHAPE_PROXYTYPE;-	}+} -	btTriangleShape(const btVector3& p0,const btVector3& p1,const btVector3& p2) : btPolyhedralConvexShape ()-    {-		m_shapeType = TRIANGLE_SHAPE_PROXYTYPE;-        m_vertices1[0] = p0;-        m_vertices1[1] = p1;-        m_vertices1[2] = p2;-    }+btTriangleShape() : btPolyhedralConvexShape ()+{+m_shapeType = TRIANGLE_SHAPE_PROXYTYPE;+} +btTriangleShape(const btVector3& p0,const btVector3& p1,const btVector3& p2) : btPolyhedralConvexShape ()+{+m_shapeType = TRIANGLE_SHAPE_PROXYTYPE;+m_vertices1[0] = p0;+m_vertices1[1] = p1;+m_vertices1[2] = p2;+} -	virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i) const-	{-		getPlaneEquation(i,planeNormal,planeSupport);-	} -	virtual int	getNumPlanes() const-	{-		return 1;-	}+virtual void getPlane(btVector3& planeNormal,btVector3& planeSupport,int i) const+{+getPlaneEquation(i,planeNormal,planeSupport);+} -	void calcNormal(btVector3& normal) const-	{-		normal = (m_vertices1[1]-m_vertices1[0]).cross(m_vertices1[2]-m_vertices1[0]);-		normal.normalize();-	}+virtual int getNumPlanes() const+{+return 1;+} -	virtual void getPlaneEquation(int i, btVector3& planeNormal,btVector3& planeSupport) const-	{-		(void)i;-		calcNormal(planeNormal);-		planeSupport = m_vertices1[0];-	}+void calcNormal(btVector3& normal) const+{+normal = (m_vertices1[1]-m_vertices1[0]).cross(m_vertices1[2]-m_vertices1[0]);+normal.normalize();+} -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const-	{-		(void)mass;-		btAssert(0);-		inertia.setValue(btScalar(0.),btScalar(0.),btScalar(0.));-	}+virtual void getPlaneEquation(int i, btVector3& planeNormal,btVector3& planeSupport) const+{+(void)i;+calcNormal(planeNormal);+planeSupport = m_vertices1[0];+} -		virtual	bool isInside(const btVector3& pt,btScalar tolerance) const-	{-		btVector3 normal;-		calcNormal(normal);-		//distance to plane-		btScalar dist = pt.dot(normal);-		btScalar planeconst = m_vertices1[0].dot(normal);-		dist -= planeconst;-		if (dist >= -tolerance && dist <= tolerance)-		{-			//inside check on edge-planes-			int i;-			for (i=0;i<3;i++)-			{-				btVector3 pa,pb;-				getEdge(i,pa,pb);-				btVector3 edge = pb-pa;-				btVector3 edgeNormal = edge.cross(normal);-				edgeNormal.normalize();-				btScalar dist = pt.dot( edgeNormal);-				btScalar edgeConst = pa.dot(edgeNormal);-				dist -= edgeConst;-				if (dist < -tolerance)-					return false;-			}-			-			return true;-		}+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const+{+(void)mass;+btAssert(0);+inertia.setValue(btScalar(0.),btScalar(0.),btScalar(0.));+} -		return false;-	}-		//debugging-		virtual const char*	getName()const-		{-			return "Triangle";-		}+virtual bool isInside(const btVector3& pt,btScalar tolerance) const+{+btVector3 normal;+calcNormal(normal);+//distance to plane+btScalar dist = pt.dot(normal);+btScalar planeconst = m_vertices1[0].dot(normal);+dist -= planeconst;+if (dist >= -tolerance && dist <= tolerance)+{+//inside check on edge-planes+int i;+for (i=0;i<3;i++)+{+btVector3 pa,pb;+getEdge(i,pa,pb);+btVector3 edge = pb-pa;+btVector3 edgeNormal = edge.cross(normal);+edgeNormal.normalize();+btScalar dist = pt.dot( edgeNormal);+btScalar edgeConst = pa.dot(edgeNormal);+dist -= edgeConst;+if (dist < -tolerance)+return false;+} -		virtual int		getNumPreferredPenetrationDirections() const-		{-			return 2;-		}-		-		virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const-		{-			calcNormal(penetrationVector);-			if (index)-				penetrationVector *= btScalar(-1.);-		}+return true;+}++return false;+}+//debugging+virtual const char* getName()const+{+return "Triangle";+}++virtual int getNumPreferredPenetrationDirections() const+{+return 2;+}++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const+{+calcNormal(penetrationVector);+if (index)+penetrationVector *= btScalar(-1.);+}   };
bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,64 +22,64 @@ ///The btUniformScalingShape allows to re-use uniform scaled instances of btConvexShape in a memory efficient way. ///Istead of using btUniformScalingShape, it is better to use the non-uniform setLocalScaling method on convex shapes that implement it. class btUniformScalingShape : public btConvexShape-{-	btConvexShape*	m_childConvexShape;+{ private:+btConvexShape* m_childConvexShape; -	btScalar	m_uniformScalingFactor;-	-	public:-	-	btUniformScalingShape(	btConvexShape* convexChildShape, btScalar uniformScalingFactor);-	-	virtual ~btUniformScalingShape();-	-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const;+btScalar m_uniformScalingFactor; -	virtual btVector3	localGetSupportingVertex(const btVector3& vec)const;+public: -	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const;+btUniformScalingShape( btConvexShape* convexChildShape, btScalar uniformScalingFactor); -	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;+virtual ~btUniformScalingShape(); -	btScalar	getUniformScalingFactor() const-	{-		return m_uniformScalingFactor;-	}+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const; -	btConvexShape*	getChildShape() -	{-		return m_childConvexShape;-	}+virtual btVector3 localGetSupportingVertex(const btVector3& vec)const; -	const btConvexShape*	getChildShape() const-	{-		return m_childConvexShape;-	}+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const; -	virtual const char*	getName()const -	{-		return "UniformScalingShape";-	}-	+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const; +btScalar getUniformScalingFactor() const+{+return m_uniformScalingFactor;+} -	///////////////////////////+btConvexShape* getChildShape()+{+return m_childConvexShape;+} +const btConvexShape* getChildShape() const+{+return m_childConvexShape;+} -	///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version-	void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;+virtual const char* getName()const+{+return "UniformScalingShape";+} -	virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const; -	virtual void	setLocalScaling(const btVector3& scaling) ;-	virtual const btVector3& getLocalScaling() const ; -	virtual void	setMargin(btScalar margin);-	virtual btScalar	getMargin() const;+/////////////////////////// -	virtual int		getNumPreferredPenetrationDirections() const;-	-	virtual void	getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const;++///getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++virtual void getAabbSlow(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const;++virtual void setLocalScaling(const btVector3& scaling) ;+virtual const btVector3& getLocalScaling() const ;++virtual void setMargin(btScalar margin);+virtual btScalar getMargin() const;++virtual int getNumPreferredPenetrationDirections() const;++virtual void getPreferredPenetrationDirection(int index, btVector3& penetrationVector) const;   };
bullet/BulletCollision/Gimpact/btBoxCollision.h view
@@ -29,16 +29,16 @@  ///Swap numbers #define BT_SWAP_NUMBERS(a,b){ \-    a = a+b; \-    b = a-b; \-    a = a-b; \+a = a+b; \+b = a-b; \+a = a-b; \ }\   #define BT_MAX(a,b) (a<b?b:a) #define BT_MIN(a,b) (a>b?b:a) -#define BT_GREATER(x, y)	btFabs(x) > (y)+#define BT_GREATER(x, y) btFabs(x) > (y)  #define BT_MAX3(a,b,c) BT_MAX(a,BT_MAX(b,c)) #define BT_MIN3(a,b,c) BT_MIN(a,BT_MIN(b,c))@@ -50,102 +50,102 @@  enum eBT_PLANE_INTERSECTION_TYPE {-	BT_CONST_BACK_PLANE = 0,-	BT_CONST_COLLIDE_PLANE,-	BT_CONST_FRONT_PLANE+BT_CONST_BACK_PLANE = 0,+BT_CONST_COLLIDE_PLANE,+BT_CONST_FRONT_PLANE };  //SIMD_FORCE_INLINE bool test_cross_edge_box(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, const btVector3 & extend,-//	int dir_index0,-//	int dir_index1-//	int component_index0,-//	int component_index1)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, const btVector3 & extend,+// int dir_index0,+// int dir_index1+// int component_index0,+// int component_index1) //{-//	// dir coords are -z and y+// // dir coords are -z and y //-//	const btScalar dir0 = -edge[dir_index0];-//	const btScalar dir1 = edge[dir_index1];-//	btScalar pmin = pointa[component_index0]*dir0 + pointa[component_index1]*dir1;-//	btScalar pmax = pointb[component_index0]*dir0 + pointb[component_index1]*dir1;-//	//find minmax-//	if(pmin>pmax)-//	{-//		BT_SWAP_NUMBERS(pmin,pmax);-//	}-//	//find extends-//	const btScalar rad = extend[component_index0] * absolute_edge[dir_index0] +-//					extend[component_index1] * absolute_edge[dir_index1];+// const btScalar dir0 = -edge[dir_index0];+// const btScalar dir1 = edge[dir_index1];+// btScalar pmin = pointa[component_index0]*dir0 + pointa[component_index1]*dir1;+// btScalar pmax = pointb[component_index0]*dir0 + pointb[component_index1]*dir1;+// //find minmax+// if(pmin>pmax)+// {+// BT_SWAP_NUMBERS(pmin,pmax);+// }+// //find extends+// const btScalar rad = extend[component_index0] * absolute_edge[dir_index0] ++// extend[component_index1] * absolute_edge[dir_index1]; //-//	if(pmin>rad || -rad>pmax) return false;-//	return true;+// if(pmin>rad || -rad>pmax) return false;+// return true; //} // //SIMD_FORCE_INLINE bool test_cross_edge_box_X_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,2,1,1,2);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,2,1,1,2); //} // // //SIMD_FORCE_INLINE bool test_cross_edge_box_Y_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,0,2,2,0);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,0,2,2,0); //} // //SIMD_FORCE_INLINE bool test_cross_edge_box_Z_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,1,0,0,1);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,1,0,0,1); //}   #define TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,i_dir_0,i_dir_1,i_comp_0,i_comp_1)\ {\-	const btScalar dir0 = -edge[i_dir_0];\-	const btScalar dir1 = edge[i_dir_1];\-	btScalar pmin = pointa[i_comp_0]*dir0 + pointa[i_comp_1]*dir1;\-	btScalar pmax = pointb[i_comp_0]*dir0 + pointb[i_comp_1]*dir1;\-	if(pmin>pmax)\-	{\-		BT_SWAP_NUMBERS(pmin,pmax); \-	}\-	const btScalar abs_dir0 = absolute_edge[i_dir_0];\-	const btScalar abs_dir1 = absolute_edge[i_dir_1];\-	const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1;\-	if(pmin>rad || -rad>pmax) return false;\+const btScalar dir0 = -edge[i_dir_0];\+const btScalar dir1 = edge[i_dir_1];\+btScalar pmin = pointa[i_comp_0]*dir0 + pointa[i_comp_1]*dir1;\+btScalar pmax = pointb[i_comp_0]*dir0 + pointb[i_comp_1]*dir1;\+if(pmin>pmax)\+{\+BT_SWAP_NUMBERS(pmin,pmax); \ }\+const btScalar abs_dir0 = absolute_edge[i_dir_0];\+const btScalar abs_dir1 = absolute_edge[i_dir_1];\+const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1;\+if(pmin>rad || -rad>pmax) return false;\+}\   #define TEST_CROSS_EDGE_BOX_X_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,2,1,1,2);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,2,1,1,2);\ }\  #define TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,0,2,2,0);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,0,2,2,0);\ }\  #define TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,1,0,0,1);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,1,0,0,1);\ }\  @@ -153,493 +153,493 @@ SIMD_FORCE_INLINE btScalar bt_mat3_dot_col( const btMatrix3x3 & mat, const btVector3 & vec3, int colindex) {-	return vec3[0]*mat[0][colindex] + vec3[1]*mat[1][colindex] + vec3[2]*mat[2][colindex];+return vec3[0]*mat[0][colindex] + vec3[1]*mat[1][colindex] + vec3[2]*mat[2][colindex]; }  -//!  Class for transforming a model1 to the space of model0-ATTRIBUTE_ALIGNED16	(class) BT_BOX_BOX_TRANSFORM_CACHE+//! Class for transforming a model1 to the space of model0+ATTRIBUTE_ALIGNED16 (class) BT_BOX_BOX_TRANSFORM_CACHE { public:-    btVector3  m_T1to0;//!< Transforms translation of model1 to model 0-	btMatrix3x3 m_R1to0;//!< Transforms Rotation of model1 to model 0, equal  to R0' * R1-	btMatrix3x3 m_AR;//!< Absolute value of m_R1to0+btVector3 m_T1to0;//!< Transforms translation of model1 to model 0+btMatrix3x3 m_R1to0;//!< Transforms Rotation of model1 to model 0, equal to R0' * R1+btMatrix3x3 m_AR;//!< Absolute value of m_R1to0 -	SIMD_FORCE_INLINE void calc_absolute_matrix()-	{-//		static const btVector3 vepsi(1e-6f,1e-6f,1e-6f);-//		m_AR[0] = vepsi + m_R1to0[0].absolute();-//		m_AR[1] = vepsi + m_R1to0[1].absolute();-//		m_AR[2] = vepsi + m_R1to0[2].absolute();+SIMD_FORCE_INLINE void calc_absolute_matrix()+{+// static const btVector3 vepsi(1e-6f,1e-6f,1e-6f);+// m_AR[0] = vepsi + m_R1to0[0].absolute();+// m_AR[1] = vepsi + m_R1to0[1].absolute();+// m_AR[2] = vepsi + m_R1to0[2].absolute(); -		int i,j;+int i,j; -        for(i=0;i<3;i++)-        {-            for(j=0;j<3;j++ )-            {-            	m_AR[i][j] = 1e-6f + btFabs(m_R1to0[i][j]);-            }-        }+for(i=0;i<3;i++)+{+for(j=0;j<3;j++ )+{+m_AR[i][j] = 1e-6f + btFabs(m_R1to0[i][j]);+}+} -	}+} -	BT_BOX_BOX_TRANSFORM_CACHE()-	{-	}+BT_BOX_BOX_TRANSFORM_CACHE()+{+}   -	//! Calc the transformation relative  1 to 0. Inverts matrics by transposing-	SIMD_FORCE_INLINE void calc_from_homogenic(const btTransform & trans0,const btTransform & trans1)-	{+//! Calc the transformation relative 1 to 0. Inverts matrics by transposing+SIMD_FORCE_INLINE void calc_from_homogenic(const btTransform & trans0,const btTransform & trans1)+{ -		btTransform temp_trans = trans0.inverse();-		temp_trans = temp_trans * trans1;+btTransform temp_trans = trans0.inverse();+temp_trans = temp_trans * trans1; -		m_T1to0 = temp_trans.getOrigin();-		m_R1to0 = temp_trans.getBasis();+m_T1to0 = temp_trans.getOrigin();+m_R1to0 = temp_trans.getBasis();  -		calc_absolute_matrix();-	}+calc_absolute_matrix();+} -	//! Calcs the full invertion of the matrices. Useful for scaling matrices-	SIMD_FORCE_INLINE void calc_from_full_invert(const btTransform & trans0,const btTransform & trans1)-	{-		m_R1to0 = trans0.getBasis().inverse();-		m_T1to0 = m_R1to0 * (-trans0.getOrigin());+//! Calcs the full invertion of the matrices. Useful for scaling matrices+SIMD_FORCE_INLINE void calc_from_full_invert(const btTransform & trans0,const btTransform & trans1)+{+m_R1to0 = trans0.getBasis().inverse();+m_T1to0 = m_R1to0 * (-trans0.getOrigin()); -		m_T1to0 += m_R1to0*trans1.getOrigin();-		m_R1to0 *= trans1.getBasis();+m_T1to0 += m_R1to0*trans1.getOrigin();+m_R1to0 *= trans1.getBasis(); -		calc_absolute_matrix();-	}+calc_absolute_matrix();+} -	SIMD_FORCE_INLINE btVector3 transform(const btVector3 & point) const-	{-		return btVector3(m_R1to0[0].dot(point) + m_T1to0.x(),-			m_R1to0[1].dot(point) + m_T1to0.y(),-			m_R1to0[2].dot(point) + m_T1to0.z());-	}+SIMD_FORCE_INLINE btVector3 transform(const btVector3 & point) const+{+return btVector3(m_R1to0[0].dot(point) + m_T1to0.x(),+m_R1to0[1].dot(point) + m_T1to0.y(),+m_R1to0[2].dot(point) + m_T1to0.z());+} };   #define BOX_PLANE_EPSILON 0.000001f  //! Axis aligned box-ATTRIBUTE_ALIGNED16	(class) btAABB+ATTRIBUTE_ALIGNED16 (class) btAABB { public:-	btVector3 m_min;-	btVector3 m_max;+btVector3 m_min;+btVector3 m_max; -	btAABB()-	{}+btAABB()+{}  -	btAABB(const btVector3 & V1,-			 const btVector3 & V2,-			 const btVector3 & V3)-	{-		m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]);+btAABB(const btVector3 & V1,+const btVector3 & V2,+const btVector3 & V3)+{+m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);-	}+m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);+} -	btAABB(const btVector3 & V1,-			 const btVector3 & V2,-			 const btVector3 & V3,-			 btScalar margin)-	{-		m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]);+btAABB(const btVector3 & V1,+const btVector3 & V2,+const btVector3 & V3,+btScalar margin)+{+m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);+m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]); -		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	btAABB(const btAABB &other):-		m_min(other.m_min),m_max(other.m_max)-	{-	}+btAABB(const btAABB &other):+m_min(other.m_min),m_max(other.m_max)+{+} -	btAABB(const btAABB &other,btScalar margin ):-		m_min(other.m_min),m_max(other.m_max)-	{-		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+btAABB(const btAABB &other,btScalar margin ):+m_min(other.m_min),m_max(other.m_max)+{+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	SIMD_FORCE_INLINE void invalidate()-	{-		m_min[0] = SIMD_INFINITY;-		m_min[1] = SIMD_INFINITY;-		m_min[2] = SIMD_INFINITY;-		m_max[0] = -SIMD_INFINITY;-		m_max[1] = -SIMD_INFINITY;-		m_max[2] = -SIMD_INFINITY;-	}+SIMD_FORCE_INLINE void invalidate()+{+m_min[0] = SIMD_INFINITY;+m_min[1] = SIMD_INFINITY;+m_min[2] = SIMD_INFINITY;+m_max[0] = -SIMD_INFINITY;+m_max[1] = -SIMD_INFINITY;+m_max[2] = -SIMD_INFINITY;+} -	SIMD_FORCE_INLINE void increment_margin(btScalar margin)-	{-		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+SIMD_FORCE_INLINE void increment_margin(btScalar margin)+{+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	SIMD_FORCE_INLINE void copy_with_margin(const btAABB &other, btScalar margin)-	{-		m_min[0] = other.m_min[0] - margin;-		m_min[1] = other.m_min[1] - margin;-		m_min[2] = other.m_min[2] - margin;+SIMD_FORCE_INLINE void copy_with_margin(const btAABB &other, btScalar margin)+{+m_min[0] = other.m_min[0] - margin;+m_min[1] = other.m_min[1] - margin;+m_min[2] = other.m_min[2] - margin; -		m_max[0] = other.m_max[0] + margin;-		m_max[1] = other.m_max[1] + margin;-		m_max[2] = other.m_max[2] + margin;-	}+m_max[0] = other.m_max[0] + margin;+m_max[1] = other.m_max[1] + margin;+m_max[2] = other.m_max[2] + margin;+} -	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void calc_from_triangle(-							const CLASS_POINT & V1,-							const CLASS_POINT & V2,-							const CLASS_POINT & V3)-	{-		m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]);+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void calc_from_triangle(+const CLASS_POINT & V1,+const CLASS_POINT & V2,+const CLASS_POINT & V3)+{+m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);-	}+m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);+} -	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void calc_from_triangle_margin(-							const CLASS_POINT & V1,-							const CLASS_POINT & V2,-							const CLASS_POINT & V3, btScalar margin)-	{-		m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]);+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void calc_from_triangle_margin(+const CLASS_POINT & V1,+const CLASS_POINT & V2,+const CLASS_POINT & V3, btScalar margin)+{+m_min[0] = BT_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = BT_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = BT_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]);+m_max[0] = BT_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = BT_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = BT_MAX3(V1[2],V2[2],V3[2]); -		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	//! Apply a transform to an AABB-	SIMD_FORCE_INLINE void appy_transform(const btTransform & trans)-	{-		btVector3 center = (m_max+m_min)*0.5f;-		btVector3 extends = m_max - center;-		// Compute new center-		center = trans(center);+//! Apply a transform to an AABB+SIMD_FORCE_INLINE void appy_transform(const btTransform & trans)+{+btVector3 center = (m_max+m_min)*0.5f;+btVector3 extends = m_max - center;+// Compute new center+center = trans(center); -		btVector3 textends(extends.dot(trans.getBasis().getRow(0).absolute()),- 				 extends.dot(trans.getBasis().getRow(1).absolute()),-				 extends.dot(trans.getBasis().getRow(2).absolute()));+btVector3 textends(extends.dot(trans.getBasis().getRow(0).absolute()),+extends.dot(trans.getBasis().getRow(1).absolute()),+extends.dot(trans.getBasis().getRow(2).absolute())); -		m_min = center - textends;-		m_max = center + textends;-	}+m_min = center - textends;+m_max = center + textends;+}  -	//! Apply a transform to an AABB-	SIMD_FORCE_INLINE void appy_transform_trans_cache(const BT_BOX_BOX_TRANSFORM_CACHE & trans)-	{-		btVector3 center = (m_max+m_min)*0.5f;-		btVector3 extends = m_max - center;-		// Compute new center-		center = trans.transform(center);+//! Apply a transform to an AABB+SIMD_FORCE_INLINE void appy_transform_trans_cache(const BT_BOX_BOX_TRANSFORM_CACHE & trans)+{+btVector3 center = (m_max+m_min)*0.5f;+btVector3 extends = m_max - center;+// Compute new center+center = trans.transform(center); -		btVector3 textends(extends.dot(trans.m_R1to0.getRow(0).absolute()),- 				 extends.dot(trans.m_R1to0.getRow(1).absolute()),-				 extends.dot(trans.m_R1to0.getRow(2).absolute()));+btVector3 textends(extends.dot(trans.m_R1to0.getRow(0).absolute()),+extends.dot(trans.m_R1to0.getRow(1).absolute()),+extends.dot(trans.m_R1to0.getRow(2).absolute())); -		m_min = center - textends;-		m_max = center + textends;-	}+m_min = center - textends;+m_max = center + textends;+} -	//! Merges a Box-	SIMD_FORCE_INLINE void merge(const btAABB & box)-	{-		m_min[0] = BT_MIN(m_min[0],box.m_min[0]);-		m_min[1] = BT_MIN(m_min[1],box.m_min[1]);-		m_min[2] = BT_MIN(m_min[2],box.m_min[2]);+//! Merges a Box+SIMD_FORCE_INLINE void merge(const btAABB & box)+{+m_min[0] = BT_MIN(m_min[0],box.m_min[0]);+m_min[1] = BT_MIN(m_min[1],box.m_min[1]);+m_min[2] = BT_MIN(m_min[2],box.m_min[2]); -		m_max[0] = BT_MAX(m_max[0],box.m_max[0]);-		m_max[1] = BT_MAX(m_max[1],box.m_max[1]);-		m_max[2] = BT_MAX(m_max[2],box.m_max[2]);-	}+m_max[0] = BT_MAX(m_max[0],box.m_max[0]);+m_max[1] = BT_MAX(m_max[1],box.m_max[1]);+m_max[2] = BT_MAX(m_max[2],box.m_max[2]);+} -	//! Merges a point-	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void merge_point(const CLASS_POINT & point)-	{-		m_min[0] = BT_MIN(m_min[0],point[0]);-		m_min[1] = BT_MIN(m_min[1],point[1]);-		m_min[2] = BT_MIN(m_min[2],point[2]);+//! Merges a point+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void merge_point(const CLASS_POINT & point)+{+m_min[0] = BT_MIN(m_min[0],point[0]);+m_min[1] = BT_MIN(m_min[1],point[1]);+m_min[2] = BT_MIN(m_min[2],point[2]); -		m_max[0] = BT_MAX(m_max[0],point[0]);-		m_max[1] = BT_MAX(m_max[1],point[1]);-		m_max[2] = BT_MAX(m_max[2],point[2]);-	}+m_max[0] = BT_MAX(m_max[0],point[0]);+m_max[1] = BT_MAX(m_max[1],point[1]);+m_max[2] = BT_MAX(m_max[2],point[2]);+} -	//! Gets the extend and center-	SIMD_FORCE_INLINE void get_center_extend(btVector3 & center,btVector3 & extend)  const-	{-		center = (m_max+m_min)*0.5f;-		extend = m_max - center;-	}+//! Gets the extend and center+SIMD_FORCE_INLINE void get_center_extend(btVector3 & center,btVector3 & extend) const+{+center = (m_max+m_min)*0.5f;+extend = m_max - center;+} -	//! Finds the intersecting box between this box and the other.-	SIMD_FORCE_INLINE void find_intersection(const btAABB & other, btAABB & intersection)  const-	{-		intersection.m_min[0] = BT_MAX(other.m_min[0],m_min[0]);-		intersection.m_min[1] = BT_MAX(other.m_min[1],m_min[1]);-		intersection.m_min[2] = BT_MAX(other.m_min[2],m_min[2]);+//! Finds the intersecting box between this box and the other.+SIMD_FORCE_INLINE void find_intersection(const btAABB & other, btAABB & intersection) const+{+intersection.m_min[0] = BT_MAX(other.m_min[0],m_min[0]);+intersection.m_min[1] = BT_MAX(other.m_min[1],m_min[1]);+intersection.m_min[2] = BT_MAX(other.m_min[2],m_min[2]); -		intersection.m_max[0] = BT_MIN(other.m_max[0],m_max[0]);-		intersection.m_max[1] = BT_MIN(other.m_max[1],m_max[1]);-		intersection.m_max[2] = BT_MIN(other.m_max[2],m_max[2]);-	}+intersection.m_max[0] = BT_MIN(other.m_max[0],m_max[0]);+intersection.m_max[1] = BT_MIN(other.m_max[1],m_max[1]);+intersection.m_max[2] = BT_MIN(other.m_max[2],m_max[2]);+}  -	SIMD_FORCE_INLINE bool has_collision(const btAABB & other) const-	{-		if(m_min[0] > other.m_max[0] ||-		   m_max[0] < other.m_min[0] ||-		   m_min[1] > other.m_max[1] ||-		   m_max[1] < other.m_min[1] ||-		   m_min[2] > other.m_max[2] ||-		   m_max[2] < other.m_min[2])-		{-			return false;-		}-		return true;-	}+SIMD_FORCE_INLINE bool has_collision(const btAABB & other) const+{+if(m_min[0] > other.m_max[0] ||+m_max[0] < other.m_min[0] ||+m_min[1] > other.m_max[1] ||+m_max[1] < other.m_min[1] ||+m_min[2] > other.m_max[2] ||+m_max[2] < other.m_min[2])+{+return false;+}+return true;+} -	/*! \brief Finds the Ray intersection parameter.-	\param aabb Aligned box-	\param vorigin A vec3f with the origin of the ray-	\param vdir A vec3f with the direction of the ray-	*/-	SIMD_FORCE_INLINE bool collide_ray(const btVector3 & vorigin,const btVector3 & vdir)  const-	{-		btVector3 extents,center;-		this->get_center_extend(center,extents);;+/*! \brief Finds the Ray intersection parameter.+\param aabb Aligned box+\param vorigin A vec3f with the origin of the ray+\param vdir A vec3f with the direction of the ray+*/+SIMD_FORCE_INLINE bool collide_ray(const btVector3 & vorigin,const btVector3 & vdir) const+{+btVector3 extents,center;+this->get_center_extend(center,extents);; -		btScalar Dx = vorigin[0] - center[0];-		if(BT_GREATER(Dx, extents[0]) && Dx*vdir[0]>=0.0f)	return false;-		btScalar Dy = vorigin[1] - center[1];-		if(BT_GREATER(Dy, extents[1]) && Dy*vdir[1]>=0.0f)	return false;-		btScalar Dz = vorigin[2] - center[2];-		if(BT_GREATER(Dz, extents[2]) && Dz*vdir[2]>=0.0f)	return false;+btScalar Dx = vorigin[0] - center[0];+if(BT_GREATER(Dx, extents[0]) && Dx*vdir[0]>=0.0f) return false;+btScalar Dy = vorigin[1] - center[1];+if(BT_GREATER(Dy, extents[1]) && Dy*vdir[1]>=0.0f) return false;+btScalar Dz = vorigin[2] - center[2];+if(BT_GREATER(Dz, extents[2]) && Dz*vdir[2]>=0.0f) return false;  -		btScalar f = vdir[1] * Dz - vdir[2] * Dy;-		if(btFabs(f) > extents[1]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[1])) return false;-		f = vdir[2] * Dx - vdir[0] * Dz;-		if(btFabs(f) > extents[0]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[0]))return false;-		f = vdir[0] * Dy - vdir[1] * Dx;-		if(btFabs(f) > extents[0]*btFabs(vdir[1]) + extents[1]*btFabs(vdir[0]))return false;-		return true;-	}+btScalar f = vdir[1] * Dz - vdir[2] * Dy;+if(btFabs(f) > extents[1]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[1])) return false;+f = vdir[2] * Dx - vdir[0] * Dz;+if(btFabs(f) > extents[0]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[0]))return false;+f = vdir[0] * Dy - vdir[1] * Dx;+if(btFabs(f) > extents[0]*btFabs(vdir[1]) + extents[1]*btFabs(vdir[0]))return false;+return true;+}  -	SIMD_FORCE_INLINE void projection_interval(const btVector3 & direction, btScalar &vmin, btScalar &vmax) const-	{-		btVector3 center = (m_max+m_min)*0.5f;-		btVector3 extend = m_max-center;+SIMD_FORCE_INLINE void projection_interval(const btVector3 & direction, btScalar &vmin, btScalar &vmax) const+{+btVector3 center = (m_max+m_min)*0.5f;+btVector3 extend = m_max-center; -		btScalar _fOrigin =  direction.dot(center);-		btScalar _fMaximumExtent = extend.dot(direction.absolute());-		vmin = _fOrigin - _fMaximumExtent;-		vmax = _fOrigin + _fMaximumExtent;-	}+btScalar _fOrigin = direction.dot(center);+btScalar _fMaximumExtent = extend.dot(direction.absolute());+vmin = _fOrigin - _fMaximumExtent;+vmax = _fOrigin + _fMaximumExtent;+} -	SIMD_FORCE_INLINE eBT_PLANE_INTERSECTION_TYPE plane_classify(const btVector4 &plane) const-	{-		btScalar _fmin,_fmax;-		this->projection_interval(plane,_fmin,_fmax);+SIMD_FORCE_INLINE eBT_PLANE_INTERSECTION_TYPE plane_classify(const btVector4 &plane) const+{+btScalar _fmin,_fmax;+this->projection_interval(plane,_fmin,_fmax); -		if(plane[3] > _fmax + BOX_PLANE_EPSILON)-		{-			return BT_CONST_BACK_PLANE; // 0-		}+if(plane[3] > _fmax + BOX_PLANE_EPSILON)+{+return BT_CONST_BACK_PLANE; // 0+} -		if(plane[3]+BOX_PLANE_EPSILON >=_fmin)-		{-			return BT_CONST_COLLIDE_PLANE; //1-		}-		return BT_CONST_FRONT_PLANE;//2-	}+if(plane[3]+BOX_PLANE_EPSILON >=_fmin)+{+return BT_CONST_COLLIDE_PLANE; //1+}+return BT_CONST_FRONT_PLANE;//2+} -	SIMD_FORCE_INLINE bool overlapping_trans_conservative(const btAABB & box, btTransform & trans1_to_0) const-	{-		btAABB tbox = box;-		tbox.appy_transform(trans1_to_0);-		return has_collision(tbox);-	}+SIMD_FORCE_INLINE bool overlapping_trans_conservative(const btAABB & box, btTransform & trans1_to_0) const+{+btAABB tbox = box;+tbox.appy_transform(trans1_to_0);+return has_collision(tbox);+} -	SIMD_FORCE_INLINE bool overlapping_trans_conservative2(const btAABB & box,-		const BT_BOX_BOX_TRANSFORM_CACHE & trans1_to_0) const-	{-		btAABB tbox = box;-		tbox.appy_transform_trans_cache(trans1_to_0);-		return has_collision(tbox);-	}+SIMD_FORCE_INLINE bool overlapping_trans_conservative2(const btAABB & box,+const BT_BOX_BOX_TRANSFORM_CACHE & trans1_to_0) const+{+btAABB tbox = box;+tbox.appy_transform_trans_cache(trans1_to_0);+return has_collision(tbox);+} -	//! transcache is the transformation cache from box to this AABB-	SIMD_FORCE_INLINE bool overlapping_trans_cache(-		const btAABB & box,const BT_BOX_BOX_TRANSFORM_CACHE & transcache, bool fulltest) const-	{+//! transcache is the transformation cache from box to this AABB+SIMD_FORCE_INLINE bool overlapping_trans_cache(+const btAABB & box,const BT_BOX_BOX_TRANSFORM_CACHE & transcache, bool fulltest) const+{ -		//Taken from OPCODE-		btVector3 ea,eb;//extends-		btVector3 ca,cb;//extends-		get_center_extend(ca,ea);-		box.get_center_extend(cb,eb);+//Taken from OPCODE+btVector3 ea,eb;//extends+btVector3 ca,cb;//extends+get_center_extend(ca,ea);+box.get_center_extend(cb,eb);  -		btVector3 T;-		btScalar t,t2;-		int i;+btVector3 T;+btScalar t,t2;+int i; -		// Class I : A's basis vectors-		for(i=0;i<3;i++)-		{-			T[i] =  transcache.m_R1to0[i].dot(cb) + transcache.m_T1to0[i] - ca[i];-			t = transcache.m_AR[i].dot(eb) + ea[i];-			if(BT_GREATER(T[i], t))	return false;-		}-		// Class II : B's basis vectors-		for(i=0;i<3;i++)-		{-			t = bt_mat3_dot_col(transcache.m_R1to0,T,i);-			t2 = bt_mat3_dot_col(transcache.m_AR,ea,i) + eb[i];-			if(BT_GREATER(t,t2))	return false;-		}-		// Class III : 9 cross products-		if(fulltest)-		{-			int j,m,n,o,p,q,r;-			for(i=0;i<3;i++)-			{-				m = (i+1)%3;-				n = (i+2)%3;-				o = i==0?1:0;-				p = i==2?1:2;-				for(j=0;j<3;j++)-				{-					q = j==2?1:2;-					r = j==0?1:0;-					t = T[n]*transcache.m_R1to0[m][j] - T[m]*transcache.m_R1to0[n][j];-					t2 = ea[o]*transcache.m_AR[p][j] + ea[p]*transcache.m_AR[o][j] +-						eb[r]*transcache.m_AR[i][q] + eb[q]*transcache.m_AR[i][r];-					if(BT_GREATER(t,t2))	return false;-				}-			}-		}-		return true;-	}+// Class I : A's basis vectors+for(i=0;i<3;i++)+{+T[i] = transcache.m_R1to0[i].dot(cb) + transcache.m_T1to0[i] - ca[i];+t = transcache.m_AR[i].dot(eb) + ea[i];+if(BT_GREATER(T[i], t)) return false;+}+// Class II : B's basis vectors+for(i=0;i<3;i++)+{+t = bt_mat3_dot_col(transcache.m_R1to0,T,i);+t2 = bt_mat3_dot_col(transcache.m_AR,ea,i) + eb[i];+if(BT_GREATER(t,t2)) return false;+}+// Class III : 9 cross products+if(fulltest)+{+int j,m,n,o,p,q,r;+for(i=0;i<3;i++)+{+m = (i+1)%3;+n = (i+2)%3;+o = i==0?1:0;+p = i==2?1:2;+for(j=0;j<3;j++)+{+q = j==2?1:2;+r = j==0?1:0;+t = T[n]*transcache.m_R1to0[m][j] - T[m]*transcache.m_R1to0[n][j];+t2 = ea[o]*transcache.m_AR[p][j] + ea[p]*transcache.m_AR[o][j] ++eb[r]*transcache.m_AR[i][q] + eb[q]*transcache.m_AR[i][r];+if(BT_GREATER(t,t2)) return false;+}+}+}+return true;+} -	//! Simple test for planes.-	SIMD_FORCE_INLINE bool collide_plane(-		const btVector4 & plane) const-	{-		eBT_PLANE_INTERSECTION_TYPE classify = plane_classify(plane);-		return (classify == BT_CONST_COLLIDE_PLANE);-	}+//! Simple test for planes.+SIMD_FORCE_INLINE bool collide_plane(+const btVector4 & plane) const+{+eBT_PLANE_INTERSECTION_TYPE classify = plane_classify(plane);+return (classify == BT_CONST_COLLIDE_PLANE);+} -	//! test for a triangle, with edges-	SIMD_FORCE_INLINE bool collide_triangle_exact(-		const btVector3 & p1,-		const btVector3 & p2,-		const btVector3 & p3,-		const btVector4 & triangle_plane) const-	{-		if(!collide_plane(triangle_plane)) return false;+//! test for a triangle, with edges+SIMD_FORCE_INLINE bool collide_triangle_exact(+const btVector3 & p1,+const btVector3 & p2,+const btVector3 & p3,+const btVector4 & triangle_plane) const+{+if(!collide_plane(triangle_plane)) return false; -		btVector3 center,extends;-		this->get_center_extend(center,extends);+btVector3 center,extends;+this->get_center_extend(center,extends); -		const btVector3 v1(p1 - center);-		const btVector3 v2(p2 - center);-		const btVector3 v3(p3 - center);+const btVector3 v1(p1 - center);+const btVector3 v2(p2 - center);+const btVector3 v3(p3 - center); -		//First axis-		btVector3 diff(v2 - v1);-		btVector3 abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v1,v3,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v1,v3,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//First axis+btVector3 diff(v2 - v1);+btVector3 abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v1,v3,extends);  -		diff = v3 - v2;-		abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v2,v1,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v2,v1,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v2,v1,extends);+diff = v3 - v2;+abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v2,v1,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v2,v1,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v2,v1,extends); -		diff = v1 - v3;-		abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v3,v2,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v3,v2,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v3,v2,extends);+diff = v1 - v3;+abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v3,v2,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v3,v2,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v3,v2,extends); -		return true;-	}+return true;+} };   //! Compairison of transformation objects SIMD_FORCE_INLINE bool btCompareTransformsEqual(const btTransform & t1,const btTransform & t2) {-	if(!(t1.getOrigin() == t2.getOrigin()) ) return false;+if(!(t1.getOrigin() == t2.getOrigin()) ) return false; -	if(!(t1.getBasis().getRow(0) == t2.getBasis().getRow(0)) ) return false;-	if(!(t1.getBasis().getRow(1) == t2.getBasis().getRow(1)) ) return false;-	if(!(t1.getBasis().getRow(2) == t2.getBasis().getRow(2)) ) return false;-	return true;+if(!(t1.getBasis().getRow(0) == t2.getBasis().getRow(0)) ) return false;+if(!(t1.getBasis().getRow(1) == t2.getBasis().getRow(1)) ) return false;+if(!(t1.getBasis().getRow(2) == t2.getBasis().getRow(2)) ) return false;+return true; }  
bullet/BulletCollision/Gimpact/btClipPolygon.h view
@@ -30,39 +30,39 @@  SIMD_FORCE_INLINE btScalar bt_distance_point_plane(const btVector4 & plane,const btVector3 &point) {-	return point.dot(plane) - plane[3];+return point.dot(plane) - plane[3]; }  /*! Vector blending Takes two vectors a, b, blends them together*/ SIMD_FORCE_INLINE void bt_vec_blend(btVector3 &vr, const btVector3 &va,const btVector3 &vb, btScalar blend_factor) {-	vr = (1-blend_factor)*va + blend_factor*vb;+vr = (1-blend_factor)*va + blend_factor*vb; }  //! This function calcs the distance from a 3D plane SIMD_FORCE_INLINE void bt_plane_clip_polygon_collect(-						const btVector3 & point0,-						const btVector3 & point1,-						btScalar dist0,-						btScalar dist1,-						btVector3 * clipped,-						int & clipped_count)+const btVector3 & point0,+const btVector3 & point1,+btScalar dist0,+btScalar dist1,+btVector3 * clipped,+int & clipped_count) {-	bool _prevclassif = (dist0>SIMD_EPSILON);-	bool _classif = (dist1>SIMD_EPSILON);-	if(_classif!=_prevclassif)-	{-		btScalar blendfactor = -dist0/(dist1-dist0);-		bt_vec_blend(clipped[clipped_count],point0,point1,blendfactor);-		clipped_count++;-	}-	if(!_classif)-	{-		clipped[clipped_count] = point1;-		clipped_count++;-	}+bool _prevclassif = (dist0>SIMD_EPSILON);+bool _classif = (dist1>SIMD_EPSILON);+if(_classif!=_prevclassif)+{+btScalar blendfactor = -dist0/(dist1-dist0);+bt_vec_blend(clipped[clipped_count],point0,point1,blendfactor);+clipped_count++; }+if(!_classif)+{+clipped[clipped_count] = point1;+clipped_count++;+}+}   //! Clips a polygon by a plane@@ -70,48 +70,48 @@ *\return The count of the clipped counts */ SIMD_FORCE_INLINE int bt_plane_clip_polygon(-						const btVector4 & plane,-						const btVector3 * polygon_points,-						int polygon_point_count,-						btVector3 * clipped)+const btVector4 & plane,+const btVector3 * polygon_points,+int polygon_point_count,+btVector3 * clipped) {-    int clipped_count = 0;+int clipped_count = 0;  -    //clip first point-	btScalar firstdist = bt_distance_point_plane(plane,polygon_points[0]);;-	if(!(firstdist>SIMD_EPSILON))-	{-		clipped[clipped_count] = polygon_points[0];-		clipped_count++;-	}+//clip first point+btScalar firstdist = bt_distance_point_plane(plane,polygon_points[0]);;+if(!(firstdist>SIMD_EPSILON))+{+clipped[clipped_count] = polygon_points[0];+clipped_count++;+} -	btScalar olddist = firstdist;-	for(int i=1;i<polygon_point_count;i++)-	{-		btScalar dist = bt_distance_point_plane(plane,polygon_points[i]);+btScalar olddist = firstdist;+for(int i=1;i<polygon_point_count;i++)+{+btScalar dist = bt_distance_point_plane(plane,polygon_points[i]); -		bt_plane_clip_polygon_collect(-						polygon_points[i-1],polygon_points[i],-						olddist,-						dist,-						clipped,-						clipped_count);+bt_plane_clip_polygon_collect(+polygon_points[i-1],polygon_points[i],+olddist,+dist,+clipped,+clipped_count);  -		olddist = dist;-	}+olddist = dist;+} -	//RETURN TO FIRST  point+//RETURN TO FIRST point -	bt_plane_clip_polygon_collect(-					polygon_points[polygon_point_count-1],polygon_points[0],-					olddist,-					firstdist,-					clipped,-					clipped_count);+bt_plane_clip_polygon_collect(+polygon_points[polygon_point_count-1],polygon_points[0],+olddist,+firstdist,+clipped,+clipped_count); -	return clipped_count;+return clipped_count; }  //! Clips a polygon by a plane@@ -120,59 +120,59 @@ *\return The count of the clipped counts */ SIMD_FORCE_INLINE int bt_plane_clip_triangle(-						const btVector4 & plane,-						const btVector3 & point0,-						const btVector3 & point1,-						const btVector3& point2,-						btVector3 * clipped // an allocated array of 16 points at least-						)+const btVector4 & plane,+const btVector3 & point0,+const btVector3 & point1,+const btVector3& point2,+btVector3 * clipped // an allocated array of 16 points at least+) {-    int clipped_count = 0;+int clipped_count = 0; -    //clip first point0-	btScalar firstdist = bt_distance_point_plane(plane,point0);;-	if(!(firstdist>SIMD_EPSILON))-	{-		clipped[clipped_count] = point0;-		clipped_count++;-	}+//clip first point0+btScalar firstdist = bt_distance_point_plane(plane,point0);;+if(!(firstdist>SIMD_EPSILON))+{+clipped[clipped_count] = point0;+clipped_count++;+} -	// point 1-	btScalar olddist = firstdist;-	btScalar dist = bt_distance_point_plane(plane,point1);+// point 1+btScalar olddist = firstdist;+btScalar dist = bt_distance_point_plane(plane,point1); -	bt_plane_clip_polygon_collect(-					point0,point1,-					olddist,-					dist,-					clipped,-					clipped_count);+bt_plane_clip_polygon_collect(+point0,point1,+olddist,+dist,+clipped,+clipped_count); -	olddist = dist;+olddist = dist;  -	// point 2-	dist = bt_distance_point_plane(plane,point2);+// point 2+dist = bt_distance_point_plane(plane,point2); -	bt_plane_clip_polygon_collect(-					point1,point2,-					olddist,-					dist,-					clipped,-					clipped_count);-	olddist = dist;+bt_plane_clip_polygon_collect(+point1,point2,+olddist,+dist,+clipped,+clipped_count);+olddist = dist;   -	//RETURN TO FIRST  point0-	bt_plane_clip_polygon_collect(-					point2,point0,-					olddist,-					firstdist,-					clipped,-					clipped_count);+//RETURN TO FIRST point0+bt_plane_clip_polygon_collect(+point2,point0,+olddist,+firstdist,+clipped,+clipped_count); -	return clipped_count;+return clipped_count; }  
bullet/BulletCollision/Gimpact/btContactProcessing.h view
@@ -31,7 +31,7 @@   /**-Configuration var for applying interpolation of  contact normals+Configuration var for applying interpolation of contact normals */ #define NORMAL_CONTACT_AVERAGE 1 @@ -40,105 +40,105 @@ ///The GIM_CONTACT is an internal GIMPACT structure, similar to btManifoldPoint. ///@todo: remove and replace GIM_CONTACT by btManifoldPoint. class GIM_CONTACT-{+{ private: public:-    btVector3 m_point;-    btVector3 m_normal;-    btScalar m_depth;//Positive value indicates interpenetration-    btScalar m_distance;//Padding not for use-    int m_feature1;//Face number-    int m_feature2;//Face number+btVector3 m_point;+btVector3 m_normal;+btScalar m_depth;//Positive value indicates interpenetration+btScalar m_distance;//Padding not for use+int m_feature1;//Face number+int m_feature2;//Face number public:-    GIM_CONTACT()-    {-    }+GIM_CONTACT()+{+} -    GIM_CONTACT(const GIM_CONTACT & contact):-				m_point(contact.m_point),-				m_normal(contact.m_normal),-				m_depth(contact.m_depth),-				m_feature1(contact.m_feature1),-				m_feature2(contact.m_feature2)-    {-    }+GIM_CONTACT(const GIM_CONTACT & contact):+m_point(contact.m_point),+m_normal(contact.m_normal),+m_depth(contact.m_depth),+m_feature1(contact.m_feature1),+m_feature2(contact.m_feature2)+{+} -    GIM_CONTACT(const btVector3 &point,const btVector3 & normal,-    	 			btScalar depth, int feature1, int feature2):-				m_point(point),-				m_normal(normal),-				m_depth(depth),-				m_feature1(feature1),-				m_feature2(feature2)-    {-    }+GIM_CONTACT(const btVector3 &point,const btVector3 & normal,+btScalar depth, int feature1, int feature2):+m_point(point),+m_normal(normal),+m_depth(depth),+m_feature1(feature1),+m_feature2(feature2)+{+} -	//! Calcs key for coord classification-    SIMD_FORCE_INLINE unsigned int calc_key_contact() const-    {-    	int _coords[] = {-    		(int)(m_point[0]*1000.0f+1.0f),-    		(int)(m_point[1]*1333.0f),-    		(int)(m_point[2]*2133.0f+3.0f)};-		unsigned int _hash=0;-		unsigned int *_uitmp = (unsigned int *)(&_coords[0]);-		_hash = *_uitmp;-		_uitmp++;-		_hash += (*_uitmp)<<4;-		_uitmp++;-		_hash += (*_uitmp)<<8;-		return _hash;-    }+//! Calcs key for coord classification+SIMD_FORCE_INLINE unsigned int calc_key_contact() const+{+int _coords[] = {+(int)(m_point[0]*1000.0f+1.0f),+(int)(m_point[1]*1333.0f),+(int)(m_point[2]*2133.0f+3.0f)};+unsigned int _hash=0;+unsigned int *_uitmp = (unsigned int *)(&_coords[0]);+_hash = *_uitmp;+_uitmp++;+_hash += (*_uitmp)<<4;+_uitmp++;+_hash += (*_uitmp)<<8;+return _hash;+} -    SIMD_FORCE_INLINE void interpolate_normals( btVector3 * normals,int normal_count)-    {-    	btVector3 vec_sum(m_normal);-		for(int i=0;i<normal_count;i++)-		{-			vec_sum += normals[i];-		}+SIMD_FORCE_INLINE void interpolate_normals( btVector3 * normals,int normal_count)+{+btVector3 vec_sum(m_normal);+for(int i=0;i<normal_count;i++)+{+vec_sum += normals[i];+} -		btScalar vec_sum_len = vec_sum.length2();-		if(vec_sum_len <CONTACT_DIFF_EPSILON) return;+btScalar vec_sum_len = vec_sum.length2();+if(vec_sum_len <CONTACT_DIFF_EPSILON) return; -		//GIM_INV_SQRT(vec_sum_len,vec_sum_len); // 1/sqrt(vec_sum_len)+//GIM_INV_SQRT(vec_sum_len,vec_sum_len); // 1/sqrt(vec_sum_len) -		m_normal = vec_sum/btSqrt(vec_sum_len);-    }+m_normal = vec_sum/btSqrt(vec_sum_len);+}  };   class btContactArray:public btAlignedObjectArray<GIM_CONTACT>-{+{ private: public:-	btContactArray()-	{-		reserve(64);-	}+btContactArray()+{+reserve(64);+} -	SIMD_FORCE_INLINE void push_contact(-		const btVector3 &point,const btVector3 & normal,-		btScalar depth, int feature1, int feature2)-	{-		push_back( GIM_CONTACT(point,normal,depth,feature1,feature2) );-	}+SIMD_FORCE_INLINE void push_contact(+const btVector3 &point,const btVector3 & normal,+btScalar depth, int feature1, int feature2)+{+push_back( GIM_CONTACT(point,normal,depth,feature1,feature2) );+} -	SIMD_FORCE_INLINE void push_triangle_contacts(-		const GIM_TRIANGLE_CONTACT & tricontact,-		int feature1,int feature2)-	{-		for(int i = 0;i<tricontact.m_point_count ;i++ )-		{-			push_contact(-				tricontact.m_points[i],-				tricontact.m_separating_normal,-				tricontact.m_penetration_depth,feature1,feature2);-		}-	}+SIMD_FORCE_INLINE void push_triangle_contacts(+const GIM_TRIANGLE_CONTACT & tricontact,+int feature1,int feature2)+{+for(int i = 0;i<tricontact.m_point_count ;i++ )+{+push_contact(+tricontact.m_points[i],+tricontact.m_separating_normal,+tricontact.m_penetration_depth,feature1,feature2);+}+} -	void merge_contacts(const btContactArray & contacts, bool normal_contact_average = true);+void merge_contacts(const btContactArray & contacts, bool normal_contact_average = true); -	void merge_contacts_unique(const btContactArray & contacts);+void merge_contacts_unique(const btContactArray & contacts); };  
bullet/BulletCollision/Gimpact/btGImpactBvh.h view
@@ -37,103 +37,103 @@ //! Overlapping pair struct GIM_PAIR {-    int m_index1;-    int m_index2;-    GIM_PAIR()-    {}+int m_index1;+int m_index2;+GIM_PAIR()+{} -    GIM_PAIR(const GIM_PAIR & p)-    {-    	m_index1 = p.m_index1;-    	m_index2 = p.m_index2;-	}+GIM_PAIR(const GIM_PAIR & p)+{+m_index1 = p.m_index1;+m_index2 = p.m_index2;+} -	GIM_PAIR(int index1, int index2)-    {-    	m_index1 = index1;-    	m_index2 = index2;-	}+GIM_PAIR(int index1, int index2)+{+m_index1 = index1;+m_index2 = index2;+} };  //! A pairset array class btPairSet: public btAlignedObjectArray<GIM_PAIR>-{+{ private: public:-	btPairSet()-	{-		reserve(32);-	}-	inline void push_pair(int index1,int index2)-	{-		push_back(GIM_PAIR(index1,index2));-	}+btPairSet()+{+reserve(32);+}+inline void push_pair(int index1,int index2)+{+push_back(GIM_PAIR(index1,index2));+} -	inline void push_pair_inv(int index1,int index2)-	{-		push_back(GIM_PAIR(index2,index1));-	}+inline void push_pair_inv(int index1,int index2)+{+push_back(GIM_PAIR(index2,index1));+} };   ///GIM_BVH_DATA is an internal GIMPACT collision structure to contain axis aligned bounding box struct GIM_BVH_DATA {-	btAABB m_bound;-	int m_data;+btAABB m_bound;+int m_data; };  //! Node Structure for trees class GIM_BVH_TREE_NODE-{+{ private: public:-	btAABB m_bound;+btAABB m_bound; protected:-	int	m_escapeIndexOrDataIndex;+int m_escapeIndexOrDataIndex; public:-	GIM_BVH_TREE_NODE()-	{-		m_escapeIndexOrDataIndex = 0;-	}+GIM_BVH_TREE_NODE()+{+m_escapeIndexOrDataIndex = 0;+} -	SIMD_FORCE_INLINE bool isLeafNode() const-	{-		//skipindex is negative (internal node), triangleindex >=0 (leafnode)-		return (m_escapeIndexOrDataIndex>=0);-	}+SIMD_FORCE_INLINE bool isLeafNode() const+{+//skipindex is negative (internal node), triangleindex >=0 (leafnode)+return (m_escapeIndexOrDataIndex>=0);+} -	SIMD_FORCE_INLINE int getEscapeIndex() const-	{-		//btAssert(m_escapeIndexOrDataIndex < 0);-		return -m_escapeIndexOrDataIndex;-	}+SIMD_FORCE_INLINE int getEscapeIndex() const+{+//btAssert(m_escapeIndexOrDataIndex < 0);+return -m_escapeIndexOrDataIndex;+} -	SIMD_FORCE_INLINE void setEscapeIndex(int index)-	{-		m_escapeIndexOrDataIndex = -index;-	}+SIMD_FORCE_INLINE void setEscapeIndex(int index)+{+m_escapeIndexOrDataIndex = -index;+} -	SIMD_FORCE_INLINE int getDataIndex() const-	{-		//btAssert(m_escapeIndexOrDataIndex >= 0);+SIMD_FORCE_INLINE int getDataIndex() const+{+//btAssert(m_escapeIndexOrDataIndex >= 0); -		return m_escapeIndexOrDataIndex;-	}+return m_escapeIndexOrDataIndex;+} -	SIMD_FORCE_INLINE void setDataIndex(int index)-	{-		m_escapeIndexOrDataIndex = index;-	}+SIMD_FORCE_INLINE void setDataIndex(int index)+{+m_escapeIndexOrDataIndex = index;+}  };   class GIM_BVH_DATA_ARRAY:public btAlignedObjectArray<GIM_BVH_DATA>-{+{ private: };   class GIM_BVH_TREE_NODE_ARRAY:public btAlignedObjectArray<GIM_BVH_TREE_NODE>-{+{ private: };  @@ -141,83 +141,83 @@  //! Basic Box tree structure class btBvhTree-{+{ private: protected:-	int m_num_nodes;-	GIM_BVH_TREE_NODE_ARRAY m_node_array;+int m_num_nodes;+GIM_BVH_TREE_NODE_ARRAY m_node_array; protected:-	int _sort_and_calc_splitting_index(-		GIM_BVH_DATA_ARRAY & primitive_boxes,-		 int startIndex,  int endIndex, int splitAxis);+int _sort_and_calc_splitting_index(+GIM_BVH_DATA_ARRAY & primitive_boxes,+int startIndex, int endIndex, int splitAxis); -	int _calc_splitting_axis(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex,  int endIndex);+int _calc_splitting_axis(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex, int endIndex); -	void _build_sub_tree(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex,  int endIndex);+void _build_sub_tree(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex, int endIndex); public:-	btBvhTree()-	{-		m_num_nodes = 0;-	}+btBvhTree()+{+m_num_nodes = 0;+} -	//! prototype functions for box tree management-	//!@{-	void build_tree(GIM_BVH_DATA_ARRAY & primitive_boxes);+//! prototype functions for box tree management+//!@{+void build_tree(GIM_BVH_DATA_ARRAY & primitive_boxes); -	SIMD_FORCE_INLINE void clearNodes()-	{-		m_node_array.clear();-		m_num_nodes = 0;-	}+SIMD_FORCE_INLINE void clearNodes()+{+m_node_array.clear();+m_num_nodes = 0;+} -	//! node count-	SIMD_FORCE_INLINE int getNodeCount() const-	{-		return m_num_nodes;-	}+//! node count+SIMD_FORCE_INLINE int getNodeCount() const+{+return m_num_nodes;+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const-	{-		return m_node_array[nodeindex].isLeafNode();-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const+{+return m_node_array[nodeindex].isLeafNode();+} -	SIMD_FORCE_INLINE int getNodeData(int nodeindex) const-	{-		return m_node_array[nodeindex].getDataIndex();-	}+SIMD_FORCE_INLINE int getNodeData(int nodeindex) const+{+return m_node_array[nodeindex].getDataIndex();+} -	SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const-	{-		bound = m_node_array[nodeindex].m_bound;-	}+SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const+{+bound = m_node_array[nodeindex].m_bound;+} -	SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)-	{-		m_node_array[nodeindex].m_bound = bound;-	}+SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)+{+m_node_array[nodeindex].m_bound = bound;+} -	SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const-	{-		return nodeindex+1;-	}+SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const+{+return nodeindex+1;+} -	SIMD_FORCE_INLINE int getRightNode(int nodeindex) const-	{-		if(m_node_array[nodeindex+1].isLeafNode()) return nodeindex+2;-		return nodeindex+1 + m_node_array[nodeindex+1].getEscapeIndex();-	}+SIMD_FORCE_INLINE int getRightNode(int nodeindex) const+{+if(m_node_array[nodeindex+1].isLeafNode()) return nodeindex+2;+return nodeindex+1 + m_node_array[nodeindex+1].getEscapeIndex();+} -	SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const-	{-		return m_node_array[nodeindex].getEscapeIndex();-	}+SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const+{+return m_node_array[nodeindex].getEscapeIndex();+} -	SIMD_FORCE_INLINE const GIM_BVH_TREE_NODE * get_node_pointer(int index = 0) const-	{-		return &m_node_array[index];-	}+SIMD_FORCE_INLINE const GIM_BVH_TREE_NODE * get_node_pointer(int index = 0) const+{+return &m_node_array[index];+} -	//!@}+//!@} };  @@ -225,20 +225,20 @@ /*! This class is a wrapper for primitive collections. This tells relevant info for the Bounding Box set classes, which take care of space classification.-This class can manage Compound shapes and trimeshes, and if it is managing trimesh then the  Hierarchy Bounding Box classes will take advantage of primitive Vs Box overlapping tests for getting optimal results and less Per Box compairisons.+This class can manage Compound shapes and trimeshes, and if it is managing trimesh then the Hierarchy Bounding Box classes will take advantage of primitive Vs Box overlapping tests for getting optimal results and less Per Box compairisons. */ class btPrimitiveManagerBase-{+{ private: public: -	virtual ~btPrimitiveManagerBase() {}+virtual ~btPrimitiveManagerBase() {} -	//! determines if this manager consist on only triangles, which special case will be optimized-	virtual bool is_trimesh() const = 0;-	virtual int get_primitive_count() const = 0;-	virtual void get_primitive_box(int prim_index ,btAABB & primbox) const = 0;-	//! retrieves only the points of the triangle, and the collision margin-	virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const= 0;+//! determines if this manager consist on only triangles, which special case will be optimized+virtual bool is_trimesh() const = 0;+virtual int get_primitive_count() const = 0;+virtual void get_primitive_box(int prim_index ,btAABB & primbox) const = 0;+//! retrieves only the points of the triangle, and the collision margin+virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const= 0; };  @@ -248,148 +248,148 @@ Requires a Primitive prototype (like btPrimitiveManagerBase ) */ class btGImpactBvh-{+{ private: protected:-	btBvhTree m_box_tree;-	btPrimitiveManagerBase * m_primitive_manager;+btBvhTree m_box_tree;+btPrimitiveManagerBase * m_primitive_manager;  protected:-	//stackless refit-	void refit();+//stackless refit+void refit(); public: -	//! this constructor doesn't build the tree. you must call	buildSet-	btGImpactBvh()-	{-		m_primitive_manager = NULL;-	}+//! this constructor doesn't build the tree. you must call buildSet+btGImpactBvh()+{+m_primitive_manager = NULL;+} -	//! this constructor doesn't build the tree. you must call	buildSet-	btGImpactBvh(btPrimitiveManagerBase * primitive_manager)-	{-		m_primitive_manager = primitive_manager;-	}+//! this constructor doesn't build the tree. you must call buildSet+btGImpactBvh(btPrimitiveManagerBase * primitive_manager)+{+m_primitive_manager = primitive_manager;+} -	SIMD_FORCE_INLINE btAABB getGlobalBox()  const-	{-		btAABB totalbox;-		getNodeBound(0, totalbox);-		return totalbox;-	}+SIMD_FORCE_INLINE btAABB getGlobalBox() const+{+btAABB totalbox;+getNodeBound(0, totalbox);+return totalbox;+} -	SIMD_FORCE_INLINE void setPrimitiveManager(btPrimitiveManagerBase * primitive_manager)-	{-		m_primitive_manager = primitive_manager;-	}+SIMD_FORCE_INLINE void setPrimitiveManager(btPrimitiveManagerBase * primitive_manager)+{+m_primitive_manager = primitive_manager;+} -	SIMD_FORCE_INLINE btPrimitiveManagerBase * getPrimitiveManager() const-	{-		return m_primitive_manager;-	}+SIMD_FORCE_INLINE btPrimitiveManagerBase * getPrimitiveManager() const+{+return m_primitive_manager;+}   //! node manager prototype functions ///@{ -	//! this attemps to refit the box set.-	SIMD_FORCE_INLINE void update()-	{-		refit();-	}+//! this attemps to refit the box set.+SIMD_FORCE_INLINE void update()+{+refit();+} -	//! this rebuild the entire set-	void buildSet();+//! this rebuild the entire set+void buildSet(); -	//! returns the indices of the primitives in the m_primitive_manager-	bool boxQuery(const btAABB & box, btAlignedObjectArray<int> & collided_results) const;+//! returns the indices of the primitives in the m_primitive_manager+bool boxQuery(const btAABB & box, btAlignedObjectArray<int> & collided_results) const; -	//! returns the indices of the primitives in the m_primitive_manager-	SIMD_FORCE_INLINE bool boxQueryTrans(const btAABB & box,-		 const btTransform & transform, btAlignedObjectArray<int> & collided_results) const-	{-		btAABB transbox=box;-		transbox.appy_transform(transform);-		return boxQuery(transbox,collided_results);-	}+//! returns the indices of the primitives in the m_primitive_manager+SIMD_FORCE_INLINE bool boxQueryTrans(const btAABB & box,+const btTransform & transform, btAlignedObjectArray<int> & collided_results) const+{+btAABB transbox=box;+transbox.appy_transform(transform);+return boxQuery(transbox,collided_results);+} -	//! returns the indices of the primitives in the m_primitive_manager-	bool rayQuery(-		const btVector3 & ray_dir,const btVector3 & ray_origin ,-		btAlignedObjectArray<int> & collided_results) const;+//! returns the indices of the primitives in the m_primitive_manager+bool rayQuery(+const btVector3 & ray_dir,const btVector3 & ray_origin ,+btAlignedObjectArray<int> & collided_results) const; -	//! tells if this set has hierarcht-	SIMD_FORCE_INLINE bool hasHierarchy() const-	{-		return true;-	}+//! tells if this set has hierarcht+SIMD_FORCE_INLINE bool hasHierarchy() const+{+return true;+} -	//! tells if this set is a trimesh-	SIMD_FORCE_INLINE bool isTrimesh()  const-	{-		return m_primitive_manager->is_trimesh();-	}+//! tells if this set is a trimesh+SIMD_FORCE_INLINE bool isTrimesh() const+{+return m_primitive_manager->is_trimesh();+} -	//! node count-	SIMD_FORCE_INLINE int getNodeCount() const-	{-		return m_box_tree.getNodeCount();-	}+//! node count+SIMD_FORCE_INLINE int getNodeCount() const+{+return m_box_tree.getNodeCount();+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const-	{-		return m_box_tree.isLeafNode(nodeindex);-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const+{+return m_box_tree.isLeafNode(nodeindex);+} -	SIMD_FORCE_INLINE int getNodeData(int nodeindex) const-	{-		return m_box_tree.getNodeData(nodeindex);-	}+SIMD_FORCE_INLINE int getNodeData(int nodeindex) const+{+return m_box_tree.getNodeData(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound)  const-	{-		m_box_tree.getNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const+{+m_box_tree.getNodeBound(nodeindex, bound);+} -	SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)-	{-		m_box_tree.setNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)+{+m_box_tree.setNodeBound(nodeindex, bound);+}  -	SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const-	{-		return m_box_tree.getLeftNode(nodeindex);-	}+SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const+{+return m_box_tree.getLeftNode(nodeindex);+} -	SIMD_FORCE_INLINE int getRightNode(int nodeindex) const-	{-		return m_box_tree.getRightNode(nodeindex);-	}+SIMD_FORCE_INLINE int getRightNode(int nodeindex) const+{+return m_box_tree.getRightNode(nodeindex);+} -	SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const-	{-		return m_box_tree.getEscapeNodeIndex(nodeindex);-	}+SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const+{+return m_box_tree.getEscapeNodeIndex(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeTriangle(int nodeindex,btPrimitiveTriangle & triangle) const-	{-		m_primitive_manager->get_primitive_triangle(getNodeData(nodeindex),triangle);-	}+SIMD_FORCE_INLINE void getNodeTriangle(int nodeindex,btPrimitiveTriangle & triangle) const+{+m_primitive_manager->get_primitive_triangle(getNodeData(nodeindex),triangle);+}  -	SIMD_FORCE_INLINE const GIM_BVH_TREE_NODE * get_node_pointer(int index = 0) const-	{-		return m_box_tree.get_node_pointer(index);-	}+SIMD_FORCE_INLINE const GIM_BVH_TREE_NODE * get_node_pointer(int index = 0) const+{+return m_box_tree.get_node_pointer(index);+}  #ifdef TRI_COLLISION_PROFILING-	static float getAverageTreeCollisionTime();+static float getAverageTreeCollisionTime(); #endif //TRI_COLLISION_PROFILING -	static void find_collision(btGImpactBvh * boxset1, const btTransform & trans1,-		btGImpactBvh * boxset2, const btTransform & trans2,-		btPairSet & collision_pairs);+static void find_collision(btGImpactBvh * boxset1, const btTransform & trans1,+btGImpactBvh * boxset2, const btTransform & trans2,+btPairSet & collision_pairs); };  
bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.h view
@@ -46,253 +46,253 @@ //! Collision Algorithm for GImpact Shapes /*! For register this algorithm in Bullet, proceed as following:- \code+\code btCollisionDispatcher * dispatcher = static_cast<btCollisionDispatcher *>(m_dynamicsWorld ->getDispatcher()); btGImpactCollisionAlgorithm::registerAlgorithm(dispatcher);- \endcode+\endcode */ class btGImpactCollisionAlgorithm : public btActivatingCollisionAlgorithm-{+{ private: protected:-	btCollisionAlgorithm * m_convex_algorithm;-    btPersistentManifold * m_manifoldPtr;-	btManifoldResult* m_resultOut;-	const btDispatcherInfo * m_dispatchInfo;-	int m_triface0;-	int m_part0;-	int m_triface1;-	int m_part1;+btCollisionAlgorithm * m_convex_algorithm;+btPersistentManifold * m_manifoldPtr;+btManifoldResult* m_resultOut;+const btDispatcherInfo * m_dispatchInfo;+int m_triface0;+int m_part0;+int m_triface1;+int m_part1;  -	//! Creates a new contact point-	SIMD_FORCE_INLINE btPersistentManifold* newContactManifold(btCollisionObject* body0,btCollisionObject* body1)-	{-		m_manifoldPtr = m_dispatcher->getNewManifold(body0,body1);-		return m_manifoldPtr;-	}+//! Creates a new contact point+SIMD_FORCE_INLINE btPersistentManifold* newContactManifold(btCollisionObject* body0,btCollisionObject* body1)+{+m_manifoldPtr = m_dispatcher->getNewManifold(body0,body1);+return m_manifoldPtr;+} -	SIMD_FORCE_INLINE void destroyConvexAlgorithm()-	{-		if(m_convex_algorithm)-		{-			m_convex_algorithm->~btCollisionAlgorithm();-			m_dispatcher->freeCollisionAlgorithm( m_convex_algorithm);-			m_convex_algorithm = NULL;-		}-	}+SIMD_FORCE_INLINE void destroyConvexAlgorithm()+{+if(m_convex_algorithm)+{+m_convex_algorithm->~btCollisionAlgorithm();+m_dispatcher->freeCollisionAlgorithm( m_convex_algorithm);+m_convex_algorithm = NULL;+}+} -	SIMD_FORCE_INLINE void destroyContactManifolds()-	{-		if(m_manifoldPtr == NULL) return;-		m_dispatcher->releaseManifold(m_manifoldPtr);-		m_manifoldPtr = NULL;-	}+SIMD_FORCE_INLINE void destroyContactManifolds()+{+if(m_manifoldPtr == NULL) return;+m_dispatcher->releaseManifold(m_manifoldPtr);+m_manifoldPtr = NULL;+} -	SIMD_FORCE_INLINE void clearCache()-	{-		destroyContactManifolds();-		destroyConvexAlgorithm();+SIMD_FORCE_INLINE void clearCache()+{+destroyContactManifolds();+destroyConvexAlgorithm(); -		m_triface0 = -1;-		m_part0 = -1;-		m_triface1 = -1;-		m_part1 = -1;-	}+m_triface0 = -1;+m_part0 = -1;+m_triface1 = -1;+m_part1 = -1;+} -	SIMD_FORCE_INLINE btPersistentManifold* getLastManifold()-	{-		return m_manifoldPtr;-	}+SIMD_FORCE_INLINE btPersistentManifold* getLastManifold()+{+return m_manifoldPtr;+}  -	// Call before process collision-	SIMD_FORCE_INLINE void checkManifold(btCollisionObject* body0,btCollisionObject* body1)-	{-		if(getLastManifold() == 0)-		{-			newContactManifold(body0,body1);-		}+// Call before process collision+SIMD_FORCE_INLINE void checkManifold(btCollisionObject* body0,btCollisionObject* body1)+{+if(getLastManifold() == 0)+{+newContactManifold(body0,body1);+} -		m_resultOut->setPersistentManifold(getLastManifold());-	}+m_resultOut->setPersistentManifold(getLastManifold());+} -	// Call before process collision-	SIMD_FORCE_INLINE btCollisionAlgorithm * newAlgorithm(btCollisionObject* body0,btCollisionObject* body1)-	{-		checkManifold(body0,body1);+// Call before process collision+SIMD_FORCE_INLINE btCollisionAlgorithm * newAlgorithm(btCollisionObject* body0,btCollisionObject* body1)+{+checkManifold(body0,body1); -		btCollisionAlgorithm * convex_algorithm = m_dispatcher->findAlgorithm(-				body0,body1,getLastManifold());-		return convex_algorithm ;-	}+btCollisionAlgorithm * convex_algorithm = m_dispatcher->findAlgorithm(+body0,body1,getLastManifold());+return convex_algorithm ;+} -	// Call before process collision-	SIMD_FORCE_INLINE void checkConvexAlgorithm(btCollisionObject* body0,btCollisionObject* body1)-	{-		if(m_convex_algorithm) return;-		m_convex_algorithm = newAlgorithm(body0,body1);-	}+// Call before process collision+SIMD_FORCE_INLINE void checkConvexAlgorithm(btCollisionObject* body0,btCollisionObject* body1)+{+if(m_convex_algorithm) return;+m_convex_algorithm = newAlgorithm(body0,body1);+}    -	void addContactPoint(btCollisionObject * body0,-					btCollisionObject * body1,-					const btVector3 & point,-					const btVector3 & normal,-					btScalar distance);+void addContactPoint(btCollisionObject * body0,+btCollisionObject * body1,+const btVector3 & point,+const btVector3 & normal,+btScalar distance);  //! Collision routines //!@{ -	void collide_gjk_triangles(btCollisionObject * body0,-				  btCollisionObject * body1,-				  btGImpactMeshShapePart * shape0,-				  btGImpactMeshShapePart * shape1,-				  const int * pairs, int pair_count);+void collide_gjk_triangles(btCollisionObject * body0,+btCollisionObject * body1,+btGImpactMeshShapePart * shape0,+btGImpactMeshShapePart * shape1,+const int * pairs, int pair_count); -	void collide_sat_triangles(btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactMeshShapePart * shape0,-					  btGImpactMeshShapePart * shape1,-					  const int * pairs, int pair_count);+void collide_sat_triangles(btCollisionObject * body0,+btCollisionObject * body1,+btGImpactMeshShapePart * shape0,+btGImpactMeshShapePart * shape1,+const int * pairs, int pair_count);    -	void shape_vs_shape_collision(-					  btCollisionObject * body0,-					  btCollisionObject * body1,-					  btCollisionShape * shape0,-					  btCollisionShape * shape1);+void shape_vs_shape_collision(+btCollisionObject * body0,+btCollisionObject * body1,+btCollisionShape * shape0,+btCollisionShape * shape1); -	void convex_vs_convex_collision(btCollisionObject * body0,-					  btCollisionObject * body1,-					  btCollisionShape * shape0,-					  btCollisionShape * shape1);+void convex_vs_convex_collision(btCollisionObject * body0,+btCollisionObject * body1,+btCollisionShape * shape0,+btCollisionShape * shape1);   -	void gimpact_vs_gimpact_find_pairs(-					  const btTransform & trans0,-					  const btTransform & trans1,-					  btGImpactShapeInterface * shape0,-					  btGImpactShapeInterface * shape1,btPairSet & pairset);+void gimpact_vs_gimpact_find_pairs(+const btTransform & trans0,+const btTransform & trans1,+btGImpactShapeInterface * shape0,+btGImpactShapeInterface * shape1,btPairSet & pairset); -	void gimpact_vs_shape_find_pairs(-					  const btTransform & trans0,-					  const btTransform & trans1,-					  btGImpactShapeInterface * shape0,-					  btCollisionShape * shape1,-					  btAlignedObjectArray<int> & collided_primitives);+void gimpact_vs_shape_find_pairs(+const btTransform & trans0,+const btTransform & trans1,+btGImpactShapeInterface * shape0,+btCollisionShape * shape1,+btAlignedObjectArray<int> & collided_primitives);  -	void gimpacttrimeshpart_vs_plane_collision(-					  btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactMeshShapePart * shape0,-					  btStaticPlaneShape * shape1,bool swapped);+void gimpacttrimeshpart_vs_plane_collision(+btCollisionObject * body0,+btCollisionObject * body1,+btGImpactMeshShapePart * shape0,+btStaticPlaneShape * shape1,bool swapped);   public: -	btGImpactCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+btGImpactCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); -	virtual ~btGImpactCollisionAlgorithm();+virtual ~btGImpactCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btScalar	calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr)-			manifoldArray.push_back(m_manifoldPtr);-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr)+manifoldArray.push_back(m_manifoldPtr);+}  -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btGImpactCollisionAlgorithm));-			return new(mem) btGImpactCollisionAlgorithm(ci,body0,body1);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btGImpactCollisionAlgorithm));+return new(mem) btGImpactCollisionAlgorithm(ci,body0,body1);+}+}; -	//! Use this function for register the algorithm externally-	static void registerAlgorithm(btCollisionDispatcher * dispatcher);+//! Use this function for register the algorithm externally+static void registerAlgorithm(btCollisionDispatcher * dispatcher); #ifdef TRI_COLLISION_PROFILING-	//! Gets the average time in miliseconds of tree collisions-	static float getAverageTreeCollisionTime();+//! Gets the average time in miliseconds of tree collisions+static float getAverageTreeCollisionTime(); -	//! Gets the average time in miliseconds of triangle collisions-	static float getAverageTriangleCollisionTime();+//! Gets the average time in miliseconds of triangle collisions+static float getAverageTriangleCollisionTime(); #endif //TRI_COLLISION_PROFILING -	//! Collides two gimpact shapes-	/*!-	\pre shape0 and shape1 couldn't be btGImpactMeshShape objects-	*/+//! Collides two gimpact shapes+/*!+\pre shape0 and shape1 couldn't be btGImpactMeshShape objects+*/  -	void gimpact_vs_gimpact(btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactShapeInterface * shape0,-					  btGImpactShapeInterface * shape1);+void gimpact_vs_gimpact(btCollisionObject * body0,+btCollisionObject * body1,+btGImpactShapeInterface * shape0,+btGImpactShapeInterface * shape1); -	void gimpact_vs_shape(btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactShapeInterface * shape0,-					  btCollisionShape * shape1,bool swapped);+void gimpact_vs_shape(btCollisionObject * body0,+btCollisionObject * body1,+btGImpactShapeInterface * shape0,+btCollisionShape * shape1,bool swapped); -	void gimpact_vs_compoundshape(btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactShapeInterface * shape0,-					  btCompoundShape * shape1,bool swapped);+void gimpact_vs_compoundshape(btCollisionObject * body0,+btCollisionObject * body1,+btGImpactShapeInterface * shape0,+btCompoundShape * shape1,bool swapped); -	void gimpact_vs_concave(-					  btCollisionObject * body0,-					  btCollisionObject * body1,-					  btGImpactShapeInterface * shape0,-					  btConcaveShape * shape1,bool swapped);+void gimpact_vs_concave(+btCollisionObject * body0,+btCollisionObject * body1,+btGImpactShapeInterface * shape0,+btConcaveShape * shape1,bool swapped);    -		/// Accessor/Mutator pairs for Part and triangleID-    void 	setFace0(int value) -    { -    	m_triface0 = value; -    }-    int getFace0() -    { -    	return m_triface0; -    }-    void setFace1(int value) -    { -    	m_triface1 = value; -    }-    int getFace1() -    { -    	return m_triface1; -    }-    void setPart0(int value) -    { -    	m_part0 = value; -    }-    int getPart0() -    { -    	return m_part0; -    }-    void setPart1(int value) -    { -    	m_part1 = value; -		}-    int getPart1() -    { -    	return m_part1; -    }+/// Accessor/Mutator pairs for Part and triangleID+void setFace0(int value)+{+m_triface0 = value;+}+int getFace0()+{+return m_triface0;+}+void setFace1(int value)+{+m_triface1 = value;+}+int getFace1()+{+return m_triface1;+}+void setPart0(int value)+{+m_part0 = value;+}+int getPart0()+{+return m_part0;+}+void setPart1(int value)+{+m_part1 = value;+}+int getPart1()+{+return m_part1;+}  }; 
bullet/BulletCollision/Gimpact/btGImpactMassUtil.h view
@@ -30,30 +30,30 @@   SIMD_FORCE_INLINE btVector3 gim_inertia_add_transformed(-	const btVector3 & source_inertia, const btVector3 & added_inertia, const btTransform & transform)+const btVector3 & source_inertia, const btVector3 & added_inertia, const btTransform & transform) {-	btMatrix3x3  rotatedTensor = transform.getBasis().scaled(added_inertia) * transform.getBasis().transpose();+btMatrix3x3 rotatedTensor = transform.getBasis().scaled(added_inertia) * transform.getBasis().transpose(); -	btScalar x2 = transform.getOrigin()[0];-	x2*= x2;-	btScalar y2 = transform.getOrigin()[1];-	y2*= y2;-	btScalar z2 = transform.getOrigin()[2];-	z2*= z2;+btScalar x2 = transform.getOrigin()[0];+x2*= x2;+btScalar y2 = transform.getOrigin()[1];+y2*= y2;+btScalar z2 = transform.getOrigin()[2];+z2*= z2; -	btScalar ix = rotatedTensor[0][0]*(y2+z2);-	btScalar iy = rotatedTensor[1][1]*(x2+z2);-	btScalar iz = rotatedTensor[2][2]*(x2+y2);+btScalar ix = rotatedTensor[0][0]*(y2+z2);+btScalar iy = rotatedTensor[1][1]*(x2+z2);+btScalar iz = rotatedTensor[2][2]*(x2+y2); -	return btVector3(source_inertia[0]+ix,source_inertia[1]+iy,source_inertia[2] + iz);+return btVector3(source_inertia[0]+ix,source_inertia[1]+iy,source_inertia[2] + iz); }  SIMD_FORCE_INLINE btVector3 gim_get_point_inertia(const btVector3 & point, btScalar mass) {-	btScalar x2 = point[0]*point[0];-	btScalar y2 = point[1]*point[1];-	btScalar z2 = point[2]*point[2];-	return btVector3(mass*(y2+z2),mass*(x2+z2),mass*(x2+y2));+btScalar x2 = point[0]*point[0];+btScalar y2 = point[1]*point[1];+btScalar z2 = point[2]*point[2];+return btVector3(mass*(y2+z2),mass*(x2+z2),mass*(x2+y2)); }  
bullet/BulletCollision/Gimpact/btGImpactQuantizedBvh.h view
@@ -33,69 +33,69 @@  ///btQuantizedBvhNode is a compressed aabb node, 16 bytes. ///Node can be used for leafnode or internal node. Leafnodes can point to 32-bit triangle index (non-negative range).-ATTRIBUTE_ALIGNED16	(struct) BT_QUANTIZED_BVH_NODE+ATTRIBUTE_ALIGNED16 (struct) BT_QUANTIZED_BVH_NODE {-	//12 bytes-	unsigned short int	m_quantizedAabbMin[3];-	unsigned short int	m_quantizedAabbMax[3];-	//4 bytes-	int	m_escapeIndexOrDataIndex;+//12 bytes+unsigned short int m_quantizedAabbMin[3];+unsigned short int m_quantizedAabbMax[3];+//4 bytes+int m_escapeIndexOrDataIndex; -	BT_QUANTIZED_BVH_NODE()-	{-		m_escapeIndexOrDataIndex = 0;-	}+BT_QUANTIZED_BVH_NODE()+{+m_escapeIndexOrDataIndex = 0;+} -	SIMD_FORCE_INLINE bool isLeafNode() const-	{-		//skipindex is negative (internal node), triangleindex >=0 (leafnode)-		return (m_escapeIndexOrDataIndex>=0);-	}+SIMD_FORCE_INLINE bool isLeafNode() const+{+//skipindex is negative (internal node), triangleindex >=0 (leafnode)+return (m_escapeIndexOrDataIndex>=0);+} -	SIMD_FORCE_INLINE int getEscapeIndex() const-	{-		//btAssert(m_escapeIndexOrDataIndex < 0);-		return -m_escapeIndexOrDataIndex;-	}+SIMD_FORCE_INLINE int getEscapeIndex() const+{+//btAssert(m_escapeIndexOrDataIndex < 0);+return -m_escapeIndexOrDataIndex;+} -	SIMD_FORCE_INLINE void setEscapeIndex(int index)-	{-		m_escapeIndexOrDataIndex = -index;-	}+SIMD_FORCE_INLINE void setEscapeIndex(int index)+{+m_escapeIndexOrDataIndex = -index;+} -	SIMD_FORCE_INLINE int getDataIndex() const-	{-		//btAssert(m_escapeIndexOrDataIndex >= 0);+SIMD_FORCE_INLINE int getDataIndex() const+{+//btAssert(m_escapeIndexOrDataIndex >= 0); -		return m_escapeIndexOrDataIndex;-	}+return m_escapeIndexOrDataIndex;+} -	SIMD_FORCE_INLINE void setDataIndex(int index)-	{-		m_escapeIndexOrDataIndex = index;-	}+SIMD_FORCE_INLINE void setDataIndex(int index)+{+m_escapeIndexOrDataIndex = index;+} -	SIMD_FORCE_INLINE bool testQuantizedBoxOverlapp(-		unsigned short * quantizedMin,unsigned short * quantizedMax) const-	{-		if(m_quantizedAabbMin[0] > quantizedMax[0] ||-		   m_quantizedAabbMax[0] < quantizedMin[0] ||-		   m_quantizedAabbMin[1] > quantizedMax[1] ||-		   m_quantizedAabbMax[1] < quantizedMin[1] ||-		   m_quantizedAabbMin[2] > quantizedMax[2] ||-		   m_quantizedAabbMax[2] < quantizedMin[2])-		{-			return false;-		}-		return true;-	}+SIMD_FORCE_INLINE bool testQuantizedBoxOverlapp(+unsigned short * quantizedMin,unsigned short * quantizedMax) const+{+if(m_quantizedAabbMin[0] > quantizedMax[0] ||+m_quantizedAabbMax[0] < quantizedMin[0] ||+m_quantizedAabbMin[1] > quantizedMax[1] ||+m_quantizedAabbMax[1] < quantizedMin[1] ||+m_quantizedAabbMin[2] > quantizedMax[2] ||+m_quantizedAabbMax[2] < quantizedMin[2])+{+return false;+}+return true;+}  };    class GIM_QUANTIZED_BVH_NODE_ARRAY:public btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>-{+{ private: };  @@ -103,117 +103,117 @@  //! Basic Box tree structure class btQuantizedBvhTree-{+{ private: protected:-	int m_num_nodes;-	GIM_QUANTIZED_BVH_NODE_ARRAY m_node_array;-	btAABB m_global_bound;-	btVector3 m_bvhQuantization;+int m_num_nodes;+GIM_QUANTIZED_BVH_NODE_ARRAY m_node_array;+btAABB m_global_bound;+btVector3 m_bvhQuantization; protected:-	void calc_quantization(GIM_BVH_DATA_ARRAY & primitive_boxes, btScalar boundMargin = btScalar(1.0) );+void calc_quantization(GIM_BVH_DATA_ARRAY & primitive_boxes, btScalar boundMargin = btScalar(1.0) ); -	int _sort_and_calc_splitting_index(-		GIM_BVH_DATA_ARRAY & primitive_boxes,-		 int startIndex,  int endIndex, int splitAxis);+int _sort_and_calc_splitting_index(+GIM_BVH_DATA_ARRAY & primitive_boxes,+int startIndex, int endIndex, int splitAxis); -	int _calc_splitting_axis(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex,  int endIndex);+int _calc_splitting_axis(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex, int endIndex); -	void _build_sub_tree(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex,  int endIndex);+void _build_sub_tree(GIM_BVH_DATA_ARRAY & primitive_boxes, int startIndex, int endIndex); public:-	btQuantizedBvhTree()-	{-		m_num_nodes = 0;-	}+btQuantizedBvhTree()+{+m_num_nodes = 0;+} -	//! prototype functions for box tree management-	//!@{-	void build_tree(GIM_BVH_DATA_ARRAY & primitive_boxes);+//! prototype functions for box tree management+//!@{+void build_tree(GIM_BVH_DATA_ARRAY & primitive_boxes); -	SIMD_FORCE_INLINE void quantizePoint(-		unsigned short * quantizedpoint, const btVector3 & point) const-	{-		bt_quantize_clamp(quantizedpoint,point,m_global_bound.m_min,m_global_bound.m_max,m_bvhQuantization);-	}+SIMD_FORCE_INLINE void quantizePoint(+unsigned short * quantizedpoint, const btVector3 & point) const+{+bt_quantize_clamp(quantizedpoint,point,m_global_bound.m_min,m_global_bound.m_max,m_bvhQuantization);+}  -	SIMD_FORCE_INLINE bool testQuantizedBoxOverlapp(-		int node_index,-		unsigned short * quantizedMin,unsigned short * quantizedMax) const-	{-		return m_node_array[node_index].testQuantizedBoxOverlapp(quantizedMin,quantizedMax);-	}+SIMD_FORCE_INLINE bool testQuantizedBoxOverlapp(+int node_index,+unsigned short * quantizedMin,unsigned short * quantizedMax) const+{+return m_node_array[node_index].testQuantizedBoxOverlapp(quantizedMin,quantizedMax);+} -	SIMD_FORCE_INLINE void clearNodes()-	{-		m_node_array.clear();-		m_num_nodes = 0;-	}+SIMD_FORCE_INLINE void clearNodes()+{+m_node_array.clear();+m_num_nodes = 0;+} -	//! node count-	SIMD_FORCE_INLINE int getNodeCount() const-	{-		return m_num_nodes;-	}+//! node count+SIMD_FORCE_INLINE int getNodeCount() const+{+return m_num_nodes;+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const-	{-		return m_node_array[nodeindex].isLeafNode();-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const+{+return m_node_array[nodeindex].isLeafNode();+} -	SIMD_FORCE_INLINE int getNodeData(int nodeindex) const-	{-		return m_node_array[nodeindex].getDataIndex();-	}+SIMD_FORCE_INLINE int getNodeData(int nodeindex) const+{+return m_node_array[nodeindex].getDataIndex();+} -	SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const-	{-		bound.m_min = bt_unquantize(-			m_node_array[nodeindex].m_quantizedAabbMin,-			m_global_bound.m_min,m_bvhQuantization);+SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const+{+bound.m_min = bt_unquantize(+m_node_array[nodeindex].m_quantizedAabbMin,+m_global_bound.m_min,m_bvhQuantization); -		bound.m_max = bt_unquantize(-			m_node_array[nodeindex].m_quantizedAabbMax,-			m_global_bound.m_min,m_bvhQuantization);-	}+bound.m_max = bt_unquantize(+m_node_array[nodeindex].m_quantizedAabbMax,+m_global_bound.m_min,m_bvhQuantization);+} -	SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)-	{-		bt_quantize_clamp(	m_node_array[nodeindex].m_quantizedAabbMin,-							bound.m_min,-							m_global_bound.m_min,-							m_global_bound.m_max,-							m_bvhQuantization);+SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)+{+bt_quantize_clamp( m_node_array[nodeindex].m_quantizedAabbMin,+bound.m_min,+m_global_bound.m_min,+m_global_bound.m_max,+m_bvhQuantization); -		bt_quantize_clamp(	m_node_array[nodeindex].m_quantizedAabbMax,-							bound.m_max,-							m_global_bound.m_min,-							m_global_bound.m_max,-							m_bvhQuantization);-	}+bt_quantize_clamp( m_node_array[nodeindex].m_quantizedAabbMax,+bound.m_max,+m_global_bound.m_min,+m_global_bound.m_max,+m_bvhQuantization);+} -	SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const-	{-		return nodeindex+1;-	}+SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const+{+return nodeindex+1;+} -	SIMD_FORCE_INLINE int getRightNode(int nodeindex) const-	{-		if(m_node_array[nodeindex+1].isLeafNode()) return nodeindex+2;-		return nodeindex+1 + m_node_array[nodeindex+1].getEscapeIndex();-	}+SIMD_FORCE_INLINE int getRightNode(int nodeindex) const+{+if(m_node_array[nodeindex+1].isLeafNode()) return nodeindex+2;+return nodeindex+1 + m_node_array[nodeindex+1].getEscapeIndex();+} -	SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const-	{-		return m_node_array[nodeindex].getEscapeIndex();-	}+SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const+{+return m_node_array[nodeindex].getEscapeIndex();+} -	SIMD_FORCE_INLINE const BT_QUANTIZED_BVH_NODE * get_node_pointer(int index = 0) const-	{-		return &m_node_array[index];-	}+SIMD_FORCE_INLINE const BT_QUANTIZED_BVH_NODE * get_node_pointer(int index = 0) const+{+return &m_node_array[index];+} -	//!@}+//!@} };  @@ -224,148 +224,148 @@ Requires a Primitive prototype (like btPrimitiveManagerBase ) */ class btGImpactQuantizedBvh-{+{ private: protected:-	btQuantizedBvhTree m_box_tree;-	btPrimitiveManagerBase * m_primitive_manager;+btQuantizedBvhTree m_box_tree;+btPrimitiveManagerBase * m_primitive_manager;  protected:-	//stackless refit-	void refit();+//stackless refit+void refit(); public: -	//! this constructor doesn't build the tree. you must call	buildSet-	btGImpactQuantizedBvh()-	{-		m_primitive_manager = NULL;-	}+//! this constructor doesn't build the tree. you must call buildSet+btGImpactQuantizedBvh()+{+m_primitive_manager = NULL;+} -	//! this constructor doesn't build the tree. you must call	buildSet-	btGImpactQuantizedBvh(btPrimitiveManagerBase * primitive_manager)-	{-		m_primitive_manager = primitive_manager;-	}+//! this constructor doesn't build the tree. you must call buildSet+btGImpactQuantizedBvh(btPrimitiveManagerBase * primitive_manager)+{+m_primitive_manager = primitive_manager;+} -	SIMD_FORCE_INLINE btAABB getGlobalBox()  const-	{-		btAABB totalbox;-		getNodeBound(0, totalbox);-		return totalbox;-	}+SIMD_FORCE_INLINE btAABB getGlobalBox() const+{+btAABB totalbox;+getNodeBound(0, totalbox);+return totalbox;+} -	SIMD_FORCE_INLINE void setPrimitiveManager(btPrimitiveManagerBase * primitive_manager)-	{-		m_primitive_manager = primitive_manager;-	}+SIMD_FORCE_INLINE void setPrimitiveManager(btPrimitiveManagerBase * primitive_manager)+{+m_primitive_manager = primitive_manager;+} -	SIMD_FORCE_INLINE btPrimitiveManagerBase * getPrimitiveManager() const-	{-		return m_primitive_manager;-	}+SIMD_FORCE_INLINE btPrimitiveManagerBase * getPrimitiveManager() const+{+return m_primitive_manager;+}   //! node manager prototype functions ///@{ -	//! this attemps to refit the box set.-	SIMD_FORCE_INLINE void update()-	{-		refit();-	}+//! this attemps to refit the box set.+SIMD_FORCE_INLINE void update()+{+refit();+} -	//! this rebuild the entire set-	void buildSet();+//! this rebuild the entire set+void buildSet(); -	//! returns the indices of the primitives in the m_primitive_manager-	bool boxQuery(const btAABB & box, btAlignedObjectArray<int> & collided_results) const;+//! returns the indices of the primitives in the m_primitive_manager+bool boxQuery(const btAABB & box, btAlignedObjectArray<int> & collided_results) const; -	//! returns the indices of the primitives in the m_primitive_manager-	SIMD_FORCE_INLINE bool boxQueryTrans(const btAABB & box,-		 const btTransform & transform, btAlignedObjectArray<int> & collided_results) const-	{-		btAABB transbox=box;-		transbox.appy_transform(transform);-		return boxQuery(transbox,collided_results);-	}+//! returns the indices of the primitives in the m_primitive_manager+SIMD_FORCE_INLINE bool boxQueryTrans(const btAABB & box,+const btTransform & transform, btAlignedObjectArray<int> & collided_results) const+{+btAABB transbox=box;+transbox.appy_transform(transform);+return boxQuery(transbox,collided_results);+} -	//! returns the indices of the primitives in the m_primitive_manager-	bool rayQuery(-		const btVector3 & ray_dir,const btVector3 & ray_origin ,-		btAlignedObjectArray<int> & collided_results) const;+//! returns the indices of the primitives in the m_primitive_manager+bool rayQuery(+const btVector3 & ray_dir,const btVector3 & ray_origin ,+btAlignedObjectArray<int> & collided_results) const; -	//! tells if this set has hierarcht-	SIMD_FORCE_INLINE bool hasHierarchy() const-	{-		return true;-	}+//! tells if this set has hierarcht+SIMD_FORCE_INLINE bool hasHierarchy() const+{+return true;+} -	//! tells if this set is a trimesh-	SIMD_FORCE_INLINE bool isTrimesh()  const-	{-		return m_primitive_manager->is_trimesh();-	}+//! tells if this set is a trimesh+SIMD_FORCE_INLINE bool isTrimesh() const+{+return m_primitive_manager->is_trimesh();+} -	//! node count-	SIMD_FORCE_INLINE int getNodeCount() const-	{-		return m_box_tree.getNodeCount();-	}+//! node count+SIMD_FORCE_INLINE int getNodeCount() const+{+return m_box_tree.getNodeCount();+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const-	{-		return m_box_tree.isLeafNode(nodeindex);-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(int nodeindex) const+{+return m_box_tree.isLeafNode(nodeindex);+} -	SIMD_FORCE_INLINE int getNodeData(int nodeindex) const-	{-		return m_box_tree.getNodeData(nodeindex);-	}+SIMD_FORCE_INLINE int getNodeData(int nodeindex) const+{+return m_box_tree.getNodeData(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound)  const-	{-		m_box_tree.getNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void getNodeBound(int nodeindex, btAABB & bound) const+{+m_box_tree.getNodeBound(nodeindex, bound);+} -	SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)-	{-		m_box_tree.setNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void setNodeBound(int nodeindex, const btAABB & bound)+{+m_box_tree.setNodeBound(nodeindex, bound);+}  -	SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const-	{-		return m_box_tree.getLeftNode(nodeindex);-	}+SIMD_FORCE_INLINE int getLeftNode(int nodeindex) const+{+return m_box_tree.getLeftNode(nodeindex);+} -	SIMD_FORCE_INLINE int getRightNode(int nodeindex) const-	{-		return m_box_tree.getRightNode(nodeindex);-	}+SIMD_FORCE_INLINE int getRightNode(int nodeindex) const+{+return m_box_tree.getRightNode(nodeindex);+} -	SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const-	{-		return m_box_tree.getEscapeNodeIndex(nodeindex);-	}+SIMD_FORCE_INLINE int getEscapeNodeIndex(int nodeindex) const+{+return m_box_tree.getEscapeNodeIndex(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeTriangle(int nodeindex,btPrimitiveTriangle & triangle) const-	{-		m_primitive_manager->get_primitive_triangle(getNodeData(nodeindex),triangle);-	}+SIMD_FORCE_INLINE void getNodeTriangle(int nodeindex,btPrimitiveTriangle & triangle) const+{+m_primitive_manager->get_primitive_triangle(getNodeData(nodeindex),triangle);+}  -	SIMD_FORCE_INLINE const BT_QUANTIZED_BVH_NODE * get_node_pointer(int index = 0) const-	{-		return m_box_tree.get_node_pointer(index);-	}+SIMD_FORCE_INLINE const BT_QUANTIZED_BVH_NODE * get_node_pointer(int index = 0) const+{+return m_box_tree.get_node_pointer(index);+}  #ifdef TRI_COLLISION_PROFILING-	static float getAverageTreeCollisionTime();+static float getAverageTreeCollisionTime(); #endif //TRI_COLLISION_PROFILING -	static void find_collision(btGImpactQuantizedBvh * boxset1, const btTransform & trans1,-		btGImpactQuantizedBvh * boxset2, const btTransform & trans2,-		btPairSet & collision_pairs);+static void find_collision(btGImpactQuantizedBvh * boxset1, const btTransform & trans1,+btGImpactQuantizedBvh * boxset2, const btTransform & trans2,+btPairSet & collision_pairs); };  
bullet/BulletCollision/Gimpact/btGImpactShape.h view
@@ -45,1126 +45,1126 @@  enum eGIMPACT_SHAPE_TYPE {-	CONST_GIMPACT_COMPOUND_SHAPE = 0,-	CONST_GIMPACT_TRIMESH_SHAPE_PART,-	CONST_GIMPACT_TRIMESH_SHAPE-};---//! Helper class for tetrahedrons-class btTetrahedronShapeEx:public btBU_Simplex1to4-{-public:-	btTetrahedronShapeEx()-	{-		m_numVertices = 4;-	}---	SIMD_FORCE_INLINE void setVertices(-		const btVector3 & v0,const btVector3 & v1,-		const btVector3 & v2,const btVector3 & v3)-	{-		m_vertices[0] = v0;-		m_vertices[1] = v1;-		m_vertices[2] = v2;-		m_vertices[3] = v3;-		recalcLocalAabb();-	}-};---//! Base class for gimpact shapes-class btGImpactShapeInterface : public btConcaveShape-{-protected:-    btAABB m_localAABB;-    bool m_needs_update;-    btVector3  localScaling;-    btGImpactBoxSet m_box_set;// optionally boxset--	//! use this function for perfofm refit in bounding boxes-    //! use this function for perfofm refit in bounding boxes-    virtual void calcLocalAABB()-    {-		lockChildShapes();-    	if(m_box_set.getNodeCount() == 0)-    	{-    		m_box_set.buildSet();-    	}-    	else-    	{-    		m_box_set.update();-    	}-    	unlockChildShapes();--    	m_localAABB = m_box_set.getGlobalBox();-    }---public:-	btGImpactShapeInterface()-	{-		m_shapeType=GIMPACT_SHAPE_PROXYTYPE;-		m_localAABB.invalidate();-		m_needs_update = true;-		localScaling.setValue(1.f,1.f,1.f);-	}---	//! performs refit operation-	/*!-	Updates the entire Box set of this shape.-	\pre postUpdate() must be called for attemps to calculating the box set, else this function-		will does nothing.-	\post if m_needs_update == true, then it calls calcLocalAABB();-	*/-    SIMD_FORCE_INLINE void updateBound()-    {-    	if(!m_needs_update) return;-    	calcLocalAABB();-    	m_needs_update  = false;-    }--    //! If the Bounding box is not updated, then this class attemps to calculate it.-    /*!-    \post Calls updateBound() for update the box set.-    */-    void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-    {-        btAABB transformedbox = m_localAABB;-        transformedbox.appy_transform(t);-        aabbMin = transformedbox.m_min;-        aabbMax = transformedbox.m_max;-    }--    //! Tells to this object that is needed to refit the box set-    virtual void postUpdate()-    {-    	m_needs_update = true;-    }--	//! Obtains the local box, which is the global calculated box of the total of subshapes-	SIMD_FORCE_INLINE const btAABB & getLocalBox()-	{-		return m_localAABB;-	}---    virtual int	getShapeType() const-    {-        return GIMPACT_SHAPE_PROXYTYPE;-    }--    /*!-	\post You must call updateBound() for update the box set.-	*/-	virtual void	setLocalScaling(const btVector3& scaling)-	{-		localScaling = scaling;-		postUpdate();-	}--	virtual const btVector3& getLocalScaling() const-	{-		return localScaling;-	}---	virtual void setMargin(btScalar margin)-    {-    	m_collisionMargin = margin;-    	int i = getNumChildShapes();-    	while(i--)-    	{-			btCollisionShape* child = getChildShape(i);-			child->setMargin(margin);-    	}--		m_needs_update = true;-    }---	//! Subshape member functions-	//!@{--	//! Base method for determinig which kind of GIMPACT shape we get-	virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const = 0 ;--	//! gets boxset-	SIMD_FORCE_INLINE btGImpactBoxSet * getBoxSet()-	{-		return &m_box_set;-	}--	//! Determines if this class has a hierarchy structure for sorting its primitives-	SIMD_FORCE_INLINE bool hasBoxSet()  const-	{-		if(m_box_set.getNodeCount() == 0) return false;-		return true;-	}--	//! Obtains the primitive manager-	virtual const btPrimitiveManagerBase * getPrimitiveManager()  const = 0;---	//! Gets the number of children-	virtual int	getNumChildShapes() const  = 0;--	//! if true, then its children must get transforms.-	virtual bool childrenHasTransform() const = 0;--	//! Determines if this shape has triangles-	virtual bool needsRetrieveTriangles() const = 0;--	//! Determines if this shape has tetrahedrons-	virtual bool needsRetrieveTetrahedrons() const = 0;--	virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const = 0;--	virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const = 0;----	//! call when reading child shapes-	virtual void lockChildShapes() const-	{-	}--	virtual void unlockChildShapes() const-	{-	}--	//! if this trimesh-	SIMD_FORCE_INLINE void getPrimitiveTriangle(int index,btPrimitiveTriangle & triangle) const-	{-		getPrimitiveManager()->get_primitive_triangle(index,triangle);-	}---	//! Retrieves the bound from a child-    /*!-    */-    virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-    {-        btAABB child_aabb;-        getPrimitiveManager()->get_primitive_box(child_index,child_aabb);-        child_aabb.appy_transform(t);-        aabbMin = child_aabb.m_min;-        aabbMax = child_aabb.m_max;-    }--	//! Gets the children-	virtual btCollisionShape* getChildShape(int index) = 0;---	//! Gets the child-	virtual const btCollisionShape* getChildShape(int index) const = 0;--	//! Gets the children transform-	virtual btTransform	getChildTransform(int index) const = 0;--	//! Sets the children transform-	/*!-	\post You must call updateBound() for update the box set.-	*/-	virtual void setChildTransform(int index, const btTransform & transform) = 0;--	//!@}---	//! virtual method for ray collision-	virtual void rayTest(const btVector3& rayFrom, const btVector3& rayTo, btCollisionWorld::RayResultCallback& resultCallback)  const-	{-        (void) rayFrom; (void) rayTo; (void) resultCallback;-	}--	//! Function for retrieve triangles.-	/*!-	It gives the triangles in local space-	*/-	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const-	{-        (void) callback; (void) aabbMin; (void) aabbMax;-	}--	//!@}--};---//! btGImpactCompoundShape allows to handle multiple btCollisionShape objects at once-/*!-This class only can manage Convex subshapes-*/-class btGImpactCompoundShape	: public btGImpactShapeInterface-{-public:-	//! compound primitive manager-	class CompoundPrimitiveManager:public btPrimitiveManagerBase-	{-	public:-		virtual ~CompoundPrimitiveManager() {}-		btGImpactCompoundShape * m_compoundShape;---		CompoundPrimitiveManager(const CompoundPrimitiveManager& compound)-            : btPrimitiveManagerBase()-		{-			m_compoundShape = compound.m_compoundShape;-		}--		CompoundPrimitiveManager(btGImpactCompoundShape * compoundShape)-		{-			m_compoundShape = compoundShape;-		}--		CompoundPrimitiveManager()-		{-			m_compoundShape = NULL;-		}--		virtual bool is_trimesh() const-		{-			return false;-		}--		virtual int get_primitive_count() const-		{-			return (int )m_compoundShape->getNumChildShapes();-		}--		virtual void get_primitive_box(int prim_index ,btAABB & primbox) const-		{-			btTransform prim_trans;-			if(m_compoundShape->childrenHasTransform())-			{-				prim_trans = m_compoundShape->getChildTransform(prim_index);-			}-			else-			{-				prim_trans.setIdentity();-			}-			const btCollisionShape* shape = m_compoundShape->getChildShape(prim_index);-			shape->getAabb(prim_trans,primbox.m_min,primbox.m_max);-		}--		virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const-		{-			btAssert(0);-            (void) prim_index; (void) triangle;-		}--	};----protected:-	CompoundPrimitiveManager m_primitive_manager;-	btAlignedObjectArray<btTransform>		m_childTransforms;-	btAlignedObjectArray<btCollisionShape*>	m_childShapes;---public:--	btGImpactCompoundShape(bool children_has_transform = true)-	{-        (void) children_has_transform;-		m_primitive_manager.m_compoundShape = this;-		m_box_set.setPrimitiveManager(&m_primitive_manager);-	}--	virtual ~btGImpactCompoundShape()-	{-	}---	//! if true, then its children must get transforms.-	virtual bool childrenHasTransform() const-	{-		if(m_childTransforms.size()==0) return false;-		return true;-	}---	//! Obtains the primitive manager-	virtual const btPrimitiveManagerBase * getPrimitiveManager()  const-	{-		return &m_primitive_manager;-	}--	//! Obtains the compopund primitive manager-	SIMD_FORCE_INLINE CompoundPrimitiveManager * getCompoundPrimitiveManager()-	{-		return &m_primitive_manager;-	}--	//! Gets the number of children-	virtual int	getNumChildShapes() const-	{-		return m_childShapes.size();-	}---	//! Use this method for adding children. Only Convex shapes are allowed.-	void addChildShape(const btTransform& localTransform,btCollisionShape* shape)-	{-		btAssert(shape->isConvex());-		m_childTransforms.push_back(localTransform);-		m_childShapes.push_back(shape);-	}--	//! Use this method for adding children. Only Convex shapes are allowed.-	void addChildShape(btCollisionShape* shape)-	{-		btAssert(shape->isConvex());-		m_childShapes.push_back(shape);-	}--	//! Gets the children-	virtual btCollisionShape* getChildShape(int index)-	{-		return m_childShapes[index];-	}--	//! Gets the children-	virtual const btCollisionShape* getChildShape(int index) const-	{-		return m_childShapes[index];-	}--	//! Retrieves the bound from a child-    /*!-    */-    virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-    {--    	if(childrenHasTransform())-    	{-    		m_childShapes[child_index]->getAabb(t*m_childTransforms[child_index],aabbMin,aabbMax);-    	}-    	else-    	{-    		m_childShapes[child_index]->getAabb(t,aabbMin,aabbMax);-    	}-    }---	//! Gets the children transform-	virtual btTransform	getChildTransform(int index) const-	{-		btAssert(m_childTransforms.size() == m_childShapes.size());-		return m_childTransforms[index];-	}--	//! Sets the children transform-	/*!-	\post You must call updateBound() for update the box set.-	*/-	virtual void setChildTransform(int index, const btTransform & transform)-	{-		btAssert(m_childTransforms.size() == m_childShapes.size());-		m_childTransforms[index] = transform;-		postUpdate();-	}--	//! Determines if this shape has triangles-	virtual bool needsRetrieveTriangles() const-	{-		return false;-	}--	//! Determines if this shape has tetrahedrons-	virtual bool needsRetrieveTetrahedrons() const-	{-		return false;-	}---	virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const-	{-        (void) prim_index; (void) triangle;-		btAssert(0);-	}--	virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const-	{-        (void) prim_index; (void) tetrahedron;-		btAssert(0);-	}---	//! Calculates the exact inertia tensor for this shape-	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;--	virtual const char*	getName()const-	{-		return "GImpactCompound";-	}--	virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const-	{-		return CONST_GIMPACT_COMPOUND_SHAPE;-	}--};----//! This class manages a sub part of a mesh supplied by the btStridingMeshInterface interface.-/*!-- Simply create this shape by passing the btStridingMeshInterface to the constructor btGImpactMeshShapePart, then you must call updateBound() after creating the mesh-- When making operations with this shape, you must call <b>lock</b> before accessing to the trimesh primitives, and then call <b>unlock</b>-- You can handle deformable meshes with this shape, by calling postUpdate() every time when changing the mesh vertices.--*/-class btGImpactMeshShapePart : public btGImpactShapeInterface-{-public:-	//! Trimesh primitive manager-	/*!-	Manages the info from btStridingMeshInterface object and controls the Lock/Unlock mechanism-	*/-	class TrimeshPrimitiveManager:public btPrimitiveManagerBase-	{-	public:-		btScalar m_margin;-		btStridingMeshInterface * m_meshInterface;-		btVector3 m_scale;-		int m_part;-		int m_lock_count;-		const unsigned char *vertexbase;-		int numverts;-		PHY_ScalarType type;-		int stride;-		const unsigned char *indexbase;-		int indexstride;-		int  numfaces;-		PHY_ScalarType indicestype;--		TrimeshPrimitiveManager()-		{-			m_meshInterface = NULL;-			m_part = 0;-			m_margin = 0.01f;-			m_scale = btVector3(1.f,1.f,1.f);-			m_lock_count = 0;-			vertexbase = 0;-			numverts = 0;-			stride = 0;-			indexbase = 0;-			indexstride = 0;-			numfaces = 0;-		}-- 		TrimeshPrimitiveManager(const TrimeshPrimitiveManager & manager)-            : btPrimitiveManagerBase()-		{-			m_meshInterface = manager.m_meshInterface;-			m_part = manager.m_part;-			m_margin = manager.m_margin;-			m_scale = manager.m_scale;-			m_lock_count = 0;-			vertexbase = 0;-			numverts = 0;-			stride = 0;-			indexbase = 0;-			indexstride = 0;-			numfaces = 0;--		}--		TrimeshPrimitiveManager(-			btStridingMeshInterface * meshInterface,	int part)-		{-			m_meshInterface = meshInterface;-			m_part = part;-			m_scale = m_meshInterface->getScaling();-			m_margin = 0.1f;-			m_lock_count = 0;-			vertexbase = 0;-			numverts = 0;-			stride = 0;-			indexbase = 0;-			indexstride = 0;-			numfaces = 0;--		}--		virtual ~TrimeshPrimitiveManager() {}--		void lock()-		{-			if(m_lock_count>0)-			{-				m_lock_count++;-				return;-			}-			m_meshInterface->getLockedReadOnlyVertexIndexBase(-				&vertexbase,numverts,-				type, stride,&indexbase, indexstride, numfaces,indicestype,m_part);--			m_lock_count = 1;-		}--		void unlock()-		{-			if(m_lock_count == 0) return;-			if(m_lock_count>1)-			{-				--m_lock_count;-				return;-			}-			m_meshInterface->unLockReadOnlyVertexBase(m_part);-			vertexbase = NULL;-			m_lock_count = 0;-		}--		virtual bool is_trimesh() const-		{-			return true;-		}--		virtual int get_primitive_count() const-		{-			return (int )numfaces;-		}--		SIMD_FORCE_INLINE int get_vertex_count() const-		{-			return (int )numverts;-		}--		SIMD_FORCE_INLINE void get_indices(int face_index,int &i0,int &i1,int &i2) const-		{-			if(indicestype == PHY_SHORT)-			{-				short * s_indices = (short *)(indexbase + face_index*indexstride);-				i0 = s_indices[0];-				i1 = s_indices[1];-				i2 = s_indices[2];-			}-			else-			{-				int * i_indices = (int *)(indexbase + face_index*indexstride);-				i0 = i_indices[0];-				i1 = i_indices[1];-				i2 = i_indices[2];-			}-		}--		SIMD_FORCE_INLINE void get_vertex(int vertex_index, btVector3 & vertex) const-		{-			if(type == PHY_DOUBLE)-			{-				double * dvertices = (double *)(vertexbase + vertex_index*stride);-				vertex[0] = btScalar(dvertices[0]*m_scale[0]);-				vertex[1] = btScalar(dvertices[1]*m_scale[1]);-				vertex[2] = btScalar(dvertices[2]*m_scale[2]);-			}-			else-			{-				float * svertices = (float *)(vertexbase + vertex_index*stride);-				vertex[0] = svertices[0]*m_scale[0];-				vertex[1] = svertices[1]*m_scale[1];-				vertex[2] = svertices[2]*m_scale[2];-			}-		}--		virtual void get_primitive_box(int prim_index ,btAABB & primbox) const-		{-			btPrimitiveTriangle  triangle;-			get_primitive_triangle(prim_index,triangle);-			primbox.calc_from_triangle_margin(-				triangle.m_vertices[0],-				triangle.m_vertices[1],triangle.m_vertices[2],triangle.m_margin);-		}--		virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const-		{-			int indices[3];-			get_indices(prim_index,indices[0],indices[1],indices[2]);-			get_vertex(indices[0],triangle.m_vertices[0]);-			get_vertex(indices[1],triangle.m_vertices[1]);-			get_vertex(indices[2],triangle.m_vertices[2]);-			triangle.m_margin = m_margin;-		}--		SIMD_FORCE_INLINE void get_bullet_triangle(int prim_index,btTriangleShapeEx & triangle) const-		{-			int indices[3];-			get_indices(prim_index,indices[0],indices[1],indices[2]);-			get_vertex(indices[0],triangle.m_vertices1[0]);-			get_vertex(indices[1],triangle.m_vertices1[1]);-			get_vertex(indices[2],triangle.m_vertices1[2]);-			triangle.setMargin(m_margin);-		}--	};---protected:-	TrimeshPrimitiveManager m_primitive_manager;-public:--	btGImpactMeshShapePart()-	{-		m_box_set.setPrimitiveManager(&m_primitive_manager);-	}---	btGImpactMeshShapePart(btStridingMeshInterface * meshInterface,	int part)-	{-		m_primitive_manager.m_meshInterface = meshInterface;-		m_primitive_manager.m_part = part;-		m_box_set.setPrimitiveManager(&m_primitive_manager);-	}--	virtual ~btGImpactMeshShapePart()-	{-	}--	//! if true, then its children must get transforms.-	virtual bool childrenHasTransform() const-	{-		return false;-	}---	//! call when reading child shapes-	virtual void lockChildShapes() const-	{-		void * dummy = (void*)(m_box_set.getPrimitiveManager());-		TrimeshPrimitiveManager * dummymanager = static_cast<TrimeshPrimitiveManager *>(dummy);-		dummymanager->lock();-	}--	virtual void unlockChildShapes()  const-	{-		void * dummy = (void*)(m_box_set.getPrimitiveManager());-		TrimeshPrimitiveManager * dummymanager = static_cast<TrimeshPrimitiveManager *>(dummy);-		dummymanager->unlock();-	}--	//! Gets the number of children-	virtual int	getNumChildShapes() const-	{-		return m_primitive_manager.get_primitive_count();-	}---	//! Gets the children-	virtual btCollisionShape* getChildShape(int index)-	{-        (void) index;-		btAssert(0);-		return NULL;-	}----	//! Gets the child-	virtual const btCollisionShape* getChildShape(int index) const-	{-        (void) index;-		btAssert(0);-		return NULL;-	}--	//! Gets the children transform-	virtual btTransform	getChildTransform(int index) const-	{-        (void) index;-		btAssert(0);-		return btTransform();-	}--	//! Sets the children transform-	/*!-	\post You must call updateBound() for update the box set.-	*/-	virtual void setChildTransform(int index, const btTransform & transform)-	{-        (void) index;-        (void) transform;-		btAssert(0);-	}---	//! Obtains the primitive manager-	virtual const btPrimitiveManagerBase * getPrimitiveManager()  const-	{-		return &m_primitive_manager;-	}--	SIMD_FORCE_INLINE TrimeshPrimitiveManager * getTrimeshPrimitiveManager()-	{-		return &m_primitive_manager;-	}------	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;-----	virtual const char*	getName()const-	{-		return "GImpactMeshShapePart";-	}--	virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const-	{-		return CONST_GIMPACT_TRIMESH_SHAPE_PART;-	}--	//! Determines if this shape has triangles-	virtual bool needsRetrieveTriangles() const-	{-		return true;-	}--	//! Determines if this shape has tetrahedrons-	virtual bool needsRetrieveTetrahedrons() const-	{-		return false;-	}--	virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const-	{-		m_primitive_manager.get_bullet_triangle(prim_index,triangle);-	}--	virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const-	{-        (void) prim_index;-        (void) tetrahedron;-		btAssert(0);-	}----	SIMD_FORCE_INLINE int getVertexCount() const-	{-		return m_primitive_manager.get_vertex_count();-	}--	SIMD_FORCE_INLINE void getVertex(int vertex_index, btVector3 & vertex) const-	{-		m_primitive_manager.get_vertex(vertex_index,vertex);-	}--	SIMD_FORCE_INLINE void setMargin(btScalar margin)-    {-    	m_primitive_manager.m_margin = margin;-    	postUpdate();-    }--    SIMD_FORCE_INLINE btScalar getMargin() const-    {-    	return m_primitive_manager.m_margin;-    }--    virtual void	setLocalScaling(const btVector3& scaling)-    {-    	m_primitive_manager.m_scale = scaling;-    	postUpdate();-    }--    virtual const btVector3& getLocalScaling() const-    {-    	return m_primitive_manager.m_scale;-    }--    SIMD_FORCE_INLINE int getPart() const-    {-    	return (int)m_primitive_manager.m_part;-    }--	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;-};---//! This class manages a mesh supplied by the btStridingMeshInterface interface.-/*!-Set of btGImpactMeshShapePart parts-- Simply create this shape by passing the btStridingMeshInterface to the constructor btGImpactMeshShape, then you must call updateBound() after creating the mesh--- You can handle deformable meshes with this shape, by calling postUpdate() every time when changing the mesh vertices.--*/-class btGImpactMeshShape : public btGImpactShapeInterface-{-	btStridingMeshInterface* m_meshInterface;--protected:-	btAlignedObjectArray<btGImpactMeshShapePart*> m_mesh_parts;-	void buildMeshParts(btStridingMeshInterface * meshInterface)-	{-		for (int i=0;i<meshInterface->getNumSubParts() ;++i )-		{-			btGImpactMeshShapePart * newpart = new btGImpactMeshShapePart(meshInterface,i);-			m_mesh_parts.push_back(newpart);-		}-	}--	//! use this function for perfofm refit in bounding boxes-    virtual void calcLocalAABB()-    {-    	m_localAABB.invalidate();-    	int i = m_mesh_parts.size();-    	while(i--)-    	{-    		m_mesh_parts[i]->updateBound();-    		m_localAABB.merge(m_mesh_parts[i]->getLocalBox());-    	}-    }--public:-	btGImpactMeshShape(btStridingMeshInterface * meshInterface)-	{-		m_meshInterface = meshInterface;-		buildMeshParts(meshInterface);-	}--	virtual ~btGImpactMeshShape()-	{-		int i = m_mesh_parts.size();-    	while(i--)-    	{-			btGImpactMeshShapePart * part = m_mesh_parts[i];-			delete part;-    	}-		m_mesh_parts.clear();-	}---	btStridingMeshInterface* getMeshInterface()-	{-		return m_meshInterface;-	}--	const btStridingMeshInterface* getMeshInterface() const-	{-		return m_meshInterface;-	}--	int getMeshPartCount() const-	{-		return m_mesh_parts.size();-	}--	btGImpactMeshShapePart * getMeshPart(int index)-	{-		return m_mesh_parts[index];-	}----	const btGImpactMeshShapePart * getMeshPart(int index) const-	{-		return m_mesh_parts[index];-	}---	virtual void	setLocalScaling(const btVector3& scaling)-	{-		localScaling = scaling;--		int i = m_mesh_parts.size();-    	while(i--)-    	{-			btGImpactMeshShapePart * part = m_mesh_parts[i];-			part->setLocalScaling(scaling);-    	}--		m_needs_update = true;-	}--	virtual void setMargin(btScalar margin)-    {-    	m_collisionMargin = margin;--		int i = m_mesh_parts.size();-    	while(i--)-    	{-			btGImpactMeshShapePart * part = m_mesh_parts[i];-			part->setMargin(margin);-    	}--		m_needs_update = true;-    }--	//! Tells to this object that is needed to refit all the meshes-    virtual void postUpdate()-    {-		int i = m_mesh_parts.size();-    	while(i--)-    	{-			btGImpactMeshShapePart * part = m_mesh_parts[i];-			part->postUpdate();-    	}--    	m_needs_update = true;-    }--	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const;---	//! Obtains the primitive manager-	virtual const btPrimitiveManagerBase * getPrimitiveManager()  const-	{-		btAssert(0);-		return NULL;-	}---	//! Gets the number of children-	virtual int	getNumChildShapes() const-	{-		btAssert(0);-		return 0;-	}---	//! if true, then its children must get transforms.-	virtual bool childrenHasTransform() const-	{-		btAssert(0);-		return false;-	}--	//! Determines if this shape has triangles-	virtual bool needsRetrieveTriangles() const-	{-		btAssert(0);-		return false;-	}--	//! Determines if this shape has tetrahedrons-	virtual bool needsRetrieveTetrahedrons() const-	{-		btAssert(0);-		return false;-	}--	virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const-	{-        (void) prim_index; (void) triangle;-		btAssert(0);-	}--	virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const-	{-        (void) prim_index; (void) tetrahedron;-		btAssert(0);-	}--	//! call when reading child shapes-	virtual void lockChildShapes() const-	{-		btAssert(0);-	}--	virtual void unlockChildShapes() const-	{-		btAssert(0);-	}-----	//! Retrieves the bound from a child-    /*!-    */-    virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-    {-        (void) child_index; (void) t; (void) aabbMin; (void) aabbMax;-        btAssert(0);-    }--	//! Gets the children-	virtual btCollisionShape* getChildShape(int index)-	{-        (void) index;-		btAssert(0);-		return NULL;-	}---	//! Gets the child-	virtual const btCollisionShape* getChildShape(int index) const-	{-        (void) index;-		btAssert(0);-		return NULL;-	}--	//! Gets the children transform-	virtual btTransform	getChildTransform(int index) const-	{-        (void) index;-		btAssert(0);-		return btTransform();-	}--	//! Sets the children transform-	/*!-	\post You must call updateBound() for update the box set.-	*/-	virtual void setChildTransform(int index, const btTransform & transform)-	{-        (void) index; (void) transform;-		btAssert(0);-	}---	virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const-	{-		return CONST_GIMPACT_TRIMESH_SHAPE;-	}---	virtual const char*	getName()const-	{-		return "GImpactMesh";-	}--	virtual void rayTest(const btVector3& rayFrom, const btVector3& rayTo, btCollisionWorld::RayResultCallback& resultCallback)  const;--	//! Function for retrieve triangles.-	/*!-	It gives the triangles in local space-	*/-	virtual void	processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;--	virtual	int	calculateSerializeBufferSize() const;--	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;--};--///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btGImpactMeshShapeData-{-	btCollisionShapeData	m_collisionShapeData;--	btStridingMeshInterfaceData m_meshInterface;--	btVector3FloatData	m_localScaling;--	float	m_collisionMargin;--	int		m_gimpactSubType;-};--SIMD_FORCE_INLINE	int	btGImpactMeshShape::calculateSerializeBufferSize() const-{-	return sizeof(btGImpactMeshShapeData);+CONST_GIMPACT_COMPOUND_SHAPE = 0,+CONST_GIMPACT_TRIMESH_SHAPE_PART,+CONST_GIMPACT_TRIMESH_SHAPE+};+++//! Helper class for tetrahedrons+class btTetrahedronShapeEx:public btBU_Simplex1to4+{ private:+public:+btTetrahedronShapeEx()+{+m_numVertices = 4;+}+++SIMD_FORCE_INLINE void setVertices(+const btVector3 & v0,const btVector3 & v1,+const btVector3 & v2,const btVector3 & v3)+{+m_vertices[0] = v0;+m_vertices[1] = v1;+m_vertices[2] = v2;+m_vertices[3] = v3;+recalcLocalAabb();+}+};+++//! Base class for gimpact shapes+class btGImpactShapeInterface : public btConcaveShape+{ private:+protected:+btAABB m_localAABB;+bool m_needs_update;+btVector3 localScaling;+btGImpactBoxSet m_box_set;// optionally boxset++//! use this function for perfofm refit in bounding boxes+//! use this function for perfofm refit in bounding boxes+virtual void calcLocalAABB()+{+lockChildShapes();+if(m_box_set.getNodeCount() == 0)+{+m_box_set.buildSet();+}+else+{+m_box_set.update();+}+unlockChildShapes();++m_localAABB = m_box_set.getGlobalBox();+}+++public:+btGImpactShapeInterface()+{+m_shapeType=GIMPACT_SHAPE_PROXYTYPE;+m_localAABB.invalidate();+m_needs_update = true;+localScaling.setValue(1.f,1.f,1.f);+}+++//! performs refit operation+/*!+Updates the entire Box set of this shape.+\pre postUpdate() must be called for attemps to calculating the box set, else this function+will does nothing.+\post if m_needs_update == true, then it calls calcLocalAABB();+*/+SIMD_FORCE_INLINE void updateBound()+{+if(!m_needs_update) return;+calcLocalAABB();+m_needs_update = false;+}++//! If the Bounding box is not updated, then this class attemps to calculate it.+/*!+\post Calls updateBound() for update the box set.+*/+void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{+btAABB transformedbox = m_localAABB;+transformedbox.appy_transform(t);+aabbMin = transformedbox.m_min;+aabbMax = transformedbox.m_max;+}++//! Tells to this object that is needed to refit the box set+virtual void postUpdate()+{+m_needs_update = true;+}++//! Obtains the local box, which is the global calculated box of the total of subshapes+SIMD_FORCE_INLINE const btAABB & getLocalBox()+{+return m_localAABB;+}+++virtual int getShapeType() const+{+return GIMPACT_SHAPE_PROXYTYPE;+}++/*!+\post You must call updateBound() for update the box set.+*/+virtual void setLocalScaling(const btVector3& scaling)+{+localScaling = scaling;+postUpdate();+}++virtual const btVector3& getLocalScaling() const+{+return localScaling;+}+++virtual void setMargin(btScalar margin)+{+m_collisionMargin = margin;+int i = getNumChildShapes();+while(i--)+{+btCollisionShape* child = getChildShape(i);+child->setMargin(margin);+}++m_needs_update = true;+}+++//! Subshape member functions+//!@{++//! Base method for determinig which kind of GIMPACT shape we get+virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const = 0 ;++//! gets boxset+SIMD_FORCE_INLINE btGImpactBoxSet * getBoxSet()+{+return &m_box_set;+}++//! Determines if this class has a hierarchy structure for sorting its primitives+SIMD_FORCE_INLINE bool hasBoxSet() const+{+if(m_box_set.getNodeCount() == 0) return false;+return true;+}++//! Obtains the primitive manager+virtual const btPrimitiveManagerBase * getPrimitiveManager() const = 0;+++//! Gets the number of children+virtual int getNumChildShapes() const = 0;++//! if true, then its children must get transforms.+virtual bool childrenHasTransform() const = 0;++//! Determines if this shape has triangles+virtual bool needsRetrieveTriangles() const = 0;++//! Determines if this shape has tetrahedrons+virtual bool needsRetrieveTetrahedrons() const = 0;++virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const = 0;++virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const = 0;++++//! call when reading child shapes+virtual void lockChildShapes() const+{+}++virtual void unlockChildShapes() const+{+}++//! if this trimesh+SIMD_FORCE_INLINE void getPrimitiveTriangle(int index,btPrimitiveTriangle & triangle) const+{+getPrimitiveManager()->get_primitive_triangle(index,triangle);+}+++//! Retrieves the bound from a child+/*!+*/+virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{+btAABB child_aabb;+getPrimitiveManager()->get_primitive_box(child_index,child_aabb);+child_aabb.appy_transform(t);+aabbMin = child_aabb.m_min;+aabbMax = child_aabb.m_max;+}++//! Gets the children+virtual btCollisionShape* getChildShape(int index) = 0;+++//! Gets the child+virtual const btCollisionShape* getChildShape(int index) const = 0;++//! Gets the children transform+virtual btTransform getChildTransform(int index) const = 0;++//! Sets the children transform+/*!+\post You must call updateBound() for update the box set.+*/+virtual void setChildTransform(int index, const btTransform & transform) = 0;++//!@}+++//! virtual method for ray collision+virtual void rayTest(const btVector3& rayFrom, const btVector3& rayTo, btCollisionWorld::RayResultCallback& resultCallback) const+{+(void) rayFrom; (void) rayTo; (void) resultCallback;+}++//! Function for retrieve triangles.+/*!+It gives the triangles in local space+*/+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const+{+(void) callback; (void) aabbMin; (void) aabbMax;+}++//!@}++};+++//! btGImpactCompoundShape allows to handle multiple btCollisionShape objects at once+/*!+This class only can manage Convex subshapes+*/+class btGImpactCompoundShape : public btGImpactShapeInterface+{ private:+public:+//! compound primitive manager+class CompoundPrimitiveManager:public btPrimitiveManagerBase+{ private:+public:+virtual ~CompoundPrimitiveManager() {}+btGImpactCompoundShape * m_compoundShape;+++CompoundPrimitiveManager(const CompoundPrimitiveManager& compound)+: btPrimitiveManagerBase()+{+m_compoundShape = compound.m_compoundShape;+}++CompoundPrimitiveManager(btGImpactCompoundShape * compoundShape)+{+m_compoundShape = compoundShape;+}++CompoundPrimitiveManager()+{+m_compoundShape = NULL;+}++virtual bool is_trimesh() const+{+return false;+}++virtual int get_primitive_count() const+{+return (int )m_compoundShape->getNumChildShapes();+}++virtual void get_primitive_box(int prim_index ,btAABB & primbox) const+{+btTransform prim_trans;+if(m_compoundShape->childrenHasTransform())+{+prim_trans = m_compoundShape->getChildTransform(prim_index);+}+else+{+prim_trans.setIdentity();+}+const btCollisionShape* shape = m_compoundShape->getChildShape(prim_index);+shape->getAabb(prim_trans,primbox.m_min,primbox.m_max);+}++virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const+{+btAssert(0);+(void) prim_index; (void) triangle;+}++};++++protected:+CompoundPrimitiveManager m_primitive_manager;+btAlignedObjectArray<btTransform> m_childTransforms;+btAlignedObjectArray<btCollisionShape*> m_childShapes;+++public:++btGImpactCompoundShape(bool children_has_transform = true)+{+(void) children_has_transform;+m_primitive_manager.m_compoundShape = this;+m_box_set.setPrimitiveManager(&m_primitive_manager);+}++virtual ~btGImpactCompoundShape()+{+}+++//! if true, then its children must get transforms.+virtual bool childrenHasTransform() const+{+if(m_childTransforms.size()==0) return false;+return true;+}+++//! Obtains the primitive manager+virtual const btPrimitiveManagerBase * getPrimitiveManager() const+{+return &m_primitive_manager;+}++//! Obtains the compopund primitive manager+SIMD_FORCE_INLINE CompoundPrimitiveManager * getCompoundPrimitiveManager()+{+return &m_primitive_manager;+}++//! Gets the number of children+virtual int getNumChildShapes() const+{+return m_childShapes.size();+}+++//! Use this method for adding children. Only Convex shapes are allowed.+void addChildShape(const btTransform& localTransform,btCollisionShape* shape)+{+btAssert(shape->isConvex());+m_childTransforms.push_back(localTransform);+m_childShapes.push_back(shape);+}++//! Use this method for adding children. Only Convex shapes are allowed.+void addChildShape(btCollisionShape* shape)+{+btAssert(shape->isConvex());+m_childShapes.push_back(shape);+}++//! Gets the children+virtual btCollisionShape* getChildShape(int index)+{+return m_childShapes[index];+}++//! Gets the children+virtual const btCollisionShape* getChildShape(int index) const+{+return m_childShapes[index];+}++//! Retrieves the bound from a child+/*!+*/+virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{++if(childrenHasTransform())+{+m_childShapes[child_index]->getAabb(t*m_childTransforms[child_index],aabbMin,aabbMax);+}+else+{+m_childShapes[child_index]->getAabb(t,aabbMin,aabbMax);+}+}+++//! Gets the children transform+virtual btTransform getChildTransform(int index) const+{+btAssert(m_childTransforms.size() == m_childShapes.size());+return m_childTransforms[index];+}++//! Sets the children transform+/*!+\post You must call updateBound() for update the box set.+*/+virtual void setChildTransform(int index, const btTransform & transform)+{+btAssert(m_childTransforms.size() == m_childShapes.size());+m_childTransforms[index] = transform;+postUpdate();+}++//! Determines if this shape has triangles+virtual bool needsRetrieveTriangles() const+{+return false;+}++//! Determines if this shape has tetrahedrons+virtual bool needsRetrieveTetrahedrons() const+{+return false;+}+++virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const+{+(void) prim_index; (void) triangle;+btAssert(0);+}++virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const+{+(void) prim_index; (void) tetrahedron;+btAssert(0);+}+++//! Calculates the exact inertia tensor for this shape+virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;++virtual const char* getName()const+{+return "GImpactCompound";+}++virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const+{+return CONST_GIMPACT_COMPOUND_SHAPE;+}++};++++//! This class manages a sub part of a mesh supplied by the btStridingMeshInterface interface.+/*!+- Simply create this shape by passing the btStridingMeshInterface to the constructor btGImpactMeshShapePart, then you must call updateBound() after creating the mesh+- When making operations with this shape, you must call <b>lock</b> before accessing to the trimesh primitives, and then call <b>unlock</b>+- You can handle deformable meshes with this shape, by calling postUpdate() every time when changing the mesh vertices.++*/+class btGImpactMeshShapePart : public btGImpactShapeInterface+{ private:+public:+//! Trimesh primitive manager+/*!+Manages the info from btStridingMeshInterface object and controls the Lock/Unlock mechanism+*/+class TrimeshPrimitiveManager:public btPrimitiveManagerBase+{ private:+public:+btScalar m_margin;+btStridingMeshInterface * m_meshInterface;+btVector3 m_scale;+int m_part;+int m_lock_count;+const unsigned char *vertexbase;+int numverts;+PHY_ScalarType type;+int stride;+const unsigned char *indexbase;+int indexstride;+int numfaces;+PHY_ScalarType indicestype;++TrimeshPrimitiveManager()+{+m_meshInterface = NULL;+m_part = 0;+m_margin = 0.01f;+m_scale = btVector3(1.f,1.f,1.f);+m_lock_count = 0;+vertexbase = 0;+numverts = 0;+stride = 0;+indexbase = 0;+indexstride = 0;+numfaces = 0;+}++TrimeshPrimitiveManager(const TrimeshPrimitiveManager & manager)+: btPrimitiveManagerBase()+{+m_meshInterface = manager.m_meshInterface;+m_part = manager.m_part;+m_margin = manager.m_margin;+m_scale = manager.m_scale;+m_lock_count = 0;+vertexbase = 0;+numverts = 0;+stride = 0;+indexbase = 0;+indexstride = 0;+numfaces = 0;++}++TrimeshPrimitiveManager(+btStridingMeshInterface * meshInterface, int part)+{+m_meshInterface = meshInterface;+m_part = part;+m_scale = m_meshInterface->getScaling();+m_margin = 0.1f;+m_lock_count = 0;+vertexbase = 0;+numverts = 0;+stride = 0;+indexbase = 0;+indexstride = 0;+numfaces = 0;++}++virtual ~TrimeshPrimitiveManager() {}++void lock()+{+if(m_lock_count>0)+{+m_lock_count++;+return;+}+m_meshInterface->getLockedReadOnlyVertexIndexBase(+&vertexbase,numverts,+type, stride,&indexbase, indexstride, numfaces,indicestype,m_part);++m_lock_count = 1;+}++void unlock()+{+if(m_lock_count == 0) return;+if(m_lock_count>1)+{+--m_lock_count;+return;+}+m_meshInterface->unLockReadOnlyVertexBase(m_part);+vertexbase = NULL;+m_lock_count = 0;+}++virtual bool is_trimesh() const+{+return true;+}++virtual int get_primitive_count() const+{+return (int )numfaces;+}++SIMD_FORCE_INLINE int get_vertex_count() const+{+return (int )numverts;+}++SIMD_FORCE_INLINE void get_indices(int face_index,int &i0,int &i1,int &i2) const+{+if(indicestype == PHY_SHORT)+{+short * s_indices = (short *)(indexbase + face_index*indexstride);+i0 = s_indices[0];+i1 = s_indices[1];+i2 = s_indices[2];+}+else+{+int * i_indices = (int *)(indexbase + face_index*indexstride);+i0 = i_indices[0];+i1 = i_indices[1];+i2 = i_indices[2];+}+}++SIMD_FORCE_INLINE void get_vertex(int vertex_index, btVector3 & vertex) const+{+if(type == PHY_DOUBLE)+{+double * dvertices = (double *)(vertexbase + vertex_index*stride);+vertex[0] = btScalar(dvertices[0]*m_scale[0]);+vertex[1] = btScalar(dvertices[1]*m_scale[1]);+vertex[2] = btScalar(dvertices[2]*m_scale[2]);+}+else+{+float * svertices = (float *)(vertexbase + vertex_index*stride);+vertex[0] = svertices[0]*m_scale[0];+vertex[1] = svertices[1]*m_scale[1];+vertex[2] = svertices[2]*m_scale[2];+}+}++virtual void get_primitive_box(int prim_index ,btAABB & primbox) const+{+btPrimitiveTriangle triangle;+get_primitive_triangle(prim_index,triangle);+primbox.calc_from_triangle_margin(+triangle.m_vertices[0],+triangle.m_vertices[1],triangle.m_vertices[2],triangle.m_margin);+}++virtual void get_primitive_triangle(int prim_index,btPrimitiveTriangle & triangle) const+{+int indices[3];+get_indices(prim_index,indices[0],indices[1],indices[2]);+get_vertex(indices[0],triangle.m_vertices[0]);+get_vertex(indices[1],triangle.m_vertices[1]);+get_vertex(indices[2],triangle.m_vertices[2]);+triangle.m_margin = m_margin;+}++SIMD_FORCE_INLINE void get_bullet_triangle(int prim_index,btTriangleShapeEx & triangle) const+{+int indices[3];+get_indices(prim_index,indices[0],indices[1],indices[2]);+get_vertex(indices[0],triangle.m_vertices1[0]);+get_vertex(indices[1],triangle.m_vertices1[1]);+get_vertex(indices[2],triangle.m_vertices1[2]);+triangle.setMargin(m_margin);+}++};+++protected:+TrimeshPrimitiveManager m_primitive_manager;+public:++btGImpactMeshShapePart()+{+m_box_set.setPrimitiveManager(&m_primitive_manager);+}+++btGImpactMeshShapePart(btStridingMeshInterface * meshInterface, int part)+{+m_primitive_manager.m_meshInterface = meshInterface;+m_primitive_manager.m_part = part;+m_box_set.setPrimitiveManager(&m_primitive_manager);+}++virtual ~btGImpactMeshShapePart()+{+}++//! if true, then its children must get transforms.+virtual bool childrenHasTransform() const+{+return false;+}+++//! call when reading child shapes+virtual void lockChildShapes() const+{+void * dummy = (void*)(m_box_set.getPrimitiveManager());+TrimeshPrimitiveManager * dummymanager = static_cast<TrimeshPrimitiveManager *>(dummy);+dummymanager->lock();+}++virtual void unlockChildShapes() const+{+void * dummy = (void*)(m_box_set.getPrimitiveManager());+TrimeshPrimitiveManager * dummymanager = static_cast<TrimeshPrimitiveManager *>(dummy);+dummymanager->unlock();+}++//! Gets the number of children+virtual int getNumChildShapes() const+{+return m_primitive_manager.get_primitive_count();+}+++//! Gets the children+virtual btCollisionShape* getChildShape(int index)+{+(void) index;+btAssert(0);+return NULL;+}++++//! Gets the child+virtual const btCollisionShape* getChildShape(int index) const+{+(void) index;+btAssert(0);+return NULL;+}++//! Gets the children transform+virtual btTransform getChildTransform(int index) const+{+(void) index;+btAssert(0);+return btTransform();+}++//! Sets the children transform+/*!+\post You must call updateBound() for update the box set.+*/+virtual void setChildTransform(int index, const btTransform & transform)+{+(void) index;+(void) transform;+btAssert(0);+}+++//! Obtains the primitive manager+virtual const btPrimitiveManagerBase * getPrimitiveManager() const+{+return &m_primitive_manager;+}++SIMD_FORCE_INLINE TrimeshPrimitiveManager * getTrimeshPrimitiveManager()+{+return &m_primitive_manager;+}++++++virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;+++++virtual const char* getName()const+{+return "GImpactMeshShapePart";+}++virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const+{+return CONST_GIMPACT_TRIMESH_SHAPE_PART;+}++//! Determines if this shape has triangles+virtual bool needsRetrieveTriangles() const+{+return true;+}++//! Determines if this shape has tetrahedrons+virtual bool needsRetrieveTetrahedrons() const+{+return false;+}++virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const+{+m_primitive_manager.get_bullet_triangle(prim_index,triangle);+}++virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const+{+(void) prim_index;+(void) tetrahedron;+btAssert(0);+}++++SIMD_FORCE_INLINE int getVertexCount() const+{+return m_primitive_manager.get_vertex_count();+}++SIMD_FORCE_INLINE void getVertex(int vertex_index, btVector3 & vertex) const+{+m_primitive_manager.get_vertex(vertex_index,vertex);+}++SIMD_FORCE_INLINE void setMargin(btScalar margin)+{+m_primitive_manager.m_margin = margin;+postUpdate();+}++SIMD_FORCE_INLINE btScalar getMargin() const+{+return m_primitive_manager.m_margin;+}++virtual void setLocalScaling(const btVector3& scaling)+{+m_primitive_manager.m_scale = scaling;+postUpdate();+}++virtual const btVector3& getLocalScaling() const+{+return m_primitive_manager.m_scale;+}++SIMD_FORCE_INLINE int getPart() const+{+return (int)m_primitive_manager.m_part;+}++virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;+};+++//! This class manages a mesh supplied by the btStridingMeshInterface interface.+/*!+Set of btGImpactMeshShapePart parts+- Simply create this shape by passing the btStridingMeshInterface to the constructor btGImpactMeshShape, then you must call updateBound() after creating the mesh++- You can handle deformable meshes with this shape, by calling postUpdate() every time when changing the mesh vertices.++*/+class btGImpactMeshShape : public btGImpactShapeInterface+{ private:+btStridingMeshInterface* m_meshInterface;++protected:+btAlignedObjectArray<btGImpactMeshShapePart*> m_mesh_parts;+void buildMeshParts(btStridingMeshInterface * meshInterface)+{+for (int i=0;i<meshInterface->getNumSubParts() ;++i )+{+btGImpactMeshShapePart * newpart = new btGImpactMeshShapePart(meshInterface,i);+m_mesh_parts.push_back(newpart);+}+}++//! use this function for perfofm refit in bounding boxes+virtual void calcLocalAABB()+{+m_localAABB.invalidate();+int i = m_mesh_parts.size();+while(i--)+{+m_mesh_parts[i]->updateBound();+m_localAABB.merge(m_mesh_parts[i]->getLocalBox());+}+}++public:+btGImpactMeshShape(btStridingMeshInterface * meshInterface)+{+m_meshInterface = meshInterface;+buildMeshParts(meshInterface);+}++virtual ~btGImpactMeshShape()+{+int i = m_mesh_parts.size();+while(i--)+{+btGImpactMeshShapePart * part = m_mesh_parts[i];+delete part;+}+m_mesh_parts.clear();+}+++btStridingMeshInterface* getMeshInterface()+{+return m_meshInterface;+}++const btStridingMeshInterface* getMeshInterface() const+{+return m_meshInterface;+}++int getMeshPartCount() const+{+return m_mesh_parts.size();+}++btGImpactMeshShapePart * getMeshPart(int index)+{+return m_mesh_parts[index];+}++++const btGImpactMeshShapePart * getMeshPart(int index) const+{+return m_mesh_parts[index];+}+++virtual void setLocalScaling(const btVector3& scaling)+{+localScaling = scaling;++int i = m_mesh_parts.size();+while(i--)+{+btGImpactMeshShapePart * part = m_mesh_parts[i];+part->setLocalScaling(scaling);+}++m_needs_update = true;+}++virtual void setMargin(btScalar margin)+{+m_collisionMargin = margin;++int i = m_mesh_parts.size();+while(i--)+{+btGImpactMeshShapePart * part = m_mesh_parts[i];+part->setMargin(margin);+}++m_needs_update = true;+}++//! Tells to this object that is needed to refit all the meshes+virtual void postUpdate()+{+int i = m_mesh_parts.size();+while(i--)+{+btGImpactMeshShapePart * part = m_mesh_parts[i];+part->postUpdate();+}++m_needs_update = true;+}++virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const;+++//! Obtains the primitive manager+virtual const btPrimitiveManagerBase * getPrimitiveManager() const+{+btAssert(0);+return NULL;+}+++//! Gets the number of children+virtual int getNumChildShapes() const+{+btAssert(0);+return 0;+}+++//! if true, then its children must get transforms.+virtual bool childrenHasTransform() const+{+btAssert(0);+return false;+}++//! Determines if this shape has triangles+virtual bool needsRetrieveTriangles() const+{+btAssert(0);+return false;+}++//! Determines if this shape has tetrahedrons+virtual bool needsRetrieveTetrahedrons() const+{+btAssert(0);+return false;+}++virtual void getBulletTriangle(int prim_index,btTriangleShapeEx & triangle) const+{+(void) prim_index; (void) triangle;+btAssert(0);+}++virtual void getBulletTetrahedron(int prim_index,btTetrahedronShapeEx & tetrahedron) const+{+(void) prim_index; (void) tetrahedron;+btAssert(0);+}++//! call when reading child shapes+virtual void lockChildShapes() const+{+btAssert(0);+}++virtual void unlockChildShapes() const+{+btAssert(0);+}+++++//! Retrieves the bound from a child+/*!+*/+virtual void getChildAabb(int child_index,const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{+(void) child_index; (void) t; (void) aabbMin; (void) aabbMax;+btAssert(0);+}++//! Gets the children+virtual btCollisionShape* getChildShape(int index)+{+(void) index;+btAssert(0);+return NULL;+}+++//! Gets the child+virtual const btCollisionShape* getChildShape(int index) const+{+(void) index;+btAssert(0);+return NULL;+}++//! Gets the children transform+virtual btTransform getChildTransform(int index) const+{+(void) index;+btAssert(0);+return btTransform();+}++//! Sets the children transform+/*!+\post You must call updateBound() for update the box set.+*/+virtual void setChildTransform(int index, const btTransform & transform)+{+(void) index; (void) transform;+btAssert(0);+}+++virtual eGIMPACT_SHAPE_TYPE getGImpactShapeType() const+{+return CONST_GIMPACT_TRIMESH_SHAPE;+}+++virtual const char* getName()const+{+return "GImpactMesh";+}++virtual void rayTest(const btVector3& rayFrom, const btVector3& rayTo, btCollisionWorld::RayResultCallback& resultCallback) const;++//! Function for retrieve triangles.+/*!+It gives the triangles in local space+*/+virtual void processAllTriangles(btTriangleCallback* callback,const btVector3& aabbMin,const btVector3& aabbMax) const;++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++};++///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64+struct btGImpactMeshShapeData+{+btCollisionShapeData m_collisionShapeData;++btStridingMeshInterfaceData m_meshInterface;++btVector3FloatData m_localScaling;++float m_collisionMargin;++int m_gimpactSubType;+};++SIMD_FORCE_INLINE int btGImpactMeshShape::calculateSerializeBufferSize() const+{+return sizeof(btGImpactMeshShapeData); }  
bullet/BulletCollision/Gimpact/btGenericPoolAllocator.h view
@@ -5,7 +5,7 @@ */ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -32,75 +32,75 @@  //! Generic Pool class class btGenericMemoryPool-{+{ private: public:-	unsigned char * m_pool; //[m_element_size*m_max_element_count];-	size_t * m_free_nodes; //[m_max_element_count];//! free nodes-	size_t * m_allocated_sizes;//[m_max_element_count];//! Number of elements allocated per node-	size_t m_allocated_count;-	size_t m_free_nodes_count;+unsigned char * m_pool; //[m_element_size*m_max_element_count];+size_t * m_free_nodes; //[m_max_element_count];//! free nodes+size_t * m_allocated_sizes;//[m_max_element_count];//! Number of elements allocated per node+size_t m_allocated_count;+size_t m_free_nodes_count; protected:-	size_t m_element_size;-	size_t m_max_element_count;+size_t m_element_size;+size_t m_max_element_count; -	size_t allocate_from_free_nodes(size_t num_elements);-	size_t allocate_from_pool(size_t num_elements);+size_t allocate_from_free_nodes(size_t num_elements);+size_t allocate_from_pool(size_t num_elements);  public: -	void init_pool(size_t element_size, size_t element_count);+void init_pool(size_t element_size, size_t element_count); -	void end_pool();+void end_pool();  -	btGenericMemoryPool(size_t element_size, size_t element_count)-	{-		init_pool(element_size, element_count);-	}+btGenericMemoryPool(size_t element_size, size_t element_count)+{+init_pool(element_size, element_count);+} -	~btGenericMemoryPool()-	{-		end_pool();-	}+~btGenericMemoryPool()+{+end_pool();+}  -	inline size_t get_pool_capacity()-	{-		return m_element_size*m_max_element_count;-	}+inline size_t get_pool_capacity()+{+return m_element_size*m_max_element_count;+} -	inline size_t gem_element_size()-	{-		return m_element_size;-	}+inline size_t gem_element_size()+{+return m_element_size;+} -	inline size_t get_max_element_count()-	{-		return m_max_element_count;-	}+inline size_t get_max_element_count()+{+return m_max_element_count;+} -	inline size_t get_allocated_count()-	{-		return m_allocated_count;-	}+inline size_t get_allocated_count()+{+return m_allocated_count;+} -	inline size_t get_free_positions_count()-	{-		return m_free_nodes_count;-	}+inline size_t get_free_positions_count()+{+return m_free_nodes_count;+} -	inline void * get_element_data(size_t element_index)-	{-		return &m_pool[element_index*m_element_size];-	}+inline void * get_element_data(size_t element_index)+{+return &m_pool[element_index*m_element_size];+} -	//! Allocates memory in pool-	/*!-	\param size_bytes size in bytes of the buffer-	*/-	void * allocate(size_t size_bytes);+//! Allocates memory in pool+/*!+\param size_bytes size in bytes of the buffer+*/+void * allocate(size_t size_bytes); -	bool freeMemory(void * pointer);+bool freeMemory(void * pointer); };  @@ -111,46 +111,46 @@ General purpose Allocator which can create Memory Pools dynamiacally as needed. */ class btGenericPoolAllocator-{+{ private: protected:-	size_t m_pool_element_size;-	size_t m_pool_element_count;+size_t m_pool_element_size;+size_t m_pool_element_count; public:-	btGenericMemoryPool * m_pools[BT_DEFAULT_MAX_POOLS];-	size_t m_pool_count;+btGenericMemoryPool * m_pools[BT_DEFAULT_MAX_POOLS];+size_t m_pool_count;  -	inline size_t get_pool_capacity()-	{-		return m_pool_element_size*m_pool_element_count;-	}+inline size_t get_pool_capacity()+{+return m_pool_element_size*m_pool_element_count;+}   protected:-	// creates a pool-	btGenericMemoryPool * push_new_pool();+// creates a pool+btGenericMemoryPool * push_new_pool(); -	void * failback_alloc(size_t size_bytes);+void * failback_alloc(size_t size_bytes); -	bool failback_free(void * pointer);+bool failback_free(void * pointer); public: -	btGenericPoolAllocator(size_t pool_element_size, size_t pool_element_count)-	{-		m_pool_count = 0;-		m_pool_element_size = pool_element_size;-		m_pool_element_count = pool_element_count;-	}+btGenericPoolAllocator(size_t pool_element_size, size_t pool_element_count)+{+m_pool_count = 0;+m_pool_element_size = pool_element_size;+m_pool_element_count = pool_element_count;+} -	virtual ~btGenericPoolAllocator();+virtual ~btGenericPoolAllocator(); -	//! Allocates memory in pool-	/*!-	\param size_bytes size in bytes of the buffer-	*/-	void * allocate(size_t size_bytes);+//! Allocates memory in pool+/*!+\param size_bytes size in bytes of the buffer+*/+void * allocate(size_t size_bytes); -	bool freeMemory(void * pointer);+bool freeMemory(void * pointer); };  
bullet/BulletCollision/Gimpact/btGeometryOperations.h view
@@ -38,11 +38,11 @@ #define BT_CLAMP(number,minval,maxval) (number<minval?minval:(number>maxval?maxval:number))  /// Calc a plane from a triangle edge an a normal. plane is a vec4f-SIMD_FORCE_INLINE void bt_edge_plane(const btVector3 & e1,const btVector3 &  e2, const btVector3 & normal,btVector4 & plane)+SIMD_FORCE_INLINE void bt_edge_plane(const btVector3 & e1,const btVector3 & e2, const btVector3 & normal,btVector4 & plane) {-	btVector3 planenormal = (e2-e1).cross(normal);-	planenormal.normalize();-	plane.setValue(planenormal[0],planenormal[1],planenormal[2],e2.dot(planenormal));+btVector3 planenormal = (e2-e1).cross(normal);+planenormal.normalize();+plane.setValue(planenormal[0],planenormal[1],planenormal[2],e2.dot(planenormal)); }  @@ -50,159 +50,159 @@ //***************** SEGMENT and LINE FUNCTIONS **********************************///  /*! Finds the closest point(cp) to (v) on a segment (e1,e2)- */+*/ SIMD_FORCE_INLINE void bt_closest_point_on_segment(-	btVector3 & cp, const btVector3 & v,-	const btVector3  &e1,const btVector3 &e2)+btVector3 & cp, const btVector3 & v,+const btVector3 &e1,const btVector3 &e2) {-    btVector3 n = e2-e1;-    cp = v - e1;-	btScalar _scalar = cp.dot(n)/n.dot(n);-	if(_scalar <0.0f)-	{-	    cp = e1;-	}-	else if(_scalar >1.0f)-	{-	    cp = e2;-	}-	else-	{-		cp = _scalar*n + e1;-	}+btVector3 n = e2-e1;+cp = v - e1;+btScalar _scalar = cp.dot(n)/n.dot(n);+if(_scalar <0.0f)+{+cp = e1; }+else if(_scalar >1.0f)+{+cp = e2;+}+else+{+cp = _scalar*n + e1;+}+}   //! line plane collision /*! *\return-	-0  if the ray never intersects-	-1 if the ray collides in front-	-2 if the ray collides in back+-0 if the ray never intersects+-1 if the ray collides in front+-2 if the ray collides in back */  SIMD_FORCE_INLINE int bt_line_plane_collision(-	const btVector4 & plane,-	const btVector3 & vDir,-	const btVector3 & vPoint,-	btVector3 & pout,-	btScalar &tparam,-	btScalar tmin, btScalar tmax)+const btVector4 & plane,+const btVector3 & vDir,+const btVector3 & vPoint,+btVector3 & pout,+btScalar &tparam,+btScalar tmin, btScalar tmax) { -	btScalar _dotdir = vDir.dot(plane);+btScalar _dotdir = vDir.dot(plane); -	if(btFabs(_dotdir)<PLANEDIREPSILON)-	{-		tparam = tmax;-	    return 0;-	}+if(btFabs(_dotdir)<PLANEDIREPSILON)+{+tparam = tmax;+return 0;+} -	btScalar _dis = bt_distance_point_plane(plane,vPoint);-	char returnvalue = _dis<0.0f? 2:1;-	tparam = -_dis/_dotdir;+btScalar _dis = bt_distance_point_plane(plane,vPoint);+char returnvalue = _dis<0.0f? 2:1;+tparam = -_dis/_dotdir; -	if(tparam<tmin)-	{-		returnvalue = 0;-		tparam = tmin;-	}-	else if(tparam>tmax)-	{-		returnvalue = 0;-		tparam = tmax;-	}-	pout = tparam*vDir + vPoint;-	return returnvalue;+if(tparam<tmin)+{+returnvalue = 0;+tparam = tmin; }+else if(tparam>tmax)+{+returnvalue = 0;+tparam = tmax;+}+pout = tparam*vDir + vPoint;+return returnvalue;+}   //! Find closest points on segments SIMD_FORCE_INLINE void bt_segment_collision(-	const btVector3 & vA1,-	const btVector3 & vA2,-	const btVector3 & vB1,-	const btVector3 & vB2,-	btVector3 & vPointA,-	btVector3 & vPointB)+const btVector3 & vA1,+const btVector3 & vA2,+const btVector3 & vB1,+const btVector3 & vB2,+btVector3 & vPointA,+btVector3 & vPointB) {-    btVector3 AD = vA2 - vA1;-    btVector3 BD = vB2 - vB1;-    btVector3 N = AD.cross(BD);-    btScalar tp = N.length2();+btVector3 AD = vA2 - vA1;+btVector3 BD = vB2 - vB1;+btVector3 N = AD.cross(BD);+btScalar tp = N.length2(); -    btVector4 _M;//plane+btVector4 _M;//plane -    if(tp<SIMD_EPSILON)//ARE PARALELE-    {-    	//project B over A-    	bool invert_b_order = false;-    	_M[0] = vB1.dot(AD);-    	_M[1] = vB2.dot(AD);+if(tp<SIMD_EPSILON)//ARE PARALELE+{+//project B over A+bool invert_b_order = false;+_M[0] = vB1.dot(AD);+_M[1] = vB2.dot(AD); -    	if(_M[0]>_M[1])-    	{-    		invert_b_order  = true;-    		BT_SWAP_NUMBERS(_M[0],_M[1]);-    	}-    	_M[2] = vA1.dot(AD);-    	_M[3] = vA2.dot(AD);-    	//mid points-    	N[0] = (_M[0]+_M[1])*0.5f;-    	N[1] = (_M[2]+_M[3])*0.5f;+if(_M[0]>_M[1])+{+invert_b_order = true;+BT_SWAP_NUMBERS(_M[0],_M[1]);+}+_M[2] = vA1.dot(AD);+_M[3] = vA2.dot(AD);+//mid points+N[0] = (_M[0]+_M[1])*0.5f;+N[1] = (_M[2]+_M[3])*0.5f; -    	if(N[0]<N[1])-    	{-    		if(_M[1]<_M[2])-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			vPointA = vA1;-    		}-    		else if(_M[1]<_M[3])-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			bt_closest_point_on_segment(vPointA,vPointB,vA1,vA2);-    		}-    		else-    		{-    			vPointA = vA2;-    			bt_closest_point_on_segment(vPointB,vPointA,vB1,vB2);-    		}-    	}-    	else-    	{-    		if(_M[3]<_M[0])-    		{-    			vPointB = invert_b_order?vB2:vB1;-    			vPointA = vA2;-    		}-    		else if(_M[3]<_M[1])-    		{-    			vPointA = vA2;-    			bt_closest_point_on_segment(vPointB,vPointA,vB1,vB2);-    		}-    		else-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			bt_closest_point_on_segment(vPointA,vPointB,vA1,vA2);-    		}-    	}-    	return;-    }+if(N[0]<N[1])+{+if(_M[1]<_M[2])+{+vPointB = invert_b_order?vB1:vB2;+vPointA = vA1;+}+else if(_M[1]<_M[3])+{+vPointB = invert_b_order?vB1:vB2;+bt_closest_point_on_segment(vPointA,vPointB,vA1,vA2);+}+else+{+vPointA = vA2;+bt_closest_point_on_segment(vPointB,vPointA,vB1,vB2);+}+}+else+{+if(_M[3]<_M[0])+{+vPointB = invert_b_order?vB2:vB1;+vPointA = vA2;+}+else if(_M[3]<_M[1])+{+vPointA = vA2;+bt_closest_point_on_segment(vPointB,vPointA,vB1,vB2);+}+else+{+vPointB = invert_b_order?vB1:vB2;+bt_closest_point_on_segment(vPointA,vPointB,vA1,vA2);+}+}+return;+} -    N = N.cross(BD);-    _M.setValue(N[0],N[1],N[2],vB1.dot(N));+N = N.cross(BD);+_M.setValue(N[0],N[1],N[2],vB1.dot(N)); -	// get point A as the plane collision point-    bt_line_plane_collision(_M,AD,vA1,vPointA,tp,btScalar(0), btScalar(1));+// get point A as the plane collision point+bt_line_plane_collision(_M,AD,vA1,vPointA,tp,btScalar(0), btScalar(1)); -    /*Closest point on segment*/-    vPointB = vPointA - vB1;-	tp = vPointB.dot(BD);-	tp/= BD.dot(BD);-	tp = BT_CLAMP(tp,0.0f,1.0f);+/*Closest point on segment*/+vPointB = vPointA - vB1;+tp = vPointB.dot(BD);+tp/= BD.dot(BD);+tp = BT_CLAMP(tp,0.0f,1.0f); -	vPointB = tp*BD + vB1;+vPointB = tp*BD + vB1; }  
bullet/BulletCollision/Gimpact/btQuantization.h view
@@ -33,54 +33,54 @@   SIMD_FORCE_INLINE void bt_calc_quantization_parameters(-	btVector3 & outMinBound,-	btVector3 & outMaxBound,-	btVector3 & bvhQuantization,-	const btVector3& srcMinBound,const btVector3& srcMaxBound,-	btScalar quantizationMargin)+btVector3 & outMinBound,+btVector3 & outMaxBound,+btVector3 & bvhQuantization,+const btVector3& srcMinBound,const btVector3& srcMaxBound,+btScalar quantizationMargin) {-	//enlarge the AABB to avoid division by zero when initializing the quantization values-	btVector3 clampValue(quantizationMargin,quantizationMargin,quantizationMargin);-	outMinBound = srcMinBound - clampValue;-	outMaxBound = srcMaxBound + clampValue;-	btVector3 aabbSize = outMaxBound - outMinBound;-	bvhQuantization = btVector3(btScalar(65535.0),-								btScalar(65535.0),-								btScalar(65535.0)) / aabbSize;+//enlarge the AABB to avoid division by zero when initializing the quantization values+btVector3 clampValue(quantizationMargin,quantizationMargin,quantizationMargin);+outMinBound = srcMinBound - clampValue;+outMaxBound = srcMaxBound + clampValue;+btVector3 aabbSize = outMaxBound - outMinBound;+bvhQuantization = btVector3(btScalar(65535.0),+btScalar(65535.0),+btScalar(65535.0)) / aabbSize; }   SIMD_FORCE_INLINE void bt_quantize_clamp(-	unsigned short* out,-	const btVector3& point,-	const btVector3 & min_bound,-	const btVector3 & max_bound,-	const btVector3 & bvhQuantization)+unsigned short* out,+const btVector3& point,+const btVector3 & min_bound,+const btVector3 & max_bound,+const btVector3 & bvhQuantization) { -	btVector3 clampedPoint(point);-	clampedPoint.setMax(min_bound);-	clampedPoint.setMin(max_bound);+btVector3 clampedPoint(point);+clampedPoint.setMax(min_bound);+clampedPoint.setMin(max_bound); -	btVector3 v = (clampedPoint - min_bound) * bvhQuantization;-	out[0] = (unsigned short)(v.getX()+0.5f);-	out[1] = (unsigned short)(v.getY()+0.5f);-	out[2] = (unsigned short)(v.getZ()+0.5f);+btVector3 v = (clampedPoint - min_bound) * bvhQuantization;+out[0] = (unsigned short)(v.getX()+0.5f);+out[1] = (unsigned short)(v.getY()+0.5f);+out[2] = (unsigned short)(v.getZ()+0.5f); }   SIMD_FORCE_INLINE btVector3 bt_unquantize(-	const unsigned short* vecIn,-	const btVector3 & offset,-	const btVector3 & bvhQuantization)+const unsigned short* vecIn,+const btVector3 & offset,+const btVector3 & bvhQuantization) {-	btVector3	vecOut;-	vecOut.setValue(-		(btScalar)(vecIn[0]) / (bvhQuantization.getX()),-		(btScalar)(vecIn[1]) / (bvhQuantization.getY()),-		(btScalar)(vecIn[2]) / (bvhQuantization.getZ()));-	vecOut += offset;-	return vecOut;+btVector3 vecOut;+vecOut.setValue(+(btScalar)(vecIn[0]) / (bvhQuantization.getX()),+(btScalar)(vecIn[1]) / (bvhQuantization.getY()),+(btScalar)(vecIn[2]) / (bvhQuantization.getZ()));+vecOut += offset;+return vecOut; }  
bullet/BulletCollision/Gimpact/btTriangleShapeEx.h view
@@ -37,93 +37,93 @@ //! Structure for collision struct GIM_TRIANGLE_CONTACT {-    btScalar m_penetration_depth;-    int m_point_count;-    btVector4 m_separating_normal;-    btVector3 m_points[MAX_TRI_CLIPPING];+btScalar m_penetration_depth;+int m_point_count;+btVector4 m_separating_normal;+btVector3 m_points[MAX_TRI_CLIPPING]; -	SIMD_FORCE_INLINE void copy_from(const GIM_TRIANGLE_CONTACT& other)-	{-		m_penetration_depth = other.m_penetration_depth;-		m_separating_normal = other.m_separating_normal;-		m_point_count = other.m_point_count;-		int i = m_point_count;-		while(i--)-		{-			m_points[i] = other.m_points[i];-		}-	}+SIMD_FORCE_INLINE void copy_from(const GIM_TRIANGLE_CONTACT& other)+{+m_penetration_depth = other.m_penetration_depth;+m_separating_normal = other.m_separating_normal;+m_point_count = other.m_point_count;+int i = m_point_count;+while(i--)+{+m_points[i] = other.m_points[i];+}+} -	GIM_TRIANGLE_CONTACT()-	{-	}+GIM_TRIANGLE_CONTACT()+{+} -	GIM_TRIANGLE_CONTACT(const GIM_TRIANGLE_CONTACT& other)-	{-		copy_from(other);-	}+GIM_TRIANGLE_CONTACT(const GIM_TRIANGLE_CONTACT& other)+{+copy_from(other);+} -    //! classify points that are closer-    void merge_points(const btVector4 & plane,-    				btScalar margin, const btVector3 * points, int point_count);+//! classify points that are closer+void merge_points(const btVector4 & plane,+btScalar margin, const btVector3 * points, int point_count);  };    class btPrimitiveTriangle-{+{ private: public:-	btVector3 m_vertices[3];-	btVector4 m_plane;-	btScalar m_margin;-	btScalar m_dummy;-	btPrimitiveTriangle():m_margin(0.01f)-	{+btVector3 m_vertices[3];+btVector4 m_plane;+btScalar m_margin;+btScalar m_dummy;+btPrimitiveTriangle():m_margin(0.01f)+{ -	}+}  -	SIMD_FORCE_INLINE void buildTriPlane()-	{-		btVector3 normal = (m_vertices[1]-m_vertices[0]).cross(m_vertices[2]-m_vertices[0]);-		normal.normalize();-		m_plane.setValue(normal[0],normal[1],normal[2],m_vertices[0].dot(normal));-	}+SIMD_FORCE_INLINE void buildTriPlane()+{+btVector3 normal = (m_vertices[1]-m_vertices[0]).cross(m_vertices[2]-m_vertices[0]);+normal.normalize();+m_plane.setValue(normal[0],normal[1],normal[2],m_vertices[0].dot(normal));+} -	//! Test if triangles could collide-	bool overlap_test_conservative(const btPrimitiveTriangle& other);+//! Test if triangles could collide+bool overlap_test_conservative(const btPrimitiveTriangle& other); -	//! Calcs the plane which is paralele to the edge and perpendicular to the triangle plane-	/*!-	\pre this triangle must have its plane calculated.-	*/-	SIMD_FORCE_INLINE void get_edge_plane(int edge_index, btVector4 &plane)  const-    {-		const btVector3 & e0 = m_vertices[edge_index];-		const btVector3 & e1 = m_vertices[(edge_index+1)%3];-		bt_edge_plane(e0,e1,m_plane,plane);-    }+//! Calcs the plane which is paralele to the edge and perpendicular to the triangle plane+/*!+\pre this triangle must have its plane calculated.+*/+SIMD_FORCE_INLINE void get_edge_plane(int edge_index, btVector4 &plane) const+{+const btVector3 & e0 = m_vertices[edge_index];+const btVector3 & e1 = m_vertices[(edge_index+1)%3];+bt_edge_plane(e0,e1,m_plane,plane);+} -    void applyTransform(const btTransform& t)-	{-		m_vertices[0] = t(m_vertices[0]);-		m_vertices[1] = t(m_vertices[1]);-		m_vertices[2] = t(m_vertices[2]);-	}+void applyTransform(const btTransform& t)+{+m_vertices[0] = t(m_vertices[0]);+m_vertices[1] = t(m_vertices[1]);+m_vertices[2] = t(m_vertices[2]);+} -	//! Clips the triangle against this-	/*!-	\pre clipped_points must have MAX_TRI_CLIPPING size, and this triangle must have its plane calculated.-	\return the number of clipped points-	*/-    int clip_triangle(btPrimitiveTriangle & other, btVector3 * clipped_points );+//! Clips the triangle against this+/*!+\pre clipped_points must have MAX_TRI_CLIPPING size, and this triangle must have its plane calculated.+\return the number of clipped points+*/+int clip_triangle(btPrimitiveTriangle & other, btVector3 * clipped_points ); -	//! Find collision using the clipping method-	/*!-	\pre this triangle and other must have their triangles calculated-	*/-    bool find_triangle_collision_clip_method(btPrimitiveTriangle & other, GIM_TRIANGLE_CONTACT & contacts);+//! Find collision using the clipping method+/*!+\pre this triangle and other must have their triangles calculated+*/+bool find_triangle_collision_clip_method(btPrimitiveTriangle & other, GIM_TRIANGLE_CONTACT & contacts); };  @@ -133,47 +133,47 @@ This class implements a better getAabb method than the previous btTriangleShape class */ class btTriangleShapeEx: public btTriangleShape-{+{ private: public: -	btTriangleShapeEx():btTriangleShape(btVector3(0,0,0),btVector3(0,0,0),btVector3(0,0,0))-	{-	}+btTriangleShapeEx():btTriangleShape(btVector3(0,0,0),btVector3(0,0,0),btVector3(0,0,0))+{+} -	btTriangleShapeEx(const btVector3& p0,const btVector3& p1,const btVector3& p2):	btTriangleShape(p0,p1,p2)-	{-	}+btTriangleShapeEx(const btVector3& p0,const btVector3& p1,const btVector3& p2): btTriangleShape(p0,p1,p2)+{+} -	btTriangleShapeEx(const btTriangleShapeEx & other):	btTriangleShape(other.m_vertices1[0],other.m_vertices1[1],other.m_vertices1[2])-	{-	}+btTriangleShapeEx(const btTriangleShapeEx & other): btTriangleShape(other.m_vertices1[0],other.m_vertices1[1],other.m_vertices1[2])+{+} -	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax)const-	{-		btVector3 tv0 = t(m_vertices1[0]);-		btVector3 tv1 = t(m_vertices1[1]);-		btVector3 tv2 = t(m_vertices1[2]);+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax)const+{+btVector3 tv0 = t(m_vertices1[0]);+btVector3 tv1 = t(m_vertices1[1]);+btVector3 tv2 = t(m_vertices1[2]); -		btAABB trianglebox(tv0,tv1,tv2,m_collisionMargin);-		aabbMin = trianglebox.m_min;-		aabbMax = trianglebox.m_max;-	}+btAABB trianglebox(tv0,tv1,tv2,m_collisionMargin);+aabbMin = trianglebox.m_min;+aabbMax = trianglebox.m_max;+} -	void applyTransform(const btTransform& t)-	{-		m_vertices1[0] = t(m_vertices1[0]);-		m_vertices1[1] = t(m_vertices1[1]);-		m_vertices1[2] = t(m_vertices1[2]);-	}+void applyTransform(const btTransform& t)+{+m_vertices1[0] = t(m_vertices1[0]);+m_vertices1[1] = t(m_vertices1[1]);+m_vertices1[2] = t(m_vertices1[2]);+} -	SIMD_FORCE_INLINE void buildTriPlane(btVector4 & plane) const-	{-		btVector3 normal = (m_vertices1[1]-m_vertices1[0]).cross(m_vertices1[2]-m_vertices1[0]);-		normal.normalize();-		plane.setValue(normal[0],normal[1],normal[2],m_vertices1[0].dot(normal));-	}+SIMD_FORCE_INLINE void buildTriPlane(btVector4 & plane) const+{+btVector3 normal = (m_vertices1[1]-m_vertices1[0]).cross(m_vertices1[2]-m_vertices1[0]);+normal.normalize();+plane.setValue(normal[0],normal[1],normal[2],m_vertices1[0].dot(normal));+} -	bool overlap_test_conservative(const btTriangleShapeEx& other);+bool overlap_test_conservative(const btTriangleShapeEx& other); };  
bullet/BulletCollision/Gimpact/gim_array.h view
@@ -12,22 +12,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -38,284 +38,284 @@ #define GIM_ARRAY_GROW_INCREMENT 2 #define GIM_ARRAY_GROW_FACTOR 2 -//!	Very simple array container with fast access and simd memory+//! Very simple array container with fast access and simd memory template<typename T> class gim_array-{+{ private: public: //! properties //!@{-    T *m_data;-    GUINT m_size;-    GUINT m_allocated_size;+T *m_data;+GUINT m_size;+GUINT m_allocated_size; //!@} //! protected operations //!@{ -    inline void destroyData()-	{-	    m_allocated_size = 0;-		if(m_data==NULL) return;-		gim_free(m_data);-		m_data = NULL;-	}+inline void destroyData()+{+m_allocated_size = 0;+if(m_data==NULL) return;+gim_free(m_data);+m_data = NULL;+} -	inline bool resizeData(GUINT newsize)-	{-		if(newsize==0)-		{-			destroyData();-			return true;-		}+inline bool resizeData(GUINT newsize)+{+if(newsize==0)+{+destroyData();+return true;+} -		if(m_size>0)-		{-            m_data = (T*)gim_realloc(m_data,m_size*sizeof(T),newsize*sizeof(T));-		}-		else-		{-		    m_data = (T*)gim_alloc(newsize*sizeof(T));-		}-		m_allocated_size = newsize;-		return true;-	}+if(m_size>0)+{+m_data = (T*)gim_realloc(m_data,m_size*sizeof(T),newsize*sizeof(T));+}+else+{+m_data = (T*)gim_alloc(newsize*sizeof(T));+}+m_allocated_size = newsize;+return true;+} -	inline bool growingCheck()-	{-		if(m_allocated_size<=m_size)-		{-		    GUINT requestsize = m_size;-		    m_size = m_allocated_size;-			if(resizeData((requestsize+GIM_ARRAY_GROW_INCREMENT)*GIM_ARRAY_GROW_FACTOR)==false) return false;-		}-		return true;-	}+inline bool growingCheck()+{+if(m_allocated_size<=m_size)+{+GUINT requestsize = m_size;+m_size = m_allocated_size;+if(resizeData((requestsize+GIM_ARRAY_GROW_INCREMENT)*GIM_ARRAY_GROW_FACTOR)==false) return false;+}+return true;+}  //!@} //! public operations //!@{-    inline  bool reserve(GUINT size)-    {-        if(m_allocated_size>=size) return false;-        return resizeData(size);-    }+inline bool reserve(GUINT size)+{+if(m_allocated_size>=size) return false;+return resizeData(size);+} -    inline void clear_range(GUINT start_range)-    {-        while(m_size>start_range)-        {-            m_data[--m_size].~T();-        }-    }+inline void clear_range(GUINT start_range)+{+while(m_size>start_range)+{+m_data[--m_size].~T();+}+} -    inline void clear()-    {-        if(m_size==0)return;-        clear_range(0);-    }+inline void clear()+{+if(m_size==0)return;+clear_range(0);+} -    inline void clear_memory()-    {-        clear();-        destroyData();-    }+inline void clear_memory()+{+clear();+destroyData();+} -    gim_array()-    {-        m_data = 0;-        m_size = 0;-        m_allocated_size = 0;-    }+gim_array()+{+m_data = 0;+m_size = 0;+m_allocated_size = 0;+} -    gim_array(GUINT reservesize)-    {-        m_data = 0;-        m_size = 0;+gim_array(GUINT reservesize)+{+m_data = 0;+m_size = 0; -        m_allocated_size = 0;-        reserve(reservesize);-    }+m_allocated_size = 0;+reserve(reservesize);+} -    ~gim_array()-    {-        clear_memory();-    }+~gim_array()+{+clear_memory();+} -    inline GUINT size() const-    {-        return m_size;-    }+inline GUINT size() const+{+return m_size;+} -    inline GUINT max_size() const-    {-        return m_allocated_size;-    }+inline GUINT max_size() const+{+return m_allocated_size;+} -    inline T & operator[](size_t i)-	{-		return m_data[i];-	}-	inline  const T & operator[](size_t i) const-	{-		return m_data[i];-	}+inline T & operator[](size_t i)+{+return m_data[i];+}+inline const T & operator[](size_t i) const+{+return m_data[i];+} -    inline T * pointer(){ return m_data;}-    inline const T * pointer() const-    { return m_data;}+inline T * pointer(){ return m_data;}+inline const T * pointer() const+{ return m_data;}  -    inline T * get_pointer_at(GUINT i)-	{-		return m_data + i;-	}+inline T * get_pointer_at(GUINT i)+{+return m_data + i;+} -	inline const T * get_pointer_at(GUINT i) const-	{-		return m_data + i;-	}+inline const T * get_pointer_at(GUINT i) const+{+return m_data + i;+} -	inline T & at(GUINT i)-	{-		return m_data[i];-	}+inline T & at(GUINT i)+{+return m_data[i];+} -	inline const T & at(GUINT i) const-	{-		return m_data[i];-	}+inline const T & at(GUINT i) const+{+return m_data[i];+} -	inline T & front()-	{-		return *m_data;-	}+inline T & front()+{+return *m_data;+} -	inline const T & front() const-	{-		return *m_data;-	}+inline const T & front() const+{+return *m_data;+} -	inline T & back()-	{-		return m_data[m_size-1];-	}+inline T & back()+{+return m_data[m_size-1];+} -	inline const T & back() const-	{-		return m_data[m_size-1];-	}+inline const T & back() const+{+return m_data[m_size-1];+}  -	inline void swap(GUINT i, GUINT j)-	{-	    gim_swap_elements(m_data,i,j);-	}+inline void swap(GUINT i, GUINT j)+{+gim_swap_elements(m_data,i,j);+} -	inline void push_back(const T & obj)-	{-	    this->growingCheck();-	    m_data[m_size] = obj;-	    m_size++;-	}+inline void push_back(const T & obj)+{+this->growingCheck();+m_data[m_size] = obj;+m_size++;+} -	//!Simply increase the m_size, doesn't call the new element constructor-	inline void push_back_mem()-	{-	    this->growingCheck();-	    m_size++;-	}+//!Simply increase the m_size, doesn't call the new element constructor+inline void push_back_mem()+{+this->growingCheck();+m_size++;+} -	inline void push_back_memcpy(const T & obj)-	{-	    this->growingCheck();-	    irr_simd_memcpy(&m_data[m_size],&obj,sizeof(T));-	    m_size++;-	}+inline void push_back_memcpy(const T & obj)+{+this->growingCheck();+irr_simd_memcpy(&m_data[m_size],&obj,sizeof(T));+m_size++;+} -	inline void pop_back()-	{-	    m_size--;-        m_data[m_size].~T();-	}+inline void pop_back()+{+m_size--;+m_data[m_size].~T();+} -	//!Simply decrease the m_size, doesn't call the deleted element destructor-	inline void pop_back_mem()-	{-	    m_size--;-	}+//!Simply decrease the m_size, doesn't call the deleted element destructor+inline void pop_back_mem()+{+m_size--;+} -    //! fast erase-	inline void erase(GUINT index)-	{-	    if(index<m_size-1)-	    {-	        swap(index,m_size-1);-	    }-	    pop_back();-	}+//! fast erase+inline void erase(GUINT index)+{+if(index<m_size-1)+{+swap(index,m_size-1);+}+pop_back();+} -	inline void erase_sorted_mem(GUINT index)-	{-	    m_size--;-	    for(GUINT i = index;i<m_size;i++)-	    {-	        gim_simd_memcpy(m_data+i,m_data+i+1,sizeof(T));-	    }-	}+inline void erase_sorted_mem(GUINT index)+{+m_size--;+for(GUINT i = index;i<m_size;i++)+{+gim_simd_memcpy(m_data+i,m_data+i+1,sizeof(T));+}+} -	inline void erase_sorted(GUINT index)-	{-	    m_data[index].~T();-	    erase_sorted_mem(index);-	}+inline void erase_sorted(GUINT index)+{+m_data[index].~T();+erase_sorted_mem(index);+} -	inline void insert_mem(GUINT index)-	{-	    this->growingCheck();-	    for(GUINT i = m_size;i>index;i--)-	    {-	        gim_simd_memcpy(m_data+i,m_data+i-1,sizeof(T));-	    }-	    m_size++;-	}+inline void insert_mem(GUINT index)+{+this->growingCheck();+for(GUINT i = m_size;i>index;i--)+{+gim_simd_memcpy(m_data+i,m_data+i-1,sizeof(T));+}+m_size++;+} -	inline void insert(const T & obj,GUINT index)-	{-	    insert_mem(index);-	    m_data[index] = obj;-	}+inline void insert(const T & obj,GUINT index)+{+insert_mem(index);+m_data[index] = obj;+} -	inline void resize(GUINT size, bool call_constructor = true)-	{+inline void resize(GUINT size, bool call_constructor = true)+{ -	    if(size>m_size)-	    {-            reserve(size);-            if(call_constructor)-            {-            	T obj;-                while(m_size<size)-                {-                    m_data[m_size] = obj;-                    m_size++;-                }-            }-            else-            {-            	m_size = size;-            }-	    }-	    else if(size<m_size)-	    {-	        if(call_constructor) clear_range(size);-	        m_size = size;-	    }-	}+if(size>m_size)+{+reserve(size);+if(call_constructor)+{+T obj;+while(m_size<size)+{+m_data[m_size] = obj;+m_size++;+}+}+else+{+m_size = size;+}+}+else if(size<m_size)+{+if(call_constructor) clear_range(size);+m_size = size;+}+} -	inline void refit()-	{-	    resizeData(m_size);-	}+inline void refit()+{+resizeData(m_size);+}  }; 
bullet/BulletCollision/Gimpact/gim_basic_geometry_operations.h view
@@ -15,22 +15,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -48,92 +48,92 @@  #define TRIANGLE_NORMAL(v1,v2,v3,n)\ {\-	vec3f _dif1,_dif2;\-    VEC_DIFF(_dif1,v2,v1);\-    VEC_DIFF(_dif2,v3,v1);\-    VEC_CROSS(n,_dif1,_dif2);\-    VEC_NORMALIZE(n);\+vec3f _dif1,_dif2;\+VEC_DIFF(_dif1,v2,v1);\+VEC_DIFF(_dif2,v3,v1);\+VEC_CROSS(n,_dif1,_dif2);\+VEC_NORMALIZE(n);\ }\  #define TRIANGLE_NORMAL_FAST(v1,v2,v3,n){\-    vec3f _dif1,_dif2; \-    VEC_DIFF(_dif1,v2,v1); \-    VEC_DIFF(_dif2,v3,v1); \-    VEC_CROSS(n,_dif1,_dif2); \+vec3f _dif1,_dif2; \+VEC_DIFF(_dif1,v2,v1); \+VEC_DIFF(_dif2,v3,v1); \+VEC_CROSS(n,_dif1,_dif2); \ }\  /// plane is a vec4f #define TRIANGLE_PLANE(v1,v2,v3,plane) {\-    TRIANGLE_NORMAL(v1,v2,v3,plane);\-    plane[3] = VEC_DOT(v1,plane);\+TRIANGLE_NORMAL(v1,v2,v3,plane);\+plane[3] = VEC_DOT(v1,plane);\ }\  /// plane is a vec4f #define TRIANGLE_PLANE_FAST(v1,v2,v3,plane) {\-    TRIANGLE_NORMAL_FAST(v1,v2,v3,plane);\-    plane[3] = VEC_DOT(v1,plane);\+TRIANGLE_NORMAL_FAST(v1,v2,v3,plane);\+plane[3] = VEC_DOT(v1,plane);\ }\  /// Calc a plane from an edge an a normal. plane is a vec4f #define EDGE_PLANE(e1,e2,n,plane) {\-    vec3f _dif; \-    VEC_DIFF(_dif,e2,e1); \-    VEC_CROSS(plane,_dif,n); \-    VEC_NORMALIZE(plane); \-    plane[3] = VEC_DOT(e1,plane);\+vec3f _dif; \+VEC_DIFF(_dif,e2,e1); \+VEC_CROSS(plane,_dif,n); \+VEC_NORMALIZE(plane); \+plane[3] = VEC_DOT(e1,plane);\ }\  #define DISTANCE_PLANE_POINT(plane,point) (VEC_DOT(plane,point) - plane[3])  #define PROJECT_POINT_PLANE(point,plane,projected) {\-	GREAL _dis;\-	_dis = DISTANCE_PLANE_POINT(plane,point);\-	VEC_SCALE(projected,-_dis,plane);\-	VEC_SUM(projected,projected,point);	\+GREAL _dis;\+_dis = DISTANCE_PLANE_POINT(plane,point);\+VEC_SCALE(projected,-_dis,plane);\+VEC_SUM(projected,projected,point); \ }\  //! Verifies if a point is in the plane hull template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE bool POINT_IN_HULL(-	const CLASS_POINT& point,const CLASS_PLANE * planes,GUINT plane_count)+const CLASS_POINT& point,const CLASS_PLANE * planes,GUINT plane_count) {-	GREAL _dis;-	for (GUINT _i = 0;_i< plane_count;++_i)-	{-		_dis = DISTANCE_PLANE_POINT(planes[_i],point);-	    if(_dis>0.0f) return false;-	}-	return true;+GREAL _dis;+for (GUINT _i = 0;_i< plane_count;++_i)+{+_dis = DISTANCE_PLANE_POINT(planes[_i],point);+if(_dis>0.0f) return false; }+return true;+}  template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE void PLANE_CLIP_SEGMENT(-	const CLASS_POINT& s1,-	const CLASS_POINT &s2,const CLASS_PLANE &plane,CLASS_POINT &clipped)+const CLASS_POINT& s1,+const CLASS_POINT &s2,const CLASS_PLANE &plane,CLASS_POINT &clipped) {-	GREAL _dis1,_dis2;-	_dis1 = DISTANCE_PLANE_POINT(plane,s1);-	VEC_DIFF(clipped,s2,s1);-	_dis2 = VEC_DOT(clipped,plane);-	VEC_SCALE(clipped,-_dis1/_dis2,clipped);-	VEC_SUM(clipped,clipped,s1);+GREAL _dis1,_dis2;+_dis1 = DISTANCE_PLANE_POINT(plane,s1);+VEC_DIFF(clipped,s2,s1);+_dis2 = VEC_DOT(clipped,plane);+VEC_SCALE(clipped,-_dis1/_dis2,clipped);+VEC_SUM(clipped,clipped,s1); }  enum ePLANE_INTERSECTION_TYPE {-	G_BACK_PLANE = 0,-	G_COLLIDE_PLANE,-	G_FRONT_PLANE+G_BACK_PLANE = 0,+G_COLLIDE_PLANE,+G_FRONT_PLANE };  enum eLINE_PLANE_INTERSECTION_TYPE {-	G_FRONT_PLANE_S1 = 0,-	G_FRONT_PLANE_S2,-	G_BACK_PLANE_S1,-	G_BACK_PLANE_S2,-	G_COLLIDE_PLANE_S1,-	G_COLLIDE_PLANE_S2+G_FRONT_PLANE_S1 = 0,+G_FRONT_PLANE_S2,+G_BACK_PLANE_S1,+G_BACK_PLANE_S2,+G_COLLIDE_PLANE_S1,+G_COLLIDE_PLANE_S2 };  //! Confirms if the plane intersect the edge or nor@@ -151,29 +151,29 @@  template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE eLINE_PLANE_INTERSECTION_TYPE PLANE_CLIP_SEGMENT2(-	const CLASS_POINT& s1,-	const CLASS_POINT &s2,-	const CLASS_PLANE &plane,CLASS_POINT &clipped)+const CLASS_POINT& s1,+const CLASS_POINT &s2,+const CLASS_PLANE &plane,CLASS_POINT &clipped) {-	GREAL _dis1 = DISTANCE_PLANE_POINT(plane,s1);-	GREAL _dis2 = DISTANCE_PLANE_POINT(plane,s2);-	if(_dis1 >-G_EPSILON && _dis2 >-G_EPSILON)-	{-	    if(_dis1<_dis2) return G_FRONT_PLANE_S1;-	    return G_FRONT_PLANE_S2;-	}-	else if(_dis1 <G_EPSILON && _dis2 <G_EPSILON)-	{-	    if(_dis1>_dis2) return G_BACK_PLANE_S1;-	    return G_BACK_PLANE_S2;-	}+GREAL _dis1 = DISTANCE_PLANE_POINT(plane,s1);+GREAL _dis2 = DISTANCE_PLANE_POINT(plane,s2);+if(_dis1 >-G_EPSILON && _dis2 >-G_EPSILON)+{+if(_dis1<_dis2) return G_FRONT_PLANE_S1;+return G_FRONT_PLANE_S2;+}+else if(_dis1 <G_EPSILON && _dis2 <G_EPSILON)+{+if(_dis1>_dis2) return G_BACK_PLANE_S1;+return G_BACK_PLANE_S2;+} -	VEC_DIFF(clipped,s2,s1);-	_dis2 = VEC_DOT(clipped,plane);-	VEC_SCALE(clipped,-_dis1/_dis2,clipped);-	VEC_SUM(clipped,clipped,s1);-	if(_dis1<_dis2) return G_COLLIDE_PLANE_S1;-	return G_COLLIDE_PLANE_S2;+VEC_DIFF(clipped,s2,s1);+_dis2 = VEC_DOT(clipped,plane);+VEC_SCALE(clipped,-_dis1/_dis2,clipped);+VEC_SUM(clipped,clipped,s1);+if(_dis1<_dis2) return G_COLLIDE_PLANE_S1;+return G_COLLIDE_PLANE_S2; }  //! Confirms if the plane intersect the edge or not@@ -193,39 +193,39 @@ */ template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE eLINE_PLANE_INTERSECTION_TYPE PLANE_CLIP_SEGMENT_CLOSEST(-	const CLASS_POINT& s1,-	const CLASS_POINT &s2,-	const CLASS_PLANE &plane,-	CLASS_POINT &clipped1,CLASS_POINT &clipped2)+const CLASS_POINT& s1,+const CLASS_POINT &s2,+const CLASS_PLANE &plane,+CLASS_POINT &clipped1,CLASS_POINT &clipped2) {-	eLINE_PLANE_INTERSECTION_TYPE intersection_type = PLANE_CLIP_SEGMENT2(s1,s2,plane,clipped1);-	switch(intersection_type)-	{-	case G_FRONT_PLANE_S1:-		VEC_COPY(clipped1,s1);-	    VEC_COPY(clipped2,s2);-		break;-	case G_FRONT_PLANE_S2:-		VEC_COPY(clipped1,s2);-	    VEC_COPY(clipped2,s1);-		break;-	case G_BACK_PLANE_S1:-		VEC_COPY(clipped1,s1);-	    VEC_COPY(clipped2,s2);-		break;-	case G_BACK_PLANE_S2:-		VEC_COPY(clipped1,s2);-	    VEC_COPY(clipped2,s1);-		break;-	case G_COLLIDE_PLANE_S1:-		VEC_COPY(clipped2,s1);-		break;-	case G_COLLIDE_PLANE_S2:-		VEC_COPY(clipped2,s2);-		break;-	}-	return intersection_type;+eLINE_PLANE_INTERSECTION_TYPE intersection_type = PLANE_CLIP_SEGMENT2(s1,s2,plane,clipped1);+switch(intersection_type)+{+case G_FRONT_PLANE_S1:+VEC_COPY(clipped1,s1);+VEC_COPY(clipped2,s2);+break;+case G_FRONT_PLANE_S2:+VEC_COPY(clipped1,s2);+VEC_COPY(clipped2,s1);+break;+case G_BACK_PLANE_S1:+VEC_COPY(clipped1,s1);+VEC_COPY(clipped2,s2);+break;+case G_BACK_PLANE_S2:+VEC_COPY(clipped1,s2);+VEC_COPY(clipped2,s1);+break;+case G_COLLIDE_PLANE_S1:+VEC_COPY(clipped2,s1);+break;+case G_COLLIDE_PLANE_S2:+VEC_COPY(clipped2,s2);+break; }+return intersection_type;+}   //! Finds the 2 smallest cartesian coordinates of a plane normal@@ -238,126 +238,126 @@ */ template<typename T,typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE bool RAY_PLANE_COLLISION(-	const CLASS_PLANE & plane,-	const CLASS_POINT & vDir,-	const CLASS_POINT & vPoint,-	CLASS_POINT & pout,T &tparam)+const CLASS_PLANE & plane,+const CLASS_POINT & vDir,+const CLASS_POINT & vPoint,+CLASS_POINT & pout,T &tparam) {-	GREAL _dis,_dotdir;-	_dotdir = VEC_DOT(plane,vDir);-	if(_dotdir<PLANEDIREPSILON)-	{-	    return false;-	}-	_dis = DISTANCE_PLANE_POINT(plane,vPoint);-	tparam = -_dis/_dotdir;-	VEC_SCALE(pout,tparam,vDir);-	VEC_SUM(pout,vPoint,pout);-	return true;+GREAL _dis,_dotdir;+_dotdir = VEC_DOT(plane,vDir);+if(_dotdir<PLANEDIREPSILON)+{+return false; }+_dis = DISTANCE_PLANE_POINT(plane,vPoint);+tparam = -_dis/_dotdir;+VEC_SCALE(pout,tparam,vDir);+VEC_SUM(pout,vPoint,pout);+return true;+}  //! line collision /*! *\return-	-0  if the ray never intersects-	-1 if the ray collides in front-	-2 if the ray collides in back+-0 if the ray never intersects+-1 if the ray collides in front+-2 if the ray collides in back */ template<typename T,typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE GUINT LINE_PLANE_COLLISION(-	const CLASS_PLANE & plane,-	const CLASS_POINT & vDir,-	const CLASS_POINT & vPoint,-	CLASS_POINT & pout,-	T &tparam,-	T tmin, T tmax)+const CLASS_PLANE & plane,+const CLASS_POINT & vDir,+const CLASS_POINT & vPoint,+CLASS_POINT & pout,+T &tparam,+T tmin, T tmax) {-	GREAL _dis,_dotdir;-	_dotdir = VEC_DOT(plane,vDir);-	if(btFabs(_dotdir)<PLANEDIREPSILON)-	{-		tparam = tmax;-	    return 0;-	}-	_dis = DISTANCE_PLANE_POINT(plane,vPoint);-	char returnvalue = _dis<0.0f?2:1;-	tparam = -_dis/_dotdir;+GREAL _dis,_dotdir;+_dotdir = VEC_DOT(plane,vDir);+if(btFabs(_dotdir)<PLANEDIREPSILON)+{+tparam = tmax;+return 0;+}+_dis = DISTANCE_PLANE_POINT(plane,vPoint);+char returnvalue = _dis<0.0f?2:1;+tparam = -_dis/_dotdir; -	if(tparam<tmin)-	{-		returnvalue = 0;-		tparam = tmin;-	}-	else if(tparam>tmax)-	{-		returnvalue = 0;-		tparam = tmax;-	}+if(tparam<tmin)+{+returnvalue = 0;+tparam = tmin;+}+else if(tparam>tmax)+{+returnvalue = 0;+tparam = tmax;+} -	VEC_SCALE(pout,tparam,vDir);-	VEC_SUM(pout,vPoint,pout);-	return returnvalue;+VEC_SCALE(pout,tparam,vDir);+VEC_SUM(pout,vPoint,pout);+return returnvalue; }  /*! \brief Returns the Ray on which 2 planes intersect if they do.-    Written by Rodrigo Hernandez on ODE convex collision+Written by Rodrigo Hernandez on ODE convex collision -  \param p1 Plane 1-  \param p2 Plane 2-  \param p Contains the origin of the ray upon returning if planes intersect-  \param d Contains the direction of the ray upon returning if planes intersect-  \return true if the planes intersect, 0 if paralell.+\param p1 Plane 1+\param p2 Plane 2+\param p Contains the origin of the ray upon returning if planes intersect+\param d Contains the direction of the ray upon returning if planes intersect+\return true if the planes intersect, 0 if paralell.  */ template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE bool INTERSECT_PLANES(-		const CLASS_PLANE &p1,-		const CLASS_PLANE &p2,-		CLASS_POINT &p,-		CLASS_POINT &d)+const CLASS_PLANE &p1,+const CLASS_PLANE &p2,+CLASS_POINT &p,+CLASS_POINT &d) {-	VEC_CROSS(d,p1,p2);-  	GREAL denom = VEC_DOT(d, d);-  	if(GIM_IS_ZERO(denom)) return false;-	vec3f _n;-	_n[0]=p1[3]*p2[0] - p2[3]*p1[0];-	_n[1]=p1[3]*p2[1] - p2[3]*p1[1];-	_n[2]=p1[3]*p2[2] - p2[3]*p1[2];-	VEC_CROSS(p,_n,d);-	p[0]/=denom;-	p[1]/=denom;-	p[2]/=denom;-	return true;+VEC_CROSS(d,p1,p2);+GREAL denom = VEC_DOT(d, d);+if(GIM_IS_ZERO(denom)) return false;+vec3f _n;+_n[0]=p1[3]*p2[0] - p2[3]*p1[0];+_n[1]=p1[3]*p2[1] - p2[3]*p1[1];+_n[2]=p1[3]*p2[2] - p2[3]*p1[2];+VEC_CROSS(p,_n,d);+p[0]/=denom;+p[1]/=denom;+p[2]/=denom;+return true; }  //***************** SEGMENT and LINE FUNCTIONS **********************************///  /*! Finds the closest point(cp) to (v) on a segment (e1,e2)- */+*/ template<typename CLASS_POINT> SIMD_FORCE_INLINE void CLOSEST_POINT_ON_SEGMENT(-	CLASS_POINT & cp, const CLASS_POINT & v,-	const CLASS_POINT &e1,const CLASS_POINT &e2)+CLASS_POINT & cp, const CLASS_POINT & v,+const CLASS_POINT &e1,const CLASS_POINT &e2) {-    vec3f _n;-    VEC_DIFF(_n,e2,e1);-    VEC_DIFF(cp,v,e1);-	GREAL _scalar = VEC_DOT(cp, _n);-	_scalar/= VEC_DOT(_n, _n);-	if(_scalar <0.0f)-	{-	    VEC_COPY(cp,e1);-	}-	else if(_scalar >1.0f)-	{-	    VEC_COPY(cp,e2);-	}-	else-	{-        VEC_SCALE(cp,_scalar,_n);-        VEC_SUM(cp,cp,e1);-	}+vec3f _n;+VEC_DIFF(_n,e2,e1);+VEC_DIFF(cp,v,e1);+GREAL _scalar = VEC_DOT(cp, _n);+_scalar/= VEC_DOT(_n, _n);+if(_scalar <0.0f)+{+VEC_COPY(cp,e1); }+else if(_scalar >1.0f)+{+VEC_COPY(cp,e2);+}+else+{+VEC_SCALE(cp,_scalar,_n);+VEC_SUM(cp,cp,e1);+}+}   /*! \brief Finds the line params where these lines intersect.@@ -368,116 +368,116 @@ \param point2 Point of line 2 \param t1 Result Parameter for line 1 \param t2 Result Parameter for line 2-\param dointersect  0  if the lines won't intersect, else 1+\param dointersect 0 if the lines won't intersect, else 1  */ template<typename T,typename CLASS_POINT> SIMD_FORCE_INLINE bool LINE_INTERSECTION_PARAMS(-	const CLASS_POINT & dir1,-	CLASS_POINT & point1,-	const CLASS_POINT & dir2,-	CLASS_POINT &  point2,-	T& t1,T& t2)+const CLASS_POINT & dir1,+CLASS_POINT & point1,+const CLASS_POINT & dir2,+CLASS_POINT & point2,+T& t1,T& t2) {-    GREAL det;-	GREAL e1e1 = VEC_DOT(dir1,dir1);-	GREAL e1e2 = VEC_DOT(dir1,dir2);-	GREAL e2e2 = VEC_DOT(dir2,dir2);-	vec3f p1p2;-    VEC_DIFF(p1p2,point1,point2);-    GREAL p1p2e1 = VEC_DOT(p1p2,dir1);-	GREAL p1p2e2 = VEC_DOT(p1p2,dir2);-	det = e1e2*e1e2 - e1e1*e2e2;-	if(GIM_IS_ZERO(det)) return false;-	t1 = (e1e2*p1p2e2 - e2e2*p1p2e1)/det;-	t2 = (e1e1*p1p2e2 - e1e2*p1p2e1)/det;-	return true;+GREAL det;+GREAL e1e1 = VEC_DOT(dir1,dir1);+GREAL e1e2 = VEC_DOT(dir1,dir2);+GREAL e2e2 = VEC_DOT(dir2,dir2);+vec3f p1p2;+VEC_DIFF(p1p2,point1,point2);+GREAL p1p2e1 = VEC_DOT(p1p2,dir1);+GREAL p1p2e2 = VEC_DOT(p1p2,dir2);+det = e1e2*e1e2 - e1e1*e2e2;+if(GIM_IS_ZERO(det)) return false;+t1 = (e1e2*p1p2e2 - e2e2*p1p2e1)/det;+t2 = (e1e1*p1p2e2 - e1e2*p1p2e1)/det;+return true; }  //! Find closest points on segments template<typename CLASS_POINT> SIMD_FORCE_INLINE void SEGMENT_COLLISION(-	const CLASS_POINT & vA1,-	const CLASS_POINT & vA2,-	const CLASS_POINT & vB1,-	const CLASS_POINT & vB2,-	CLASS_POINT & vPointA,-	CLASS_POINT & vPointB)+const CLASS_POINT & vA1,+const CLASS_POINT & vA2,+const CLASS_POINT & vB1,+const CLASS_POINT & vB2,+CLASS_POINT & vPointA,+CLASS_POINT & vPointB) {-    CLASS_POINT _AD,_BD,_N;-    vec4f _M;//plane-    VEC_DIFF(_AD,vA2,vA1);-    VEC_DIFF(_BD,vB2,vB1);-    VEC_CROSS(_N,_AD,_BD);-    GREAL _tp = VEC_DOT(_N,_N);-    if(_tp<G_EPSILON)//ARE PARALELE-    {-    	//project B over A-    	bool invert_b_order = false;-    	_M[0] = VEC_DOT(vB1,_AD);-    	_M[1] = VEC_DOT(vB2,_AD);-    	if(_M[0]>_M[1])-    	{-    		invert_b_order  = true;-    		GIM_SWAP_NUMBERS(_M[0],_M[1]);-    	}-    	_M[2] = VEC_DOT(vA1,_AD);-    	_M[3] = VEC_DOT(vA2,_AD);-    	//mid points-    	_N[0] = (_M[0]+_M[1])*0.5f;-    	_N[1] = (_M[2]+_M[3])*0.5f;+CLASS_POINT _AD,_BD,_N;+vec4f _M;//plane+VEC_DIFF(_AD,vA2,vA1);+VEC_DIFF(_BD,vB2,vB1);+VEC_CROSS(_N,_AD,_BD);+GREAL _tp = VEC_DOT(_N,_N);+if(_tp<G_EPSILON)//ARE PARALELE+{+//project B over A+bool invert_b_order = false;+_M[0] = VEC_DOT(vB1,_AD);+_M[1] = VEC_DOT(vB2,_AD);+if(_M[0]>_M[1])+{+invert_b_order = true;+GIM_SWAP_NUMBERS(_M[0],_M[1]);+}+_M[2] = VEC_DOT(vA1,_AD);+_M[3] = VEC_DOT(vA2,_AD);+//mid points+_N[0] = (_M[0]+_M[1])*0.5f;+_N[1] = (_M[2]+_M[3])*0.5f; -    	if(_N[0]<_N[1])-    	{-    		if(_M[1]<_M[2])-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			vPointA = vA1;-    		}-    		else if(_M[1]<_M[3])-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			CLOSEST_POINT_ON_SEGMENT(vPointA,vPointB,vA1,vA2);-    		}-    		else-    		{-    			vPointA = vA2;-    			CLOSEST_POINT_ON_SEGMENT(vPointB,vPointA,vB1,vB2);-    		}-    	}-    	else-    	{-    		if(_M[3]<_M[0])-    		{-    			vPointB = invert_b_order?vB2:vB1;-    			vPointA = vA2;-    		}-    		else if(_M[3]<_M[1])-    		{-    			vPointA = vA2;-    			CLOSEST_POINT_ON_SEGMENT(vPointB,vPointA,vB1,vB2);-    		}-    		else-    		{-    			vPointB = invert_b_order?vB1:vB2;-    			CLOSEST_POINT_ON_SEGMENT(vPointA,vPointB,vA1,vA2);-    		}-    	}-    	return;-    }+if(_N[0]<_N[1])+{+if(_M[1]<_M[2])+{+vPointB = invert_b_order?vB1:vB2;+vPointA = vA1;+}+else if(_M[1]<_M[3])+{+vPointB = invert_b_order?vB1:vB2;+CLOSEST_POINT_ON_SEGMENT(vPointA,vPointB,vA1,vA2);+}+else+{+vPointA = vA2;+CLOSEST_POINT_ON_SEGMENT(vPointB,vPointA,vB1,vB2);+}+}+else+{+if(_M[3]<_M[0])+{+vPointB = invert_b_order?vB2:vB1;+vPointA = vA2;+}+else if(_M[3]<_M[1])+{+vPointA = vA2;+CLOSEST_POINT_ON_SEGMENT(vPointB,vPointA,vB1,vB2);+}+else+{+vPointB = invert_b_order?vB1:vB2;+CLOSEST_POINT_ON_SEGMENT(vPointA,vPointB,vA1,vA2);+}+}+return;+}  -    VEC_CROSS(_M,_N,_BD);-    _M[3] = VEC_DOT(_M,vB1);+VEC_CROSS(_M,_N,_BD);+_M[3] = VEC_DOT(_M,vB1); -    LINE_PLANE_COLLISION(_M,_AD,vA1,vPointA,_tp,btScalar(0), btScalar(1));-    /*Closest point on segment*/-    VEC_DIFF(vPointB,vPointA,vB1);-	_tp = VEC_DOT(vPointB, _BD);-	_tp/= VEC_DOT(_BD, _BD);-	_tp = GIM_CLAMP(_tp,0.0f,1.0f);-    VEC_SCALE(vPointB,_tp,_BD);-    VEC_SUM(vPointB,vPointB,vB1);+LINE_PLANE_COLLISION(_M,_AD,vA1,vPointA,_tp,btScalar(0), btScalar(1));+/*Closest point on segment*/+VEC_DIFF(vPointB,vPointA,vB1);+_tp = VEC_DOT(vPointB, _BD);+_tp/= VEC_DOT(_BD, _BD);+_tp = GIM_CLAMP(_tp,0.0f,1.0f);+VEC_SCALE(vPointB,_tp,_BD);+VEC_SUM(vPointB,vPointB,vB1); }  @@ -497,43 +497,43 @@ template<typename T> SIMD_FORCE_INLINE bool BOX_AXIS_INTERSECT(T pos, T dir,T bmin, T bmax, T & tfirst, T & tlast) {-	if(GIM_IS_ZERO(dir))-	{-        return !(pos < bmin || pos > bmax);-	}-	GREAL a0 = (bmin - pos) / dir;-	GREAL a1 = (bmax - pos) / dir;-	if(a0 > a1)   GIM_SWAP_NUMBERS(a0, a1);-	tfirst = GIM_MAX(a0, tfirst);-	tlast = GIM_MIN(a1, tlast);-	if (tlast < tfirst) return false;-	return true;+if(GIM_IS_ZERO(dir))+{+return !(pos < bmin || pos > bmax); }+GREAL a0 = (bmin - pos) / dir;+GREAL a1 = (bmax - pos) / dir;+if(a0 > a1) GIM_SWAP_NUMBERS(a0, a1);+tfirst = GIM_MAX(a0, tfirst);+tlast = GIM_MIN(a1, tlast);+if (tlast < tfirst) return false;+return true;+}   //! Sorts 3 componets template<typename T> SIMD_FORCE_INLINE void SORT_3_INDICES(-		const T * values,-		GUINT * order_indices)+const T * values,+GUINT * order_indices) {-	//get minimum-	order_indices[0] = values[0] < values[1] ? (values[0] < values[2] ? 0 : 2) : (values[1] < values[2] ? 1 : 2);+//get minimum+order_indices[0] = values[0] < values[1] ? (values[0] < values[2] ? 0 : 2) : (values[1] < values[2] ? 1 : 2); -	//get second and third-	GUINT i0 = (order_indices[0] + 1)%3;-	GUINT i1 = (i0 + 1)%3;+//get second and third+GUINT i0 = (order_indices[0] + 1)%3;+GUINT i1 = (i0 + 1)%3; -	if(values[i0] < values[i1])-	{-		order_indices[1] = i0;-		order_indices[2] = i1;-	}-	else-	{-		order_indices[1] = i1;-		order_indices[2] = i0;-	}+if(values[i0] < values[i1])+{+order_indices[1] = i0;+order_indices[2] = i1;+}+else+{+order_indices[1] = i1;+order_indices[2] = i0;+} }  
bullet/BulletCollision/Gimpact/gim_bitset.h view
@@ -12,22 +12,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -39,81 +39,81 @@ #define GUINT_EXPONENT 5  class gim_bitset-{+{ private: public:-    gim_array<GUINT> m_container;+gim_array<GUINT> m_container; -    gim_bitset()-    {+gim_bitset()+{ -    }+} -    gim_bitset(GUINT bits_count)-    {-        resize(bits_count);-    }+gim_bitset(GUINT bits_count)+{+resize(bits_count);+} -    ~gim_bitset()-    {-    }+~gim_bitset()+{+} -	inline bool resize(GUINT newsize)-	{-		GUINT oldsize = m_container.size();-		m_container.resize(newsize/GUINT_BIT_COUNT + 1,false);-		while(oldsize<m_container.size())-		{-			m_container[oldsize] = 0;-		}-		return true;-	}+inline bool resize(GUINT newsize)+{+GUINT oldsize = m_container.size();+m_container.resize(newsize/GUINT_BIT_COUNT + 1,false);+while(oldsize<m_container.size())+{+m_container[oldsize] = 0;+}+return true;+} -	inline GUINT size()-	{-		return m_container.size()*GUINT_BIT_COUNT;-	}+inline GUINT size()+{+return m_container.size()*GUINT_BIT_COUNT;+} -	inline void set_all()-	{-		for(GUINT i = 0;i<m_container.size();++i)-		{-			m_container[i] = 0xffffffff;-		}-	}+inline void set_all()+{+for(GUINT i = 0;i<m_container.size();++i)+{+m_container[i] = 0xffffffff;+}+} -	inline void clear_all()-	{-	    for(GUINT i = 0;i<m_container.size();++i)-		{-			m_container[i] = 0;-		}-	}+inline void clear_all()+{+for(GUINT i = 0;i<m_container.size();++i)+{+m_container[i] = 0;+}+} -	inline void set(GUINT bit_index)-	{-		if(bit_index>=size())-		{-			resize(bit_index);-		}-		m_container[bit_index >> GUINT_EXPONENT] |= (1 << (bit_index & (GUINT_BIT_COUNT-1)));-	}+inline void set(GUINT bit_index)+{+if(bit_index>=size())+{+resize(bit_index);+}+m_container[bit_index >> GUINT_EXPONENT] |= (1 << (bit_index & (GUINT_BIT_COUNT-1)));+} -	///Return 0 or 1-	inline char get(GUINT bit_index)-	{-		if(bit_index>=size())-		{-			return 0;-		}-		char value = m_container[bit_index >> GUINT_EXPONENT] &-					 (1 << (bit_index & (GUINT_BIT_COUNT-1)));-		return value;-	}+///Return 0 or 1+inline char get(GUINT bit_index)+{+if(bit_index>=size())+{+return 0;+}+char value = m_container[bit_index >> GUINT_EXPONENT] &+(1 << (bit_index & (GUINT_BIT_COUNT-1)));+return value;+} -	inline void clear(GUINT bit_index)-	{-	    m_container[bit_index >> GUINT_EXPONENT] &= ~(1 << (bit_index & (GUINT_BIT_COUNT-1)));-	}+inline void clear(GUINT bit_index)+{+m_container[bit_index >> GUINT_EXPONENT] &= ~(1 << (bit_index & (GUINT_BIT_COUNT-1)));+} };  
bullet/BulletCollision/Gimpact/gim_box_collision.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -38,158 +38,158 @@   //SIMD_FORCE_INLINE bool test_cross_edge_box(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, const btVector3 & extend,-//	int dir_index0,-//	int dir_index1-//	int component_index0,-//	int component_index1)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, const btVector3 & extend,+// int dir_index0,+// int dir_index1+// int component_index0,+// int component_index1) //{-//	// dir coords are -z and y+// // dir coords are -z and y //-//	const btScalar dir0 = -edge[dir_index0];-//	const btScalar dir1 = edge[dir_index1];-//	btScalar pmin = pointa[component_index0]*dir0 + pointa[component_index1]*dir1;-//	btScalar pmax = pointb[component_index0]*dir0 + pointb[component_index1]*dir1;-//	//find minmax-//	if(pmin>pmax)-//	{-//		GIM_SWAP_NUMBERS(pmin,pmax);-//	}-//	//find extends-//	const btScalar rad = extend[component_index0] * absolute_edge[dir_index0] +-//					extend[component_index1] * absolute_edge[dir_index1];+// const btScalar dir0 = -edge[dir_index0];+// const btScalar dir1 = edge[dir_index1];+// btScalar pmin = pointa[component_index0]*dir0 + pointa[component_index1]*dir1;+// btScalar pmax = pointb[component_index0]*dir0 + pointb[component_index1]*dir1;+// //find minmax+// if(pmin>pmax)+// {+// GIM_SWAP_NUMBERS(pmin,pmax);+// }+// //find extends+// const btScalar rad = extend[component_index0] * absolute_edge[dir_index0] ++// extend[component_index1] * absolute_edge[dir_index1]; //-//	if(pmin>rad || -rad>pmax) return false;-//	return true;+// if(pmin>rad || -rad>pmax) return false;+// return true; //} // //SIMD_FORCE_INLINE bool test_cross_edge_box_X_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,2,1,1,2);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,2,1,1,2); //} // // //SIMD_FORCE_INLINE bool test_cross_edge_box_Y_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,0,2,2,0);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,0,2,2,0); //} // //SIMD_FORCE_INLINE bool test_cross_edge_box_Z_axis(-//	const btVector3 & edge,-//	const btVector3 & absolute_edge,-//	const btVector3 & pointa,-//	const btVector3 & pointb, btVector3 & extend)+// const btVector3 & edge,+// const btVector3 & absolute_edge,+// const btVector3 & pointa,+// const btVector3 & pointb, btVector3 & extend) //{ //-//	return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,1,0,0,1);+// return test_cross_edge_box(edge,absolute_edge,pointa,pointb,extend,1,0,0,1); //}  #define TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,i_dir_0,i_dir_1,i_comp_0,i_comp_1)\ {\-	const btScalar dir0 = -edge[i_dir_0];\-	const btScalar dir1 = edge[i_dir_1];\-	btScalar pmin = pointa[i_comp_0]*dir0 + pointa[i_comp_1]*dir1;\-	btScalar pmax = pointb[i_comp_0]*dir0 + pointb[i_comp_1]*dir1;\-	if(pmin>pmax)\-	{\-		GIM_SWAP_NUMBERS(pmin,pmax); \-	}\-	const btScalar abs_dir0 = absolute_edge[i_dir_0];\-	const btScalar abs_dir1 = absolute_edge[i_dir_1];\-	const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1;\-	if(pmin>rad || -rad>pmax) return false;\+const btScalar dir0 = -edge[i_dir_0];\+const btScalar dir1 = edge[i_dir_1];\+btScalar pmin = pointa[i_comp_0]*dir0 + pointa[i_comp_1]*dir1;\+btScalar pmax = pointb[i_comp_0]*dir0 + pointb[i_comp_1]*dir1;\+if(pmin>pmax)\+{\+GIM_SWAP_NUMBERS(pmin,pmax); \ }\+const btScalar abs_dir0 = absolute_edge[i_dir_0];\+const btScalar abs_dir1 = absolute_edge[i_dir_1];\+const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1;\+if(pmin>rad || -rad>pmax) return false;\+}\   #define TEST_CROSS_EDGE_BOX_X_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,2,1,1,2);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,2,1,1,2);\ }\  #define TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,0,2,2,0);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,0,2,2,0);\ }\  #define TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(edge,absolute_edge,pointa,pointb,_extend)\ {\-	TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,1,0,0,1);\+TEST_CROSS_EDGE_BOX_MCR(edge,absolute_edge,pointa,pointb,_extend,1,0,0,1);\ }\   -//!  Class for transforming a model1 to the space of model0+//! Class for transforming a model1 to the space of model0 class GIM_BOX_BOX_TRANSFORM_CACHE-{+{ private: public:-    btVector3  m_T1to0;//!< Transforms translation of model1 to model 0-	btMatrix3x3 m_R1to0;//!< Transforms Rotation of model1 to model 0, equal  to R0' * R1-	btMatrix3x3 m_AR;//!< Absolute value of m_R1to0+btVector3 m_T1to0;//!< Transforms translation of model1 to model 0+btMatrix3x3 m_R1to0;//!< Transforms Rotation of model1 to model 0, equal to R0' * R1+btMatrix3x3 m_AR;//!< Absolute value of m_R1to0 -	SIMD_FORCE_INLINE void calc_absolute_matrix()-	{-		static const btVector3 vepsi(1e-6f,1e-6f,1e-6f);-		m_AR[0] = vepsi + m_R1to0[0].absolute();-		m_AR[1] = vepsi + m_R1to0[1].absolute();-		m_AR[2] = vepsi + m_R1to0[2].absolute();-	}+SIMD_FORCE_INLINE void calc_absolute_matrix()+{+static const btVector3 vepsi(1e-6f,1e-6f,1e-6f);+m_AR[0] = vepsi + m_R1to0[0].absolute();+m_AR[1] = vepsi + m_R1to0[1].absolute();+m_AR[2] = vepsi + m_R1to0[2].absolute();+} -	GIM_BOX_BOX_TRANSFORM_CACHE()-	{-	}+GIM_BOX_BOX_TRANSFORM_CACHE()+{+}  -	GIM_BOX_BOX_TRANSFORM_CACHE(mat4f  trans1_to_0)-	{-		COPY_MATRIX_3X3(m_R1to0,trans1_to_0)-        MAT_GET_TRANSLATION(trans1_to_0,m_T1to0)-		calc_absolute_matrix();-	}+GIM_BOX_BOX_TRANSFORM_CACHE(mat4f trans1_to_0)+{+COPY_MATRIX_3X3(m_R1to0,trans1_to_0)+MAT_GET_TRANSLATION(trans1_to_0,m_T1to0)+calc_absolute_matrix();+} -	//! Calc the transformation relative  1 to 0. Inverts matrics by transposing-	SIMD_FORCE_INLINE void calc_from_homogenic(const btTransform & trans0,const btTransform & trans1)-	{+//! Calc the transformation relative 1 to 0. Inverts matrics by transposing+SIMD_FORCE_INLINE void calc_from_homogenic(const btTransform & trans0,const btTransform & trans1)+{ -		m_R1to0 = trans0.getBasis().transpose();-		m_T1to0 = m_R1to0 * (-trans0.getOrigin());+m_R1to0 = trans0.getBasis().transpose();+m_T1to0 = m_R1to0 * (-trans0.getOrigin()); -		m_T1to0 += m_R1to0*trans1.getOrigin();-		m_R1to0 *= trans1.getBasis();+m_T1to0 += m_R1to0*trans1.getOrigin();+m_R1to0 *= trans1.getBasis(); -		calc_absolute_matrix();-	}+calc_absolute_matrix();+} -	//! Calcs the full invertion of the matrices. Useful for scaling matrices-	SIMD_FORCE_INLINE void calc_from_full_invert(const btTransform & trans0,const btTransform & trans1)-	{-		m_R1to0 = trans0.getBasis().inverse();-		m_T1to0 = m_R1to0 * (-trans0.getOrigin());+//! Calcs the full invertion of the matrices. Useful for scaling matrices+SIMD_FORCE_INLINE void calc_from_full_invert(const btTransform & trans0,const btTransform & trans1)+{+m_R1to0 = trans0.getBasis().inverse();+m_T1to0 = m_R1to0 * (-trans0.getOrigin()); -		m_T1to0 += m_R1to0*trans1.getOrigin();-		m_R1to0 *= trans1.getBasis();+m_T1to0 += m_R1to0*trans1.getOrigin();+m_R1to0 *= trans1.getBasis(); -		calc_absolute_matrix();-	}+calc_absolute_matrix();+} -	SIMD_FORCE_INLINE btVector3 transform(const btVector3 & point)-	{-		return btVector3(m_R1to0[0].dot(point) + m_T1to0.x(),-			m_R1to0[1].dot(point) + m_T1to0.y(),-			m_R1to0[2].dot(point) + m_T1to0.z());-	}+SIMD_FORCE_INLINE btVector3 transform(const btVector3 & point)+{+return btVector3(m_R1to0[0].dot(point) + m_T1to0.x(),+m_R1to0[1].dot(point) + m_T1to0.y(),+m_R1to0[2].dot(point) + m_T1to0.z());+} };  @@ -197,392 +197,392 @@  //! Axis aligned box class GIM_AABB-{+{ private: public:-	btVector3 m_min;-	btVector3 m_max;+btVector3 m_min;+btVector3 m_max; -	GIM_AABB()-	{}+GIM_AABB()+{}  -	GIM_AABB(const btVector3 & V1,-			 const btVector3 & V2,-			 const btVector3 & V3)-	{-		m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);+GIM_AABB(const btVector3 & V1,+const btVector3 & V2,+const btVector3 & V3)+{+m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);-	}+m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);+} -	GIM_AABB(const btVector3 & V1,-			 const btVector3 & V2,-			 const btVector3 & V3,-			 GREAL margin)-	{-		m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);+GIM_AABB(const btVector3 & V1,+const btVector3 & V2,+const btVector3 & V3,+GREAL margin)+{+m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);+m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]); -		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	GIM_AABB(const GIM_AABB &other):-		m_min(other.m_min),m_max(other.m_max)-	{-	}+GIM_AABB(const GIM_AABB &other):+m_min(other.m_min),m_max(other.m_max)+{+} -	GIM_AABB(const GIM_AABB &other,btScalar margin ):-		m_min(other.m_min),m_max(other.m_max)-	{-		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+GIM_AABB(const GIM_AABB &other,btScalar margin ):+m_min(other.m_min),m_max(other.m_max)+{+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	SIMD_FORCE_INLINE void invalidate()-	{-		m_min[0] = G_REAL_INFINITY;-		m_min[1] = G_REAL_INFINITY;-		m_min[2] = G_REAL_INFINITY;-		m_max[0] = -G_REAL_INFINITY;-		m_max[1] = -G_REAL_INFINITY;-		m_max[2] = -G_REAL_INFINITY;-	}+SIMD_FORCE_INLINE void invalidate()+{+m_min[0] = G_REAL_INFINITY;+m_min[1] = G_REAL_INFINITY;+m_min[2] = G_REAL_INFINITY;+m_max[0] = -G_REAL_INFINITY;+m_max[1] = -G_REAL_INFINITY;+m_max[2] = -G_REAL_INFINITY;+} -	SIMD_FORCE_INLINE void increment_margin(btScalar margin)-	{-		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+SIMD_FORCE_INLINE void increment_margin(btScalar margin)+{+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	SIMD_FORCE_INLINE void copy_with_margin(const GIM_AABB &other, btScalar margin)-	{-		m_min[0] = other.m_min[0] - margin;-		m_min[1] = other.m_min[1] - margin;-		m_min[2] = other.m_min[2] - margin;+SIMD_FORCE_INLINE void copy_with_margin(const GIM_AABB &other, btScalar margin)+{+m_min[0] = other.m_min[0] - margin;+m_min[1] = other.m_min[1] - margin;+m_min[2] = other.m_min[2] - margin; -		m_max[0] = other.m_max[0] + margin;-		m_max[1] = other.m_max[1] + margin;-		m_max[2] = other.m_max[2] + margin;-	}+m_max[0] = other.m_max[0] + margin;+m_max[1] = other.m_max[1] + margin;+m_max[2] = other.m_max[2] + margin;+} -	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void calc_from_triangle(-							const CLASS_POINT & V1,-							const CLASS_POINT & V2,-							const CLASS_POINT & V3)-	{-		m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void calc_from_triangle(+const CLASS_POINT & V1,+const CLASS_POINT & V2,+const CLASS_POINT & V3)+{+m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);-	}+m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);+} -	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void calc_from_triangle_margin(-							const CLASS_POINT & V1,-							const CLASS_POINT & V2,-							const CLASS_POINT & V3, btScalar margin)-	{-		m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);-		m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);-		m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]);+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void calc_from_triangle_margin(+const CLASS_POINT & V1,+const CLASS_POINT & V2,+const CLASS_POINT & V3, btScalar margin)+{+m_min[0] = GIM_MIN3(V1[0],V2[0],V3[0]);+m_min[1] = GIM_MIN3(V1[1],V2[1],V3[1]);+m_min[2] = GIM_MIN3(V1[2],V2[2],V3[2]); -		m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);-		m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);-		m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]);+m_max[0] = GIM_MAX3(V1[0],V2[0],V3[0]);+m_max[1] = GIM_MAX3(V1[1],V2[1],V3[1]);+m_max[2] = GIM_MAX3(V1[2],V2[2],V3[2]); -		m_min[0] -= margin;-		m_min[1] -= margin;-		m_min[2] -= margin;-		m_max[0] += margin;-		m_max[1] += margin;-		m_max[2] += margin;-	}+m_min[0] -= margin;+m_min[1] -= margin;+m_min[2] -= margin;+m_max[0] += margin;+m_max[1] += margin;+m_max[2] += margin;+} -	//! Apply a transform to an AABB-	SIMD_FORCE_INLINE void appy_transform(const btTransform & trans)-	{-		btVector3 center = (m_max+m_min)*0.5f;-		btVector3 extends = m_max - center;-		// Compute new center-		center = trans(center);+//! Apply a transform to an AABB+SIMD_FORCE_INLINE void appy_transform(const btTransform & trans)+{+btVector3 center = (m_max+m_min)*0.5f;+btVector3 extends = m_max - center;+// Compute new center+center = trans(center); -		btVector3 textends(extends.dot(trans.getBasis().getRow(0).absolute()),- 				 extends.dot(trans.getBasis().getRow(1).absolute()),-				 extends.dot(trans.getBasis().getRow(2).absolute()));+btVector3 textends(extends.dot(trans.getBasis().getRow(0).absolute()),+extends.dot(trans.getBasis().getRow(1).absolute()),+extends.dot(trans.getBasis().getRow(2).absolute())); -		m_min = center - textends;-		m_max = center + textends;-	}+m_min = center - textends;+m_max = center + textends;+} -	//! Merges a Box-	SIMD_FORCE_INLINE void merge(const GIM_AABB & box)-	{-		m_min[0] = GIM_MIN(m_min[0],box.m_min[0]);-		m_min[1] = GIM_MIN(m_min[1],box.m_min[1]);-		m_min[2] = GIM_MIN(m_min[2],box.m_min[2]);+//! Merges a Box+SIMD_FORCE_INLINE void merge(const GIM_AABB & box)+{+m_min[0] = GIM_MIN(m_min[0],box.m_min[0]);+m_min[1] = GIM_MIN(m_min[1],box.m_min[1]);+m_min[2] = GIM_MIN(m_min[2],box.m_min[2]); -		m_max[0] = GIM_MAX(m_max[0],box.m_max[0]);-		m_max[1] = GIM_MAX(m_max[1],box.m_max[1]);-		m_max[2] = GIM_MAX(m_max[2],box.m_max[2]);-	}+m_max[0] = GIM_MAX(m_max[0],box.m_max[0]);+m_max[1] = GIM_MAX(m_max[1],box.m_max[1]);+m_max[2] = GIM_MAX(m_max[2],box.m_max[2]);+} -	//! Merges a point-	template<typename CLASS_POINT>-	SIMD_FORCE_INLINE void merge_point(const CLASS_POINT & point)-	{-		m_min[0] = GIM_MIN(m_min[0],point[0]);-		m_min[1] = GIM_MIN(m_min[1],point[1]);-		m_min[2] = GIM_MIN(m_min[2],point[2]);+//! Merges a point+template<typename CLASS_POINT>+SIMD_FORCE_INLINE void merge_point(const CLASS_POINT & point)+{+m_min[0] = GIM_MIN(m_min[0],point[0]);+m_min[1] = GIM_MIN(m_min[1],point[1]);+m_min[2] = GIM_MIN(m_min[2],point[2]); -		m_max[0] = GIM_MAX(m_max[0],point[0]);-		m_max[1] = GIM_MAX(m_max[1],point[1]);-		m_max[2] = GIM_MAX(m_max[2],point[2]);-	}+m_max[0] = GIM_MAX(m_max[0],point[0]);+m_max[1] = GIM_MAX(m_max[1],point[1]);+m_max[2] = GIM_MAX(m_max[2],point[2]);+} -	//! Gets the extend and center-	SIMD_FORCE_INLINE void get_center_extend(btVector3 & center,btVector3 & extend)  const-	{-		center = (m_max+m_min)*0.5f;-		extend = m_max - center;-	}+//! Gets the extend and center+SIMD_FORCE_INLINE void get_center_extend(btVector3 & center,btVector3 & extend) const+{+center = (m_max+m_min)*0.5f;+extend = m_max - center;+} -	//! Finds the intersecting box between this box and the other.-	SIMD_FORCE_INLINE void find_intersection(const GIM_AABB & other, GIM_AABB & intersection)  const-	{-		intersection.m_min[0] = GIM_MAX(other.m_min[0],m_min[0]);-		intersection.m_min[1] = GIM_MAX(other.m_min[1],m_min[1]);-		intersection.m_min[2] = GIM_MAX(other.m_min[2],m_min[2]);+//! Finds the intersecting box between this box and the other.+SIMD_FORCE_INLINE void find_intersection(const GIM_AABB & other, GIM_AABB & intersection) const+{+intersection.m_min[0] = GIM_MAX(other.m_min[0],m_min[0]);+intersection.m_min[1] = GIM_MAX(other.m_min[1],m_min[1]);+intersection.m_min[2] = GIM_MAX(other.m_min[2],m_min[2]); -		intersection.m_max[0] = GIM_MIN(other.m_max[0],m_max[0]);-		intersection.m_max[1] = GIM_MIN(other.m_max[1],m_max[1]);-		intersection.m_max[2] = GIM_MIN(other.m_max[2],m_max[2]);-	}+intersection.m_max[0] = GIM_MIN(other.m_max[0],m_max[0]);+intersection.m_max[1] = GIM_MIN(other.m_max[1],m_max[1]);+intersection.m_max[2] = GIM_MIN(other.m_max[2],m_max[2]);+}  -	SIMD_FORCE_INLINE bool has_collision(const GIM_AABB & other) const-	{-		if(m_min[0] > other.m_max[0] ||-		   m_max[0] < other.m_min[0] ||-		   m_min[1] > other.m_max[1] ||-		   m_max[1] < other.m_min[1] ||-		   m_min[2] > other.m_max[2] ||-		   m_max[2] < other.m_min[2])-		{-			return false;-		}-		return true;-	}+SIMD_FORCE_INLINE bool has_collision(const GIM_AABB & other) const+{+if(m_min[0] > other.m_max[0] ||+m_max[0] < other.m_min[0] ||+m_min[1] > other.m_max[1] ||+m_max[1] < other.m_min[1] ||+m_min[2] > other.m_max[2] ||+m_max[2] < other.m_min[2])+{+return false;+}+return true;+} -	/*! \brief Finds the Ray intersection parameter.-	\param aabb Aligned box-	\param vorigin A vec3f with the origin of the ray-	\param vdir A vec3f with the direction of the ray-	*/-	SIMD_FORCE_INLINE bool collide_ray(const btVector3 & vorigin,const btVector3 & vdir)-	{-		btVector3 extents,center;-		this->get_center_extend(center,extents);;+/*! \brief Finds the Ray intersection parameter.+\param aabb Aligned box+\param vorigin A vec3f with the origin of the ray+\param vdir A vec3f with the direction of the ray+*/+SIMD_FORCE_INLINE bool collide_ray(const btVector3 & vorigin,const btVector3 & vdir)+{+btVector3 extents,center;+this->get_center_extend(center,extents);; -		btScalar Dx = vorigin[0] - center[0];-		if(GIM_GREATER(Dx, extents[0]) && Dx*vdir[0]>=0.0f)	return false;-		btScalar Dy = vorigin[1] - center[1];-		if(GIM_GREATER(Dy, extents[1]) && Dy*vdir[1]>=0.0f)	return false;-		btScalar Dz = vorigin[2] - center[2];-		if(GIM_GREATER(Dz, extents[2]) && Dz*vdir[2]>=0.0f)	return false;+btScalar Dx = vorigin[0] - center[0];+if(GIM_GREATER(Dx, extents[0]) && Dx*vdir[0]>=0.0f) return false;+btScalar Dy = vorigin[1] - center[1];+if(GIM_GREATER(Dy, extents[1]) && Dy*vdir[1]>=0.0f) return false;+btScalar Dz = vorigin[2] - center[2];+if(GIM_GREATER(Dz, extents[2]) && Dz*vdir[2]>=0.0f) return false;  -		btScalar f = vdir[1] * Dz - vdir[2] * Dy;-		if(btFabs(f) > extents[1]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[1])) return false;-		f = vdir[2] * Dx - vdir[0] * Dz;-		if(btFabs(f) > extents[0]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[0]))return false;-		f = vdir[0] * Dy - vdir[1] * Dx;-		if(btFabs(f) > extents[0]*btFabs(vdir[1]) + extents[1]*btFabs(vdir[0]))return false;-		return true;-	}+btScalar f = vdir[1] * Dz - vdir[2] * Dy;+if(btFabs(f) > extents[1]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[1])) return false;+f = vdir[2] * Dx - vdir[0] * Dz;+if(btFabs(f) > extents[0]*btFabs(vdir[2]) + extents[2]*btFabs(vdir[0]))return false;+f = vdir[0] * Dy - vdir[1] * Dx;+if(btFabs(f) > extents[0]*btFabs(vdir[1]) + extents[1]*btFabs(vdir[0]))return false;+return true;+}  -	SIMD_FORCE_INLINE void projection_interval(const btVector3 & direction, btScalar &vmin, btScalar &vmax) const-	{-		btVector3 center = (m_max+m_min)*0.5f;-		btVector3 extend = m_max-center;+SIMD_FORCE_INLINE void projection_interval(const btVector3 & direction, btScalar &vmin, btScalar &vmax) const+{+btVector3 center = (m_max+m_min)*0.5f;+btVector3 extend = m_max-center; -		btScalar _fOrigin =  direction.dot(center);-		btScalar _fMaximumExtent = extend.dot(direction.absolute());-		vmin = _fOrigin - _fMaximumExtent;-		vmax = _fOrigin + _fMaximumExtent;-	}+btScalar _fOrigin = direction.dot(center);+btScalar _fMaximumExtent = extend.dot(direction.absolute());+vmin = _fOrigin - _fMaximumExtent;+vmax = _fOrigin + _fMaximumExtent;+} -	SIMD_FORCE_INLINE ePLANE_INTERSECTION_TYPE plane_classify(const btVector4 &plane) const-	{-		btScalar _fmin,_fmax;-		this->projection_interval(plane,_fmin,_fmax);+SIMD_FORCE_INLINE ePLANE_INTERSECTION_TYPE plane_classify(const btVector4 &plane) const+{+btScalar _fmin,_fmax;+this->projection_interval(plane,_fmin,_fmax); -		if(plane[3] > _fmax + BOX_PLANE_EPSILON)-		{-			return G_BACK_PLANE; // 0-		}+if(plane[3] > _fmax + BOX_PLANE_EPSILON)+{+return G_BACK_PLANE; // 0+} -		if(plane[3]+BOX_PLANE_EPSILON >=_fmin)-		{-			return G_COLLIDE_PLANE; //1-		}-		return G_FRONT_PLANE;//2-	}+if(plane[3]+BOX_PLANE_EPSILON >=_fmin)+{+return G_COLLIDE_PLANE; //1+}+return G_FRONT_PLANE;//2+} -	SIMD_FORCE_INLINE bool overlapping_trans_conservative(const GIM_AABB & box, btTransform & trans1_to_0)-	{-		GIM_AABB tbox = box;-		tbox.appy_transform(trans1_to_0);-		return has_collision(tbox);-	}+SIMD_FORCE_INLINE bool overlapping_trans_conservative(const GIM_AABB & box, btTransform & trans1_to_0)+{+GIM_AABB tbox = box;+tbox.appy_transform(trans1_to_0);+return has_collision(tbox);+} -	//! transcache is the transformation cache from box to this AABB-	SIMD_FORCE_INLINE bool overlapping_trans_cache(-		const GIM_AABB & box,const GIM_BOX_BOX_TRANSFORM_CACHE & transcache, bool fulltest)-	{+//! transcache is the transformation cache from box to this AABB+SIMD_FORCE_INLINE bool overlapping_trans_cache(+const GIM_AABB & box,const GIM_BOX_BOX_TRANSFORM_CACHE & transcache, bool fulltest)+{ -		//Taken from OPCODE-		btVector3 ea,eb;//extends-		btVector3 ca,cb;//extends-		get_center_extend(ca,ea);-		box.get_center_extend(cb,eb);+//Taken from OPCODE+btVector3 ea,eb;//extends+btVector3 ca,cb;//extends+get_center_extend(ca,ea);+box.get_center_extend(cb,eb);  -		btVector3 T;-		btScalar t,t2;-		int i;+btVector3 T;+btScalar t,t2;+int i; -		// Class I : A's basis vectors-		for(i=0;i<3;i++)-		{-			T[i] =  transcache.m_R1to0[i].dot(cb) + transcache.m_T1to0[i] - ca[i];-			t = transcache.m_AR[i].dot(eb) + ea[i];-			if(GIM_GREATER(T[i], t))	return false;-		}-		// Class II : B's basis vectors-		for(i=0;i<3;i++)-		{-			t = MAT_DOT_COL(transcache.m_R1to0,T,i);-			t2 = MAT_DOT_COL(transcache.m_AR,ea,i) + eb[i];-			if(GIM_GREATER(t,t2))	return false;-		}-		// Class III : 9 cross products-		if(fulltest)-		{-			int j,m,n,o,p,q,r;-			for(i=0;i<3;i++)-			{-				m = (i+1)%3;-				n = (i+2)%3;-				o = i==0?1:0;-				p = i==2?1:2;-				for(j=0;j<3;j++)-				{-					q = j==2?1:2;-					r = j==0?1:0;-					t = T[n]*transcache.m_R1to0[m][j] - T[m]*transcache.m_R1to0[n][j];-					t2 = ea[o]*transcache.m_AR[p][j] + ea[p]*transcache.m_AR[o][j] +-						eb[r]*transcache.m_AR[i][q] + eb[q]*transcache.m_AR[i][r];-					if(GIM_GREATER(t,t2))	return false;-				}-			}-		}-		return true;-	}+// Class I : A's basis vectors+for(i=0;i<3;i++)+{+T[i] = transcache.m_R1to0[i].dot(cb) + transcache.m_T1to0[i] - ca[i];+t = transcache.m_AR[i].dot(eb) + ea[i];+if(GIM_GREATER(T[i], t)) return false;+}+// Class II : B's basis vectors+for(i=0;i<3;i++)+{+t = MAT_DOT_COL(transcache.m_R1to0,T,i);+t2 = MAT_DOT_COL(transcache.m_AR,ea,i) + eb[i];+if(GIM_GREATER(t,t2)) return false;+}+// Class III : 9 cross products+if(fulltest)+{+int j,m,n,o,p,q,r;+for(i=0;i<3;i++)+{+m = (i+1)%3;+n = (i+2)%3;+o = i==0?1:0;+p = i==2?1:2;+for(j=0;j<3;j++)+{+q = j==2?1:2;+r = j==0?1:0;+t = T[n]*transcache.m_R1to0[m][j] - T[m]*transcache.m_R1to0[n][j];+t2 = ea[o]*transcache.m_AR[p][j] + ea[p]*transcache.m_AR[o][j] ++eb[r]*transcache.m_AR[i][q] + eb[q]*transcache.m_AR[i][r];+if(GIM_GREATER(t,t2)) return false;+}+}+}+return true;+} -	//! Simple test for planes.-	SIMD_FORCE_INLINE bool collide_plane(-		const btVector4 & plane)-	{-		ePLANE_INTERSECTION_TYPE classify = plane_classify(plane);-		return (classify == G_COLLIDE_PLANE);-	}+//! Simple test for planes.+SIMD_FORCE_INLINE bool collide_plane(+const btVector4 & plane)+{+ePLANE_INTERSECTION_TYPE classify = plane_classify(plane);+return (classify == G_COLLIDE_PLANE);+} -	//! test for a triangle, with edges-	SIMD_FORCE_INLINE bool collide_triangle_exact(-		const btVector3 & p1,-		const btVector3 & p2,-		const btVector3 & p3,-		const btVector4 & triangle_plane)-	{-		if(!collide_plane(triangle_plane)) return false;+//! test for a triangle, with edges+SIMD_FORCE_INLINE bool collide_triangle_exact(+const btVector3 & p1,+const btVector3 & p2,+const btVector3 & p3,+const btVector4 & triangle_plane)+{+if(!collide_plane(triangle_plane)) return false; -		btVector3 center,extends;-		this->get_center_extend(center,extends);+btVector3 center,extends;+this->get_center_extend(center,extends); -		const btVector3 v1(p1 - center);-		const btVector3 v2(p2 - center);-		const btVector3 v3(p3 - center);+const btVector3 v1(p1 - center);+const btVector3 v2(p2 - center);+const btVector3 v3(p3 - center); -		//First axis-		btVector3 diff(v2 - v1);-		btVector3 abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v1,v3,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v1,v3,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//First axis+btVector3 diff(v2 - v1);+btVector3 abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v1,v3,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v1,v3,extends);  -		diff = v3 - v2;-		abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v2,v1,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v2,v1,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v2,v1,extends);+diff = v3 - v2;+abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v2,v1,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v2,v1,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v2,v1,extends); -		diff = v1 - v3;-		abs_diff = diff.absolute();-		//Test With X axis-		TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v3,v2,extends);-		//Test With Y axis-		TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v3,v2,extends);-		//Test With Z axis-		TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v3,v2,extends);+diff = v1 - v3;+abs_diff = diff.absolute();+//Test With X axis+TEST_CROSS_EDGE_BOX_X_AXIS_MCR(diff,abs_diff,v3,v2,extends);+//Test With Y axis+TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(diff,abs_diff,v3,v2,extends);+//Test With Z axis+TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(diff,abs_diff,v3,v2,extends); -		return true;-	}+return true;+} };   //! Compairison of transformation objects SIMD_FORCE_INLINE bool btCompareTransformsEqual(const btTransform & t1,const btTransform & t2) {-	if(!(t1.getOrigin() == t2.getOrigin()) ) return false;+if(!(t1.getOrigin() == t2.getOrigin()) ) return false; -	if(!(t1.getBasis().getRow(0) == t2.getBasis().getRow(0)) ) return false;-	if(!(t1.getBasis().getRow(1) == t2.getBasis().getRow(1)) ) return false;-	if(!(t1.getBasis().getRow(2) == t2.getBasis().getRow(2)) ) return false;-	return true;+if(!(t1.getBasis().getRow(0) == t2.getBasis().getRow(0)) ) return false;+if(!(t1.getBasis().getRow(1) == t2.getBasis().getRow(1)) ) return false;+if(!(t1.getBasis().getRow(2) == t2.getBasis().getRow(2)) ) return false;+return true; }  
bullet/BulletCollision/Gimpact/gim_box_set.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -44,40 +44,40 @@ //! Overlapping pair struct GIM_PAIR {-    GUINT m_index1;-    GUINT m_index2;-    GIM_PAIR()-    {}+GUINT m_index1;+GUINT m_index2;+GIM_PAIR()+{} -    GIM_PAIR(const GIM_PAIR & p)-    {-    	m_index1 = p.m_index1;-    	m_index2 = p.m_index2;-	}+GIM_PAIR(const GIM_PAIR & p)+{+m_index1 = p.m_index1;+m_index2 = p.m_index2;+} -	GIM_PAIR(GUINT index1, GUINT index2)-    {-    	m_index1 = index1;-    	m_index2 = index2;-	}+GIM_PAIR(GUINT index1, GUINT index2)+{+m_index1 = index1;+m_index2 = index2;+} };  //! A pairset array class gim_pair_set: public gim_array<GIM_PAIR>-{+{ private: public:-	gim_pair_set():gim_array<GIM_PAIR>(32)-	{-	}-	inline void push_pair(GUINT index1,GUINT index2)-	{-		push_back(GIM_PAIR(index1,index2));-	}+gim_pair_set():gim_array<GIM_PAIR>(32)+{+}+inline void push_pair(GUINT index1,GUINT index2)+{+push_back(GIM_PAIR(index1,index2));+} -	inline void push_pair_inv(GUINT index1,GUINT index2)-	{-		push_back(GIM_PAIR(index2,index1));-	}+inline void push_pair_inv(GUINT index1,GUINT index2)+{+push_back(GIM_PAIR(index2,index1));+} };  @@ -85,123 +85,123 @@ /*! This class is a wrapper for primitive collections. This tells relevant info for the Bounding Box set classes, which take care of space classification.-This class can manage Compound shapes and trimeshes, and if it is managing trimesh then the  Hierarchy Bounding Box classes will take advantage of primitive Vs Box overlapping tests for getting optimal results and less Per Box compairisons.+This class can manage Compound shapes and trimeshes, and if it is managing trimesh then the Hierarchy Bounding Box classes will take advantage of primitive Vs Box overlapping tests for getting optimal results and less Per Box compairisons. */ class GIM_PRIMITIVE_MANAGER_PROTOTYPE-{+{ private: public: -	virtual ~GIM_PRIMITIVE_MANAGER_PROTOTYPE() {}-	//! determines if this manager consist on only triangles, which special case will be optimized-	virtual bool is_trimesh() = 0;-	virtual GUINT get_primitive_count() = 0;-	virtual void get_primitive_box(GUINT prim_index ,GIM_AABB & primbox) = 0;-	virtual void get_primitive_triangle(GUINT prim_index,GIM_TRIANGLE & triangle) = 0;+virtual ~GIM_PRIMITIVE_MANAGER_PROTOTYPE() {}+//! determines if this manager consist on only triangles, which special case will be optimized+virtual bool is_trimesh() = 0;+virtual GUINT get_primitive_count() = 0;+virtual void get_primitive_box(GUINT prim_index ,GIM_AABB & primbox) = 0;+virtual void get_primitive_triangle(GUINT prim_index,GIM_TRIANGLE & triangle) = 0; };   struct GIM_AABB_DATA {-	GIM_AABB m_bound;-	GUINT m_data;+GIM_AABB m_bound;+GUINT m_data; };  //! Node Structure for trees struct GIM_BOX_TREE_NODE {-	GIM_AABB m_bound;-	GUINT m_left;//!< Left subtree-	GUINT m_right;//!< Right subtree-	GUINT m_escapeIndex;//!< Scape index for traversing-	GUINT m_data;//!< primitive index if apply+GIM_AABB m_bound;+GUINT m_left;//!< Left subtree+GUINT m_right;//!< Right subtree+GUINT m_escapeIndex;//!< Scape index for traversing+GUINT m_data;//!< primitive index if apply -	GIM_BOX_TREE_NODE()-	{-	    m_left = 0;-	    m_right = 0;-	    m_escapeIndex = 0;-	    m_data = 0;-	}+GIM_BOX_TREE_NODE()+{+m_left = 0;+m_right = 0;+m_escapeIndex = 0;+m_data = 0;+} -	SIMD_FORCE_INLINE bool is_leaf_node() const-	{-	    return  (!m_left && !m_right);-	}+SIMD_FORCE_INLINE bool is_leaf_node() const+{+return (!m_left && !m_right);+} };  //! Basic Box tree structure class GIM_BOX_TREE-{+{ private: protected:-	GUINT m_num_nodes;-	gim_array<GIM_BOX_TREE_NODE> m_node_array;+GUINT m_num_nodes;+gim_array<GIM_BOX_TREE_NODE> m_node_array; protected:-	GUINT _sort_and_calc_splitting_index(-		gim_array<GIM_AABB_DATA> & primitive_boxes,-		 GUINT startIndex,  GUINT endIndex, GUINT splitAxis);+GUINT _sort_and_calc_splitting_index(+gim_array<GIM_AABB_DATA> & primitive_boxes,+GUINT startIndex, GUINT endIndex, GUINT splitAxis); -	GUINT _calc_splitting_axis(gim_array<GIM_AABB_DATA> & primitive_boxes, GUINT startIndex,  GUINT endIndex);+GUINT _calc_splitting_axis(gim_array<GIM_AABB_DATA> & primitive_boxes, GUINT startIndex, GUINT endIndex); -	void _build_sub_tree(gim_array<GIM_AABB_DATA> & primitive_boxes, GUINT startIndex,  GUINT endIndex);+void _build_sub_tree(gim_array<GIM_AABB_DATA> & primitive_boxes, GUINT startIndex, GUINT endIndex); public:-	GIM_BOX_TREE()-	{-		m_num_nodes = 0;-	}+GIM_BOX_TREE()+{+m_num_nodes = 0;+} -	//! prototype functions for box tree management-	//!@{-	void build_tree(gim_array<GIM_AABB_DATA> & primitive_boxes);+//! prototype functions for box tree management+//!@{+void build_tree(gim_array<GIM_AABB_DATA> & primitive_boxes); -	SIMD_FORCE_INLINE void clearNodes()-	{-		m_node_array.clear();-		m_num_nodes = 0;-	}+SIMD_FORCE_INLINE void clearNodes()+{+m_node_array.clear();+m_num_nodes = 0;+} -	//! node count-	SIMD_FORCE_INLINE GUINT getNodeCount() const-	{-		return m_num_nodes;-	}+//! node count+SIMD_FORCE_INLINE GUINT getNodeCount() const+{+return m_num_nodes;+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(GUINT nodeindex) const-	{-		return m_node_array[nodeindex].is_leaf_node();-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(GUINT nodeindex) const+{+return m_node_array[nodeindex].is_leaf_node();+} -	SIMD_FORCE_INLINE GUINT getNodeData(GUINT nodeindex) const-	{-		return m_node_array[nodeindex].m_data;-	}+SIMD_FORCE_INLINE GUINT getNodeData(GUINT nodeindex) const+{+return m_node_array[nodeindex].m_data;+} -	SIMD_FORCE_INLINE void getNodeBound(GUINT nodeindex, GIM_AABB & bound) const-	{-		bound = m_node_array[nodeindex].m_bound;-	}+SIMD_FORCE_INLINE void getNodeBound(GUINT nodeindex, GIM_AABB & bound) const+{+bound = m_node_array[nodeindex].m_bound;+} -	SIMD_FORCE_INLINE void setNodeBound(GUINT nodeindex, const GIM_AABB & bound)-	{-		m_node_array[nodeindex].m_bound = bound;-	}+SIMD_FORCE_INLINE void setNodeBound(GUINT nodeindex, const GIM_AABB & bound)+{+m_node_array[nodeindex].m_bound = bound;+} -	SIMD_FORCE_INLINE GUINT getLeftNodeIndex(GUINT nodeindex)  const-	{-		return m_node_array[nodeindex].m_left;-	}+SIMD_FORCE_INLINE GUINT getLeftNodeIndex(GUINT nodeindex) const+{+return m_node_array[nodeindex].m_left;+} -	SIMD_FORCE_INLINE GUINT getRightNodeIndex(GUINT nodeindex)  const-	{-		return m_node_array[nodeindex].m_right;-	}+SIMD_FORCE_INLINE GUINT getRightNodeIndex(GUINT nodeindex) const+{+return m_node_array[nodeindex].m_right;+} -	SIMD_FORCE_INLINE GUINT getScapeNodeIndex(GUINT nodeindex) const-	{-		return m_node_array[nodeindex].m_escapeIndex;-	}+SIMD_FORCE_INLINE GUINT getScapeNodeIndex(GUINT nodeindex) const+{+return m_node_array[nodeindex].m_escapeIndex;+} -	//!@}+//!@} };  @@ -213,233 +213,233 @@ */ template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE, typename _GIM_BOX_TREE_PROTOTYPE> class GIM_BOX_TREE_TEMPLATE_SET-{+{ private: protected:-	_GIM_PRIMITIVE_MANAGER_PROTOTYPE m_primitive_manager;-	_GIM_BOX_TREE_PROTOTYPE m_box_tree;+_GIM_PRIMITIVE_MANAGER_PROTOTYPE m_primitive_manager;+_GIM_BOX_TREE_PROTOTYPE m_box_tree; protected:-	//stackless refit-	SIMD_FORCE_INLINE void refit()-	{-		GUINT nodecount = getNodeCount();-		while(nodecount--)-		{-			if(isLeafNode(nodecount))-			{-				GIM_AABB leafbox;-				m_primitive_manager.get_primitive_box(getNodeData(nodecount),leafbox);-				setNodeBound(nodecount,leafbox);-			}-			else-			{-				//get left bound-				GUINT childindex = getLeftNodeIndex(nodecount);-				GIM_AABB bound;-				getNodeBound(childindex,bound);-				//get right bound-				childindex = getRightNodeIndex(nodecount);-				GIM_AABB bound2;-				getNodeBound(childindex,bound2);-				bound.merge(bound2);+//stackless refit+SIMD_FORCE_INLINE void refit()+{+GUINT nodecount = getNodeCount();+while(nodecount--)+{+if(isLeafNode(nodecount))+{+GIM_AABB leafbox;+m_primitive_manager.get_primitive_box(getNodeData(nodecount),leafbox);+setNodeBound(nodecount,leafbox);+}+else+{+//get left bound+GUINT childindex = getLeftNodeIndex(nodecount);+GIM_AABB bound;+getNodeBound(childindex,bound);+//get right bound+childindex = getRightNodeIndex(nodecount);+GIM_AABB bound2;+getNodeBound(childindex,bound2);+bound.merge(bound2); -				setNodeBound(nodecount,bound);-			}-		}-	}+setNodeBound(nodecount,bound);+}+}+} public: -	GIM_BOX_TREE_TEMPLATE_SET()-	{-	}+GIM_BOX_TREE_TEMPLATE_SET()+{+} -	SIMD_FORCE_INLINE GIM_AABB getGlobalBox()  const-	{-		GIM_AABB totalbox;-		getNodeBound(0, totalbox);-		return totalbox;-	}+SIMD_FORCE_INLINE GIM_AABB getGlobalBox() const+{+GIM_AABB totalbox;+getNodeBound(0, totalbox);+return totalbox;+} -	SIMD_FORCE_INLINE void setPrimitiveManager(const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & primitive_manager)-	{-		m_primitive_manager = primitive_manager;-	}+SIMD_FORCE_INLINE void setPrimitiveManager(const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & primitive_manager)+{+m_primitive_manager = primitive_manager;+} -	const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & getPrimitiveManager() const-	{-		return m_primitive_manager;-	}+const _GIM_PRIMITIVE_MANAGER_PROTOTYPE & getPrimitiveManager() const+{+return m_primitive_manager;+} -	_GIM_PRIMITIVE_MANAGER_PROTOTYPE & getPrimitiveManager()-	{-		return m_primitive_manager;-	}+_GIM_PRIMITIVE_MANAGER_PROTOTYPE & getPrimitiveManager()+{+return m_primitive_manager;+}  //! node manager prototype functions ///@{ -	//! this attemps to refit the box set.-	SIMD_FORCE_INLINE void update()-	{-		refit();-	}+//! this attemps to refit the box set.+SIMD_FORCE_INLINE void update()+{+refit();+} -	//! this rebuild the entire set-	SIMD_FORCE_INLINE void buildSet()-	{-		//obtain primitive boxes-		gim_array<GIM_AABB_DATA> primitive_boxes;-		primitive_boxes.resize(m_primitive_manager.get_primitive_count(),false);+//! this rebuild the entire set+SIMD_FORCE_INLINE void buildSet()+{+//obtain primitive boxes+gim_array<GIM_AABB_DATA> primitive_boxes;+primitive_boxes.resize(m_primitive_manager.get_primitive_count(),false); -		for (GUINT i = 0;i<primitive_boxes.size() ;i++ )-		{-			 m_primitive_manager.get_primitive_box(i,primitive_boxes[i].m_bound);-			 primitive_boxes[i].m_data = i;-		}+for (GUINT i = 0;i<primitive_boxes.size() ;i++ )+{+m_primitive_manager.get_primitive_box(i,primitive_boxes[i].m_bound);+primitive_boxes[i].m_data = i;+} -		m_box_tree.build_tree(primitive_boxes);-	}+m_box_tree.build_tree(primitive_boxes);+} -	//! returns the indices of the primitives in the m_primitive_manager-	SIMD_FORCE_INLINE bool boxQuery(const GIM_AABB & box, gim_array<GUINT> & collided_results) const-	{-		GUINT curIndex = 0;-		GUINT numNodes = getNodeCount();+//! returns the indices of the primitives in the m_primitive_manager+SIMD_FORCE_INLINE bool boxQuery(const GIM_AABB & box, gim_array<GUINT> & collided_results) const+{+GUINT curIndex = 0;+GUINT numNodes = getNodeCount(); -		while (curIndex < numNodes)-		{-			GIM_AABB bound;-			getNodeBound(curIndex,bound);+while (curIndex < numNodes)+{+GIM_AABB bound;+getNodeBound(curIndex,bound); -			//catch bugs in tree data+//catch bugs in tree data -			bool aabbOverlap = bound.has_collision(box);-			bool isleafnode = isLeafNode(curIndex);+bool aabbOverlap = bound.has_collision(box);+bool isleafnode = isLeafNode(curIndex); -			if (isleafnode && aabbOverlap)-			{-				collided_results.push_back(getNodeData(curIndex));-			}+if (isleafnode && aabbOverlap)+{+collided_results.push_back(getNodeData(curIndex));+} -			if (aabbOverlap || isleafnode)-			{-				//next subnode-				curIndex++;-			}-			else-			{-				//skip node-				curIndex+= getScapeNodeIndex(curIndex);-			}-		}-		if(collided_results.size()>0) return true;-		return false;-	}+if (aabbOverlap || isleafnode)+{+//next subnode+curIndex++;+}+else+{+//skip node+curIndex+= getScapeNodeIndex(curIndex);+}+}+if(collided_results.size()>0) return true;+return false;+} -	//! returns the indices of the primitives in the m_primitive_manager-	SIMD_FORCE_INLINE bool boxQueryTrans(const GIM_AABB & box,-		 const btTransform & transform, gim_array<GUINT> & collided_results) const-	{-		GIM_AABB transbox=box;-		transbox.appy_transform(transform);-		return boxQuery(transbox,collided_results);-	}+//! returns the indices of the primitives in the m_primitive_manager+SIMD_FORCE_INLINE bool boxQueryTrans(const GIM_AABB & box,+const btTransform & transform, gim_array<GUINT> & collided_results) const+{+GIM_AABB transbox=box;+transbox.appy_transform(transform);+return boxQuery(transbox,collided_results);+} -	//! returns the indices of the primitives in the m_primitive_manager-	SIMD_FORCE_INLINE bool rayQuery(-		const btVector3 & ray_dir,const btVector3 & ray_origin ,-		gim_array<GUINT> & collided_results) const-	{-		GUINT curIndex = 0;-		GUINT numNodes = getNodeCount();+//! returns the indices of the primitives in the m_primitive_manager+SIMD_FORCE_INLINE bool rayQuery(+const btVector3 & ray_dir,const btVector3 & ray_origin ,+gim_array<GUINT> & collided_results) const+{+GUINT curIndex = 0;+GUINT numNodes = getNodeCount(); -		while (curIndex < numNodes)-		{-			GIM_AABB bound;-			getNodeBound(curIndex,bound);+while (curIndex < numNodes)+{+GIM_AABB bound;+getNodeBound(curIndex,bound); -			//catch bugs in tree data+//catch bugs in tree data -			bool aabbOverlap = bound.collide_ray(ray_origin,ray_dir);-			bool isleafnode = isLeafNode(curIndex);+bool aabbOverlap = bound.collide_ray(ray_origin,ray_dir);+bool isleafnode = isLeafNode(curIndex); -			if (isleafnode && aabbOverlap)-			{-				collided_results.push_back(getNodeData( curIndex));-			}+if (isleafnode && aabbOverlap)+{+collided_results.push_back(getNodeData( curIndex));+} -			if (aabbOverlap || isleafnode)-			{-				//next subnode-				curIndex++;-			}-			else-			{-				//skip node-				curIndex+= getScapeNodeIndex(curIndex);-			}-		}-		if(collided_results.size()>0) return true;-		return false;-	}+if (aabbOverlap || isleafnode)+{+//next subnode+curIndex++;+}+else+{+//skip node+curIndex+= getScapeNodeIndex(curIndex);+}+}+if(collided_results.size()>0) return true;+return false;+} -	//! tells if this set has hierarcht-	SIMD_FORCE_INLINE bool hasHierarchy() const-	{-		return true;-	}+//! tells if this set has hierarcht+SIMD_FORCE_INLINE bool hasHierarchy() const+{+return true;+} -	//! tells if this set is a trimesh-	SIMD_FORCE_INLINE bool isTrimesh()  const-	{-		return m_primitive_manager.is_trimesh();-	}+//! tells if this set is a trimesh+SIMD_FORCE_INLINE bool isTrimesh() const+{+return m_primitive_manager.is_trimesh();+} -	//! node count-	SIMD_FORCE_INLINE GUINT getNodeCount() const-	{-		return m_box_tree.getNodeCount();-	}+//! node count+SIMD_FORCE_INLINE GUINT getNodeCount() const+{+return m_box_tree.getNodeCount();+} -	//! tells if the node is a leaf-	SIMD_FORCE_INLINE bool isLeafNode(GUINT nodeindex) const-	{-		return m_box_tree.isLeafNode(nodeindex);-	}+//! tells if the node is a leaf+SIMD_FORCE_INLINE bool isLeafNode(GUINT nodeindex) const+{+return m_box_tree.isLeafNode(nodeindex);+} -	SIMD_FORCE_INLINE GUINT getNodeData(GUINT nodeindex) const-	{-		return m_box_tree.getNodeData(nodeindex);-	}+SIMD_FORCE_INLINE GUINT getNodeData(GUINT nodeindex) const+{+return m_box_tree.getNodeData(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeBound(GUINT nodeindex, GIM_AABB & bound)  const-	{-		m_box_tree.getNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void getNodeBound(GUINT nodeindex, GIM_AABB & bound) const+{+m_box_tree.getNodeBound(nodeindex, bound);+} -	SIMD_FORCE_INLINE void setNodeBound(GUINT nodeindex, const GIM_AABB & bound)-	{-		m_box_tree.setNodeBound(nodeindex, bound);-	}+SIMD_FORCE_INLINE void setNodeBound(GUINT nodeindex, const GIM_AABB & bound)+{+m_box_tree.setNodeBound(nodeindex, bound);+} -	SIMD_FORCE_INLINE GUINT getLeftNodeIndex(GUINT nodeindex) const-	{-		return m_box_tree.getLeftNodeIndex(nodeindex);-	}+SIMD_FORCE_INLINE GUINT getLeftNodeIndex(GUINT nodeindex) const+{+return m_box_tree.getLeftNodeIndex(nodeindex);+} -	SIMD_FORCE_INLINE GUINT getRightNodeIndex(GUINT nodeindex) const-	{-		return m_box_tree.getRightNodeIndex(nodeindex);-	}+SIMD_FORCE_INLINE GUINT getRightNodeIndex(GUINT nodeindex) const+{+return m_box_tree.getRightNodeIndex(nodeindex);+} -	SIMD_FORCE_INLINE GUINT getScapeNodeIndex(GUINT nodeindex) const-	{-		return m_box_tree.getScapeNodeIndex(nodeindex);-	}+SIMD_FORCE_INLINE GUINT getScapeNodeIndex(GUINT nodeindex) const+{+return m_box_tree.getScapeNodeIndex(nodeindex);+} -	SIMD_FORCE_INLINE void getNodeTriangle(GUINT nodeindex,GIM_TRIANGLE & triangle) const-	{-		m_primitive_manager.get_primitive_triangle(getNodeData(nodeindex),triangle);-	}+SIMD_FORCE_INLINE void getNodeTriangle(GUINT nodeindex,GIM_TRIANGLE & triangle) const+{+m_primitive_manager.get_primitive_triangle(getNodeData(nodeindex),triangle);+}  }; @@ -449,7 +449,7 @@ */ template<typename _GIM_PRIMITIVE_MANAGER_PROTOTYPE> class GIM_BOX_TREE_SET: public GIM_BOX_TREE_TEMPLATE_SET< _GIM_PRIMITIVE_MANAGER_PROTOTYPE, GIM_BOX_TREE>-{+{ private: public:  };@@ -461,211 +461,211 @@ /// GIM_BOX_SET collision methods template<typename BOX_SET_CLASS0,typename BOX_SET_CLASS1> class GIM_TREE_TREE_COLLIDER-{+{ private: public:-	gim_pair_set * m_collision_pairs;-	BOX_SET_CLASS0 * m_boxset0;-	BOX_SET_CLASS1 * m_boxset1;-	GUINT current_node0;-	GUINT current_node1;-	bool node0_is_leaf;-	bool node1_is_leaf;-	bool t0_is_trimesh;-	bool t1_is_trimesh;-	bool node0_has_triangle;-	bool node1_has_triangle;-	GIM_AABB m_box0;-	GIM_AABB m_box1;-	GIM_BOX_BOX_TRANSFORM_CACHE trans_cache_1to0;-	btTransform trans_cache_0to1;-	GIM_TRIANGLE m_tri0;-	btVector4 m_tri0_plane;-	GIM_TRIANGLE m_tri1;-	btVector4 m_tri1_plane;+gim_pair_set * m_collision_pairs;+BOX_SET_CLASS0 * m_boxset0;+BOX_SET_CLASS1 * m_boxset1;+GUINT current_node0;+GUINT current_node1;+bool node0_is_leaf;+bool node1_is_leaf;+bool t0_is_trimesh;+bool t1_is_trimesh;+bool node0_has_triangle;+bool node1_has_triangle;+GIM_AABB m_box0;+GIM_AABB m_box1;+GIM_BOX_BOX_TRANSFORM_CACHE trans_cache_1to0;+btTransform trans_cache_0to1;+GIM_TRIANGLE m_tri0;+btVector4 m_tri0_plane;+GIM_TRIANGLE m_tri1;+btVector4 m_tri1_plane;   public:-	GIM_TREE_TREE_COLLIDER()-	{-		current_node0 = G_UINT_INFINITY;-		current_node1 = G_UINT_INFINITY;-	}+GIM_TREE_TREE_COLLIDER()+{+current_node0 = G_UINT_INFINITY;+current_node1 = G_UINT_INFINITY;+} protected:-	SIMD_FORCE_INLINE void retrieve_node0_triangle(GUINT node0)-	{-		if(node0_has_triangle) return;-		m_boxset0->getNodeTriangle(node0,m_tri0);-		//transform triangle-		m_tri0.m_vertices[0] = trans_cache_0to1(m_tri0.m_vertices[0]);-		m_tri0.m_vertices[1] = trans_cache_0to1(m_tri0.m_vertices[1]);-		m_tri0.m_vertices[2] = trans_cache_0to1(m_tri0.m_vertices[2]);-		m_tri0.get_plane(m_tri0_plane);+SIMD_FORCE_INLINE void retrieve_node0_triangle(GUINT node0)+{+if(node0_has_triangle) return;+m_boxset0->getNodeTriangle(node0,m_tri0);+//transform triangle+m_tri0.m_vertices[0] = trans_cache_0to1(m_tri0.m_vertices[0]);+m_tri0.m_vertices[1] = trans_cache_0to1(m_tri0.m_vertices[1]);+m_tri0.m_vertices[2] = trans_cache_0to1(m_tri0.m_vertices[2]);+m_tri0.get_plane(m_tri0_plane); -		node0_has_triangle = true;-	}+node0_has_triangle = true;+} -	SIMD_FORCE_INLINE void retrieve_node1_triangle(GUINT node1)-	{-		if(node1_has_triangle) return;-		m_boxset1->getNodeTriangle(node1,m_tri1);-		//transform triangle-		m_tri1.m_vertices[0] = trans_cache_1to0.transform(m_tri1.m_vertices[0]);-		m_tri1.m_vertices[1] = trans_cache_1to0.transform(m_tri1.m_vertices[1]);-		m_tri1.m_vertices[2] = trans_cache_1to0.transform(m_tri1.m_vertices[2]);-		m_tri1.get_plane(m_tri1_plane);+SIMD_FORCE_INLINE void retrieve_node1_triangle(GUINT node1)+{+if(node1_has_triangle) return;+m_boxset1->getNodeTriangle(node1,m_tri1);+//transform triangle+m_tri1.m_vertices[0] = trans_cache_1to0.transform(m_tri1.m_vertices[0]);+m_tri1.m_vertices[1] = trans_cache_1to0.transform(m_tri1.m_vertices[1]);+m_tri1.m_vertices[2] = trans_cache_1to0.transform(m_tri1.m_vertices[2]);+m_tri1.get_plane(m_tri1_plane); -		node1_has_triangle = true;-	}+node1_has_triangle = true;+} -	SIMD_FORCE_INLINE void retrieve_node0_info(GUINT node0)-	{-		if(node0 == current_node0) return;-		m_boxset0->getNodeBound(node0,m_box0);-		node0_is_leaf = m_boxset0->isLeafNode(node0);-		node0_has_triangle = false;-		current_node0 = node0;-	}+SIMD_FORCE_INLINE void retrieve_node0_info(GUINT node0)+{+if(node0 == current_node0) return;+m_boxset0->getNodeBound(node0,m_box0);+node0_is_leaf = m_boxset0->isLeafNode(node0);+node0_has_triangle = false;+current_node0 = node0;+} -	SIMD_FORCE_INLINE void retrieve_node1_info(GUINT node1)-	{-		if(node1 == current_node1) return;-		m_boxset1->getNodeBound(node1,m_box1);-		node1_is_leaf = m_boxset1->isLeafNode(node1);-		node1_has_triangle = false;-		current_node1 = node1;-	}+SIMD_FORCE_INLINE void retrieve_node1_info(GUINT node1)+{+if(node1 == current_node1) return;+m_boxset1->getNodeBound(node1,m_box1);+node1_is_leaf = m_boxset1->isLeafNode(node1);+node1_has_triangle = false;+current_node1 = node1;+} -	SIMD_FORCE_INLINE bool node_collision(GUINT node0 ,GUINT node1)-	{-		retrieve_node0_info(node0);-		retrieve_node1_info(node1);-		bool result = m_box0.overlapping_trans_cache(m_box1,trans_cache_1to0,true);-		if(!result) return false;+SIMD_FORCE_INLINE bool node_collision(GUINT node0 ,GUINT node1)+{+retrieve_node0_info(node0);+retrieve_node1_info(node1);+bool result = m_box0.overlapping_trans_cache(m_box1,trans_cache_1to0,true);+if(!result) return false; -		if(t0_is_trimesh && node0_is_leaf)-		{-			//perform primitive vs box collision-			retrieve_node0_triangle(node0);-			//do triangle vs box collision-			m_box1.increment_margin(m_tri0.m_margin);+if(t0_is_trimesh && node0_is_leaf)+{+//perform primitive vs box collision+retrieve_node0_triangle(node0);+//do triangle vs box collision+m_box1.increment_margin(m_tri0.m_margin); -			result = m_box1.collide_triangle_exact(-				m_tri0.m_vertices[0],m_tri0.m_vertices[1],m_tri0.m_vertices[2],m_tri0_plane);+result = m_box1.collide_triangle_exact(+m_tri0.m_vertices[0],m_tri0.m_vertices[1],m_tri0.m_vertices[2],m_tri0_plane); -			m_box1.increment_margin(-m_tri0.m_margin);+m_box1.increment_margin(-m_tri0.m_margin); -			if(!result) return false;-			return true;-		}-		else if(t1_is_trimesh && node1_is_leaf)-		{-			//perform primitive vs box collision-			retrieve_node1_triangle(node1);-			//do triangle vs box collision-			m_box0.increment_margin(m_tri1.m_margin);+if(!result) return false;+return true;+}+else if(t1_is_trimesh && node1_is_leaf)+{+//perform primitive vs box collision+retrieve_node1_triangle(node1);+//do triangle vs box collision+m_box0.increment_margin(m_tri1.m_margin); -			result = m_box0.collide_triangle_exact(-				m_tri1.m_vertices[0],m_tri1.m_vertices[1],m_tri1.m_vertices[2],m_tri1_plane);+result = m_box0.collide_triangle_exact(+m_tri1.m_vertices[0],m_tri1.m_vertices[1],m_tri1.m_vertices[2],m_tri1_plane); -			m_box0.increment_margin(-m_tri1.m_margin);+m_box0.increment_margin(-m_tri1.m_margin); -			if(!result) return false;-			return true;-		}-		return true;-	}+if(!result) return false;+return true;+}+return true;+} -	//stackless collision routine-	void find_collision_pairs()-	{-		gim_pair_set stack_collisions;-		stack_collisions.reserve(32);+//stackless collision routine+void find_collision_pairs()+{+gim_pair_set stack_collisions;+stack_collisions.reserve(32); -		//add the first pair-		stack_collisions.push_pair(0,0);+//add the first pair+stack_collisions.push_pair(0,0);  -		while(stack_collisions.size())-		{-			//retrieve the last pair and pop-			GUINT node0 = stack_collisions.back().m_index1;-			GUINT node1 = stack_collisions.back().m_index2;-			stack_collisions.pop_back();-			if(node_collision(node0,node1)) // a collision is found-			{-				if(node0_is_leaf)-				{-					if(node1_is_leaf)-					{-						m_collision_pairs->push_pair(m_boxset0->getNodeData(node0),m_boxset1->getNodeData(node1));-					}-					else-					{-						//collide left-						stack_collisions.push_pair(node0,m_boxset1->getLeftNodeIndex(node1));+while(stack_collisions.size())+{+//retrieve the last pair and pop+GUINT node0 = stack_collisions.back().m_index1;+GUINT node1 = stack_collisions.back().m_index2;+stack_collisions.pop_back();+if(node_collision(node0,node1)) // a collision is found+{+if(node0_is_leaf)+{+if(node1_is_leaf)+{+m_collision_pairs->push_pair(m_boxset0->getNodeData(node0),m_boxset1->getNodeData(node1));+}+else+{+//collide left+stack_collisions.push_pair(node0,m_boxset1->getLeftNodeIndex(node1)); -						//collide right-						stack_collisions.push_pair(node0,m_boxset1->getRightNodeIndex(node1));-					}-				}-				else-				{-					if(node1_is_leaf)-					{-						//collide left-						stack_collisions.push_pair(m_boxset0->getLeftNodeIndex(node0),node1);-						//collide right-						stack_collisions.push_pair(m_boxset0->getRightNodeIndex(node0),node1);-					}-					else-					{-						GUINT left0 = m_boxset0->getLeftNodeIndex(node0);-						GUINT right0 = m_boxset0->getRightNodeIndex(node0);-						GUINT left1 = m_boxset1->getLeftNodeIndex(node1);-						GUINT right1 = m_boxset1->getRightNodeIndex(node1);-						//collide left-						stack_collisions.push_pair(left0,left1);-						//collide right-						stack_collisions.push_pair(left0,right1);-						//collide left-						stack_collisions.push_pair(right0,left1);-						//collide right-						stack_collisions.push_pair(right0,right1);+//collide right+stack_collisions.push_pair(node0,m_boxset1->getRightNodeIndex(node1));+}+}+else+{+if(node1_is_leaf)+{+//collide left+stack_collisions.push_pair(m_boxset0->getLeftNodeIndex(node0),node1);+//collide right+stack_collisions.push_pair(m_boxset0->getRightNodeIndex(node0),node1);+}+else+{+GUINT left0 = m_boxset0->getLeftNodeIndex(node0);+GUINT right0 = m_boxset0->getRightNodeIndex(node0);+GUINT left1 = m_boxset1->getLeftNodeIndex(node1);+GUINT right1 = m_boxset1->getRightNodeIndex(node1);+//collide left+stack_collisions.push_pair(left0,left1);+//collide right+stack_collisions.push_pair(left0,right1);+//collide left+stack_collisions.push_pair(right0,left1);+//collide right+stack_collisions.push_pair(right0,right1); -					}// else if node1 is not a leaf-				}// else if node0 is not a leaf+}// else if node1 is not a leaf+}// else if node0 is not a leaf -			}// if(node_collision(node0,node1))-		}//while(stack_collisions.size())-	}+}// if(node_collision(node0,node1))+}//while(stack_collisions.size())+} public:-	void find_collision(BOX_SET_CLASS0 * boxset1, const btTransform & trans1,-		BOX_SET_CLASS1 * boxset2, const btTransform & trans2,-		gim_pair_set & collision_pairs, bool complete_primitive_tests = true)-	{-		m_collision_pairs = &collision_pairs;-		m_boxset0 = boxset1;-		m_boxset1 = boxset2;+void find_collision(BOX_SET_CLASS0 * boxset1, const btTransform & trans1,+BOX_SET_CLASS1 * boxset2, const btTransform & trans2,+gim_pair_set & collision_pairs, bool complete_primitive_tests = true)+{+m_collision_pairs = &collision_pairs;+m_boxset0 = boxset1;+m_boxset1 = boxset2; -		trans_cache_1to0.calc_from_homogenic(trans1,trans2);+trans_cache_1to0.calc_from_homogenic(trans1,trans2); -		trans_cache_0to1 =  trans2.inverse();-		trans_cache_0to1 *= trans1;+trans_cache_0to1 = trans2.inverse();+trans_cache_0to1 *= trans1;  -		if(complete_primitive_tests)-		{-			t0_is_trimesh = boxset1->getPrimitiveManager().is_trimesh();-			t1_is_trimesh = boxset2->getPrimitiveManager().is_trimesh();-		}-		else-		{-			t0_is_trimesh = false;-			t1_is_trimesh = false;-		}+if(complete_primitive_tests)+{+t0_is_trimesh = boxset1->getPrimitiveManager().is_trimesh();+t1_is_trimesh = boxset2->getPrimitiveManager().is_trimesh();+}+else+{+t0_is_trimesh = false;+t1_is_trimesh = false;+} -		find_collision_pairs();-	}+find_collision_pairs();+} };  
bullet/BulletCollision/Gimpact/gim_clip_polygon.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -36,40 +36,40 @@  //! This function calcs the distance from a 3D plane class DISTANCE_PLANE_3D_FUNC-{+{ private: public:-	template<typename CLASS_POINT,typename CLASS_PLANE>-	inline GREAL operator()(const CLASS_PLANE & plane, const CLASS_POINT & point)-	{-		return DISTANCE_PLANE_POINT(plane, point);-	}+template<typename CLASS_POINT,typename CLASS_PLANE>+inline GREAL operator()(const CLASS_PLANE & plane, const CLASS_POINT & point)+{+return DISTANCE_PLANE_POINT(plane, point);+} };    template<typename CLASS_POINT> SIMD_FORCE_INLINE void PLANE_CLIP_POLYGON_COLLECT(-						const CLASS_POINT & point0,-						const CLASS_POINT & point1,-						GREAL dist0,-						GREAL dist1,-						CLASS_POINT * clipped,-						GUINT & clipped_count)+const CLASS_POINT & point0,+const CLASS_POINT & point1,+GREAL dist0,+GREAL dist1,+CLASS_POINT * clipped,+GUINT & clipped_count) {-	GUINT _prevclassif = (dist0>G_EPSILON);-	GUINT _classif = (dist1>G_EPSILON);-	if(_classif!=_prevclassif)-	{-		GREAL blendfactor = -dist0/(dist1-dist0);-		VEC_BLEND(clipped[clipped_count],point0,point1,blendfactor);-		clipped_count++;-	}-	if(!_classif)-	{-		VEC_COPY(clipped[clipped_count],point1);-		clipped_count++;-	}+GUINT _prevclassif = (dist0>G_EPSILON);+GUINT _classif = (dist1>G_EPSILON);+if(_classif!=_prevclassif)+{+GREAL blendfactor = -dist0/(dist1-dist0);+VEC_BLEND(clipped[clipped_count],point0,point1,blendfactor);+clipped_count++; }+if(!_classif)+{+VEC_COPY(clipped[clipped_count],point1);+clipped_count++;+}+}   //! Clips a polygon by a plane@@ -78,48 +78,48 @@ */ template<typename CLASS_POINT,typename CLASS_PLANE, typename DISTANCE_PLANE_FUNC> SIMD_FORCE_INLINE GUINT PLANE_CLIP_POLYGON_GENERIC(-						const CLASS_PLANE & plane,-						const CLASS_POINT * polygon_points,-						GUINT polygon_point_count,-						CLASS_POINT * clipped,DISTANCE_PLANE_FUNC distance_func)+const CLASS_PLANE & plane,+const CLASS_POINT * polygon_points,+GUINT polygon_point_count,+CLASS_POINT * clipped,DISTANCE_PLANE_FUNC distance_func) {-    GUINT clipped_count = 0;+GUINT clipped_count = 0;  -    //clip first point-	GREAL firstdist = distance_func(plane,polygon_points[0]);;-	if(!(firstdist>G_EPSILON))-	{-		VEC_COPY(clipped[clipped_count],polygon_points[0]);-		clipped_count++;-	}+//clip first point+GREAL firstdist = distance_func(plane,polygon_points[0]);;+if(!(firstdist>G_EPSILON))+{+VEC_COPY(clipped[clipped_count],polygon_points[0]);+clipped_count++;+} -	GREAL olddist = firstdist;-	for(GUINT _i=1;_i<polygon_point_count;_i++)-	{		-		GREAL dist = distance_func(plane,polygon_points[_i]);+GREAL olddist = firstdist;+for(GUINT _i=1;_i<polygon_point_count;_i++)+{+GREAL dist = distance_func(plane,polygon_points[_i]); -		PLANE_CLIP_POLYGON_COLLECT(-						polygon_points[_i-1],polygon_points[_i],-						olddist,-						dist,-						clipped,-						clipped_count);+PLANE_CLIP_POLYGON_COLLECT(+polygon_points[_i-1],polygon_points[_i],+olddist,+dist,+clipped,+clipped_count);  -		olddist = dist;		-	}+olddist = dist;+} -	//RETURN TO FIRST  point	+//RETURN TO FIRST point -	PLANE_CLIP_POLYGON_COLLECT(-					polygon_points[polygon_point_count-1],polygon_points[0],-					olddist,-					firstdist,-					clipped,-					clipped_count);+PLANE_CLIP_POLYGON_COLLECT(+polygon_points[polygon_point_count-1],polygon_points[0],+olddist,+firstdist,+clipped,+clipped_count); -	return clipped_count;+return clipped_count; }  //! Clips a polygon by a plane@@ -128,81 +128,81 @@ */ template<typename CLASS_POINT,typename CLASS_PLANE, typename DISTANCE_PLANE_FUNC> SIMD_FORCE_INLINE GUINT PLANE_CLIP_TRIANGLE_GENERIC(-						const CLASS_PLANE & plane,-						const CLASS_POINT & point0,-						const CLASS_POINT & point1,-						const CLASS_POINT & point2,-						CLASS_POINT * clipped,DISTANCE_PLANE_FUNC distance_func)+const CLASS_PLANE & plane,+const CLASS_POINT & point0,+const CLASS_POINT & point1,+const CLASS_POINT & point2,+CLASS_POINT * clipped,DISTANCE_PLANE_FUNC distance_func) {-    GUINT clipped_count = 0;+GUINT clipped_count = 0; -    //clip first point-	GREAL firstdist = distance_func(plane,point0);;-	if(!(firstdist>G_EPSILON))-	{-		VEC_COPY(clipped[clipped_count],point0);-		clipped_count++;-	}+//clip first point+GREAL firstdist = distance_func(plane,point0);;+if(!(firstdist>G_EPSILON))+{+VEC_COPY(clipped[clipped_count],point0);+clipped_count++;+} -	// point 1-	GREAL olddist = firstdist;-	GREAL dist = distance_func(plane,point1);+// point 1+GREAL olddist = firstdist;+GREAL dist = distance_func(plane,point1); -	PLANE_CLIP_POLYGON_COLLECT(-					point0,point1,-					olddist,-					dist,-					clipped,-					clipped_count);+PLANE_CLIP_POLYGON_COLLECT(+point0,point1,+olddist,+dist,+clipped,+clipped_count); -	olddist = dist;+olddist = dist;  -	// point 2-	dist = distance_func(plane,point2);+// point 2+dist = distance_func(plane,point2); -	PLANE_CLIP_POLYGON_COLLECT(-					point1,point2,-					olddist,-					dist,-					clipped,-					clipped_count);-	olddist = dist;+PLANE_CLIP_POLYGON_COLLECT(+point1,point2,+olddist,+dist,+clipped,+clipped_count);+olddist = dist;   -	//RETURN TO FIRST  point-	PLANE_CLIP_POLYGON_COLLECT(-					point2,point0,-					olddist,-					firstdist,-					clipped,-					clipped_count);+//RETURN TO FIRST point+PLANE_CLIP_POLYGON_COLLECT(+point2,point0,+olddist,+firstdist,+clipped,+clipped_count); -	return clipped_count;+return clipped_count; }   template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE GUINT PLANE_CLIP_POLYGON3D(-						const CLASS_PLANE & plane,-						const CLASS_POINT * polygon_points,-						GUINT polygon_point_count,-						CLASS_POINT * clipped)+const CLASS_PLANE & plane,+const CLASS_POINT * polygon_points,+GUINT polygon_point_count,+CLASS_POINT * clipped) {-	return PLANE_CLIP_POLYGON_GENERIC<CLASS_POINT,CLASS_PLANE>(plane,polygon_points,polygon_point_count,clipped,DISTANCE_PLANE_3D_FUNC());+return PLANE_CLIP_POLYGON_GENERIC<CLASS_POINT,CLASS_PLANE>(plane,polygon_points,polygon_point_count,clipped,DISTANCE_PLANE_3D_FUNC()); }   template<typename CLASS_POINT,typename CLASS_PLANE> SIMD_FORCE_INLINE GUINT PLANE_CLIP_TRIANGLE3D(-						const CLASS_PLANE & plane,-						const CLASS_POINT & point0,-						const CLASS_POINT & point1,-						const CLASS_POINT & point2,-						CLASS_POINT * clipped)+const CLASS_PLANE & plane,+const CLASS_POINT & point0,+const CLASS_POINT & point1,+const CLASS_POINT & point2,+CLASS_POINT * clipped) {-	return PLANE_CLIP_TRIANGLE_GENERIC<CLASS_POINT,CLASS_PLANE>(plane,point0,point1,point2,clipped,DISTANCE_PLANE_3D_FUNC());+return PLANE_CLIP_TRIANGLE_GENERIC<CLASS_POINT,CLASS_PLANE>(plane,point0,point1,point2,clipped,DISTANCE_PLANE_3D_FUNC()); }  
bullet/BulletCollision/Gimpact/gim_contact.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -38,7 +38,7 @@   /**-Configuration var for applying interpolation of  contact normals+Configuration var for applying interpolation of contact normals */ #define NORMAL_CONTACT_AVERAGE 1 #define CONTACT_DIFF_EPSILON 0.00001f@@ -49,116 +49,116 @@ ///After querys, contact lists must be destroy by calling \ref GIM_DYNARRAY_DESTROY ///Contacts can be merge for avoid duplicate results by calling \ref gim_merge_contacts class GIM_CONTACT-{+{ private: public:-    btVector3 m_point;-    btVector3 m_normal;-    GREAL m_depth;//Positive value indicates interpenetration-    GREAL m_distance;//Padding not for use-    GUINT m_feature1;//Face number-    GUINT m_feature2;//Face number+btVector3 m_point;+btVector3 m_normal;+GREAL m_depth;//Positive value indicates interpenetration+GREAL m_distance;//Padding not for use+GUINT m_feature1;//Face number+GUINT m_feature2;//Face number public:-    GIM_CONTACT()-    {-    }+GIM_CONTACT()+{+} -    GIM_CONTACT(const GIM_CONTACT & contact):-				m_point(contact.m_point),-				m_normal(contact.m_normal),-				m_depth(contact.m_depth),-				m_feature1(contact.m_feature1),-				m_feature2(contact.m_feature2)-    {-    	m_point = contact.m_point;-    	m_normal = contact.m_normal;-    	m_depth = contact.m_depth;-    	m_feature1 = contact.m_feature1;-    	m_feature2 = contact.m_feature2;-    }+GIM_CONTACT(const GIM_CONTACT & contact):+m_point(contact.m_point),+m_normal(contact.m_normal),+m_depth(contact.m_depth),+m_feature1(contact.m_feature1),+m_feature2(contact.m_feature2)+{+m_point = contact.m_point;+m_normal = contact.m_normal;+m_depth = contact.m_depth;+m_feature1 = contact.m_feature1;+m_feature2 = contact.m_feature2;+} -    GIM_CONTACT(const btVector3 &point,const btVector3 & normal,-    	 			GREAL depth, GUINT feature1, GUINT feature2):-				m_point(point),-				m_normal(normal),-				m_depth(depth),-				m_feature1(feature1),-				m_feature2(feature2)-    {-    }+GIM_CONTACT(const btVector3 &point,const btVector3 & normal,+GREAL depth, GUINT feature1, GUINT feature2):+m_point(point),+m_normal(normal),+m_depth(depth),+m_feature1(feature1),+m_feature2(feature2)+{+} -	//! Calcs key for coord classification-    SIMD_FORCE_INLINE GUINT calc_key_contact() const-    {-    	GINT _coords[] = {-    		(GINT)(m_point[0]*1000.0f+1.0f),-    		(GINT)(m_point[1]*1333.0f),-    		(GINT)(m_point[2]*2133.0f+3.0f)};-		GUINT _hash=0;-		GUINT *_uitmp = (GUINT *)(&_coords[0]);-		_hash = *_uitmp;-		_uitmp++;-		_hash += (*_uitmp)<<4;-		_uitmp++;-		_hash += (*_uitmp)<<8;-		return _hash;-    }+//! Calcs key for coord classification+SIMD_FORCE_INLINE GUINT calc_key_contact() const+{+GINT _coords[] = {+(GINT)(m_point[0]*1000.0f+1.0f),+(GINT)(m_point[1]*1333.0f),+(GINT)(m_point[2]*2133.0f+3.0f)};+GUINT _hash=0;+GUINT *_uitmp = (GUINT *)(&_coords[0]);+_hash = *_uitmp;+_uitmp++;+_hash += (*_uitmp)<<4;+_uitmp++;+_hash += (*_uitmp)<<8;+return _hash;+} -    SIMD_FORCE_INLINE void interpolate_normals( btVector3 * normals,GUINT normal_count)-    {-    	btVector3 vec_sum(m_normal);-		for(GUINT i=0;i<normal_count;i++)-		{-			vec_sum += normals[i];-		}+SIMD_FORCE_INLINE void interpolate_normals( btVector3 * normals,GUINT normal_count)+{+btVector3 vec_sum(m_normal);+for(GUINT i=0;i<normal_count;i++)+{+vec_sum += normals[i];+} -		GREAL vec_sum_len = vec_sum.length2();-		if(vec_sum_len <CONTACT_DIFF_EPSILON) return;+GREAL vec_sum_len = vec_sum.length2();+if(vec_sum_len <CONTACT_DIFF_EPSILON) return; -		GIM_INV_SQRT(vec_sum_len,vec_sum_len); // 1/sqrt(vec_sum_len)+GIM_INV_SQRT(vec_sum_len,vec_sum_len); // 1/sqrt(vec_sum_len) -		m_normal = vec_sum*vec_sum_len;-    }+m_normal = vec_sum*vec_sum_len;+}  };   class gim_contact_array:public gim_array<GIM_CONTACT>-{+{ private: public:-	gim_contact_array():gim_array<GIM_CONTACT>(64)-	{-	}+gim_contact_array():gim_array<GIM_CONTACT>(64)+{+} -	SIMD_FORCE_INLINE void push_contact(const btVector3 &point,const btVector3 & normal,-    	 			GREAL depth, GUINT feature1, GUINT feature2)-	{-		push_back_mem();-		GIM_CONTACT & newele = back();-		newele.m_point = point;-		newele.m_normal = normal;-		newele.m_depth = depth;-		newele.m_feature1 = feature1;-		newele.m_feature2 = feature2;-	}+SIMD_FORCE_INLINE void push_contact(const btVector3 &point,const btVector3 & normal,+GREAL depth, GUINT feature1, GUINT feature2)+{+push_back_mem();+GIM_CONTACT & newele = back();+newele.m_point = point;+newele.m_normal = normal;+newele.m_depth = depth;+newele.m_feature1 = feature1;+newele.m_feature2 = feature2;+} -	SIMD_FORCE_INLINE void push_triangle_contacts(-		const GIM_TRIANGLE_CONTACT_DATA & tricontact,-		GUINT feature1,GUINT feature2)-	{-		for(GUINT i = 0;i<tricontact.m_point_count ;i++ )-		{-			push_back_mem();-			GIM_CONTACT & newele = back();-			newele.m_point = tricontact.m_points[i];-			newele.m_normal = tricontact.m_separating_normal;-			newele.m_depth = tricontact.m_penetration_depth;-			newele.m_feature1 = feature1;-			newele.m_feature2 = feature2;-		}-	}+SIMD_FORCE_INLINE void push_triangle_contacts(+const GIM_TRIANGLE_CONTACT_DATA & tricontact,+GUINT feature1,GUINT feature2)+{+for(GUINT i = 0;i<tricontact.m_point_count ;i++ )+{+push_back_mem();+GIM_CONTACT & newele = back();+newele.m_point = tricontact.m_points[i];+newele.m_normal = tricontact.m_separating_normal;+newele.m_depth = tricontact.m_penetration_depth;+newele.m_feature1 = feature1;+newele.m_feature2 = feature2;+}+} -	void merge_contacts(const gim_contact_array & contacts, bool normal_contact_average = true);-	void merge_contacts_unique(const gim_contact_array & contacts);+void merge_contacts(const gim_contact_array & contacts, bool normal_contact_average = true);+void merge_contacts_unique(const gim_contact_array & contacts); };  #endif // GIM_CONTACT_H_INCLUDED
bullet/BulletCollision/Gimpact/gim_geom_types.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */
bullet/BulletCollision/Gimpact/gim_geometry.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */
bullet/BulletCollision/Gimpact/gim_hash_table.h view
@@ -12,887 +12,887 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.-- This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.--------------------------------------------------------------------------------*/--#include "gim_radixsort.h"---#define GIM_INVALID_HASH 0xffffffff //!< A very very high value-#define GIM_DEFAULT_HASH_TABLE_SIZE 380-#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE 4-#define GIM_HASH_TABLE_GROW_FACTOR 2--#define GIM_MIN_RADIX_SORT_SIZE 860 //!< calibrated on a PIII--template<typename T>-struct GIM_HASH_TABLE_NODE-{-    GUINT m_key;-    T m_data;-    GIM_HASH_TABLE_NODE()-    {-    }--    GIM_HASH_TABLE_NODE(const GIM_HASH_TABLE_NODE & value)-    {-        m_key = value.m_key;-        m_data = value.m_data;-    }--    GIM_HASH_TABLE_NODE(GUINT key, const T & data)-    {-        m_key = key;-        m_data = data;-    }--    bool operator <(const GIM_HASH_TABLE_NODE<T> & other) const-	{-		///inverse order, further objects are first-		if(m_key <  other.m_key) return true;-		return false;-	}--	bool operator >(const GIM_HASH_TABLE_NODE<T> & other) const-	{-		///inverse order, further objects are first-		if(m_key >  other.m_key) return true;-		return false;-	}--	bool operator ==(const GIM_HASH_TABLE_NODE<T> & other) const-	{-		///inverse order, further objects are first-		if(m_key ==  other.m_key) return true;-		return false;-	}-};--///Macro for getting the key-class GIM_HASH_NODE_GET_KEY-{-public:-	template<class T>-	inline GUINT operator()( const T& a)-	{-		return a.m_key;-	}-};----///Macro for comparing the key and the element-class GIM_HASH_NODE_CMP_KEY_MACRO-{-public:-	template<class T>-	inline int operator() ( const T& a, GUINT key)-	{-		return ((int)(a.m_key - key));-	}-};--///Macro for comparing Hash nodes-class GIM_HASH_NODE_CMP_MACRO-{-public:-	template<class T>-	inline int operator() ( const T& a, const T& b )-	{-		return ((int)(a.m_key - b.m_key));-	}-};------//! Sorting for hash table-/*!-switch automatically between quicksort and radixsort-*/-template<typename T>-void gim_sort_hash_node_array(T * array, GUINT array_count)-{-    if(array_count<GIM_MIN_RADIX_SORT_SIZE)-    {-    	gim_heap_sort(array,array_count,GIM_HASH_NODE_CMP_MACRO());-    }-    else-    {-    	memcopy_elements_func cmpfunc;-    	gim_radix_sort(array,array_count,GIM_HASH_NODE_GET_KEY(),cmpfunc);-    }-}-------// Note: assumes long is at least 32 bits.-#define GIM_NUM_PRIME 28--static const GUINT gim_prime_list[GIM_NUM_PRIME] =-{-  53ul,         97ul,         193ul,       389ul,       769ul,-  1543ul,       3079ul,       6151ul,      12289ul,     24593ul,-  49157ul,      98317ul,      196613ul,    393241ul,    786433ul,-  1572869ul,    3145739ul,    6291469ul,   12582917ul,  25165843ul,-  50331653ul,   100663319ul,  201326611ul, 402653189ul, 805306457ul,-  1610612741ul, 3221225473ul, 4294967291ul-};--inline GUINT gim_next_prime(GUINT number)-{-    //Find nearest upper prime-    GUINT result_ind = 0;-    gim_binary_search(gim_prime_list,0,(GIM_NUM_PRIME-2),number,result_ind);--    // inv: result_ind < 28-    return gim_prime_list[result_ind];-}----//! A compact hash table implementation-/*!-A memory aligned compact hash table that coud be treated as an array.-It could be a simple sorted array without the overhead of the hash key bucked, or could-be a formely hash table with an array of keys.-You can use switch_to_hashtable() and switch_to_sorted_array for saving space or increase speed.-</br>--<ul>-<li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.-When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.-<li> If node_size != 0, then this container becomes a hash table for ever-</ul>--*/-template<class T>-class gim_hash_table-{-protected:-    typedef GIM_HASH_TABLE_NODE<T> _node_type;--    //!The nodes-    //array< _node_type, SuperAllocator<_node_type> > m_nodes;-    gim_array< _node_type > m_nodes;-    //SuperBufferedArray< _node_type > m_nodes;-    bool m_sorted;--    ///Hash table data management. The hash table has the indices to the corresponding m_nodes array-    GUINT * m_hash_table;//!<-    GUINT m_table_size;//!<-    GUINT m_node_size;//!<-    GUINT m_min_hash_table_size;----    //! Returns the cell index-    inline GUINT _find_cell(GUINT hashkey)-    {-        _node_type * nodesptr = m_nodes.pointer();-        GUINT start_index = (hashkey%m_table_size)*m_node_size;-        GUINT end_index = start_index + m_node_size;--        while(start_index<end_index)-        {-            GUINT value = m_hash_table[start_index];-            if(value != GIM_INVALID_HASH)-            {-                if(nodesptr[value].m_key == hashkey) return start_index;-            }-            start_index++;-        }-        return GIM_INVALID_HASH;-    }--    //! Find the avaliable cell for the hashkey, and return an existing cell if it has the same hash key-    inline GUINT _find_avaliable_cell(GUINT hashkey)-    {-        _node_type * nodesptr = m_nodes.pointer();-        GUINT avaliable_index = GIM_INVALID_HASH;-        GUINT start_index = (hashkey%m_table_size)*m_node_size;-        GUINT end_index = start_index + m_node_size;--        while(start_index<end_index)-        {-            GUINT value = m_hash_table[start_index];-            if(value == GIM_INVALID_HASH)-            {-                if(avaliable_index==GIM_INVALID_HASH)-                {-                    avaliable_index = start_index;-                }-            }-            else if(nodesptr[value].m_key == hashkey)-            {-                return start_index;-            }-            start_index++;-        }-        return avaliable_index;-    }----    //! reserves the memory for the hash table.-    /*!-    \pre hash table must be empty-    \post reserves the memory for the hash table, an initializes all elements to GIM_INVALID_HASH.-    */-    inline void _reserve_table_memory(GUINT newtablesize)-    {-        if(newtablesize==0) return;-        if(m_node_size==0) return;--        //Get a Prime size--        m_table_size = gim_next_prime(newtablesize);--        GUINT datasize = m_table_size*m_node_size;-        //Alloc the data buffer-        m_hash_table =  (GUINT *)gim_alloc(datasize*sizeof(GUINT));-    }--    inline void _invalidate_keys()-    {-        GUINT datasize = m_table_size*m_node_size;-        for(GUINT i=0;i<datasize;i++)-        {-            m_hash_table[i] = GIM_INVALID_HASH;// invalidate keys-        }-    }--    //! Clear all memory for the hash table-    inline void _clear_table_memory()-    {-        if(m_hash_table==NULL) return;-        gim_free(m_hash_table);-        m_hash_table = NULL;-        m_table_size = 0;-    }--    //! Invalidates the keys (Assigning GIM_INVALID_HASH to all) Reorders the hash keys-    inline void _rehash()-    {-        _invalidate_keys();--        _node_type * nodesptr = m_nodes.pointer();-        for(GUINT i=0;i<(GUINT)m_nodes.size();i++)-        {-            GUINT nodekey = nodesptr[i].m_key;-            if(nodekey != GIM_INVALID_HASH)-            {-                //Search for the avaliable cell in buffer-                GUINT index = _find_avaliable_cell(nodekey);---				if(m_hash_table[index]!=GIM_INVALID_HASH)-				{//The new index is alreade used... discard this new incomming object, repeated key-				    btAssert(m_hash_table[index]==nodekey);-					nodesptr[i].m_key = GIM_INVALID_HASH;-				}-				else-				{-					//;-					//Assign the value for alloc-					m_hash_table[index] = i;-				}-            }-        }-    }--    //! Resize hash table indices-    inline void _resize_table(GUINT newsize)-    {-        //Clear memory-        _clear_table_memory();-        //Alloc the data-        _reserve_table_memory(newsize);-        //Invalidate keys and rehash-        _rehash();-    }--    //! Destroy hash table memory-    inline void _destroy()-    {-        if(m_hash_table==NULL) return;-        _clear_table_memory();-    }--    //! Finds an avaliable hash table cell, and resizes the table if there isn't space-    inline GUINT _assign_hash_table_cell(GUINT hashkey)-    {-        GUINT cell_index = _find_avaliable_cell(hashkey);--        if(cell_index==GIM_INVALID_HASH)-        {-            //rehashing-            _resize_table(m_table_size+1);-            GUINT cell_index = _find_avaliable_cell(hashkey);-            btAssert(cell_index!=GIM_INVALID_HASH);-        }-        return cell_index;-    }--    //! erase by index in hash table-    inline bool _erase_by_index_hash_table(GUINT index)-    {-        if(index >= m_nodes.size()) return false;-        if(m_nodes[index].m_key != GIM_INVALID_HASH)-        {-            //Search for the avaliable cell in buffer-            GUINT cell_index = _find_cell(m_nodes[index].m_key);--            btAssert(cell_index!=GIM_INVALID_HASH);-            btAssert(m_hash_table[cell_index]==index);--            m_hash_table[cell_index] = GIM_INVALID_HASH;-        }--        return this->_erase_unsorted(index);-    }--    //! erase by key in hash table-    inline bool _erase_hash_table(GUINT hashkey)-    {-        if(hashkey == GIM_INVALID_HASH) return false;--        //Search for the avaliable cell in buffer-        GUINT cell_index = _find_cell(hashkey);-        if(cell_index ==GIM_INVALID_HASH) return false;--        GUINT index = m_hash_table[cell_index];-        m_hash_table[cell_index] = GIM_INVALID_HASH;--        return this->_erase_unsorted(index);-    }----    //! insert an element in hash table-    /*!-    If the element exists, this won't insert the element-    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted-    If so, the element has been inserted at the last position of the array.-    */-    inline GUINT _insert_hash_table(GUINT hashkey, const T & value)-    {-        if(hashkey==GIM_INVALID_HASH)-        {-            //Insert anyway-            _insert_unsorted(hashkey,value);-            return GIM_INVALID_HASH;-        }--        GUINT cell_index = _assign_hash_table_cell(hashkey);--        GUINT value_key = m_hash_table[cell_index];--        if(value_key!= GIM_INVALID_HASH) return value_key;// Not overrited--        m_hash_table[cell_index] = m_nodes.size();--        _insert_unsorted(hashkey,value);-        return GIM_INVALID_HASH;-    }--    //! insert an element in hash table.-    /*!-    If the element exists, this replaces the element.-    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted-    If so, the element has been inserted at the last position of the array.-    */-    inline GUINT _insert_hash_table_replace(GUINT hashkey, const T & value)-    {-        if(hashkey==GIM_INVALID_HASH)-        {-            //Insert anyway-            _insert_unsorted(hashkey,value);-            return GIM_INVALID_HASH;-        }--        GUINT cell_index = _assign_hash_table_cell(hashkey);--        GUINT value_key = m_hash_table[cell_index];--        if(value_key!= GIM_INVALID_HASH)-        {//replaces the existing-            m_nodes[value_key] = _node_type(hashkey,value);-            return value_key;// index of the replaced element-        }--        m_hash_table[cell_index] = m_nodes.size();--        _insert_unsorted(hashkey,value);-        return GIM_INVALID_HASH;--    }--    -    ///Sorted array data management. The hash table has the indices to the corresponding m_nodes array-    inline bool _erase_sorted(GUINT index)-    {-        if(index>=(GUINT)m_nodes.size()) return false;-        m_nodes.erase_sorted(index);-		if(m_nodes.size()<2) m_sorted = false;-        return true;-    }--    //! faster, but unsorted-    inline bool _erase_unsorted(GUINT index)-    {-        if(index>=m_nodes.size()) return false;--        GUINT lastindex = m_nodes.size()-1;-        if(index<lastindex && m_hash_table!=0)-        {-			GUINT hashkey =  m_nodes[lastindex].m_key;-			if(hashkey!=GIM_INVALID_HASH)-			{-				//update the new position of the last element-				GUINT cell_index = _find_cell(hashkey);-				btAssert(cell_index!=GIM_INVALID_HASH);-				//new position of the last element which will be swaped-				m_hash_table[cell_index] = index;-			}-        }-        m_nodes.erase(index);-        m_sorted = false;-        return true;-    }--    //! Insert in position ordered-    /*!-    Also checks if it is needed to transform this container to a hash table, by calling check_for_switching_to_hashtable-    */-    inline void _insert_in_pos(GUINT hashkey, const T & value, GUINT pos)-    {-        m_nodes.insert(_node_type(hashkey,value),pos);-        this->check_for_switching_to_hashtable();-    }--    //! Insert an element in an ordered array-    inline GUINT _insert_sorted(GUINT hashkey, const T & value)-    {-        if(hashkey==GIM_INVALID_HASH || size()==0)-        {-            m_nodes.push_back(_node_type(hashkey,value));-            return GIM_INVALID_HASH;-        }-        //Insert at last position-        //Sort element---        GUINT result_ind=0;-        GUINT last_index = m_nodes.size()-1;-        _node_type * ptr = m_nodes.pointer();--        bool found = gim_binary_search_ex(-        	ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());---        //Insert before found index-        if(found)-        {-            return result_ind;-        }-        else-        {-            _insert_in_pos(hashkey, value, result_ind);-        }-        return GIM_INVALID_HASH;-    }--    inline GUINT _insert_sorted_replace(GUINT hashkey, const T & value)-    {-        if(hashkey==GIM_INVALID_HASH || size()==0)-        {-            m_nodes.push_back(_node_type(hashkey,value));-            return GIM_INVALID_HASH;-        }-        //Insert at last position-        //Sort element-        GUINT result_ind;-        GUINT last_index = m_nodes.size()-1;-        _node_type * ptr = m_nodes.pointer();--        bool found = gim_binary_search_ex(-        	ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());--        //Insert before found index-        if(found)-        {-            m_nodes[result_ind] = _node_type(hashkey,value);-        }-        else-        {-            _insert_in_pos(hashkey, value, result_ind);-        }-        return result_ind;-    }--    //! Fast insertion in m_nodes array-    inline GUINT  _insert_unsorted(GUINT hashkey, const T & value)-    {-        m_nodes.push_back(_node_type(hashkey,value));-        m_sorted = false;-        return GIM_INVALID_HASH;-    }--    --public:--    /*!-        <li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.-        When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.-        <li> If node_size != 0, then this container becomes a hash table for ever-        </ul>-    */-    gim_hash_table(GUINT reserve_size = GIM_DEFAULT_HASH_TABLE_SIZE,-                     GUINT node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE,-                     GUINT min_hash_table_size = GIM_INVALID_HASH)-    {-        m_hash_table = NULL;-        m_table_size = 0;-        m_sorted = false;-        m_node_size = node_size;-        m_min_hash_table_size = min_hash_table_size;--        if(m_node_size!=0)-        {-            if(reserve_size!=0)-            {-                m_nodes.reserve(reserve_size);-                _reserve_table_memory(reserve_size);-                _invalidate_keys();-            }-            else-            {-                m_nodes.reserve(GIM_DEFAULT_HASH_TABLE_SIZE);-                _reserve_table_memory(GIM_DEFAULT_HASH_TABLE_SIZE);-                _invalidate_keys();-            }-        }-        else if(reserve_size!=0)-        {-            m_nodes.reserve(reserve_size);-        }--    }--    ~gim_hash_table()-    {-        _destroy();-    }--    inline bool is_hash_table()-    {-        if(m_hash_table) return true;-        return false;-    }--    inline bool is_sorted()-    {-        if(size()<2) return true;-        return m_sorted;-    }--    bool sort()-    {-        if(is_sorted()) return true;-        if(m_nodes.size()<2) return false;---        _node_type * ptr = m_nodes.pointer();-        GUINT siz = m_nodes.size();-        gim_sort_hash_node_array(ptr,siz);-        m_sorted=true;----        if(m_hash_table)-        {-            _rehash();-        }-        return true;-    }--    bool switch_to_hashtable()-    {-        if(m_hash_table) return false;-        if(m_node_size==0) m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;-        if(m_nodes.size()<GIM_DEFAULT_HASH_TABLE_SIZE)-        {-            _resize_table(GIM_DEFAULT_HASH_TABLE_SIZE);-        }-        else-        {-            _resize_table(m_nodes.size()+1);-        }--        return true;-    }--    bool switch_to_sorted_array()-    {-        if(m_hash_table==NULL) return true;-        _clear_table_memory();-        return sort();-    }--    //!If the container reaches the-    bool check_for_switching_to_hashtable()-    {-        if(this->m_hash_table) return true;--        if(!(m_nodes.size()< m_min_hash_table_size))-        {-            if(m_node_size == 0)-            {-                m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;-            }--            _resize_table(m_nodes.size()+1);-            return true;-        }-        return false;-    }--    inline void set_sorted(bool value)-    {-    	m_sorted = value;-    }--    //! Retrieves the amount of keys.-    inline GUINT size() const-    {-        return m_nodes.size();-    }--    //! Retrieves the hash key.-    inline GUINT get_key(GUINT index) const-    {-        return m_nodes[index].m_key;-    }--    //! Retrieves the value by index-    /*!-    */-    inline T * get_value_by_index(GUINT index)-    {-        return &m_nodes[index].m_data;-    }--    inline const T& operator[](GUINT index) const-    {-        return m_nodes[index].m_data;-    }--    inline T& operator[](GUINT index)-    {-        return m_nodes[index].m_data;-    }--    //! Finds the index of the element with the key-    /*!-    \return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted-    If so, the element has been inserted at the last position of the array.-    */-    inline GUINT find(GUINT hashkey)-    {-        if(m_hash_table)-        {-            GUINT cell_index = _find_cell(hashkey);-            if(cell_index==GIM_INVALID_HASH) return GIM_INVALID_HASH;-            return m_hash_table[cell_index];-        }-		GUINT last_index = m_nodes.size();-        if(last_index<2)-        {-			if(last_index==0) return GIM_INVALID_HASH;-            if(m_nodes[0].m_key == hashkey) return 0;-            return GIM_INVALID_HASH;-        }-        else if(m_sorted)-        {-            //Binary search-            GUINT result_ind = 0;-			last_index--;-            _node_type *  ptr =  m_nodes.pointer();--            bool found = gim_binary_search_ex(ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());---            if(found) return result_ind;-        }-        return GIM_INVALID_HASH;-    }--    //! Retrieves the value associated with the index-    /*!-    \return the found element, or null-    */-    inline T * get_value(GUINT hashkey)-    {-        GUINT index = find(hashkey);-        if(index == GIM_INVALID_HASH) return NULL;-        return &m_nodes[index].m_data;-    }---    /*!-    */-    inline bool erase_by_index(GUINT index)-    {-        if(index > m_nodes.size()) return false;--        if(m_hash_table == NULL)-        {-            if(is_sorted())-            {-                return this->_erase_sorted(index);-            }-            else-            {-                return this->_erase_unsorted(index);-            }-        }-        else-        {-            return this->_erase_by_index_hash_table(index);-        }-        return false;-    }----    inline bool erase_by_index_unsorted(GUINT index)-    {-        if(index > m_nodes.size()) return false;--        if(m_hash_table == NULL)-        {-            return this->_erase_unsorted(index);-        }-        else-        {-            return this->_erase_by_index_hash_table(index);-        }-        return false;-    }----    /*!--    */-    inline bool erase_by_key(GUINT hashkey)-    {-        if(size()==0) return false;--        if(m_hash_table)-        {-            return this->_erase_hash_table(hashkey);-        }-        //Binary search--        if(is_sorted()==false) return false;--        GUINT result_ind = find(hashkey);-        if(result_ind!= GIM_INVALID_HASH)-        {-            return this->_erase_sorted(result_ind);-        }-        return false;-    }--    void clear()-    {-        m_nodes.clear();--        if(m_hash_table==NULL) return;-        GUINT datasize = m_table_size*m_node_size;-        //Initialize the hashkeys.-        GUINT i;-        for(i=0;i<datasize;i++)-        {-            m_hash_table[i] = GIM_INVALID_HASH;// invalidate keys-        }-		m_sorted = false;-    }--    //! Insert an element into the hash-    /*!-    \return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position-    of the existing element.-    */-    inline GUINT insert(GUINT hashkey, const T & element)-    {-        if(m_hash_table)-        {-            return this->_insert_hash_table(hashkey,element);-        }-        if(this->is_sorted())-        {-            return this->_insert_sorted(hashkey,element);-        }-        return this->_insert_unsorted(hashkey,element);-    }--    //! Insert an element into the hash, and could overrite an existing object with the same hash.-    /*!-    \return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position-    of the replaced element.-    */-    inline GUINT insert_override(GUINT hashkey, const T & element)-    {-        if(m_hash_table)-        {-            return this->_insert_hash_table_replace(hashkey,element);-        }-        if(this->is_sorted())-        {-            return this->_insert_sorted_replace(hashkey,element);-        }-        this->_insert_unsorted(hashkey,element);-        return m_nodes.size();-    }----    //! Insert an element into the hash,But if this container is a sorted array, this inserts it unsorted-    /*!-    */-    inline GUINT insert_unsorted(GUINT hashkey,const T & element)-    {-        if(m_hash_table)-        {-            return this->_insert_hash_table(hashkey,element);-        }-        return this->_insert_unsorted(hashkey,element);-    }+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT.++This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.++-----------------------------------------------------------------------------+*/++#include "gim_radixsort.h"+++#define GIM_INVALID_HASH 0xffffffff //!< A very very high value+#define GIM_DEFAULT_HASH_TABLE_SIZE 380+#define GIM_DEFAULT_HASH_TABLE_NODE_SIZE 4+#define GIM_HASH_TABLE_GROW_FACTOR 2++#define GIM_MIN_RADIX_SORT_SIZE 860 //!< calibrated on a PIII++template<typename T>+struct GIM_HASH_TABLE_NODE+{+GUINT m_key;+T m_data;+GIM_HASH_TABLE_NODE()+{+}++GIM_HASH_TABLE_NODE(const GIM_HASH_TABLE_NODE & value)+{+m_key = value.m_key;+m_data = value.m_data;+}++GIM_HASH_TABLE_NODE(GUINT key, const T & data)+{+m_key = key;+m_data = data;+}++bool operator <(const GIM_HASH_TABLE_NODE<T> & other) const+{+///inverse order, further objects are first+if(m_key < other.m_key) return true;+return false;+}++bool operator >(const GIM_HASH_TABLE_NODE<T> & other) const+{+///inverse order, further objects are first+if(m_key > other.m_key) return true;+return false;+}++bool operator ==(const GIM_HASH_TABLE_NODE<T> & other) const+{+///inverse order, further objects are first+if(m_key == other.m_key) return true;+return false;+}+};++///Macro for getting the key+class GIM_HASH_NODE_GET_KEY+{ private:+public:+template<class T>+inline GUINT operator()( const T& a)+{+return a.m_key;+}+};++++///Macro for comparing the key and the element+class GIM_HASH_NODE_CMP_KEY_MACRO+{ private:+public:+template<class T>+inline int operator() ( const T& a, GUINT key)+{+return ((int)(a.m_key - key));+}+};++///Macro for comparing Hash nodes+class GIM_HASH_NODE_CMP_MACRO+{ private:+public:+template<class T>+inline int operator() ( const T& a, const T& b )+{+return ((int)(a.m_key - b.m_key));+}+};++++++//! Sorting for hash table+/*!+switch automatically between quicksort and radixsort+*/+template<typename T>+void gim_sort_hash_node_array(T * array, GUINT array_count)+{+if(array_count<GIM_MIN_RADIX_SORT_SIZE)+{+gim_heap_sort(array,array_count,GIM_HASH_NODE_CMP_MACRO());+}+else+{+memcopy_elements_func cmpfunc;+gim_radix_sort(array,array_count,GIM_HASH_NODE_GET_KEY(),cmpfunc);+}+}+++++++// Note: assumes long is at least 32 bits.+#define GIM_NUM_PRIME 28++static const GUINT gim_prime_list[GIM_NUM_PRIME] =+{+53ul, 97ul, 193ul, 389ul, 769ul,+1543ul, 3079ul, 6151ul, 12289ul, 24593ul,+49157ul, 98317ul, 196613ul, 393241ul, 786433ul,+1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul,+50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,+1610612741ul, 3221225473ul, 4294967291ul+};++inline GUINT gim_next_prime(GUINT number)+{+//Find nearest upper prime+GUINT result_ind = 0;+gim_binary_search(gim_prime_list,0,(GIM_NUM_PRIME-2),number,result_ind);++// inv: result_ind < 28+return gim_prime_list[result_ind];+}++++//! A compact hash table implementation+/*!+A memory aligned compact hash table that coud be treated as an array.+It could be a simple sorted array without the overhead of the hash key bucked, or could+be a formely hash table with an array of keys.+You can use switch_to_hashtable() and switch_to_sorted_array for saving space or increase speed.+</br>++<ul>+<li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.+When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.+<li> If node_size != 0, then this container becomes a hash table for ever+</ul>++*/+template<class T>+class gim_hash_table+{ private:+protected:+typedef GIM_HASH_TABLE_NODE<T> _node_type;++//!The nodes+//array< _node_type, SuperAllocator<_node_type> > m_nodes;+gim_array< _node_type > m_nodes;+//SuperBufferedArray< _node_type > m_nodes;+bool m_sorted;++///Hash table data management. The hash table has the indices to the corresponding m_nodes array+GUINT * m_hash_table;//!<+GUINT m_table_size;//!<+GUINT m_node_size;//!<+GUINT m_min_hash_table_size;++++//! Returns the cell index+inline GUINT _find_cell(GUINT hashkey)+{+_node_type * nodesptr = m_nodes.pointer();+GUINT start_index = (hashkey%m_table_size)*m_node_size;+GUINT end_index = start_index + m_node_size;++while(start_index<end_index)+{+GUINT value = m_hash_table[start_index];+if(value != GIM_INVALID_HASH)+{+if(nodesptr[value].m_key == hashkey) return start_index;+}+start_index++;+}+return GIM_INVALID_HASH;+}++//! Find the avaliable cell for the hashkey, and return an existing cell if it has the same hash key+inline GUINT _find_avaliable_cell(GUINT hashkey)+{+_node_type * nodesptr = m_nodes.pointer();+GUINT avaliable_index = GIM_INVALID_HASH;+GUINT start_index = (hashkey%m_table_size)*m_node_size;+GUINT end_index = start_index + m_node_size;++while(start_index<end_index)+{+GUINT value = m_hash_table[start_index];+if(value == GIM_INVALID_HASH)+{+if(avaliable_index==GIM_INVALID_HASH)+{+avaliable_index = start_index;+}+}+else if(nodesptr[value].m_key == hashkey)+{+return start_index;+}+start_index++;+}+return avaliable_index;+}++++//! reserves the memory for the hash table.+/*!+\pre hash table must be empty+\post reserves the memory for the hash table, an initializes all elements to GIM_INVALID_HASH.+*/+inline void _reserve_table_memory(GUINT newtablesize)+{+if(newtablesize==0) return;+if(m_node_size==0) return;++//Get a Prime size++m_table_size = gim_next_prime(newtablesize);++GUINT datasize = m_table_size*m_node_size;+//Alloc the data buffer+m_hash_table = (GUINT *)gim_alloc(datasize*sizeof(GUINT));+}++inline void _invalidate_keys()+{+GUINT datasize = m_table_size*m_node_size;+for(GUINT i=0;i<datasize;i++)+{+m_hash_table[i] = GIM_INVALID_HASH;// invalidate keys+}+}++//! Clear all memory for the hash table+inline void _clear_table_memory()+{+if(m_hash_table==NULL) return;+gim_free(m_hash_table);+m_hash_table = NULL;+m_table_size = 0;+}++//! Invalidates the keys (Assigning GIM_INVALID_HASH to all) Reorders the hash keys+inline void _rehash()+{+_invalidate_keys();++_node_type * nodesptr = m_nodes.pointer();+for(GUINT i=0;i<(GUINT)m_nodes.size();i++)+{+GUINT nodekey = nodesptr[i].m_key;+if(nodekey != GIM_INVALID_HASH)+{+//Search for the avaliable cell in buffer+GUINT index = _find_avaliable_cell(nodekey);+++if(m_hash_table[index]!=GIM_INVALID_HASH)+{//The new index is alreade used... discard this new incomming object, repeated key+btAssert(m_hash_table[index]==nodekey);+nodesptr[i].m_key = GIM_INVALID_HASH;+}+else+{+//;+//Assign the value for alloc+m_hash_table[index] = i;+}+}+}+}++//! Resize hash table indices+inline void _resize_table(GUINT newsize)+{+//Clear memory+_clear_table_memory();+//Alloc the data+_reserve_table_memory(newsize);+//Invalidate keys and rehash+_rehash();+}++//! Destroy hash table memory+inline void _destroy()+{+if(m_hash_table==NULL) return;+_clear_table_memory();+}++//! Finds an avaliable hash table cell, and resizes the table if there isn't space+inline GUINT _assign_hash_table_cell(GUINT hashkey)+{+GUINT cell_index = _find_avaliable_cell(hashkey);++if(cell_index==GIM_INVALID_HASH)+{+//rehashing+_resize_table(m_table_size+1);+GUINT cell_index = _find_avaliable_cell(hashkey);+btAssert(cell_index!=GIM_INVALID_HASH);+}+return cell_index;+}++//! erase by index in hash table+inline bool _erase_by_index_hash_table(GUINT index)+{+if(index >= m_nodes.size()) return false;+if(m_nodes[index].m_key != GIM_INVALID_HASH)+{+//Search for the avaliable cell in buffer+GUINT cell_index = _find_cell(m_nodes[index].m_key);++btAssert(cell_index!=GIM_INVALID_HASH);+btAssert(m_hash_table[cell_index]==index);++m_hash_table[cell_index] = GIM_INVALID_HASH;+}++return this->_erase_unsorted(index);+}++//! erase by key in hash table+inline bool _erase_hash_table(GUINT hashkey)+{+if(hashkey == GIM_INVALID_HASH) return false;++//Search for the avaliable cell in buffer+GUINT cell_index = _find_cell(hashkey);+if(cell_index ==GIM_INVALID_HASH) return false;++GUINT index = m_hash_table[cell_index];+m_hash_table[cell_index] = GIM_INVALID_HASH;++return this->_erase_unsorted(index);+}++++//! insert an element in hash table+/*!+If the element exists, this won't insert the element+\return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted+If so, the element has been inserted at the last position of the array.+*/+inline GUINT _insert_hash_table(GUINT hashkey, const T & value)+{+if(hashkey==GIM_INVALID_HASH)+{+//Insert anyway+_insert_unsorted(hashkey,value);+return GIM_INVALID_HASH;+}++GUINT cell_index = _assign_hash_table_cell(hashkey);++GUINT value_key = m_hash_table[cell_index];++if(value_key!= GIM_INVALID_HASH) return value_key;// Not overrited++m_hash_table[cell_index] = m_nodes.size();++_insert_unsorted(hashkey,value);+return GIM_INVALID_HASH;+}++//! insert an element in hash table.+/*!+If the element exists, this replaces the element.+\return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted+If so, the element has been inserted at the last position of the array.+*/+inline GUINT _insert_hash_table_replace(GUINT hashkey, const T & value)+{+if(hashkey==GIM_INVALID_HASH)+{+//Insert anyway+_insert_unsorted(hashkey,value);+return GIM_INVALID_HASH;+}++GUINT cell_index = _assign_hash_table_cell(hashkey);++GUINT value_key = m_hash_table[cell_index];++if(value_key!= GIM_INVALID_HASH)+{//replaces the existing+m_nodes[value_key] = _node_type(hashkey,value);+return value_key;// index of the replaced element+}++m_hash_table[cell_index] = m_nodes.size();++_insert_unsorted(hashkey,value);+return GIM_INVALID_HASH;++}+++///Sorted array data management. The hash table has the indices to the corresponding m_nodes array+inline bool _erase_sorted(GUINT index)+{+if(index>=(GUINT)m_nodes.size()) return false;+m_nodes.erase_sorted(index);+if(m_nodes.size()<2) m_sorted = false;+return true;+}++//! faster, but unsorted+inline bool _erase_unsorted(GUINT index)+{+if(index>=m_nodes.size()) return false;++GUINT lastindex = m_nodes.size()-1;+if(index<lastindex && m_hash_table!=0)+{+GUINT hashkey = m_nodes[lastindex].m_key;+if(hashkey!=GIM_INVALID_HASH)+{+//update the new position of the last element+GUINT cell_index = _find_cell(hashkey);+btAssert(cell_index!=GIM_INVALID_HASH);+//new position of the last element which will be swaped+m_hash_table[cell_index] = index;+}+}+m_nodes.erase(index);+m_sorted = false;+return true;+}++//! Insert in position ordered+/*!+Also checks if it is needed to transform this container to a hash table, by calling check_for_switching_to_hashtable+*/+inline void _insert_in_pos(GUINT hashkey, const T & value, GUINT pos)+{+m_nodes.insert(_node_type(hashkey,value),pos);+this->check_for_switching_to_hashtable();+}++//! Insert an element in an ordered array+inline GUINT _insert_sorted(GUINT hashkey, const T & value)+{+if(hashkey==GIM_INVALID_HASH || size()==0)+{+m_nodes.push_back(_node_type(hashkey,value));+return GIM_INVALID_HASH;+}+//Insert at last position+//Sort element+++GUINT result_ind=0;+GUINT last_index = m_nodes.size()-1;+_node_type * ptr = m_nodes.pointer();++bool found = gim_binary_search_ex(+ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());+++//Insert before found index+if(found)+{+return result_ind;+}+else+{+_insert_in_pos(hashkey, value, result_ind);+}+return GIM_INVALID_HASH;+}++inline GUINT _insert_sorted_replace(GUINT hashkey, const T & value)+{+if(hashkey==GIM_INVALID_HASH || size()==0)+{+m_nodes.push_back(_node_type(hashkey,value));+return GIM_INVALID_HASH;+}+//Insert at last position+//Sort element+GUINT result_ind;+GUINT last_index = m_nodes.size()-1;+_node_type * ptr = m_nodes.pointer();++bool found = gim_binary_search_ex(+ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());++//Insert before found index+if(found)+{+m_nodes[result_ind] = _node_type(hashkey,value);+}+else+{+_insert_in_pos(hashkey, value, result_ind);+}+return result_ind;+}++//! Fast insertion in m_nodes array+inline GUINT _insert_unsorted(GUINT hashkey, const T & value)+{+m_nodes.push_back(_node_type(hashkey,value));+m_sorted = false;+return GIM_INVALID_HASH;+}++++public:++/*!+<li> if node_size = 0, then this container becomes a simple sorted array allocator. reserve_size is used for reserve memory in m_nodes.+When the array size reaches the size equivalent to 'min_hash_table_size', then it becomes a hash table by calling check_for_switching_to_hashtable.+<li> If node_size != 0, then this container becomes a hash table for ever+</ul>+*/+gim_hash_table(GUINT reserve_size = GIM_DEFAULT_HASH_TABLE_SIZE,+GUINT node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE,+GUINT min_hash_table_size = GIM_INVALID_HASH)+{+m_hash_table = NULL;+m_table_size = 0;+m_sorted = false;+m_node_size = node_size;+m_min_hash_table_size = min_hash_table_size;++if(m_node_size!=0)+{+if(reserve_size!=0)+{+m_nodes.reserve(reserve_size);+_reserve_table_memory(reserve_size);+_invalidate_keys();+}+else+{+m_nodes.reserve(GIM_DEFAULT_HASH_TABLE_SIZE);+_reserve_table_memory(GIM_DEFAULT_HASH_TABLE_SIZE);+_invalidate_keys();+}+}+else if(reserve_size!=0)+{+m_nodes.reserve(reserve_size);+}++}++~gim_hash_table()+{+_destroy();+}++inline bool is_hash_table()+{+if(m_hash_table) return true;+return false;+}++inline bool is_sorted()+{+if(size()<2) return true;+return m_sorted;+}++bool sort()+{+if(is_sorted()) return true;+if(m_nodes.size()<2) return false;+++_node_type * ptr = m_nodes.pointer();+GUINT siz = m_nodes.size();+gim_sort_hash_node_array(ptr,siz);+m_sorted=true;++++if(m_hash_table)+{+_rehash();+}+return true;+}++bool switch_to_hashtable()+{+if(m_hash_table) return false;+if(m_node_size==0) m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;+if(m_nodes.size()<GIM_DEFAULT_HASH_TABLE_SIZE)+{+_resize_table(GIM_DEFAULT_HASH_TABLE_SIZE);+}+else+{+_resize_table(m_nodes.size()+1);+}++return true;+}++bool switch_to_sorted_array()+{+if(m_hash_table==NULL) return true;+_clear_table_memory();+return sort();+}++//!If the container reaches the+bool check_for_switching_to_hashtable()+{+if(this->m_hash_table) return true;++if(!(m_nodes.size()< m_min_hash_table_size))+{+if(m_node_size == 0)+{+m_node_size = GIM_DEFAULT_HASH_TABLE_NODE_SIZE;+}++_resize_table(m_nodes.size()+1);+return true;+}+return false;+}++inline void set_sorted(bool value)+{+m_sorted = value;+}++//! Retrieves the amount of keys.+inline GUINT size() const+{+return m_nodes.size();+}++//! Retrieves the hash key.+inline GUINT get_key(GUINT index) const+{+return m_nodes[index].m_key;+}++//! Retrieves the value by index+/*!+*/+inline T * get_value_by_index(GUINT index)+{+return &m_nodes[index].m_data;+}++inline const T& operator[](GUINT index) const+{+return m_nodes[index].m_data;+}++inline T& operator[](GUINT index)+{+return m_nodes[index].m_data;+}++//! Finds the index of the element with the key+/*!+\return the index in the array of the existing element,or GIM_INVALID_HASH if the element has been inserted+If so, the element has been inserted at the last position of the array.+*/+inline GUINT find(GUINT hashkey)+{+if(m_hash_table)+{+GUINT cell_index = _find_cell(hashkey);+if(cell_index==GIM_INVALID_HASH) return GIM_INVALID_HASH;+return m_hash_table[cell_index];+}+GUINT last_index = m_nodes.size();+if(last_index<2)+{+if(last_index==0) return GIM_INVALID_HASH;+if(m_nodes[0].m_key == hashkey) return 0;+return GIM_INVALID_HASH;+}+else if(m_sorted)+{+//Binary search+GUINT result_ind = 0;+last_index--;+_node_type * ptr = m_nodes.pointer();++bool found = gim_binary_search_ex(ptr,0,last_index,result_ind,hashkey,GIM_HASH_NODE_CMP_KEY_MACRO());+++if(found) return result_ind;+}+return GIM_INVALID_HASH;+}++//! Retrieves the value associated with the index+/*!+\return the found element, or null+*/+inline T * get_value(GUINT hashkey)+{+GUINT index = find(hashkey);+if(index == GIM_INVALID_HASH) return NULL;+return &m_nodes[index].m_data;+}+++/*!+*/+inline bool erase_by_index(GUINT index)+{+if(index > m_nodes.size()) return false;++if(m_hash_table == NULL)+{+if(is_sorted())+{+return this->_erase_sorted(index);+}+else+{+return this->_erase_unsorted(index);+}+}+else+{+return this->_erase_by_index_hash_table(index);+}+return false;+}++++inline bool erase_by_index_unsorted(GUINT index)+{+if(index > m_nodes.size()) return false;++if(m_hash_table == NULL)+{+return this->_erase_unsorted(index);+}+else+{+return this->_erase_by_index_hash_table(index);+}+return false;+}++++/*!++*/+inline bool erase_by_key(GUINT hashkey)+{+if(size()==0) return false;++if(m_hash_table)+{+return this->_erase_hash_table(hashkey);+}+//Binary search++if(is_sorted()==false) return false;++GUINT result_ind = find(hashkey);+if(result_ind!= GIM_INVALID_HASH)+{+return this->_erase_sorted(result_ind);+}+return false;+}++void clear()+{+m_nodes.clear();++if(m_hash_table==NULL) return;+GUINT datasize = m_table_size*m_node_size;+//Initialize the hashkeys.+GUINT i;+for(i=0;i<datasize;i++)+{+m_hash_table[i] = GIM_INVALID_HASH;// invalidate keys+}+m_sorted = false;+}++//! Insert an element into the hash+/*!+\return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position+of the existing element.+*/+inline GUINT insert(GUINT hashkey, const T & element)+{+if(m_hash_table)+{+return this->_insert_hash_table(hashkey,element);+}+if(this->is_sorted())+{+return this->_insert_sorted(hashkey,element);+}+return this->_insert_unsorted(hashkey,element);+}++//! Insert an element into the hash, and could overrite an existing object with the same hash.+/*!+\return If GIM_INVALID_HASH, the object has been inserted succesfully. Else it returns the position+of the replaced element.+*/+inline GUINT insert_override(GUINT hashkey, const T & element)+{+if(m_hash_table)+{+return this->_insert_hash_table_replace(hashkey,element);+}+if(this->is_sorted())+{+return this->_insert_sorted_replace(hashkey,element);+}+this->_insert_unsorted(hashkey,element);+return m_nodes.size();+}++++//! Insert an element into the hash,But if this container is a sorted array, this inserts it unsorted+/*!+*/+inline GUINT insert_unsorted(GUINT hashkey,const T & element)+{+if(m_hash_table)+{+return this->_insert_hash_table(hashkey,element);+}+return this->_insert_unsorted(hashkey,element);+}   };
bullet/BulletCollision/Gimpact/gim_linear_math.h view
@@ -14,1558 +14,1558 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.-- This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.--------------------------------------------------------------------------------*/---#include "gim_math.h"-#include "gim_geom_types.h"-----//! Zero out a 2D vector-#define VEC_ZERO_2(a)				\-{						\-   (a)[0] = (a)[1] = 0.0f;			\-}\---//! Zero out a 3D vector-#define VEC_ZERO(a)				\-{						\-   (a)[0] = (a)[1] = (a)[2] = 0.0f;		\-}\---/// Zero out a 4D vector-#define VEC_ZERO_4(a)				\-{						\-   (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0f;	\-}\---/// Vector copy-#define VEC_COPY_2(b,a)				\-{						\-   (b)[0] = (a)[0];				\-   (b)[1] = (a)[1];				\-}\---/// Copy 3D vector-#define VEC_COPY(b,a)				\-{						\-   (b)[0] = (a)[0];				\-   (b)[1] = (a)[1];				\-   (b)[2] = (a)[2];				\-}\---/// Copy 4D vector-#define VEC_COPY_4(b,a)				\-{						\-   (b)[0] = (a)[0];				\-   (b)[1] = (a)[1];				\-   (b)[2] = (a)[2];				\-   (b)[3] = (a)[3];				\-}\--/// VECTOR SWAP-#define VEC_SWAP(b,a)				\-{  \-    GIM_SWAP_NUMBERS((b)[0],(a)[0]);\-    GIM_SWAP_NUMBERS((b)[1],(a)[1]);\-    GIM_SWAP_NUMBERS((b)[2],(a)[2]);\-}\--/// Vector difference-#define VEC_DIFF_2(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] - (v1)[0];		\-   (v21)[1] = (v2)[1] - (v1)[1];		\-}\---/// Vector difference-#define VEC_DIFF(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] - (v1)[0];		\-   (v21)[1] = (v2)[1] - (v1)[1];		\-   (v21)[2] = (v2)[2] - (v1)[2];		\-}\---/// Vector difference-#define VEC_DIFF_4(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] - (v1)[0];		\-   (v21)[1] = (v2)[1] - (v1)[1];		\-   (v21)[2] = (v2)[2] - (v1)[2];		\-   (v21)[3] = (v2)[3] - (v1)[3];		\-}\---/// Vector sum-#define VEC_SUM_2(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] + (v1)[0];		\-   (v21)[1] = (v2)[1] + (v1)[1];		\-}\---/// Vector sum-#define VEC_SUM(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] + (v1)[0];		\-   (v21)[1] = (v2)[1] + (v1)[1];		\-   (v21)[2] = (v2)[2] + (v1)[2];		\-}\---/// Vector sum-#define VEC_SUM_4(v21,v2,v1)			\-{						\-   (v21)[0] = (v2)[0] + (v1)[0];		\-   (v21)[1] = (v2)[1] + (v1)[1];		\-   (v21)[2] = (v2)[2] + (v1)[2];		\-   (v21)[3] = (v2)[3] + (v1)[3];		\-}\---/// scalar times vector-#define VEC_SCALE_2(c,a,b)			\-{						\-   (c)[0] = (a)*(b)[0];				\-   (c)[1] = (a)*(b)[1];				\-}\---/// scalar times vector-#define VEC_SCALE(c,a,b)			\-{						\-   (c)[0] = (a)*(b)[0];				\-   (c)[1] = (a)*(b)[1];				\-   (c)[2] = (a)*(b)[2];				\-}\---/// scalar times vector-#define VEC_SCALE_4(c,a,b)			\-{						\-   (c)[0] = (a)*(b)[0];				\-   (c)[1] = (a)*(b)[1];				\-   (c)[2] = (a)*(b)[2];				\-   (c)[3] = (a)*(b)[3];				\-}\---/// accumulate scaled vector-#define VEC_ACCUM_2(c,a,b)			\-{						\-   (c)[0] += (a)*(b)[0];			\-   (c)[1] += (a)*(b)[1];			\-}\---/// accumulate scaled vector-#define VEC_ACCUM(c,a,b)			\-{						\-   (c)[0] += (a)*(b)[0];			\-   (c)[1] += (a)*(b)[1];			\-   (c)[2] += (a)*(b)[2];			\-}\---/// accumulate scaled vector-#define VEC_ACCUM_4(c,a,b)			\-{						\-   (c)[0] += (a)*(b)[0];			\-   (c)[1] += (a)*(b)[1];			\-   (c)[2] += (a)*(b)[2];			\-   (c)[3] += (a)*(b)[3];			\-}\---/// Vector dot product-#define VEC_DOT_2(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1])---/// Vector dot product-#define VEC_DOT(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2])--/// Vector dot product-#define VEC_DOT_4(a,b)	((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3])--/// vector impact parameter (squared)-#define VEC_IMPACT_SQ(bsq,direction,position) {\-   GREAL _llel_ = VEC_DOT(direction, position);\-   bsq = VEC_DOT(position, position) - _llel_*_llel_;\-}\---/// vector impact parameter-#define VEC_IMPACT(bsq,direction,position)	{\-   VEC_IMPACT_SQ(bsq,direction,position);		\-   GIM_SQRT(bsq,bsq);					\-}\--/// Vector length-#define VEC_LENGTH_2(a,l)\-{\-    GREAL _pp = VEC_DOT_2(a,a);\-    GIM_SQRT(_pp,l);\-}\---/// Vector length-#define VEC_LENGTH(a,l)\-{\-    GREAL _pp = VEC_DOT(a,a);\-    GIM_SQRT(_pp,l);\-}\---/// Vector length-#define VEC_LENGTH_4(a,l)\-{\-    GREAL _pp = VEC_DOT_4(a,a);\-    GIM_SQRT(_pp,l);\-}\--/// Vector inv length-#define VEC_INV_LENGTH_2(a,l)\-{\-    GREAL _pp = VEC_DOT_2(a,a);\-    GIM_INV_SQRT(_pp,l);\-}\---/// Vector inv length-#define VEC_INV_LENGTH(a,l)\-{\-    GREAL _pp = VEC_DOT(a,a);\-    GIM_INV_SQRT(_pp,l);\-}\---/// Vector inv length-#define VEC_INV_LENGTH_4(a,l)\-{\-    GREAL _pp = VEC_DOT_4(a,a);\-    GIM_INV_SQRT(_pp,l);\-}\----/// distance between two points-#define VEC_DISTANCE(_len,_va,_vb) {\-    vec3f _tmp_;				\-    VEC_DIFF(_tmp_, _vb, _va);			\-    VEC_LENGTH(_tmp_,_len);			\-}\---/// Vector length-#define VEC_CONJUGATE_LENGTH(a,l)\-{\-    GREAL _pp = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\-    GIM_SQRT(_pp,l);\-}\---/// Vector length-#define VEC_NORMALIZE(a) {	\-    GREAL len;\-    VEC_INV_LENGTH(a,len); \-    if(len<G_REAL_INFINITY)\-    {\-        a[0] *= len;				\-        a[1] *= len;				\-        a[2] *= len;				\-    }						\-}\--/// Set Vector size-#define VEC_RENORMALIZE(a,newlen) {	\-    GREAL len;\-    VEC_INV_LENGTH(a,len); \-    if(len<G_REAL_INFINITY)\-    {\-        len *= newlen;\-        a[0] *= len;				\-        a[1] *= len;				\-        a[2] *= len;				\-    }						\-}\--/// Vector cross-#define VEC_CROSS(c,a,b)		\-{						\-   c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1];	\-   c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2];	\-   c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0];	\-}\---/*! Vector perp -- assumes that n is of unit length- * accepts vector v, subtracts out any component parallel to n */-#define VEC_PERPENDICULAR(vp,v,n)			\-{						\-   GREAL dot = VEC_DOT(v, n);			\-   vp[0] = (v)[0] - dot*(n)[0];		\-   vp[1] = (v)[1] - dot*(n)[1];		\-   vp[2] = (v)[2] - dot*(n)[2];		\-}\---/*! Vector parallel -- assumes that n is of unit length */-#define VEC_PARALLEL(vp,v,n)			\-{						\-   GREAL dot = VEC_DOT(v, n);			\-   vp[0] = (dot) * (n)[0];			\-   vp[1] = (dot) * (n)[1];			\-   vp[2] = (dot) * (n)[2];			\-}\--/*! Same as Vector parallel --  n can have any length- * accepts vector v, subtracts out any component perpendicular to n */-#define VEC_PROJECT(vp,v,n)			\-{ \-	GREAL scalar = VEC_DOT(v, n);			\-	scalar/= VEC_DOT(n, n); \-	vp[0] = (scalar) * (n)[0];			\-    vp[1] = (scalar) * (n)[1];			\-    vp[2] = (scalar) * (n)[2];			\-}\---/*! accepts vector v*/-#define VEC_UNPROJECT(vp,v,n)			\-{ \-	GREAL scalar = VEC_DOT(v, n);			\-	scalar = VEC_DOT(n, n)/scalar; \-	vp[0] = (scalar) * (n)[0];			\-    vp[1] = (scalar) * (n)[1];			\-    vp[2] = (scalar) * (n)[2];			\-}\---/*! Vector reflection -- assumes n is of unit length- Takes vector v, reflects it against reflector n, and returns vr */-#define VEC_REFLECT(vr,v,n)			\-{						\-   GREAL dot = VEC_DOT(v, n);			\-   vr[0] = (v)[0] - 2.0 * (dot) * (n)[0];	\-   vr[1] = (v)[1] - 2.0 * (dot) * (n)[1];	\-   vr[2] = (v)[2] - 2.0 * (dot) * (n)[2];	\-}\---/*! Vector blending-Takes two vectors a, b, blends them together with two scalars */-#define VEC_BLEND_AB(vr,sa,a,sb,b)			\-{						\-   vr[0] = (sa) * (a)[0] + (sb) * (b)[0];	\-   vr[1] = (sa) * (a)[1] + (sb) * (b)[1];	\-   vr[2] = (sa) * (a)[2] + (sb) * (b)[2];	\-}\--/*! Vector blending-Takes two vectors a, b, blends them together with s <=1 */-#define VEC_BLEND(vr,a,b,s) VEC_BLEND_AB(vr,(1-s),a,s,b)--#define VEC_SET3(a,b,op,c) a[0]=b[0] op c[0]; a[1]=b[1] op c[1]; a[2]=b[2] op c[2];--//! Finds the bigger cartesian coordinate from a vector-#define VEC_MAYOR_COORD(vec, maxc)\-{\-	GREAL A[] = {fabs(vec[0]),fabs(vec[1]),fabs(vec[2])};\-    maxc =  A[0]>A[1]?(A[0]>A[2]?0:2):(A[1]>A[2]?1:2);\-}\--//! Finds the 2 smallest cartesian coordinates from a vector-#define VEC_MINOR_AXES(vec, i0, i1)\-{\-	VEC_MAYOR_COORD(vec,i0);\-	i0 = (i0+1)%3;\-	i1 = (i0+1)%3;\-}\-----#define VEC_EQUAL(v1,v2) (v1[0]==v2[0]&&v1[1]==v2[1]&&v1[2]==v2[2])--#define VEC_NEAR_EQUAL(v1,v2) (GIM_NEAR_EQUAL(v1[0],v2[0])&&GIM_NEAR_EQUAL(v1[1],v2[1])&&GIM_NEAR_EQUAL(v1[2],v2[2]))---/// Vector cross-#define X_AXIS_CROSS_VEC(dst,src)\-{					   \-	dst[0] = 0.0f;     \-	dst[1] = -src[2];  \-	dst[2] = src[1];  \-}\--#define Y_AXIS_CROSS_VEC(dst,src)\-{					   \-	dst[0] = src[2];     \-	dst[1] = 0.0f;  \-	dst[2] = -src[0];  \-}\--#define Z_AXIS_CROSS_VEC(dst,src)\-{					   \-	dst[0] = -src[1];     \-	dst[1] = src[0];  \-	dst[2] = 0.0f;  \-}\-------/// initialize matrix-#define IDENTIFY_MATRIX_3X3(m)			\-{						\-   m[0][0] = 1.0;				\-   m[0][1] = 0.0;				\-   m[0][2] = 0.0;				\-						\-   m[1][0] = 0.0;				\-   m[1][1] = 1.0;				\-   m[1][2] = 0.0;				\-						\-   m[2][0] = 0.0;				\-   m[2][1] = 0.0;				\-   m[2][2] = 1.0;				\-}\--/*! initialize matrix */-#define IDENTIFY_MATRIX_4X4(m)			\-{						\-   m[0][0] = 1.0;				\-   m[0][1] = 0.0;				\-   m[0][2] = 0.0;				\-   m[0][3] = 0.0;				\-						\-   m[1][0] = 0.0;				\-   m[1][1] = 1.0;				\-   m[1][2] = 0.0;				\-   m[1][3] = 0.0;				\-						\-   m[2][0] = 0.0;				\-   m[2][1] = 0.0;				\-   m[2][2] = 1.0;				\-   m[2][3] = 0.0;				\-						\-   m[3][0] = 0.0;				\-   m[3][1] = 0.0;				\-   m[3][2] = 0.0;				\-   m[3][3] = 1.0;				\-}\--/*! initialize matrix */-#define ZERO_MATRIX_4X4(m)			\-{						\-   m[0][0] = 0.0;				\-   m[0][1] = 0.0;				\-   m[0][2] = 0.0;				\-   m[0][3] = 0.0;				\-						\-   m[1][0] = 0.0;				\-   m[1][1] = 0.0;				\-   m[1][2] = 0.0;				\-   m[1][3] = 0.0;				\-						\-   m[2][0] = 0.0;				\-   m[2][1] = 0.0;				\-   m[2][2] = 0.0;				\-   m[2][3] = 0.0;				\-						\-   m[3][0] = 0.0;				\-   m[3][1] = 0.0;				\-   m[3][2] = 0.0;				\-   m[3][3] = 0.0;				\-}\--/*! matrix rotation  X */-#define ROTX_CS(m,cosine,sine)		\-{					\-   /* rotation about the x-axis */	\-					\-   m[0][0] = 1.0;			\-   m[0][1] = 0.0;			\-   m[0][2] = 0.0;			\-   m[0][3] = 0.0;			\-					\-   m[1][0] = 0.0;			\-   m[1][1] = (cosine);			\-   m[1][2] = (sine);			\-   m[1][3] = 0.0;			\-					\-   m[2][0] = 0.0;			\-   m[2][1] = -(sine);			\-   m[2][2] = (cosine);			\-   m[2][3] = 0.0;			\-					\-   m[3][0] = 0.0;			\-   m[3][1] = 0.0;			\-   m[3][2] = 0.0;			\-   m[3][3] = 1.0;			\-}\--/*! matrix rotation  Y */-#define ROTY_CS(m,cosine,sine)		\-{					\-   /* rotation about the y-axis */	\-					\-   m[0][0] = (cosine);			\-   m[0][1] = 0.0;			\-   m[0][2] = -(sine);			\-   m[0][3] = 0.0;			\-					\-   m[1][0] = 0.0;			\-   m[1][1] = 1.0;			\-   m[1][2] = 0.0;			\-   m[1][3] = 0.0;			\-					\-   m[2][0] = (sine);			\-   m[2][1] = 0.0;			\-   m[2][2] = (cosine);			\-   m[2][3] = 0.0;			\-					\-   m[3][0] = 0.0;			\-   m[3][1] = 0.0;			\-   m[3][2] = 0.0;			\-   m[3][3] = 1.0;			\-}\--/*! matrix rotation  Z */-#define ROTZ_CS(m,cosine,sine)		\-{					\-   /* rotation about the z-axis */	\-					\-   m[0][0] = (cosine);			\-   m[0][1] = (sine);			\-   m[0][2] = 0.0;			\-   m[0][3] = 0.0;			\-					\-   m[1][0] = -(sine);			\-   m[1][1] = (cosine);			\-   m[1][2] = 0.0;			\-   m[1][3] = 0.0;			\-					\-   m[2][0] = 0.0;			\-   m[2][1] = 0.0;			\-   m[2][2] = 1.0;			\-   m[2][3] = 0.0;			\-					\-   m[3][0] = 0.0;			\-   m[3][1] = 0.0;			\-   m[3][2] = 0.0;			\-   m[3][3] = 1.0;			\-}\--/*! matrix copy */-#define COPY_MATRIX_2X2(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[0][1];		\-				\-   b[1][0] = a[1][0];		\-   b[1][1] = a[1][1];		\-				\-}\---/*! matrix copy */-#define COPY_MATRIX_2X3(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[0][1];		\-   b[0][2] = a[0][2];		\-				\-   b[1][0] = a[1][0];		\-   b[1][1] = a[1][1];		\-   b[1][2] = a[1][2];		\-}\---/*! matrix copy */-#define COPY_MATRIX_3X3(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[0][1];		\-   b[0][2] = a[0][2];		\-				\-   b[1][0] = a[1][0];		\-   b[1][1] = a[1][1];		\-   b[1][2] = a[1][2];		\-				\-   b[2][0] = a[2][0];		\-   b[2][1] = a[2][1];		\-   b[2][2] = a[2][2];		\-}\---/*! matrix copy */-#define COPY_MATRIX_4X4(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[0][1];		\-   b[0][2] = a[0][2];		\-   b[0][3] = a[0][3];		\-				\-   b[1][0] = a[1][0];		\-   b[1][1] = a[1][1];		\-   b[1][2] = a[1][2];		\-   b[1][3] = a[1][3];		\-				\-   b[2][0] = a[2][0];		\-   b[2][1] = a[2][1];		\-   b[2][2] = a[2][2];		\-   b[2][3] = a[2][3];		\-				\-   b[3][0] = a[3][0];		\-   b[3][1] = a[3][1];		\-   b[3][2] = a[3][2];		\-   b[3][3] = a[3][3];		\-}\---/*! matrix transpose */-#define TRANSPOSE_MATRIX_2X2(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[1][0];		\-				\-   b[1][0] = a[0][1];		\-   b[1][1] = a[1][1];		\-}\---/*! matrix transpose */-#define TRANSPOSE_MATRIX_3X3(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[1][0];		\-   b[0][2] = a[2][0];		\-				\-   b[1][0] = a[0][1];		\-   b[1][1] = a[1][1];		\-   b[1][2] = a[2][1];		\-				\-   b[2][0] = a[0][2];		\-   b[2][1] = a[1][2];		\-   b[2][2] = a[2][2];		\-}\---/*! matrix transpose */-#define TRANSPOSE_MATRIX_4X4(b,a)	\-{				\-   b[0][0] = a[0][0];		\-   b[0][1] = a[1][0];		\-   b[0][2] = a[2][0];		\-   b[0][3] = a[3][0];		\-				\-   b[1][0] = a[0][1];		\-   b[1][1] = a[1][1];		\-   b[1][2] = a[2][1];		\-   b[1][3] = a[3][1];		\-				\-   b[2][0] = a[0][2];		\-   b[2][1] = a[1][2];		\-   b[2][2] = a[2][2];		\-   b[2][3] = a[3][2];		\-				\-   b[3][0] = a[0][3];		\-   b[3][1] = a[1][3];		\-   b[3][2] = a[2][3];		\-   b[3][3] = a[3][3];		\-}\---/*! multiply matrix by scalar */-#define SCALE_MATRIX_2X2(b,s,a)		\-{					\-   b[0][0] = (s) * a[0][0];		\-   b[0][1] = (s) * a[0][1];		\-					\-   b[1][0] = (s) * a[1][0];		\-   b[1][1] = (s) * a[1][1];		\-}\---/*! multiply matrix by scalar */-#define SCALE_MATRIX_3X3(b,s,a)		\-{					\-   b[0][0] = (s) * a[0][0];		\-   b[0][1] = (s) * a[0][1];		\-   b[0][2] = (s) * a[0][2];		\-					\-   b[1][0] = (s) * a[1][0];		\-   b[1][1] = (s) * a[1][1];		\-   b[1][2] = (s) * a[1][2];		\-					\-   b[2][0] = (s) * a[2][0];		\-   b[2][1] = (s) * a[2][1];		\-   b[2][2] = (s) * a[2][2];		\-}\---/*! multiply matrix by scalar */-#define SCALE_MATRIX_4X4(b,s,a)		\-{					\-   b[0][0] = (s) * a[0][0];		\-   b[0][1] = (s) * a[0][1];		\-   b[0][2] = (s) * a[0][2];		\-   b[0][3] = (s) * a[0][3];		\-					\-   b[1][0] = (s) * a[1][0];		\-   b[1][1] = (s) * a[1][1];		\-   b[1][2] = (s) * a[1][2];		\-   b[1][3] = (s) * a[1][3];		\-					\-   b[2][0] = (s) * a[2][0];		\-   b[2][1] = (s) * a[2][1];		\-   b[2][2] = (s) * a[2][2];		\-   b[2][3] = (s) * a[2][3];		\-					\-   b[3][0] = s * a[3][0];		\-   b[3][1] = s * a[3][1];		\-   b[3][2] = s * a[3][2];		\-   b[3][3] = s * a[3][3];		\-}\---/*! multiply matrix by scalar */-#define SCALE_VEC_MATRIX_2X2(b,svec,a)		\-{					\-   b[0][0] = svec[0] * a[0][0];		\-   b[1][0] = svec[0] * a[1][0];		\-					\-   b[0][1] = svec[1] * a[0][1];		\-   b[1][1] = svec[1] * a[1][1];		\-}\---/*! multiply matrix by scalar. Each columns is scaled by each scalar vector component */-#define SCALE_VEC_MATRIX_3X3(b,svec,a)		\-{					\-   b[0][0] = svec[0] * a[0][0];		\-   b[1][0] = svec[0] * a[1][0];		\-   b[2][0] = svec[0] * a[2][0];		\-					\-   b[0][1] = svec[1] * a[0][1];		\-   b[1][1] = svec[1] * a[1][1];		\-   b[2][1] = svec[1] * a[2][1];		\-					\-   b[0][2] = svec[2] * a[0][2];		\-   b[1][2] = svec[2] * a[1][2];		\-   b[2][2] = svec[2] * a[2][2];		\-}\---/*! multiply matrix by scalar */-#define SCALE_VEC_MATRIX_4X4(b,svec,a)		\-{					\-   b[0][0] = svec[0] * a[0][0];		\-   b[1][0] = svec[0] * a[1][0];		\-   b[2][0] = svec[0] * a[2][0];		\-   b[3][0] = svec[0] * a[3][0];		\-					\-   b[0][1] = svec[1] * a[0][1];		\-   b[1][1] = svec[1] * a[1][1];		\-   b[2][1] = svec[1] * a[2][1];		\-   b[3][1] = svec[1] * a[3][1];		\-					\-   b[0][2] = svec[2] * a[0][2];		\-   b[1][2] = svec[2] * a[1][2];		\-   b[2][2] = svec[2] * a[2][2];		\-   b[3][2] = svec[2] * a[3][2];		\-   \-   b[0][3] = svec[3] * a[0][3];		\-   b[1][3] = svec[3] * a[1][3];		\-   b[2][3] = svec[3] * a[2][3];		\-   b[3][3] = svec[3] * a[3][3];		\-}\---/*! multiply matrix by scalar */-#define ACCUM_SCALE_MATRIX_2X2(b,s,a)		\-{					\-   b[0][0] += (s) * a[0][0];		\-   b[0][1] += (s) * a[0][1];		\-					\-   b[1][0] += (s) * a[1][0];		\-   b[1][1] += (s) * a[1][1];		\-}\---/*! multiply matrix by scalar */-#define ACCUM_SCALE_MATRIX_3X3(b,s,a)		\-{					\-   b[0][0] += (s) * a[0][0];		\-   b[0][1] += (s) * a[0][1];		\-   b[0][2] += (s) * a[0][2];		\-					\-   b[1][0] += (s) * a[1][0];		\-   b[1][1] += (s) * a[1][1];		\-   b[1][2] += (s) * a[1][2];		\-					\-   b[2][0] += (s) * a[2][0];		\-   b[2][1] += (s) * a[2][1];		\-   b[2][2] += (s) * a[2][2];		\-}\---/*! multiply matrix by scalar */-#define ACCUM_SCALE_MATRIX_4X4(b,s,a)		\-{					\-   b[0][0] += (s) * a[0][0];		\-   b[0][1] += (s) * a[0][1];		\-   b[0][2] += (s) * a[0][2];		\-   b[0][3] += (s) * a[0][3];		\-					\-   b[1][0] += (s) * a[1][0];		\-   b[1][1] += (s) * a[1][1];		\-   b[1][2] += (s) * a[1][2];		\-   b[1][3] += (s) * a[1][3];		\-					\-   b[2][0] += (s) * a[2][0];		\-   b[2][1] += (s) * a[2][1];		\-   b[2][2] += (s) * a[2][2];		\-   b[2][3] += (s) * a[2][3];		\-					\-   b[3][0] += (s) * a[3][0];		\-   b[3][1] += (s) * a[3][1];		\-   b[3][2] += (s) * a[3][2];		\-   b[3][3] += (s) * a[3][3];		\-}\--/*! matrix product */-/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/-#define MATRIX_PRODUCT_2X2(c,a,b)		\-{						\-   c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0];	\-   c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1];	\-						\-   c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0];	\-   c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1];	\-						\-}\--/*! matrix product */-/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/-#define MATRIX_PRODUCT_3X3(c,a,b)				\-{								\-   c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0];	\-   c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1];	\-   c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2];	\-								\-   c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0];	\-   c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1];	\-   c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2];	\-								\-   c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0];	\-   c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1];	\-   c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2];	\-}\---/*! matrix product */-/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/-#define MATRIX_PRODUCT_4X4(c,a,b)		\-{						\-   c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\-   c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\-   c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\-   c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\-						\-   c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\-   c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\-   c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\-   c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\-						\-   c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\-   c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\-   c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\-   c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\-						\-   c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\-   c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\-   c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\-   c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\-}\---/*! matrix times vector */-#define MAT_DOT_VEC_2X2(p,m,v)					\-{								\-   p[0] = m[0][0]*v[0] + m[0][1]*v[1];				\-   p[1] = m[1][0]*v[0] + m[1][1]*v[1];				\-}\---/*! matrix times vector */-#define MAT_DOT_VEC_3X3(p,m,v)					\-{								\-   p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2];		\-   p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2];		\-   p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2];		\-}\---/*! matrix times vector-v is a vec4f-*/-#define MAT_DOT_VEC_4X4(p,m,v)					\-{								\-   p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3];	\-   p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3];	\-   p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3];	\-   p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3];	\-}\--/*! matrix times vector-v is a vec3f-and m is a mat4f<br>-Last column is added as the position-*/-#define MAT_DOT_VEC_3X4(p,m,v)					\-{								\-   p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3];	\-   p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3];	\-   p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3];	\-}\---/*! vector transpose times matrix */-/*! p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */-#define VEC_DOT_MAT_3X3(p,v,m)					\-{								\-   p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0];		\-   p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1];		\-   p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2];		\-}\---/*! affine matrix times vector */-/** The matrix is assumed to be an affine matrix, with last two- * entries representing a translation */-#define MAT_DOT_VEC_2X3(p,m,v)					\-{								\-   p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2];		\-   p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2];		\-}\--//! Transform a plane-#define MAT_TRANSFORM_PLANE_4X4(pout,m,plane)\-{								\-   pout[0] = m[0][0]*plane[0] + m[0][1]*plane[1]  + m[0][2]*plane[2];\-   pout[1] = m[1][0]*plane[0] + m[1][1]*plane[1]  + m[1][2]*plane[2];\-   pout[2] = m[2][0]*plane[0] + m[2][1]*plane[1]  + m[2][2]*plane[2];\-   pout[3] = m[0][3]*pout[0] + m[1][3]*pout[1]  + m[2][3]*pout[2] + plane[3];\-}\----/** inverse transpose of matrix times vector- *- * This macro computes inverse transpose of matrix m,- * and multiplies vector v into it, to yeild vector p- *- * DANGER !!! Do Not use this on normal vectors!!!- * It will leave normals the wrong length !!!- * See macro below for use on normals.- */-#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v)			\-{								\-   GREAL det;						\-								\-   det = m[0][0]*m[1][1] - m[0][1]*m[1][0];			\-   p[0] = m[1][1]*v[0] - m[1][0]*v[1];				\-   p[1] = - m[0][1]*v[0] + m[0][0]*v[1];			\-								\-   /* if matrix not singular, and not orthonormal, then renormalize */ \-   if ((det!=1.0f) && (det != 0.0f)) {				\-      det = 1.0f / det;						\-      p[0] *= det;						\-      p[1] *= det;						\-   }								\-}\---/** transform normal vector by inverse transpose of matrix- * and then renormalize the vector- *- * This macro computes inverse transpose of matrix m,- * and multiplies vector v into it, to yeild vector p- * Vector p is then normalized.- */-#define NORM_XFORM_2X2(p,m,v)					\-{								\-   GREAL len;							\-								\-   /* do nothing if off-diagonals are zero and diagonals are 	\-    * equal */							\-   if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \-      p[0] = m[1][1]*v[0] - m[1][0]*v[1];			\-      p[1] = - m[0][1]*v[0] + m[0][0]*v[1];			\-								\-      len = p[0]*p[0] + p[1]*p[1];				\-      GIM_INV_SQRT(len,len);					\-      p[0] *= len;						\-      p[1] *= len;						\-   } else {							\-      VEC_COPY_2 (p, v);					\-   }								\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define OUTER_PRODUCT_2X2(m,v,t)				\-{								\-   m[0][0] = v[0] * t[0];					\-   m[0][1] = v[0] * t[1];					\-								\-   m[1][0] = v[1] * t[0];					\-   m[1][1] = v[1] * t[1];					\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define OUTER_PRODUCT_3X3(m,v,t)				\-{								\-   m[0][0] = v[0] * t[0];					\-   m[0][1] = v[0] * t[1];					\-   m[0][2] = v[0] * t[2];					\-								\-   m[1][0] = v[1] * t[0];					\-   m[1][1] = v[1] * t[1];					\-   m[1][2] = v[1] * t[2];					\-								\-   m[2][0] = v[2] * t[0];					\-   m[2][1] = v[2] * t[1];					\-   m[2][2] = v[2] * t[2];					\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define OUTER_PRODUCT_4X4(m,v,t)				\-{								\-   m[0][0] = v[0] * t[0];					\-   m[0][1] = v[0] * t[1];					\-   m[0][2] = v[0] * t[2];					\-   m[0][3] = v[0] * t[3];					\-								\-   m[1][0] = v[1] * t[0];					\-   m[1][1] = v[1] * t[1];					\-   m[1][2] = v[1] * t[2];					\-   m[1][3] = v[1] * t[3];					\-								\-   m[2][0] = v[2] * t[0];					\-   m[2][1] = v[2] * t[1];					\-   m[2][2] = v[2] * t[2];					\-   m[2][3] = v[2] * t[3];					\-								\-   m[3][0] = v[3] * t[0];					\-   m[3][1] = v[3] * t[1];					\-   m[3][2] = v[3] * t[2];					\-   m[3][3] = v[3] * t[3];					\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define ACCUM_OUTER_PRODUCT_2X2(m,v,t)				\-{								\-   m[0][0] += v[0] * t[0];					\-   m[0][1] += v[0] * t[1];					\-								\-   m[1][0] += v[1] * t[0];					\-   m[1][1] += v[1] * t[1];					\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define ACCUM_OUTER_PRODUCT_3X3(m,v,t)				\-{								\-   m[0][0] += v[0] * t[0];					\-   m[0][1] += v[0] * t[1];					\-   m[0][2] += v[0] * t[2];					\-								\-   m[1][0] += v[1] * t[0];					\-   m[1][1] += v[1] * t[1];					\-   m[1][2] += v[1] * t[2];					\-								\-   m[2][0] += v[2] * t[0];					\-   m[2][1] += v[2] * t[1];					\-   m[2][2] += v[2] * t[2];					\-}\---/** outer product of vector times vector transpose- *- * The outer product of vector v and vector transpose t yeilds- * dyadic matrix m.- */-#define ACCUM_OUTER_PRODUCT_4X4(m,v,t)				\-{								\-   m[0][0] += v[0] * t[0];					\-   m[0][1] += v[0] * t[1];					\-   m[0][2] += v[0] * t[2];					\-   m[0][3] += v[0] * t[3];					\-								\-   m[1][0] += v[1] * t[0];					\-   m[1][1] += v[1] * t[1];					\-   m[1][2] += v[1] * t[2];					\-   m[1][3] += v[1] * t[3];					\-								\-   m[2][0] += v[2] * t[0];					\-   m[2][1] += v[2] * t[1];					\-   m[2][2] += v[2] * t[2];					\-   m[2][3] += v[2] * t[3];					\-								\-   m[3][0] += v[3] * t[0];					\-   m[3][1] += v[3] * t[1];					\-   m[3][2] += v[3] * t[2];					\-   m[3][3] += v[3] * t[3];					\-}\---/** determinant of matrix- *- * Computes determinant of matrix m, returning d- */-#define DETERMINANT_2X2(d,m)					\-{								\-   d = m[0][0] * m[1][1] - m[0][1] * m[1][0];			\-}\---/** determinant of matrix- *- * Computes determinant of matrix m, returning d- */-#define DETERMINANT_3X3(d,m)					\-{								\-   d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]);		\-   d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]);	\-   d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]);	\-}\---/** i,j,th cofactor of a 4x4 matrix- *- */-#define COFACTOR_4X4_IJ(fac,m,i,j) 				\-{								\-   GUINT __ii[4], __jj[4], __k;						\-								\-   for (__k=0; __k<i; __k++) __ii[__k] = __k;				\-   for (__k=i; __k<3; __k++) __ii[__k] = __k+1;				\-   for (__k=0; __k<j; __k++) __jj[__k] = __k;				\-   for (__k=j; __k<3; __k++) __jj[__k] = __k+1;				\-								\-   (fac) = m[__ii[0]][__jj[0]] * (m[__ii[1]][__jj[1]]*m[__ii[2]][__jj[2]] 	\-                            - m[__ii[1]][__jj[2]]*m[__ii[2]][__jj[1]]); \-   (fac) -= m[__ii[0]][__jj[1]] * (m[__ii[1]][__jj[0]]*m[__ii[2]][__jj[2]]	\-                             - m[__ii[1]][__jj[2]]*m[__ii[2]][__jj[0]]);\-   (fac) += m[__ii[0]][__jj[2]] * (m[__ii[1]][__jj[0]]*m[__ii[2]][__jj[1]]	\-                             - m[__ii[1]][__jj[1]]*m[__ii[2]][__jj[0]]);\-								\-   __k = i+j;							\-   if ( __k != (__k/2)*2) {						\-      (fac) = -(fac);						\-   }								\-}\---/** determinant of matrix- *- * Computes determinant of matrix m, returning d- */-#define DETERMINANT_4X4(d,m)					\-{								\-   GREAL cofac;						\-   COFACTOR_4X4_IJ (cofac, m, 0, 0);				\-   d = m[0][0] * cofac;						\-   COFACTOR_4X4_IJ (cofac, m, 0, 1);				\-   d += m[0][1] * cofac;					\-   COFACTOR_4X4_IJ (cofac, m, 0, 2);				\-   d += m[0][2] * cofac;					\-   COFACTOR_4X4_IJ (cofac, m, 0, 3);				\-   d += m[0][3] * cofac;					\-}\---/** cofactor of matrix- *- * Computes cofactor of matrix m, returning a- */-#define COFACTOR_2X2(a,m)					\-{								\-   a[0][0] = (m)[1][1];						\-   a[0][1] = - (m)[1][0];						\-   a[1][0] = - (m)[0][1];						\-   a[1][1] = (m)[0][0];						\-}\---/** cofactor of matrix- *- * Computes cofactor of matrix m, returning a- */-#define COFACTOR_3X3(a,m)					\-{								\-   a[0][0] = m[1][1]*m[2][2] - m[1][2]*m[2][1];			\-   a[0][1] = - (m[1][0]*m[2][2] - m[2][0]*m[1][2]);		\-   a[0][2] = m[1][0]*m[2][1] - m[1][1]*m[2][0];			\-   a[1][0] = - (m[0][1]*m[2][2] - m[0][2]*m[2][1]);		\-   a[1][1] = m[0][0]*m[2][2] - m[0][2]*m[2][0];			\-   a[1][2] = - (m[0][0]*m[2][1] - m[0][1]*m[2][0]);		\-   a[2][0] = m[0][1]*m[1][2] - m[0][2]*m[1][1];			\-   a[2][1] = - (m[0][0]*m[1][2] - m[0][2]*m[1][0]);		\-   a[2][2] = m[0][0]*m[1][1] - m[0][1]*m[1][0]);		\-}\---/** cofactor of matrix- *- * Computes cofactor of matrix m, returning a- */-#define COFACTOR_4X4(a,m)					\-{								\-   int i,j;							\-								\-   for (i=0; i<4; i++) {					\-      for (j=0; j<4; j++) {					\-         COFACTOR_4X4_IJ (a[i][j], m, i, j);			\-      }								\-   }								\-}\---/** adjoint of matrix- *- * Computes adjoint of matrix m, returning a- * (Note that adjoint is just the transpose of the cofactor matrix)- */-#define ADJOINT_2X2(a,m)					\-{								\-   a[0][0] = (m)[1][1];						\-   a[1][0] = - (m)[1][0];						\-   a[0][1] = - (m)[0][1];						\-   a[1][1] = (m)[0][0];						\-}\---/** adjoint of matrix- *- * Computes adjoint of matrix m, returning a- * (Note that adjoint is just the transpose of the cofactor matrix)- */-#define ADJOINT_3X3(a,m)					\-{								\-   a[0][0] = m[1][1]*m[2][2] - m[1][2]*m[2][1];			\-   a[1][0] = - (m[1][0]*m[2][2] - m[2][0]*m[1][2]);		\-   a[2][0] = m[1][0]*m[2][1] - m[1][1]*m[2][0];			\-   a[0][1] = - (m[0][1]*m[2][2] - m[0][2]*m[2][1]);		\-   a[1][1] = m[0][0]*m[2][2] - m[0][2]*m[2][0];			\-   a[2][1] = - (m[0][0]*m[2][1] - m[0][1]*m[2][0]);		\-   a[0][2] = m[0][1]*m[1][2] - m[0][2]*m[1][1];			\-   a[1][2] = - (m[0][0]*m[1][2] - m[0][2]*m[1][0]);		\-   a[2][2] = m[0][0]*m[1][1] - m[0][1]*m[1][0]);		\-}\---/** adjoint of matrix- *- * Computes adjoint of matrix m, returning a- * (Note that adjoint is just the transpose of the cofactor matrix)- */-#define ADJOINT_4X4(a,m)					\-{								\-   char _i_,_j_;							\-								\-   for (_i_=0; _i_<4; _i_++) {					\-      for (_j_=0; _j_<4; _j_++) {					\-         COFACTOR_4X4_IJ (a[_j_][_i_], m, _i_, _j_);			\-      }								\-   }								\-}\---/** compute adjoint of matrix and scale- *- * Computes adjoint of matrix m, scales it by s, returning a- */-#define SCALE_ADJOINT_2X2(a,s,m)				\-{								\-   a[0][0] = (s) * m[1][1];					\-   a[1][0] = - (s) * m[1][0];					\-   a[0][1] = - (s) * m[0][1];					\-   a[1][1] = (s) * m[0][0];					\-}\---/** compute adjoint of matrix and scale- *- * Computes adjoint of matrix m, scales it by s, returning a- */-#define SCALE_ADJOINT_3X3(a,s,m)				\-{								\-   a[0][0] = (s) * (m[1][1] * m[2][2] - m[1][2] * m[2][1]);	\-   a[1][0] = (s) * (m[1][2] * m[2][0] - m[1][0] * m[2][2]);	\-   a[2][0] = (s) * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);	\-								\-   a[0][1] = (s) * (m[0][2] * m[2][1] - m[0][1] * m[2][2]);	\-   a[1][1] = (s) * (m[0][0] * m[2][2] - m[0][2] * m[2][0]);	\-   a[2][1] = (s) * (m[0][1] * m[2][0] - m[0][0] * m[2][1]);	\-								\-   a[0][2] = (s) * (m[0][1] * m[1][2] - m[0][2] * m[1][1]);	\-   a[1][2] = (s) * (m[0][2] * m[1][0] - m[0][0] * m[1][2]);	\-   a[2][2] = (s) * (m[0][0] * m[1][1] - m[0][1] * m[1][0]);	\-}\---/** compute adjoint of matrix and scale- *- * Computes adjoint of matrix m, scales it by s, returning a- */-#define SCALE_ADJOINT_4X4(a,s,m)				\-{								\-   char _i_,_j_; \-   for (_i_=0; _i_<4; _i_++) {					\-      for (_j_=0; _j_<4; _j_++) {					\-         COFACTOR_4X4_IJ (a[_j_][_i_], m, _i_, _j_);			\-         a[_j_][_i_] *= s;						\-      }								\-   }								\-}\--/** inverse of matrix- *- * Compute inverse of matrix a, returning determinant m and- * inverse b- */-#define INVERT_2X2(b,det,a)			\-{						\-   GREAL _tmp_;					\-   DETERMINANT_2X2 (det, a);			\-   _tmp_ = 1.0 / (det);				\-   SCALE_ADJOINT_2X2 (b, _tmp_, a);		\-}\---/** inverse of matrix- *- * Compute inverse of matrix a, returning determinant m and- * inverse b- */-#define INVERT_3X3(b,det,a)			\-{						\-   GREAL _tmp_;					\-   DETERMINANT_3X3 (det, a);			\-   _tmp_ = 1.0 / (det);				\-   SCALE_ADJOINT_3X3 (b, _tmp_, a);		\-}\---/** inverse of matrix- *- * Compute inverse of matrix a, returning determinant m and- * inverse b- */-#define INVERT_4X4(b,det,a)			\-{						\-   GREAL _tmp_;					\-   DETERMINANT_4X4 (det, a);			\-   _tmp_ = 1.0 / (det);				\-   SCALE_ADJOINT_4X4 (b, _tmp_, a);		\-}\--//! Get the triple(3) row of a transform matrix-#define MAT_GET_ROW(mat,vec3,rowindex)\-{\-    vec3[0] = mat[rowindex][0];\-    vec3[1] = mat[rowindex][1];\-    vec3[2] = mat[rowindex][2]; \-}\--//! Get the tuple(2) row of a transform matrix-#define MAT_GET_ROW2(mat,vec2,rowindex)\-{\-    vec2[0] = mat[rowindex][0];\-    vec2[1] = mat[rowindex][1];\-}\---//! Get the quad (4) row of a transform matrix-#define MAT_GET_ROW4(mat,vec4,rowindex)\-{\-    vec4[0] = mat[rowindex][0];\-    vec4[1] = mat[rowindex][1];\-    vec4[2] = mat[rowindex][2];\-    vec4[3] = mat[rowindex][3];\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_GET_COL(mat,vec3,colindex)\-{\-    vec3[0] = mat[0][colindex];\-    vec3[1] = mat[1][colindex];\-    vec3[2] = mat[2][colindex]; \-}\--//! Get the tuple(2) col of a transform matrix-#define MAT_GET_COL2(mat,vec2,colindex)\-{\-    vec2[0] = mat[0][colindex];\-    vec2[1] = mat[1][colindex];\-}\---//! Get the quad (4) col of a transform matrix-#define MAT_GET_COL4(mat,vec4,colindex)\-{\-    vec4[0] = mat[0][colindex];\-    vec4[1] = mat[1][colindex];\-    vec4[2] = mat[2][colindex];\-    vec4[3] = mat[3][colindex];\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_GET_X(mat,vec3)\-{\-    MAT_GET_COL(mat,vec3,0);\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_GET_Y(mat,vec3)\-{\-    MAT_GET_COL(mat,vec3,1);\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_GET_Z(mat,vec3)\-{\-    MAT_GET_COL(mat,vec3,2);\-}\---//! Get the triple(3) col of a transform matrix-#define MAT_SET_X(mat,vec3)\-{\-    mat[0][0] = vec3[0];\-    mat[1][0] = vec3[1];\-    mat[2][0] = vec3[2];\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_SET_Y(mat,vec3)\-{\-    mat[0][1] = vec3[0];\-    mat[1][1] = vec3[1];\-    mat[2][1] = vec3[2];\-}\--//! Get the triple(3) col of a transform matrix-#define MAT_SET_Z(mat,vec3)\-{\-    mat[0][2] = vec3[0];\-    mat[1][2] = vec3[1];\-    mat[2][2] = vec3[2];\-}\---//! Get the triple(3) col of a transform matrix-#define MAT_GET_TRANSLATION(mat,vec3)\-{\-    vec3[0] = mat[0][3];\-    vec3[1] = mat[1][3];\-    vec3[2] = mat[2][3]; \-}\--//! Set the triple(3) col of a transform matrix-#define MAT_SET_TRANSLATION(mat,vec3)\-{\-    mat[0][3] = vec3[0];\-    mat[1][3] = vec3[1];\-    mat[2][3] = vec3[2]; \-}\----//! Returns the dot product between a vec3f and the row of a matrix-#define MAT_DOT_ROW(mat,vec3,rowindex) (vec3[0]*mat[rowindex][0] + vec3[1]*mat[rowindex][1] + vec3[2]*mat[rowindex][2])--//! Returns the dot product between a vec2f and the row of a matrix-#define MAT_DOT_ROW2(mat,vec2,rowindex) (vec2[0]*mat[rowindex][0] + vec2[1]*mat[rowindex][1])--//! Returns the dot product between a vec4f and the row of a matrix-#define MAT_DOT_ROW4(mat,vec4,rowindex) (vec4[0]*mat[rowindex][0] + vec4[1]*mat[rowindex][1] + vec4[2]*mat[rowindex][2] + vec4[3]*mat[rowindex][3])---//! Returns the dot product between a vec3f and the col of a matrix-#define MAT_DOT_COL(mat,vec3,colindex) (vec3[0]*mat[0][colindex] + vec3[1]*mat[1][colindex] + vec3[2]*mat[2][colindex])--//! Returns the dot product between a vec2f and the col of a matrix-#define MAT_DOT_COL2(mat,vec2,colindex) (vec2[0]*mat[0][colindex] + vec2[1]*mat[1][colindex])--//! Returns the dot product between a vec4f and the col of a matrix-#define MAT_DOT_COL4(mat,vec4,colindex) (vec4[0]*mat[0][colindex] + vec4[1]*mat[1][colindex] + vec4[2]*mat[2][colindex] + vec4[3]*mat[3][colindex])--/*!Transpose matrix times vector-v is a vec3f-and m is a mat4f<br>-*/-#define INV_MAT_DOT_VEC_3X3(p,m,v)					\-{								\-   p[0] = MAT_DOT_COL(m,v,0); \-   p[1] = MAT_DOT_COL(m,v,1);	\-   p[2] = MAT_DOT_COL(m,v,2);	\+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT.++This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.++-----------------------------------------------------------------------------+*/+++#include "gim_math.h"+#include "gim_geom_types.h"+++++//! Zero out a 2D vector+#define VEC_ZERO_2(a) \+{ \+(a)[0] = (a)[1] = 0.0f; \+}\+++//! Zero out a 3D vector+#define VEC_ZERO(a) \+{ \+(a)[0] = (a)[1] = (a)[2] = 0.0f; \+}\+++/// Zero out a 4D vector+#define VEC_ZERO_4(a) \+{ \+(a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0f; \+}\+++/// Vector copy+#define VEC_COPY_2(b,a) \+{ \+(b)[0] = (a)[0]; \+(b)[1] = (a)[1]; \+}\+++/// Copy 3D vector+#define VEC_COPY(b,a) \+{ \+(b)[0] = (a)[0]; \+(b)[1] = (a)[1]; \+(b)[2] = (a)[2]; \+}\+++/// Copy 4D vector+#define VEC_COPY_4(b,a) \+{ \+(b)[0] = (a)[0]; \+(b)[1] = (a)[1]; \+(b)[2] = (a)[2]; \+(b)[3] = (a)[3]; \+}\++/// VECTOR SWAP+#define VEC_SWAP(b,a) \+{ \+GIM_SWAP_NUMBERS((b)[0],(a)[0]);\+GIM_SWAP_NUMBERS((b)[1],(a)[1]);\+GIM_SWAP_NUMBERS((b)[2],(a)[2]);\+}\++/// Vector difference+#define VEC_DIFF_2(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] - (v1)[0]; \+(v21)[1] = (v2)[1] - (v1)[1]; \+}\+++/// Vector difference+#define VEC_DIFF(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] - (v1)[0]; \+(v21)[1] = (v2)[1] - (v1)[1]; \+(v21)[2] = (v2)[2] - (v1)[2]; \+}\+++/// Vector difference+#define VEC_DIFF_4(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] - (v1)[0]; \+(v21)[1] = (v2)[1] - (v1)[1]; \+(v21)[2] = (v2)[2] - (v1)[2]; \+(v21)[3] = (v2)[3] - (v1)[3]; \+}\+++/// Vector sum+#define VEC_SUM_2(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] + (v1)[0]; \+(v21)[1] = (v2)[1] + (v1)[1]; \+}\+++/// Vector sum+#define VEC_SUM(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] + (v1)[0]; \+(v21)[1] = (v2)[1] + (v1)[1]; \+(v21)[2] = (v2)[2] + (v1)[2]; \+}\+++/// Vector sum+#define VEC_SUM_4(v21,v2,v1) \+{ \+(v21)[0] = (v2)[0] + (v1)[0]; \+(v21)[1] = (v2)[1] + (v1)[1]; \+(v21)[2] = (v2)[2] + (v1)[2]; \+(v21)[3] = (v2)[3] + (v1)[3]; \+}\+++/// scalar times vector+#define VEC_SCALE_2(c,a,b) \+{ \+(c)[0] = (a)*(b)[0]; \+(c)[1] = (a)*(b)[1]; \+}\+++/// scalar times vector+#define VEC_SCALE(c,a,b) \+{ \+(c)[0] = (a)*(b)[0]; \+(c)[1] = (a)*(b)[1]; \+(c)[2] = (a)*(b)[2]; \+}\+++/// scalar times vector+#define VEC_SCALE_4(c,a,b) \+{ \+(c)[0] = (a)*(b)[0]; \+(c)[1] = (a)*(b)[1]; \+(c)[2] = (a)*(b)[2]; \+(c)[3] = (a)*(b)[3]; \+}\+++/// accumulate scaled vector+#define VEC_ACCUM_2(c,a,b) \+{ \+(c)[0] += (a)*(b)[0]; \+(c)[1] += (a)*(b)[1]; \+}\+++/// accumulate scaled vector+#define VEC_ACCUM(c,a,b) \+{ \+(c)[0] += (a)*(b)[0]; \+(c)[1] += (a)*(b)[1]; \+(c)[2] += (a)*(b)[2]; \+}\+++/// accumulate scaled vector+#define VEC_ACCUM_4(c,a,b) \+{ \+(c)[0] += (a)*(b)[0]; \+(c)[1] += (a)*(b)[1]; \+(c)[2] += (a)*(b)[2]; \+(c)[3] += (a)*(b)[3]; \+}\+++/// Vector dot product+#define VEC_DOT_2(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1])+++/// Vector dot product+#define VEC_DOT(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2])++/// Vector dot product+#define VEC_DOT_4(a,b) ((a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3])++/// vector impact parameter (squared)+#define VEC_IMPACT_SQ(bsq,direction,position) {\+GREAL _llel_ = VEC_DOT(direction, position);\+bsq = VEC_DOT(position, position) - _llel_*_llel_;\+}\+++/// vector impact parameter+#define VEC_IMPACT(bsq,direction,position) {\+VEC_IMPACT_SQ(bsq,direction,position); \+GIM_SQRT(bsq,bsq); \+}\++/// Vector length+#define VEC_LENGTH_2(a,l)\+{\+GREAL _pp = VEC_DOT_2(a,a);\+GIM_SQRT(_pp,l);\+}\+++/// Vector length+#define VEC_LENGTH(a,l)\+{\+GREAL _pp = VEC_DOT(a,a);\+GIM_SQRT(_pp,l);\+}\+++/// Vector length+#define VEC_LENGTH_4(a,l)\+{\+GREAL _pp = VEC_DOT_4(a,a);\+GIM_SQRT(_pp,l);\+}\++/// Vector inv length+#define VEC_INV_LENGTH_2(a,l)\+{\+GREAL _pp = VEC_DOT_2(a,a);\+GIM_INV_SQRT(_pp,l);\+}\+++/// Vector inv length+#define VEC_INV_LENGTH(a,l)\+{\+GREAL _pp = VEC_DOT(a,a);\+GIM_INV_SQRT(_pp,l);\+}\+++/// Vector inv length+#define VEC_INV_LENGTH_4(a,l)\+{\+GREAL _pp = VEC_DOT_4(a,a);\+GIM_INV_SQRT(_pp,l);\+}\++++/// distance between two points+#define VEC_DISTANCE(_len,_va,_vb) {\+vec3f _tmp_; \+VEC_DIFF(_tmp_, _vb, _va); \+VEC_LENGTH(_tmp_,_len); \+}\+++/// Vector length+#define VEC_CONJUGATE_LENGTH(a,l)\+{\+GREAL _pp = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\+GIM_SQRT(_pp,l);\+}\+++/// Vector length+#define VEC_NORMALIZE(a) { \+GREAL len;\+VEC_INV_LENGTH(a,len); \+if(len<G_REAL_INFINITY)\+{\+a[0] *= len; \+a[1] *= len; \+a[2] *= len; \+} \+}\++/// Set Vector size+#define VEC_RENORMALIZE(a,newlen) { \+GREAL len;\+VEC_INV_LENGTH(a,len); \+if(len<G_REAL_INFINITY)\+{\+len *= newlen;\+a[0] *= len; \+a[1] *= len; \+a[2] *= len; \+} \+}\++/// Vector cross+#define VEC_CROSS(c,a,b) \+{ \+c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \+c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \+c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \+}\+++/*! Vector perp -- assumes that n is of unit length+* accepts vector v, subtracts out any component parallel to n */+#define VEC_PERPENDICULAR(vp,v,n) \+{ \+GREAL dot = VEC_DOT(v, n); \+vp[0] = (v)[0] - dot*(n)[0]; \+vp[1] = (v)[1] - dot*(n)[1]; \+vp[2] = (v)[2] - dot*(n)[2]; \+}\+++/*! Vector parallel -- assumes that n is of unit length */+#define VEC_PARALLEL(vp,v,n) \+{ \+GREAL dot = VEC_DOT(v, n); \+vp[0] = (dot) * (n)[0]; \+vp[1] = (dot) * (n)[1]; \+vp[2] = (dot) * (n)[2]; \+}\++/*! Same as Vector parallel -- n can have any length+* accepts vector v, subtracts out any component perpendicular to n */+#define VEC_PROJECT(vp,v,n) \+{ \+GREAL scalar = VEC_DOT(v, n); \+scalar/= VEC_DOT(n, n); \+vp[0] = (scalar) * (n)[0]; \+vp[1] = (scalar) * (n)[1]; \+vp[2] = (scalar) * (n)[2]; \+}\+++/*! accepts vector v*/+#define VEC_UNPROJECT(vp,v,n) \+{ \+GREAL scalar = VEC_DOT(v, n); \+scalar = VEC_DOT(n, n)/scalar; \+vp[0] = (scalar) * (n)[0]; \+vp[1] = (scalar) * (n)[1]; \+vp[2] = (scalar) * (n)[2]; \+}\+++/*! Vector reflection -- assumes n is of unit length+Takes vector v, reflects it against reflector n, and returns vr */+#define VEC_REFLECT(vr,v,n) \+{ \+GREAL dot = VEC_DOT(v, n); \+vr[0] = (v)[0] - 2.0 * (dot) * (n)[0]; \+vr[1] = (v)[1] - 2.0 * (dot) * (n)[1]; \+vr[2] = (v)[2] - 2.0 * (dot) * (n)[2]; \+}\+++/*! Vector blending+Takes two vectors a, b, blends them together with two scalars */+#define VEC_BLEND_AB(vr,sa,a,sb,b) \+{ \+vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \+vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \+vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \+}\++/*! Vector blending+Takes two vectors a, b, blends them together with s <=1 */+#define VEC_BLEND(vr,a,b,s) VEC_BLEND_AB(vr,(1-s),a,s,b)++#define VEC_SET3(a,b,op,c) a[0]=b[0] op c[0]; a[1]=b[1] op c[1]; a[2]=b[2] op c[2];++//! Finds the bigger cartesian coordinate from a vector+#define VEC_MAYOR_COORD(vec, maxc)\+{\+GREAL A[] = {fabs(vec[0]),fabs(vec[1]),fabs(vec[2])};\+maxc = A[0]>A[1]?(A[0]>A[2]?0:2):(A[1]>A[2]?1:2);\+}\++//! Finds the 2 smallest cartesian coordinates from a vector+#define VEC_MINOR_AXES(vec, i0, i1)\+{\+VEC_MAYOR_COORD(vec,i0);\+i0 = (i0+1)%3;\+i1 = (i0+1)%3;\+}\+++++#define VEC_EQUAL(v1,v2) (v1[0]==v2[0]&&v1[1]==v2[1]&&v1[2]==v2[2])++#define VEC_NEAR_EQUAL(v1,v2) (GIM_NEAR_EQUAL(v1[0],v2[0])&&GIM_NEAR_EQUAL(v1[1],v2[1])&&GIM_NEAR_EQUAL(v1[2],v2[2]))+++/// Vector cross+#define X_AXIS_CROSS_VEC(dst,src)\+{ \+dst[0] = 0.0f; \+dst[1] = -src[2]; \+dst[2] = src[1]; \+}\++#define Y_AXIS_CROSS_VEC(dst,src)\+{ \+dst[0] = src[2]; \+dst[1] = 0.0f; \+dst[2] = -src[0]; \+}\++#define Z_AXIS_CROSS_VEC(dst,src)\+{ \+dst[0] = -src[1]; \+dst[1] = src[0]; \+dst[2] = 0.0f; \+}\+++++++/// initialize matrix+#define IDENTIFY_MATRIX_3X3(m) \+{ \+m[0][0] = 1.0; \+m[0][1] = 0.0; \+m[0][2] = 0.0; \+\+m[1][0] = 0.0; \+m[1][1] = 1.0; \+m[1][2] = 0.0; \+\+m[2][0] = 0.0; \+m[2][1] = 0.0; \+m[2][2] = 1.0; \+}\++/*! initialize matrix */+#define IDENTIFY_MATRIX_4X4(m) \+{ \+m[0][0] = 1.0; \+m[0][1] = 0.0; \+m[0][2] = 0.0; \+m[0][3] = 0.0; \+\+m[1][0] = 0.0; \+m[1][1] = 1.0; \+m[1][2] = 0.0; \+m[1][3] = 0.0; \+\+m[2][0] = 0.0; \+m[2][1] = 0.0; \+m[2][2] = 1.0; \+m[2][3] = 0.0; \+\+m[3][0] = 0.0; \+m[3][1] = 0.0; \+m[3][2] = 0.0; \+m[3][3] = 1.0; \+}\++/*! initialize matrix */+#define ZERO_MATRIX_4X4(m) \+{ \+m[0][0] = 0.0; \+m[0][1] = 0.0; \+m[0][2] = 0.0; \+m[0][3] = 0.0; \+\+m[1][0] = 0.0; \+m[1][1] = 0.0; \+m[1][2] = 0.0; \+m[1][3] = 0.0; \+\+m[2][0] = 0.0; \+m[2][1] = 0.0; \+m[2][2] = 0.0; \+m[2][3] = 0.0; \+\+m[3][0] = 0.0; \+m[3][1] = 0.0; \+m[3][2] = 0.0; \+m[3][3] = 0.0; \+}\++/*! matrix rotation X */+#define ROTX_CS(m,cosine,sine) \+{ \+/* rotation about the x-axis */ \+\+m[0][0] = 1.0; \+m[0][1] = 0.0; \+m[0][2] = 0.0; \+m[0][3] = 0.0; \+\+m[1][0] = 0.0; \+m[1][1] = (cosine); \+m[1][2] = (sine); \+m[1][3] = 0.0; \+\+m[2][0] = 0.0; \+m[2][1] = -(sine); \+m[2][2] = (cosine); \+m[2][3] = 0.0; \+\+m[3][0] = 0.0; \+m[3][1] = 0.0; \+m[3][2] = 0.0; \+m[3][3] = 1.0; \+}\++/*! matrix rotation Y */+#define ROTY_CS(m,cosine,sine) \+{ \+/* rotation about the y-axis */ \+\+m[0][0] = (cosine); \+m[0][1] = 0.0; \+m[0][2] = -(sine); \+m[0][3] = 0.0; \+\+m[1][0] = 0.0; \+m[1][1] = 1.0; \+m[1][2] = 0.0; \+m[1][3] = 0.0; \+\+m[2][0] = (sine); \+m[2][1] = 0.0; \+m[2][2] = (cosine); \+m[2][3] = 0.0; \+\+m[3][0] = 0.0; \+m[3][1] = 0.0; \+m[3][2] = 0.0; \+m[3][3] = 1.0; \+}\++/*! matrix rotation Z */+#define ROTZ_CS(m,cosine,sine) \+{ \+/* rotation about the z-axis */ \+\+m[0][0] = (cosine); \+m[0][1] = (sine); \+m[0][2] = 0.0; \+m[0][3] = 0.0; \+\+m[1][0] = -(sine); \+m[1][1] = (cosine); \+m[1][2] = 0.0; \+m[1][3] = 0.0; \+\+m[2][0] = 0.0; \+m[2][1] = 0.0; \+m[2][2] = 1.0; \+m[2][3] = 0.0; \+\+m[3][0] = 0.0; \+m[3][1] = 0.0; \+m[3][2] = 0.0; \+m[3][3] = 1.0; \+}\++/*! matrix copy */+#define COPY_MATRIX_2X2(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[0][1]; \+\+b[1][0] = a[1][0]; \+b[1][1] = a[1][1]; \+\+}\+++/*! matrix copy */+#define COPY_MATRIX_2X3(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[0][1]; \+b[0][2] = a[0][2]; \+\+b[1][0] = a[1][0]; \+b[1][1] = a[1][1]; \+b[1][2] = a[1][2]; \+}\+++/*! matrix copy */+#define COPY_MATRIX_3X3(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[0][1]; \+b[0][2] = a[0][2]; \+\+b[1][0] = a[1][0]; \+b[1][1] = a[1][1]; \+b[1][2] = a[1][2]; \+\+b[2][0] = a[2][0]; \+b[2][1] = a[2][1]; \+b[2][2] = a[2][2]; \+}\+++/*! matrix copy */+#define COPY_MATRIX_4X4(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[0][1]; \+b[0][2] = a[0][2]; \+b[0][3] = a[0][3]; \+\+b[1][0] = a[1][0]; \+b[1][1] = a[1][1]; \+b[1][2] = a[1][2]; \+b[1][3] = a[1][3]; \+\+b[2][0] = a[2][0]; \+b[2][1] = a[2][1]; \+b[2][2] = a[2][2]; \+b[2][3] = a[2][3]; \+\+b[3][0] = a[3][0]; \+b[3][1] = a[3][1]; \+b[3][2] = a[3][2]; \+b[3][3] = a[3][3]; \+}\+++/*! matrix transpose */+#define TRANSPOSE_MATRIX_2X2(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[1][0]; \+\+b[1][0] = a[0][1]; \+b[1][1] = a[1][1]; \+}\+++/*! matrix transpose */+#define TRANSPOSE_MATRIX_3X3(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[1][0]; \+b[0][2] = a[2][0]; \+\+b[1][0] = a[0][1]; \+b[1][1] = a[1][1]; \+b[1][2] = a[2][1]; \+\+b[2][0] = a[0][2]; \+b[2][1] = a[1][2]; \+b[2][2] = a[2][2]; \+}\+++/*! matrix transpose */+#define TRANSPOSE_MATRIX_4X4(b,a) \+{ \+b[0][0] = a[0][0]; \+b[0][1] = a[1][0]; \+b[0][2] = a[2][0]; \+b[0][3] = a[3][0]; \+\+b[1][0] = a[0][1]; \+b[1][1] = a[1][1]; \+b[1][2] = a[2][1]; \+b[1][3] = a[3][1]; \+\+b[2][0] = a[0][2]; \+b[2][1] = a[1][2]; \+b[2][2] = a[2][2]; \+b[2][3] = a[3][2]; \+\+b[3][0] = a[0][3]; \+b[3][1] = a[1][3]; \+b[3][2] = a[2][3]; \+b[3][3] = a[3][3]; \+}\+++/*! multiply matrix by scalar */+#define SCALE_MATRIX_2X2(b,s,a) \+{ \+b[0][0] = (s) * a[0][0]; \+b[0][1] = (s) * a[0][1]; \+\+b[1][0] = (s) * a[1][0]; \+b[1][1] = (s) * a[1][1]; \+}\+++/*! multiply matrix by scalar */+#define SCALE_MATRIX_3X3(b,s,a) \+{ \+b[0][0] = (s) * a[0][0]; \+b[0][1] = (s) * a[0][1]; \+b[0][2] = (s) * a[0][2]; \+\+b[1][0] = (s) * a[1][0]; \+b[1][1] = (s) * a[1][1]; \+b[1][2] = (s) * a[1][2]; \+\+b[2][0] = (s) * a[2][0]; \+b[2][1] = (s) * a[2][1]; \+b[2][2] = (s) * a[2][2]; \+}\+++/*! multiply matrix by scalar */+#define SCALE_MATRIX_4X4(b,s,a) \+{ \+b[0][0] = (s) * a[0][0]; \+b[0][1] = (s) * a[0][1]; \+b[0][2] = (s) * a[0][2]; \+b[0][3] = (s) * a[0][3]; \+\+b[1][0] = (s) * a[1][0]; \+b[1][1] = (s) * a[1][1]; \+b[1][2] = (s) * a[1][2]; \+b[1][3] = (s) * a[1][3]; \+\+b[2][0] = (s) * a[2][0]; \+b[2][1] = (s) * a[2][1]; \+b[2][2] = (s) * a[2][2]; \+b[2][3] = (s) * a[2][3]; \+\+b[3][0] = s * a[3][0]; \+b[3][1] = s * a[3][1]; \+b[3][2] = s * a[3][2]; \+b[3][3] = s * a[3][3]; \+}\+++/*! multiply matrix by scalar */+#define SCALE_VEC_MATRIX_2X2(b,svec,a) \+{ \+b[0][0] = svec[0] * a[0][0]; \+b[1][0] = svec[0] * a[1][0]; \+\+b[0][1] = svec[1] * a[0][1]; \+b[1][1] = svec[1] * a[1][1]; \+}\+++/*! multiply matrix by scalar. Each columns is scaled by each scalar vector component */+#define SCALE_VEC_MATRIX_3X3(b,svec,a) \+{ \+b[0][0] = svec[0] * a[0][0]; \+b[1][0] = svec[0] * a[1][0]; \+b[2][0] = svec[0] * a[2][0]; \+\+b[0][1] = svec[1] * a[0][1]; \+b[1][1] = svec[1] * a[1][1]; \+b[2][1] = svec[1] * a[2][1]; \+\+b[0][2] = svec[2] * a[0][2]; \+b[1][2] = svec[2] * a[1][2]; \+b[2][2] = svec[2] * a[2][2]; \+}\+++/*! multiply matrix by scalar */+#define SCALE_VEC_MATRIX_4X4(b,svec,a) \+{ \+b[0][0] = svec[0] * a[0][0]; \+b[1][0] = svec[0] * a[1][0]; \+b[2][0] = svec[0] * a[2][0]; \+b[3][0] = svec[0] * a[3][0]; \+\+b[0][1] = svec[1] * a[0][1]; \+b[1][1] = svec[1] * a[1][1]; \+b[2][1] = svec[1] * a[2][1]; \+b[3][1] = svec[1] * a[3][1]; \+\+b[0][2] = svec[2] * a[0][2]; \+b[1][2] = svec[2] * a[1][2]; \+b[2][2] = svec[2] * a[2][2]; \+b[3][2] = svec[2] * a[3][2]; \+\+b[0][3] = svec[3] * a[0][3]; \+b[1][3] = svec[3] * a[1][3]; \+b[2][3] = svec[3] * a[2][3]; \+b[3][3] = svec[3] * a[3][3]; \+}\+++/*! multiply matrix by scalar */+#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \+{ \+b[0][0] += (s) * a[0][0]; \+b[0][1] += (s) * a[0][1]; \+\+b[1][0] += (s) * a[1][0]; \+b[1][1] += (s) * a[1][1]; \+}\+++/*! multiply matrix by scalar */+#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \+{ \+b[0][0] += (s) * a[0][0]; \+b[0][1] += (s) * a[0][1]; \+b[0][2] += (s) * a[0][2]; \+\+b[1][0] += (s) * a[1][0]; \+b[1][1] += (s) * a[1][1]; \+b[1][2] += (s) * a[1][2]; \+\+b[2][0] += (s) * a[2][0]; \+b[2][1] += (s) * a[2][1]; \+b[2][2] += (s) * a[2][2]; \+}\+++/*! multiply matrix by scalar */+#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \+{ \+b[0][0] += (s) * a[0][0]; \+b[0][1] += (s) * a[0][1]; \+b[0][2] += (s) * a[0][2]; \+b[0][3] += (s) * a[0][3]; \+\+b[1][0] += (s) * a[1][0]; \+b[1][1] += (s) * a[1][1]; \+b[1][2] += (s) * a[1][2]; \+b[1][3] += (s) * a[1][3]; \+\+b[2][0] += (s) * a[2][0]; \+b[2][1] += (s) * a[2][1]; \+b[2][2] += (s) * a[2][2]; \+b[2][3] += (s) * a[2][3]; \+\+b[3][0] += (s) * a[3][0]; \+b[3][1] += (s) * a[3][1]; \+b[3][2] += (s) * a[3][2]; \+b[3][3] += (s) * a[3][3]; \+}\++/*! matrix product */+/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/+#define MATRIX_PRODUCT_2X2(c,a,b) \+{ \+c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \+c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \+\+c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \+c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \+\+}\++/*! matrix product */+/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/+#define MATRIX_PRODUCT_3X3(c,a,b) \+{ \+c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \+c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \+c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \+\+c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \+c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \+c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \+\+c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \+c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \+c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \+}\+++/*! matrix product */+/*! c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/+#define MATRIX_PRODUCT_4X4(c,a,b) \+{ \+c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\+c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\+c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\+c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\+\+c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\+c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\+c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\+c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\+\+c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\+c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\+c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\+c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\+\+c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\+c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\+c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\+c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\+}\+++/*! matrix times vector */+#define MAT_DOT_VEC_2X2(p,m,v) \+{ \+p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \+p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \+}\+++/*! matrix times vector */+#define MAT_DOT_VEC_3X3(p,m,v) \+{ \+p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \+p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \+p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \+}\+++/*! matrix times vector+v is a vec4f+*/+#define MAT_DOT_VEC_4X4(p,m,v) \+{ \+p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \+p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \+p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \+p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \+}\++/*! matrix times vector+v is a vec3f+and m is a mat4f<br>+Last column is added as the position+*/+#define MAT_DOT_VEC_3X4(p,m,v) \+{ \+p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]; \+p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]; \+p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]; \+}\+++/*! vector transpose times matrix */+/*! p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */+#define VEC_DOT_MAT_3X3(p,v,m) \+{ \+p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \+p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \+p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \+}\+++/*! affine matrix times vector */+/** The matrix is assumed to be an affine matrix, with last two+* entries representing a translation */+#define MAT_DOT_VEC_2X3(p,m,v) \+{ \+p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \+p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \+}\++//! Transform a plane+#define MAT_TRANSFORM_PLANE_4X4(pout,m,plane)\+{ \+pout[0] = m[0][0]*plane[0] + m[0][1]*plane[1] + m[0][2]*plane[2];\+pout[1] = m[1][0]*plane[0] + m[1][1]*plane[1] + m[1][2]*plane[2];\+pout[2] = m[2][0]*plane[0] + m[2][1]*plane[1] + m[2][2]*plane[2];\+pout[3] = m[0][3]*pout[0] + m[1][3]*pout[1] + m[2][3]*pout[2] + plane[3];\+}\++++/** inverse transpose of matrix times vector+*+* This macro computes inverse transpose of matrix m,+* and multiplies vector v into it, to yeild vector p+*+* DANGER !!! Do Not use this on normal vectors!!!+* It will leave normals the wrong length !!!+* See macro below for use on normals.+*/+#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \+{ \+GREAL det; \+\+det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \+p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \+p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \+\+/* if matrix not singular, and not orthonormal, then renormalize */ \+if ((det!=1.0f) && (det != 0.0f)) { \+det = 1.0f / det; \+p[0] *= det; \+p[1] *= det; \+} \+}\+++/** transform normal vector by inverse transpose of matrix+* and then renormalize the vector+*+* This macro computes inverse transpose of matrix m,+* and multiplies vector v into it, to yeild vector p+* Vector p is then normalized.+*/+#define NORM_XFORM_2X2(p,m,v) \+{ \+GREAL len; \+\+/* do nothing if off-diagonals are zero and diagonals are \+* equal */ \+if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \+p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \+p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \+\+len = p[0]*p[0] + p[1]*p[1]; \+GIM_INV_SQRT(len,len); \+p[0] *= len; \+p[1] *= len; \+} else { \+VEC_COPY_2 (p, v); \+} \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define OUTER_PRODUCT_2X2(m,v,t) \+{ \+m[0][0] = v[0] * t[0]; \+m[0][1] = v[0] * t[1]; \+\+m[1][0] = v[1] * t[0]; \+m[1][1] = v[1] * t[1]; \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define OUTER_PRODUCT_3X3(m,v,t) \+{ \+m[0][0] = v[0] * t[0]; \+m[0][1] = v[0] * t[1]; \+m[0][2] = v[0] * t[2]; \+\+m[1][0] = v[1] * t[0]; \+m[1][1] = v[1] * t[1]; \+m[1][2] = v[1] * t[2]; \+\+m[2][0] = v[2] * t[0]; \+m[2][1] = v[2] * t[1]; \+m[2][2] = v[2] * t[2]; \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define OUTER_PRODUCT_4X4(m,v,t) \+{ \+m[0][0] = v[0] * t[0]; \+m[0][1] = v[0] * t[1]; \+m[0][2] = v[0] * t[2]; \+m[0][3] = v[0] * t[3]; \+\+m[1][0] = v[1] * t[0]; \+m[1][1] = v[1] * t[1]; \+m[1][2] = v[1] * t[2]; \+m[1][3] = v[1] * t[3]; \+\+m[2][0] = v[2] * t[0]; \+m[2][1] = v[2] * t[1]; \+m[2][2] = v[2] * t[2]; \+m[2][3] = v[2] * t[3]; \+\+m[3][0] = v[3] * t[0]; \+m[3][1] = v[3] * t[1]; \+m[3][2] = v[3] * t[2]; \+m[3][3] = v[3] * t[3]; \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \+{ \+m[0][0] += v[0] * t[0]; \+m[0][1] += v[0] * t[1]; \+\+m[1][0] += v[1] * t[0]; \+m[1][1] += v[1] * t[1]; \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \+{ \+m[0][0] += v[0] * t[0]; \+m[0][1] += v[0] * t[1]; \+m[0][2] += v[0] * t[2]; \+\+m[1][0] += v[1] * t[0]; \+m[1][1] += v[1] * t[1]; \+m[1][2] += v[1] * t[2]; \+\+m[2][0] += v[2] * t[0]; \+m[2][1] += v[2] * t[1]; \+m[2][2] += v[2] * t[2]; \+}\+++/** outer product of vector times vector transpose+*+* The outer product of vector v and vector transpose t yeilds+* dyadic matrix m.+*/+#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \+{ \+m[0][0] += v[0] * t[0]; \+m[0][1] += v[0] * t[1]; \+m[0][2] += v[0] * t[2]; \+m[0][3] += v[0] * t[3]; \+\+m[1][0] += v[1] * t[0]; \+m[1][1] += v[1] * t[1]; \+m[1][2] += v[1] * t[2]; \+m[1][3] += v[1] * t[3]; \+\+m[2][0] += v[2] * t[0]; \+m[2][1] += v[2] * t[1]; \+m[2][2] += v[2] * t[2]; \+m[2][3] += v[2] * t[3]; \+\+m[3][0] += v[3] * t[0]; \+m[3][1] += v[3] * t[1]; \+m[3][2] += v[3] * t[2]; \+m[3][3] += v[3] * t[3]; \+}\+++/** determinant of matrix+*+* Computes determinant of matrix m, returning d+*/+#define DETERMINANT_2X2(d,m) \+{ \+d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \+}\+++/** determinant of matrix+*+* Computes determinant of matrix m, returning d+*/+#define DETERMINANT_3X3(d,m) \+{ \+d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \+d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \+d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \+}\+++/** i,j,th cofactor of a 4x4 matrix+*+*/+#define COFACTOR_4X4_IJ(fac,m,i,j) \+{ \+GUINT __ii[4], __jj[4], __k; \+\+for (__k=0; __k<i; __k++) __ii[__k] = __k; \+for (__k=i; __k<3; __k++) __ii[__k] = __k+1; \+for (__k=0; __k<j; __k++) __jj[__k] = __k; \+for (__k=j; __k<3; __k++) __jj[__k] = __k+1; \+\+(fac) = m[__ii[0]][__jj[0]] * (m[__ii[1]][__jj[1]]*m[__ii[2]][__jj[2]] \+- m[__ii[1]][__jj[2]]*m[__ii[2]][__jj[1]]); \+(fac) -= m[__ii[0]][__jj[1]] * (m[__ii[1]][__jj[0]]*m[__ii[2]][__jj[2]] \+- m[__ii[1]][__jj[2]]*m[__ii[2]][__jj[0]]);\+(fac) += m[__ii[0]][__jj[2]] * (m[__ii[1]][__jj[0]]*m[__ii[2]][__jj[1]] \+- m[__ii[1]][__jj[1]]*m[__ii[2]][__jj[0]]);\+\+__k = i+j; \+if ( __k != (__k/2)*2) { \+(fac) = -(fac); \+} \+}\+++/** determinant of matrix+*+* Computes determinant of matrix m, returning d+*/+#define DETERMINANT_4X4(d,m) \+{ \+GREAL cofac; \+COFACTOR_4X4_IJ (cofac, m, 0, 0); \+d = m[0][0] * cofac; \+COFACTOR_4X4_IJ (cofac, m, 0, 1); \+d += m[0][1] * cofac; \+COFACTOR_4X4_IJ (cofac, m, 0, 2); \+d += m[0][2] * cofac; \+COFACTOR_4X4_IJ (cofac, m, 0, 3); \+d += m[0][3] * cofac; \+}\+++/** cofactor of matrix+*+* Computes cofactor of matrix m, returning a+*/+#define COFACTOR_2X2(a,m) \+{ \+a[0][0] = (m)[1][1]; \+a[0][1] = - (m)[1][0]; \+a[1][0] = - (m)[0][1]; \+a[1][1] = (m)[0][0]; \+}\+++/** cofactor of matrix+*+* Computes cofactor of matrix m, returning a+*/+#define COFACTOR_3X3(a,m) \+{ \+a[0][0] = m[1][1]*m[2][2] - m[1][2]*m[2][1]; \+a[0][1] = - (m[1][0]*m[2][2] - m[2][0]*m[1][2]); \+a[0][2] = m[1][0]*m[2][1] - m[1][1]*m[2][0]; \+a[1][0] = - (m[0][1]*m[2][2] - m[0][2]*m[2][1]); \+a[1][1] = m[0][0]*m[2][2] - m[0][2]*m[2][0]; \+a[1][2] = - (m[0][0]*m[2][1] - m[0][1]*m[2][0]); \+a[2][0] = m[0][1]*m[1][2] - m[0][2]*m[1][1]; \+a[2][1] = - (m[0][0]*m[1][2] - m[0][2]*m[1][0]); \+a[2][2] = m[0][0]*m[1][1] - m[0][1]*m[1][0]); \+}\+++/** cofactor of matrix+*+* Computes cofactor of matrix m, returning a+*/+#define COFACTOR_4X4(a,m) \+{ \+int i,j; \+\+for (i=0; i<4; i++) { \+for (j=0; j<4; j++) { \+COFACTOR_4X4_IJ (a[i][j], m, i, j); \+} \+} \+}\+++/** adjoint of matrix+*+* Computes adjoint of matrix m, returning a+* (Note that adjoint is just the transpose of the cofactor matrix)+*/+#define ADJOINT_2X2(a,m) \+{ \+a[0][0] = (m)[1][1]; \+a[1][0] = - (m)[1][0]; \+a[0][1] = - (m)[0][1]; \+a[1][1] = (m)[0][0]; \+}\+++/** adjoint of matrix+*+* Computes adjoint of matrix m, returning a+* (Note that adjoint is just the transpose of the cofactor matrix)+*/+#define ADJOINT_3X3(a,m) \+{ \+a[0][0] = m[1][1]*m[2][2] - m[1][2]*m[2][1]; \+a[1][0] = - (m[1][0]*m[2][2] - m[2][0]*m[1][2]); \+a[2][0] = m[1][0]*m[2][1] - m[1][1]*m[2][0]; \+a[0][1] = - (m[0][1]*m[2][2] - m[0][2]*m[2][1]); \+a[1][1] = m[0][0]*m[2][2] - m[0][2]*m[2][0]; \+a[2][1] = - (m[0][0]*m[2][1] - m[0][1]*m[2][0]); \+a[0][2] = m[0][1]*m[1][2] - m[0][2]*m[1][1]; \+a[1][2] = - (m[0][0]*m[1][2] - m[0][2]*m[1][0]); \+a[2][2] = m[0][0]*m[1][1] - m[0][1]*m[1][0]); \+}\+++/** adjoint of matrix+*+* Computes adjoint of matrix m, returning a+* (Note that adjoint is just the transpose of the cofactor matrix)+*/+#define ADJOINT_4X4(a,m) \+{ \+char _i_,_j_; \+\+for (_i_=0; _i_<4; _i_++) { \+for (_j_=0; _j_<4; _j_++) { \+COFACTOR_4X4_IJ (a[_j_][_i_], m, _i_, _j_); \+} \+} \+}\+++/** compute adjoint of matrix and scale+*+* Computes adjoint of matrix m, scales it by s, returning a+*/+#define SCALE_ADJOINT_2X2(a,s,m) \+{ \+a[0][0] = (s) * m[1][1]; \+a[1][0] = - (s) * m[1][0]; \+a[0][1] = - (s) * m[0][1]; \+a[1][1] = (s) * m[0][0]; \+}\+++/** compute adjoint of matrix and scale+*+* Computes adjoint of matrix m, scales it by s, returning a+*/+#define SCALE_ADJOINT_3X3(a,s,m) \+{ \+a[0][0] = (s) * (m[1][1] * m[2][2] - m[1][2] * m[2][1]); \+a[1][0] = (s) * (m[1][2] * m[2][0] - m[1][0] * m[2][2]); \+a[2][0] = (s) * (m[1][0] * m[2][1] - m[1][1] * m[2][0]); \+\+a[0][1] = (s) * (m[0][2] * m[2][1] - m[0][1] * m[2][2]); \+a[1][1] = (s) * (m[0][0] * m[2][2] - m[0][2] * m[2][0]); \+a[2][1] = (s) * (m[0][1] * m[2][0] - m[0][0] * m[2][1]); \+\+a[0][2] = (s) * (m[0][1] * m[1][2] - m[0][2] * m[1][1]); \+a[1][2] = (s) * (m[0][2] * m[1][0] - m[0][0] * m[1][2]); \+a[2][2] = (s) * (m[0][0] * m[1][1] - m[0][1] * m[1][0]); \+}\+++/** compute adjoint of matrix and scale+*+* Computes adjoint of matrix m, scales it by s, returning a+*/+#define SCALE_ADJOINT_4X4(a,s,m) \+{ \+char _i_,_j_; \+for (_i_=0; _i_<4; _i_++) { \+for (_j_=0; _j_<4; _j_++) { \+COFACTOR_4X4_IJ (a[_j_][_i_], m, _i_, _j_); \+a[_j_][_i_] *= s; \+} \+} \+}\++/** inverse of matrix+*+* Compute inverse of matrix a, returning determinant m and+* inverse b+*/+#define INVERT_2X2(b,det,a) \+{ \+GREAL _tmp_; \+DETERMINANT_2X2 (det, a); \+_tmp_ = 1.0 / (det); \+SCALE_ADJOINT_2X2 (b, _tmp_, a); \+}\+++/** inverse of matrix+*+* Compute inverse of matrix a, returning determinant m and+* inverse b+*/+#define INVERT_3X3(b,det,a) \+{ \+GREAL _tmp_; \+DETERMINANT_3X3 (det, a); \+_tmp_ = 1.0 / (det); \+SCALE_ADJOINT_3X3 (b, _tmp_, a); \+}\+++/** inverse of matrix+*+* Compute inverse of matrix a, returning determinant m and+* inverse b+*/+#define INVERT_4X4(b,det,a) \+{ \+GREAL _tmp_; \+DETERMINANT_4X4 (det, a); \+_tmp_ = 1.0 / (det); \+SCALE_ADJOINT_4X4 (b, _tmp_, a); \+}\++//! Get the triple(3) row of a transform matrix+#define MAT_GET_ROW(mat,vec3,rowindex)\+{\+vec3[0] = mat[rowindex][0];\+vec3[1] = mat[rowindex][1];\+vec3[2] = mat[rowindex][2]; \+}\++//! Get the tuple(2) row of a transform matrix+#define MAT_GET_ROW2(mat,vec2,rowindex)\+{\+vec2[0] = mat[rowindex][0];\+vec2[1] = mat[rowindex][1];\+}\+++//! Get the quad (4) row of a transform matrix+#define MAT_GET_ROW4(mat,vec4,rowindex)\+{\+vec4[0] = mat[rowindex][0];\+vec4[1] = mat[rowindex][1];\+vec4[2] = mat[rowindex][2];\+vec4[3] = mat[rowindex][3];\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_GET_COL(mat,vec3,colindex)\+{\+vec3[0] = mat[0][colindex];\+vec3[1] = mat[1][colindex];\+vec3[2] = mat[2][colindex]; \+}\++//! Get the tuple(2) col of a transform matrix+#define MAT_GET_COL2(mat,vec2,colindex)\+{\+vec2[0] = mat[0][colindex];\+vec2[1] = mat[1][colindex];\+}\+++//! Get the quad (4) col of a transform matrix+#define MAT_GET_COL4(mat,vec4,colindex)\+{\+vec4[0] = mat[0][colindex];\+vec4[1] = mat[1][colindex];\+vec4[2] = mat[2][colindex];\+vec4[3] = mat[3][colindex];\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_GET_X(mat,vec3)\+{\+MAT_GET_COL(mat,vec3,0);\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_GET_Y(mat,vec3)\+{\+MAT_GET_COL(mat,vec3,1);\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_GET_Z(mat,vec3)\+{\+MAT_GET_COL(mat,vec3,2);\+}\+++//! Get the triple(3) col of a transform matrix+#define MAT_SET_X(mat,vec3)\+{\+mat[0][0] = vec3[0];\+mat[1][0] = vec3[1];\+mat[2][0] = vec3[2];\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_SET_Y(mat,vec3)\+{\+mat[0][1] = vec3[0];\+mat[1][1] = vec3[1];\+mat[2][1] = vec3[2];\+}\++//! Get the triple(3) col of a transform matrix+#define MAT_SET_Z(mat,vec3)\+{\+mat[0][2] = vec3[0];\+mat[1][2] = vec3[1];\+mat[2][2] = vec3[2];\+}\+++//! Get the triple(3) col of a transform matrix+#define MAT_GET_TRANSLATION(mat,vec3)\+{\+vec3[0] = mat[0][3];\+vec3[1] = mat[1][3];\+vec3[2] = mat[2][3]; \+}\++//! Set the triple(3) col of a transform matrix+#define MAT_SET_TRANSLATION(mat,vec3)\+{\+mat[0][3] = vec3[0];\+mat[1][3] = vec3[1];\+mat[2][3] = vec3[2]; \+}\++++//! Returns the dot product between a vec3f and the row of a matrix+#define MAT_DOT_ROW(mat,vec3,rowindex) (vec3[0]*mat[rowindex][0] + vec3[1]*mat[rowindex][1] + vec3[2]*mat[rowindex][2])++//! Returns the dot product between a vec2f and the row of a matrix+#define MAT_DOT_ROW2(mat,vec2,rowindex) (vec2[0]*mat[rowindex][0] + vec2[1]*mat[rowindex][1])++//! Returns the dot product between a vec4f and the row of a matrix+#define MAT_DOT_ROW4(mat,vec4,rowindex) (vec4[0]*mat[rowindex][0] + vec4[1]*mat[rowindex][1] + vec4[2]*mat[rowindex][2] + vec4[3]*mat[rowindex][3])+++//! Returns the dot product between a vec3f and the col of a matrix+#define MAT_DOT_COL(mat,vec3,colindex) (vec3[0]*mat[0][colindex] + vec3[1]*mat[1][colindex] + vec3[2]*mat[2][colindex])++//! Returns the dot product between a vec2f and the col of a matrix+#define MAT_DOT_COL2(mat,vec2,colindex) (vec2[0]*mat[0][colindex] + vec2[1]*mat[1][colindex])++//! Returns the dot product between a vec4f and the col of a matrix+#define MAT_DOT_COL4(mat,vec4,colindex) (vec4[0]*mat[0][colindex] + vec4[1]*mat[1][colindex] + vec4[2]*mat[2][colindex] + vec4[3]*mat[3][colindex])++/*!Transpose matrix times vector+v is a vec3f+and m is a mat4f<br>+*/+#define INV_MAT_DOT_VEC_3X3(p,m,v) \+{ \+p[0] = MAT_DOT_COL(m,v,0); \+p[1] = MAT_DOT_COL(m,v,1); \+p[2] = MAT_DOT_COL(m,v,2); \ }\  
bullet/BulletCollision/Gimpact/gim_math.h view
@@ -12,22 +12,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -56,21 +56,21 @@ #define G_ROOT2 1.41421f #define G_UINT_INFINITY 0xffffffff //!< A very very high value #define G_REAL_INFINITY FLT_MAX-#define	G_SIGN_BITMASK			0x80000000+#define G_SIGN_BITMASK 0x80000000 #define G_EPSILON SIMD_EPSILON    enum GIM_SCALAR_TYPES {-	G_STYPE_REAL =0,-	G_STYPE_REAL2,-	G_STYPE_SHORT,-	G_STYPE_USHORT,-	G_STYPE_INT,-	G_STYPE_UINT,-	G_STYPE_INT64,-	G_STYPE_UINT64+G_STYPE_REAL =0,+G_STYPE_REAL2,+G_STYPE_SHORT,+G_STYPE_USHORT,+G_STYPE_INT,+G_STYPE_UINT,+G_STYPE_INT64,+G_STYPE_UINT64 };  @@ -79,16 +79,16 @@ #define G_RADTODEG(X) ((X)*180.0f/3.1415926f)  //! Integer representation of a floating-point value.-#define GIM_IR(x)					((GUINT&)(x))+#define GIM_IR(x) ((GUINT&)(x))  //! Signed integer representation of a floating-point value.-#define GIM_SIR(x)					((GINT&)(x))+#define GIM_SIR(x) ((GINT&)(x))  //! Absolute integer representation of a floating-point value-#define GIM_AIR(x)					(GIM_IR(x)&0x7fffffff)+#define GIM_AIR(x) (GIM_IR(x)&0x7fffffff)  //! Floating-point representation of an integer value.-#define GIM_FR(x)					((GREAL&)(x))+#define GIM_FR(x) ((GREAL&)(x))  #define GIM_MAX(a,b) (a<b?b:a) #define GIM_MIN(a,b) (a>b?b:a)@@ -96,7 +96,7 @@ #define GIM_MAX3(a,b,c) GIM_MAX(a,GIM_MAX(b,c)) #define GIM_MIN3(a,b,c) GIM_MIN(a,GIM_MIN(b,c)) -#define GIM_IS_ZERO(value) (value < G_EPSILON &&  value > -G_EPSILON)+#define GIM_IS_ZERO(value) (value < G_EPSILON && value > -G_EPSILON)  #define GIM_IS_NEGATIVE(value) (value <= -G_EPSILON) @@ -107,49 +107,49 @@ ///returns a clamped number #define GIM_CLAMP(number,minval,maxval) (number<minval?minval:(number>maxval?maxval:number)) -#define GIM_GREATER(x, y)	btFabs(x) > (y)+#define GIM_GREATER(x, y) btFabs(x) > (y)  ///Swap numbers #define GIM_SWAP_NUMBERS(a,b){ \-    a = a+b; \-    b = a-b; \-    a = a-b; \+a = a+b; \+b = a-b; \+a = a-b; \ }\  #define GIM_INV_SQRT(va,isva)\ {\-    if(va<=0.0000001f)\-    {\-        isva = G_REAL_INFINITY;\-    }\-    else\-    {\-        GREAL _x = va * 0.5f;\-        GUINT _y = 0x5f3759df - ( GIM_IR(va) >> 1);\-        isva = GIM_FR(_y);\-        isva  = isva * ( 1.5f - ( _x * isva * isva ) );\-    }\+if(va<=0.0000001f)\+{\+isva = G_REAL_INFINITY;\ }\+else\+{\+GREAL _x = va * 0.5f;\+GUINT _y = 0x5f3759df - ( GIM_IR(va) >> 1);\+isva = GIM_FR(_y);\+isva = isva * ( 1.5f - ( _x * isva * isva ) );\+}\+}\  #define GIM_SQRT(va,sva)\ {\-    GIM_INV_SQRT(va,sva);\-    sva = 1.0f/sva;\+GIM_INV_SQRT(va,sva);\+sva = 1.0f/sva;\ }\  //! Computes 1.0f / sqrtf(x). Comes from Quake3. See http://www.magic-software.com/3DGEDInvSqrt.html inline GREAL gim_inv_sqrt(GREAL f) {-    GREAL r;-    GIM_INV_SQRT(f,r);-    return r;+GREAL r;+GIM_INV_SQRT(f,r);+return r; }  inline GREAL gim_sqrt(GREAL f) {-    GREAL r;-    GIM_SQRT(f,r);-    return r;+GREAL r;+GIM_SQRT(f,r);+return r; }  
bullet/BulletCollision/Gimpact/gim_memory.h view
@@ -12,22 +12,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -37,13 +37,13 @@ #include <string.h>  #ifdef PREFETCH-#include <xmmintrin.h>	// for prefetch-#define pfval	64-#define pfval2	128+#include <xmmintrin.h> // for prefetch+#define pfval 64+#define pfval2 128 //! Prefetch 64-#define pf(_x,_i)	_mm_prefetch((void *)(_x + _i + pfval), 0)+#define pf(_x,_i) _mm_prefetch((void *)(_x + _i + pfval), 0) //! Prefetch 128-#define pf2(_x,_i)	_mm_prefetch((void *)(_x + _i + pfval2), 0)+#define pf2(_x,_i) _mm_prefetch((void *)(_x + _i + pfval2), 0) #else //! Prefetch 64 #define pf(_x,_i)@@ -55,36 +55,36 @@ ///Functions for manip packed arrays of numbers #define GIM_COPY_ARRAYS(dest_array,source_array,element_count)\ {\-    for (GUINT _i_=0;_i_<element_count ;++_i_)\-    {\-    	dest_array[_i_] = source_array[_i_];\-    }\+for (GUINT _i_=0;_i_<element_count ;++_i_)\+{\+dest_array[_i_] = source_array[_i_];\ }\+}\  #define GIM_COPY_ARRAYS_1(dest_array,source_array,element_count,copy_macro)\ {\-    for (GUINT _i_=0;_i_<element_count ;++_i_)\-    {\-    	copy_macro(dest_array[_i_],source_array[_i_]);\-    }\+for (GUINT _i_=0;_i_<element_count ;++_i_)\+{\+copy_macro(dest_array[_i_],source_array[_i_]);\ }\+}\   #define GIM_ZERO_ARRAY(array,element_count)\ {\-    for (GUINT _i_=0;_i_<element_count ;++_i_)\-    {\-    	array[_i_] = 0;\-    }\+for (GUINT _i_=0;_i_<element_count ;++_i_)\+{\+array[_i_] = 0;\ }\+}\  #define GIM_CONSTANT_ARRAY(array,element_count,constant)\ {\-    for (GUINT _i_=0;_i_<element_count ;++_i_)\-    {\-    	array[_i_] = constant;\-    }\+for (GUINT _i_=0;_i_<element_count ;++_i_)\+{\+array[_i_] = constant;\ }\+}\   ///Function prototypes to allocate and free memory.@@ -106,7 +106,7 @@ gim_alloc_function *gim_get_alloc_handler (void); gim_alloca_function *gim_get_alloca_handler(void); gim_realloc_function *gim_get_realloc_handler (void);-gim_free_function  *gim_get_free_handler (void);+gim_free_function *gim_get_free_handler (void);   ///Standar Memory functions@@ -118,7 +118,7 @@   #if defined (_WIN32) && !defined(__MINGW32__) && !defined(__CYGWIN__)-    #define GIM_SIMD_MEMORY 1+#define GIM_SIMD_MEMORY 1 #endif  //! SIMD POINTER INTEGER@@ -132,27 +132,27 @@ #ifdef GIM_SIMD_MEMORY /* //'long long int' is incompatible with visual studio 6...-    //copy words-    SIMD_T * ui_src_ptr = (SIMD_T *)src;-    SIMD_T * ui_dst_ptr = (SIMD_T *)dst;-    while(copysize>=SIMD_T_SIZE)-    {-        *(ui_dst_ptr++) = *(ui_src_ptr++);-        copysize-=SIMD_T_SIZE;-    }-    if(copysize==0) return;+//copy words+SIMD_T * ui_src_ptr = (SIMD_T *)src;+SIMD_T * ui_dst_ptr = (SIMD_T *)dst;+while(copysize>=SIMD_T_SIZE)+{+*(ui_dst_ptr++) = *(ui_src_ptr++);+copysize-=SIMD_T_SIZE;+}+if(copysize==0) return; */ -    char * c_src_ptr = (char *)src;-    char * c_dst_ptr = (char *)dst;-    while(copysize>0)-    {-        *(c_dst_ptr++) = *(c_src_ptr++);-        copysize--;-    }-    return;+char * c_src_ptr = (char *)src;+char * c_dst_ptr = (char *)dst;+while(copysize>0)+{+*(c_dst_ptr++) = *(c_src_ptr++);+copysize--;+}+return; #else-    memcpy(dst,src,copysize);+memcpy(dst,src,copysize); #endif } @@ -161,30 +161,30 @@ template<class T> inline void gim_swap_elements(T* _array,size_t _i,size_t _j) {-	T _e_tmp_ = _array[_i];-	_array[_i] = _array[_j];-	_array[_j] = _e_tmp_;+T _e_tmp_ = _array[_i];+_array[_i] = _array[_j];+_array[_j] = _e_tmp_; }   template<class T> inline void gim_swap_elements_memcpy(T* _array,size_t _i,size_t _j) {-	char _e_tmp_[sizeof(T)];-	gim_simd_memcpy(_e_tmp_,&_array[_i],sizeof(T));-	gim_simd_memcpy(&_array[_i],&_array[_j],sizeof(T));-	gim_simd_memcpy(&_array[_j],_e_tmp_,sizeof(T));+char _e_tmp_[sizeof(T)];+gim_simd_memcpy(_e_tmp_,&_array[_i],sizeof(T));+gim_simd_memcpy(&_array[_i],&_array[_j],sizeof(T));+gim_simd_memcpy(&_array[_j],_e_tmp_,sizeof(T)); }  template <int SIZE> inline void gim_swap_elements_ptr(char * _array,size_t _i,size_t _j) {-	char _e_tmp_[SIZE];-	_i*=SIZE;-	_j*=SIZE;-	gim_simd_memcpy(_e_tmp_,_array+_i,SIZE);-	gim_simd_memcpy(_array+_i,_array+_j,SIZE);-	gim_simd_memcpy(_array+_j,_e_tmp_,SIZE);+char _e_tmp_[SIZE];+_i*=SIZE;+_j*=SIZE;+gim_simd_memcpy(_e_tmp_,_array+_i,SIZE);+gim_simd_memcpy(_array+_i,_array+_j,SIZE);+gim_simd_memcpy(_array+_j,_e_tmp_,SIZE); }  #endif // GIM_MEMORY_H_INCLUDED
bullet/BulletCollision/Gimpact/gim_radixsort.h view
@@ -14,22 +14,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -39,172 +39,172 @@ ///Macros for sorting. //! Prototype for comparators class less_comparator-{-	public:+{ private:+public: -	template<class T,class Z>-	inline int operator() ( const T& a, const Z& b )-	{-		return ( a<b?-1:(a>b?1:0));-	}+template<class T,class Z>+inline int operator() ( const T& a, const Z& b )+{+return ( a<b?-1:(a>b?1:0));+} };  //! Prototype for comparators class integer_comparator-{-	public:+{ private:+public: -	template<class T>-	inline int operator() ( const T& a, const T& b )-	{-		return (int)(a-b);-	}+template<class T>+inline int operator() ( const T& a, const T& b )+{+return (int)(a-b);+} };  //!Prototype for getting the integer representation of an object class uint_key_func-{+{ private: public:-	template<class T>-	inline GUINT operator()( const T& a)-	{-		return (GUINT)a;-	}+template<class T>+inline GUINT operator()( const T& a)+{+return (GUINT)a;+} };   //!Prototype for copying elements class copy_elements_func-{+{ private: public:-	template<class T>-	inline void operator()(T& a,T& b)-	{-		a = b;-	}+template<class T>+inline void operator()(T& a,T& b)+{+a = b;+} };  //!Prototype for copying elements class memcopy_elements_func-{+{ private: public:-	template<class T>-	inline void operator()(T& a,T& b)-	{-		gim_simd_memcpy(&a,&b,sizeof(T));-	}+template<class T>+inline void operator()(T& a,T& b)+{+gim_simd_memcpy(&a,&b,sizeof(T));+} };   //! @{ struct GIM_RSORT_TOKEN {-    GUINT m_key;-    GUINT m_value;-    GIM_RSORT_TOKEN()-    {-    }-    GIM_RSORT_TOKEN(const GIM_RSORT_TOKEN& rtoken)-    {-    	m_key = rtoken.m_key;-    	m_value = rtoken.m_value;-    }+GUINT m_key;+GUINT m_value;+GIM_RSORT_TOKEN()+{+}+GIM_RSORT_TOKEN(const GIM_RSORT_TOKEN& rtoken)+{+m_key = rtoken.m_key;+m_value = rtoken.m_value;+} -    inline bool operator <(const GIM_RSORT_TOKEN& other) const-	{-		return (m_key < other.m_key);-	}+inline bool operator <(const GIM_RSORT_TOKEN& other) const+{+return (m_key < other.m_key);+} -	inline bool operator >(const GIM_RSORT_TOKEN& other) const-	{-		return (m_key > other.m_key);-	}+inline bool operator >(const GIM_RSORT_TOKEN& other) const+{+return (m_key > other.m_key);+} };  //! Prototype for comparators class GIM_RSORT_TOKEN_COMPARATOR-{-	public:+{ private:+public: -	inline int operator()( const GIM_RSORT_TOKEN& a, const GIM_RSORT_TOKEN& b )-	{-		return (int)((a.m_key) - (b.m_key));-	}+inline int operator()( const GIM_RSORT_TOKEN& a, const GIM_RSORT_TOKEN& b )+{+return (int)((a.m_key) - (b.m_key));+} };    #define kHist 2048 // ---- utils for accessing 11-bit quantities-#define D11_0(x)	(x & 0x7FF)-#define D11_1(x)	(x >> 11 & 0x7FF)-#define D11_2(x)	(x >> 22 )+#define D11_0(x) (x & 0x7FF)+#define D11_1(x) (x >> 11 & 0x7FF)+#define D11_2(x) (x >> 22 )    ///Radix sort for unsigned integer keys inline void gim_radix_sort_rtokens(-				GIM_RSORT_TOKEN * array,-				GIM_RSORT_TOKEN * sorted, GUINT element_count)+GIM_RSORT_TOKEN * array,+GIM_RSORT_TOKEN * sorted, GUINT element_count) {-	GUINT i;-	GUINT b0[kHist * 3];-	GUINT *b1 = b0 + kHist;-	GUINT *b2 = b1 + kHist;-	for (i = 0; i < kHist * 3; ++i)-	{-		b0[i] = 0;-	}-	GUINT fi;-	GUINT pos;-	for (i = 0; i < element_count; ++i)-	{-	    fi = array[i].m_key;-		b0[D11_0(fi)] ++;-		b1[D11_1(fi)] ++;-		b2[D11_2(fi)] ++;-	}-	{-		GUINT sum0 = 0, sum1 = 0, sum2 = 0;-		GUINT tsum;-		for (i = 0; i < kHist; ++i)-		{-			tsum = b0[i] + sum0;-			b0[i] = sum0 - 1;-			sum0 = tsum;-			tsum = b1[i] + sum1;-			b1[i] = sum1 - 1;-			sum1 = tsum;-			tsum = b2[i] + sum2;-			b2[i] = sum2 - 1;-			sum2 = tsum;-		}-	}-	for (i = 0; i < element_count; ++i)-	{-        fi = array[i].m_key;-		pos = D11_0(fi);-		pos = ++b0[pos];-		sorted[pos].m_key = array[i].m_key;-		sorted[pos].m_value = array[i].m_value;-	}-	for (i = 0; i < element_count; ++i)-	{-        fi = sorted[i].m_key;-		pos = D11_1(fi);-		pos = ++b1[pos];-		array[pos].m_key = sorted[i].m_key;-		array[pos].m_value = sorted[i].m_value;-	}-	for (i = 0; i < element_count; ++i)-	{-        fi = array[i].m_key;-		pos = D11_2(fi);-		pos = ++b2[pos];-		sorted[pos].m_key = array[i].m_key;-		sorted[pos].m_value = array[i].m_value;-	}+GUINT i;+GUINT b0[kHist * 3];+GUINT *b1 = b0 + kHist;+GUINT *b2 = b1 + kHist;+for (i = 0; i < kHist * 3; ++i)+{+b0[i] = 0; }+GUINT fi;+GUINT pos;+for (i = 0; i < element_count; ++i)+{+fi = array[i].m_key;+b0[D11_0(fi)] ++;+b1[D11_1(fi)] ++;+b2[D11_2(fi)] ++;+}+{+GUINT sum0 = 0, sum1 = 0, sum2 = 0;+GUINT tsum;+for (i = 0; i < kHist; ++i)+{+tsum = b0[i] + sum0;+b0[i] = sum0 - 1;+sum0 = tsum;+tsum = b1[i] + sum1;+b1[i] = sum1 - 1;+sum1 = tsum;+tsum = b2[i] + sum2;+b2[i] = sum2 - 1;+sum2 = tsum;+}+}+for (i = 0; i < element_count; ++i)+{+fi = array[i].m_key;+pos = D11_0(fi);+pos = ++b0[pos];+sorted[pos].m_key = array[i].m_key;+sorted[pos].m_value = array[i].m_value;+}+for (i = 0; i < element_count; ++i)+{+fi = sorted[i].m_key;+pos = D11_1(fi);+pos = ++b1[pos];+array[pos].m_key = sorted[i].m_key;+array[pos].m_value = sorted[i].m_value;+}+for (i = 0; i < element_count; ++i)+{+fi = array[i].m_key;+pos = D11_2(fi);+pos = ++b2[pos];+sorted[pos].m_key = array[i].m_key;+sorted[pos].m_value = array[i].m_value;+}+}   @@ -218,20 +218,20 @@ */ template<typename T, class GETKEY_CLASS> void gim_radix_sort_array_tokens(-			T* array ,-			GIM_RSORT_TOKEN * sorted_tokens,-			GUINT element_count,GETKEY_CLASS uintkey_macro)+T* array ,+GIM_RSORT_TOKEN * sorted_tokens,+GUINT element_count,GETKEY_CLASS uintkey_macro) {-	GIM_RSORT_TOKEN * _unsorted = (GIM_RSORT_TOKEN *) gim_alloc(sizeof(GIM_RSORT_TOKEN)*element_count);-    for (GUINT _i=0;_i<element_count;++_i)-    {-        _unsorted[_i].m_key = uintkey_macro(array[_i]);-        _unsorted[_i].m_value = _i;-    }-    gim_radix_sort_rtokens(_unsorted,sorted_tokens,element_count);-    gim_free(_unsorted);-    gim_free(_unsorted);+GIM_RSORT_TOKEN * _unsorted = (GIM_RSORT_TOKEN *) gim_alloc(sizeof(GIM_RSORT_TOKEN)*element_count);+for (GUINT _i=0;_i<element_count;++_i)+{+_unsorted[_i].m_key = uintkey_macro(array[_i]);+_unsorted[_i].m_value = _i; }+gim_radix_sort_rtokens(_unsorted,sorted_tokens,element_count);+gim_free(_unsorted);+gim_free(_unsorted);+}  /// Sorts array in place. For generic use /*!@@ -243,64 +243,64 @@ */ template<typename T, class GETKEY_CLASS, class COPY_CLASS> void gim_radix_sort(-	T * array, GUINT element_count,-	GETKEY_CLASS get_uintkey_macro, COPY_CLASS copy_elements_macro)+T * array, GUINT element_count,+GETKEY_CLASS get_uintkey_macro, COPY_CLASS copy_elements_macro) {-	GIM_RSORT_TOKEN * _sorted = (GIM_RSORT_TOKEN  *) gim_alloc(sizeof(GIM_RSORT_TOKEN)*element_count);-    gim_radix_sort_array_tokens(array,_sorted,element_count,get_uintkey_macro);-    T * _original_array = (T *) gim_alloc(sizeof(T)*element_count);-    gim_simd_memcpy(_original_array,array,sizeof(T)*element_count);-    for (GUINT _i=0;_i<element_count;++_i)-    {-        copy_elements_macro(array[_i],_original_array[_sorted[_i].m_value]);-    }-    gim_free(_original_array);-    gim_free(_sorted);+GIM_RSORT_TOKEN * _sorted = (GIM_RSORT_TOKEN *) gim_alloc(sizeof(GIM_RSORT_TOKEN)*element_count);+gim_radix_sort_array_tokens(array,_sorted,element_count,get_uintkey_macro);+T * _original_array = (T *) gim_alloc(sizeof(T)*element_count);+gim_simd_memcpy(_original_array,array,sizeof(T)*element_count);+for (GUINT _i=0;_i<element_count;++_i)+{+copy_elements_macro(array[_i],_original_array[_sorted[_i].m_value]); }+gim_free(_original_array);+gim_free(_sorted);+}  //! Failsafe Iterative binary search, /*! If the element is not found, it returns the nearest upper element position, may be the further position after the last element. \param _array \param _start_i the beginning of the array-\param _end_i the ending  index of the array+\param _end_i the ending index of the array \param _search_key Value to find \param _comp_macro macro for comparing elements \param _found If true the value has found. Boolean-\param _result_index the index of the found element, or if not found then it will get the index of the  closest bigger value+\param _result_index the index of the found element, or if not found then it will get the index of the closest bigger value */ template<class T, typename KEYCLASS, typename COMP_CLASS>-bool  gim_binary_search_ex(-		const T* _array, GUINT _start_i,-		GUINT _end_i,GUINT & _result_index,-		const KEYCLASS & _search_key,-		COMP_CLASS _comp_macro)+bool gim_binary_search_ex(+const T* _array, GUINT _start_i,+GUINT _end_i,GUINT & _result_index,+const KEYCLASS & _search_key,+COMP_CLASS _comp_macro) {-	GUINT _k;-	int _comp_result;-	GUINT _i = _start_i;-	GUINT _j = _end_i+1;-	while (_i < _j)-	{-		_k = (_j+_i-1)/2;-		_comp_result = _comp_macro(_array[_k], _search_key);-		if (_comp_result == 0)-		{-			_result_index = _k;-			return true;-		}-		else if (_comp_result < 0)-		{-			_i = _k+1;-		}-		else-		{-			_j = _k;-		}-	}-	_result_index = _i;-	return false;+GUINT _k;+int _comp_result;+GUINT _i = _start_i;+GUINT _j = _end_i+1;+while (_i < _j)+{+_k = (_j+_i-1)/2;+_comp_result = _comp_macro(_array[_k], _search_key);+if (_comp_result == 0)+{+_result_index = _k;+return true; }+else if (_comp_result < 0)+{+_i = _k+1;+}+else+{+_j = _k;+}+}+_result_index = _i;+return false;+}   @@ -309,40 +309,40 @@ If the element is not found, it returns the nearest upper element position, may be the further position after the last element. \param _array \param _start_i the beginning of the array-\param _end_i the ending  index of the array+\param _end_i the ending index of the array \param _search_key Value to find-\param _result_index the index of the found element, or if not found then it will get the index of the  closest bigger value+\param _result_index the index of the found element, or if not found then it will get the index of the closest bigger value \return true if found, else false */ template<class T> bool gim_binary_search(-	const T*_array,GUINT _start_i,-	GUINT _end_i,const T & _search_key,-	GUINT & _result_index)+const T*_array,GUINT _start_i,+GUINT _end_i,const T & _search_key,+GUINT & _result_index) {-	GUINT _i = _start_i;-	GUINT _j = _end_i+1;-	GUINT _k;-	while(_i < _j)-	{-		_k = (_j+_i-1)/2;-		if(_array[_k]==_search_key)-		{-			_result_index = _k;-			return true;-		}-		else if (_array[_k]<_search_key)-		{-			_i = _k+1;-		}-		else-		{-			_j = _k;-		}-	}-	_result_index = _i;-	return false;+GUINT _i = _start_i;+GUINT _j = _end_i+1;+GUINT _k;+while(_i < _j)+{+_k = (_j+_i-1)/2;+if(_array[_k]==_search_key)+{+_result_index = _k;+return true; }+else if (_array[_k]<_search_key)+{+_i = _k+1;+}+else+{+_j = _k;+}+}+_result_index = _i;+return false;+}   @@ -350,54 +350,54 @@ template <typename T, typename COMP_CLASS> void gim_down_heap(T *pArr, GUINT k, GUINT n,COMP_CLASS CompareFunc) {-	/*  PRE: a[k+1..N] is a heap */-	/* POST:  a[k..N]  is a heap */+/* PRE: a[k+1..N] is a heap */+/* POST: a[k..N] is a heap */ -	T temp = pArr[k - 1];-	/* k has child(s) */-	while (k <= n/2)-	{-		int child = 2*k;+T temp = pArr[k - 1];+/* k has child(s) */+while (k <= n/2)+{+int child = 2*k; -		if ((child < (int)n) && CompareFunc(pArr[child - 1] , pArr[child])<0)-		{-			child++;-		}-		/* pick larger child */-		if (CompareFunc(temp , pArr[child - 1])<0)-		{-			/* move child up */-			pArr[k - 1] = pArr[child - 1];-			k = child;-		}-		else-		{-			break;-		}-	}-	pArr[k - 1] = temp;+if ((child < (int)n) && CompareFunc(pArr[child - 1] , pArr[child])<0)+{+child++;+}+/* pick larger child */+if (CompareFunc(temp , pArr[child - 1])<0)+{+/* move child up */+pArr[k - 1] = pArr[child - 1];+k = child;+}+else+{+break;+}+}+pArr[k - 1] = temp; } /*downHeap*/   template <typename T, typename COMP_CLASS> void gim_heap_sort(T *pArr, GUINT element_count, COMP_CLASS CompareFunc) {-	/* sort a[0..N-1],  N.B. 0 to N-1 */-	GUINT k;-	GUINT n = element_count;-	for (k = n/2; k > 0; k--)-	{-		gim_down_heap(pArr, k, n, CompareFunc);-	}+/* sort a[0..N-1], N.B. 0 to N-1 */+GUINT k;+GUINT n = element_count;+for (k = n/2; k > 0; k--)+{+gim_down_heap(pArr, k, n, CompareFunc);+} -	/* a[1..N] is now a heap */-	while ( n>=2 )-	{-		gim_swap_elements(pArr,0,n-1); /* largest of a[0..n-1] */-		--n;-		/* restore a[1..i-1] heap */-		gim_down_heap(pArr, 1, n, CompareFunc);-	}+/* a[1..N] is now a heap */+while ( n>=2 )+{+gim_swap_elements(pArr,0,n-1); /* largest of a[0..n-1] */+--n;+/* restore a[1..i-1] heap */+gim_down_heap(pArr, 1, n, CompareFunc);+} }  
bullet/BulletCollision/Gimpact/gim_tri_collision.h view
@@ -13,22 +13,22 @@ Copyright (c) 2006 Francisco Leon Najera. C.C. 80087371. email: projectileman@yahoo.com - This library is free software; you can redistribute it and/or- modify it under the terms of EITHER:-   (1) The GNU Lesser General Public License as published by the Free-       Software Foundation; either version 2.1 of the License, or (at-       your option) any later version. The text of the GNU Lesser-       General Public License is included with this library in the-       file GIMPACT-LICENSE-LGPL.TXT.-   (2) The BSD-style license that is included with this library in-       the file GIMPACT-LICENSE-BSD.TXT.-   (3) The zlib/libpng license that is included with this library in-       the file GIMPACT-LICENSE-ZLIB.TXT.+This library is free software; you can redistribute it and/or+modify it under the terms of EITHER:+(1) The GNU Lesser General Public License as published by the Free+Software Foundation; either version 2.1 of the License, or (at+your option) any later version. The text of the GNU Lesser+General Public License is included with this library in the+file GIMPACT-LICENSE-LGPL.TXT.+(2) The BSD-style license that is included with this library in+the file GIMPACT-LICENSE-BSD.TXT.+(3) The zlib/libpng license that is included with this library in+the file GIMPACT-LICENSE-ZLIB.TXT. - This library is distributed in the hope that it will be useful,- but WITHOUT ANY WARRANTY; without even the implied warranty of- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files- GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.+This library is distributed in the hope that it will be useful,+but WITHOUT ANY WARRANTY; without even the implied warranty of+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files+GIMPACT-LICENSE-LGPL.TXT, GIMPACT-LICENSE-ZLIB.TXT and GIMPACT-LICENSE-BSD.TXT for more details.  ----------------------------------------------------------------------------- */@@ -44,332 +44,332 @@ //! Structure for collision struct GIM_TRIANGLE_CONTACT_DATA {-    GREAL m_penetration_depth;-    GUINT m_point_count;-    btVector4 m_separating_normal;-    btVector3 m_points[MAX_TRI_CLIPPING];+GREAL m_penetration_depth;+GUINT m_point_count;+btVector4 m_separating_normal;+btVector3 m_points[MAX_TRI_CLIPPING]; -	SIMD_FORCE_INLINE void copy_from(const GIM_TRIANGLE_CONTACT_DATA& other)-	{-		m_penetration_depth = other.m_penetration_depth;-		m_separating_normal = other.m_separating_normal;-		m_point_count = other.m_point_count;-		GUINT i = m_point_count;-		while(i--)-		{-			m_points[i] = other.m_points[i];-		}-	}+SIMD_FORCE_INLINE void copy_from(const GIM_TRIANGLE_CONTACT_DATA& other)+{+m_penetration_depth = other.m_penetration_depth;+m_separating_normal = other.m_separating_normal;+m_point_count = other.m_point_count;+GUINT i = m_point_count;+while(i--)+{+m_points[i] = other.m_points[i];+}+} -	GIM_TRIANGLE_CONTACT_DATA()-	{-	}+GIM_TRIANGLE_CONTACT_DATA()+{+} -	GIM_TRIANGLE_CONTACT_DATA(const GIM_TRIANGLE_CONTACT_DATA& other)-	{-		copy_from(other);-	}+GIM_TRIANGLE_CONTACT_DATA(const GIM_TRIANGLE_CONTACT_DATA& other)+{+copy_from(other);+} -	-	 -    //! classify points that are closer-    template<typename DISTANCE_FUNC,typename CLASS_PLANE>-    SIMD_FORCE_INLINE void mergepoints_generic(const CLASS_PLANE & plane,-    				GREAL margin, const btVector3 * points, GUINT point_count, DISTANCE_FUNC distance_func)-    {	-    	m_point_count = 0;-    	m_penetration_depth= -1000.0f; -		GUINT point_indices[MAX_TRI_CLIPPING]; -		GUINT _k;+//! classify points that are closer+template<typename DISTANCE_FUNC,typename CLASS_PLANE>+SIMD_FORCE_INLINE void mergepoints_generic(const CLASS_PLANE & plane,+GREAL margin, const btVector3 * points, GUINT point_count, DISTANCE_FUNC distance_func)+{+m_point_count = 0;+m_penetration_depth= -1000.0f; -		for(_k=0;_k<point_count;_k++)-		{-			GREAL _dist = -distance_func(plane,points[_k]) + margin;+GUINT point_indices[MAX_TRI_CLIPPING]; -			if(_dist>=0.0f)-			{-				if(_dist>m_penetration_depth)-				{-					m_penetration_depth = _dist;-					point_indices[0] = _k;-					m_point_count=1;-				}-				else if((_dist+G_EPSILON)>=m_penetration_depth)-				{-					point_indices[m_point_count] = _k;-					m_point_count++;-				}-			}-		}+GUINT _k; -		for( _k=0;_k<m_point_count;_k++)-		{-			m_points[_k] = points[point_indices[_k]];-		}-	}+for(_k=0;_k<point_count;_k++)+{+GREAL _dist = -distance_func(plane,points[_k]) + margin; -	//! classify points that are closer-	SIMD_FORCE_INLINE void merge_points(const btVector4 & plane, GREAL margin,-										 const btVector3 * points, GUINT point_count)-	{-		m_separating_normal = plane;-		mergepoints_generic(plane, margin, points, point_count, DISTANCE_PLANE_3D_FUNC());-	}+if(_dist>=0.0f)+{+if(_dist>m_penetration_depth)+{+m_penetration_depth = _dist;+point_indices[0] = _k;+m_point_count=1;+}+else if((_dist+G_EPSILON)>=m_penetration_depth)+{+point_indices[m_point_count] = _k;+m_point_count++;+}+}+}++for( _k=0;_k<m_point_count;_k++)+{+m_points[_k] = points[point_indices[_k]];+}+}++//! classify points that are closer+SIMD_FORCE_INLINE void merge_points(const btVector4 & plane, GREAL margin,+const btVector3 * points, GUINT point_count)+{+m_separating_normal = plane;+mergepoints_generic(plane, margin, points, point_count, DISTANCE_PLANE_3D_FUNC());+} };   //! Class for colliding triangles class GIM_TRIANGLE-{+{ private: public:-	btScalar m_margin;-    btVector3 m_vertices[3];+btScalar m_margin;+btVector3 m_vertices[3]; -    GIM_TRIANGLE():m_margin(0.1f)-    {-    }+GIM_TRIANGLE():m_margin(0.1f)+{+} -    SIMD_FORCE_INLINE GIM_AABB get_box()  const-    {-    	return GIM_AABB(m_vertices[0],m_vertices[1],m_vertices[2],m_margin);-    }+SIMD_FORCE_INLINE GIM_AABB get_box() const+{+return GIM_AABB(m_vertices[0],m_vertices[1],m_vertices[2],m_margin);+} -    SIMD_FORCE_INLINE void get_normal(btVector3 &normal)  const-    {-    	TRIANGLE_NORMAL(m_vertices[0],m_vertices[1],m_vertices[2],normal);-    }+SIMD_FORCE_INLINE void get_normal(btVector3 &normal) const+{+TRIANGLE_NORMAL(m_vertices[0],m_vertices[1],m_vertices[2],normal);+} -    SIMD_FORCE_INLINE void get_plane(btVector4 &plane)  const-    {-    	TRIANGLE_PLANE(m_vertices[0],m_vertices[1],m_vertices[2],plane);;-    }+SIMD_FORCE_INLINE void get_plane(btVector4 &plane) const+{+TRIANGLE_PLANE(m_vertices[0],m_vertices[1],m_vertices[2],plane);;+} -    SIMD_FORCE_INLINE void apply_transform(const btTransform & trans)-    {-    	m_vertices[0] = trans(m_vertices[0]);-    	m_vertices[1] = trans(m_vertices[1]);-    	m_vertices[2] = trans(m_vertices[2]);-    }+SIMD_FORCE_INLINE void apply_transform(const btTransform & trans)+{+m_vertices[0] = trans(m_vertices[0]);+m_vertices[1] = trans(m_vertices[1]);+m_vertices[2] = trans(m_vertices[2]);+} -    SIMD_FORCE_INLINE void get_edge_plane(GUINT edge_index,const btVector3 &triangle_normal,btVector4 &plane)  const-    {-		const btVector3 & e0 = m_vertices[edge_index];-		const btVector3 & e1 = m_vertices[(edge_index+1)%3];-		EDGE_PLANE(e0,e1,triangle_normal,plane);-    }+SIMD_FORCE_INLINE void get_edge_plane(GUINT edge_index,const btVector3 &triangle_normal,btVector4 &plane) const+{+const btVector3 & e0 = m_vertices[edge_index];+const btVector3 & e1 = m_vertices[(edge_index+1)%3];+EDGE_PLANE(e0,e1,triangle_normal,plane);+} -    //! Gets the relative transformation of this triangle-    /*!-    The transformation is oriented to the triangle normal , and aligned to the 1st edge of this triangle. The position corresponds to vertice 0:-    - triangle normal corresponds to Z axis.-    - 1st normalized edge corresponds to X axis,+//! Gets the relative transformation of this triangle+/*!+The transformation is oriented to the triangle normal , and aligned to the 1st edge of this triangle. The position corresponds to vertice 0:+- triangle normal corresponds to Z axis.+- 1st normalized edge corresponds to X axis, -    */-    SIMD_FORCE_INLINE void get_triangle_transform(btTransform & triangle_transform)  const-    {-    	btMatrix3x3 & matrix = triangle_transform.getBasis();+*/+SIMD_FORCE_INLINE void get_triangle_transform(btTransform & triangle_transform) const+{+btMatrix3x3 & matrix = triangle_transform.getBasis(); -    	btVector3 zaxis;-    	get_normal(zaxis);-    	MAT_SET_Z(matrix,zaxis);+btVector3 zaxis;+get_normal(zaxis);+MAT_SET_Z(matrix,zaxis); -    	btVector3 xaxis = m_vertices[1] - m_vertices[0];-    	VEC_NORMALIZE(xaxis);-    	MAT_SET_X(matrix,xaxis);+btVector3 xaxis = m_vertices[1] - m_vertices[0];+VEC_NORMALIZE(xaxis);+MAT_SET_X(matrix,xaxis); -    	//y axis-    	xaxis = zaxis.cross(xaxis);-    	MAT_SET_Y(matrix,xaxis);+//y axis+xaxis = zaxis.cross(xaxis);+MAT_SET_Y(matrix,xaxis); -    	triangle_transform.setOrigin(m_vertices[0]);-    }+triangle_transform.setOrigin(m_vertices[0]);+}  -	//! Test triangles by finding separating axis-	/*!-	\param other Triangle for collide-	\param contact_data Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle-	*/-	bool collide_triangle_hard_test(-		const GIM_TRIANGLE & other,-		GIM_TRIANGLE_CONTACT_DATA & contact_data) const;+//! Test triangles by finding separating axis+/*!+\param other Triangle for collide+\param contact_data Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle+*/+bool collide_triangle_hard_test(+const GIM_TRIANGLE & other,+GIM_TRIANGLE_CONTACT_DATA & contact_data) const; -	//! Test boxes before doing hard test-	/*!-	\param other Triangle for collide-	\param contact_data Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle-	\-	*/-	SIMD_FORCE_INLINE bool collide_triangle(-		const GIM_TRIANGLE & other,-		GIM_TRIANGLE_CONTACT_DATA & contact_data) const-	{-		//test box collisioin-		GIM_AABB boxu(m_vertices[0],m_vertices[1],m_vertices[2],m_margin);-		GIM_AABB boxv(other.m_vertices[0],other.m_vertices[1],other.m_vertices[2],other.m_margin);-		if(!boxu.has_collision(boxv)) return false;+//! Test boxes before doing hard test+/*!+\param other Triangle for collide+\param contact_data Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle+\+*/+SIMD_FORCE_INLINE bool collide_triangle(+const GIM_TRIANGLE & other,+GIM_TRIANGLE_CONTACT_DATA & contact_data) const+{+//test box collisioin+GIM_AABB boxu(m_vertices[0],m_vertices[1],m_vertices[2],m_margin);+GIM_AABB boxv(other.m_vertices[0],other.m_vertices[1],other.m_vertices[2],other.m_margin);+if(!boxu.has_collision(boxv)) return false; -		//do hard test-		return collide_triangle_hard_test(other,contact_data);-	}+//do hard test+return collide_triangle_hard_test(other,contact_data);+} -	/*!+/*! -	Solve the System for u,v parameters:+Solve the System for u,v parameters: -	u*axe1[i1] + v*axe2[i1] = vecproj[i1]-	u*axe1[i2] + v*axe2[i2] = vecproj[i2]+u*axe1[i1] + v*axe2[i1] = vecproj[i1]+u*axe1[i2] + v*axe2[i2] = vecproj[i2] -	sustitute:-	v = (vecproj[i2] - u*axe1[i2])/axe2[i2]+sustitute:+v = (vecproj[i2] - u*axe1[i2])/axe2[i2] -	then the first equation in terms of 'u':+then the first equation in terms of 'u': -	--> u*axe1[i1] + ((vecproj[i2] - u*axe1[i2])/axe2[i2])*axe2[i1] = vecproj[i1]+--> u*axe1[i1] + ((vecproj[i2] - u*axe1[i2])/axe2[i2])*axe2[i1] = vecproj[i1] -	--> u*axe1[i1] + vecproj[i2]*axe2[i1]/axe2[i2] - u*axe1[i2]*axe2[i1]/axe2[i2] = vecproj[i1]+--> u*axe1[i1] + vecproj[i2]*axe2[i1]/axe2[i2] - u*axe1[i2]*axe2[i1]/axe2[i2] = vecproj[i1] -	--> u*(axe1[i1]  - axe1[i2]*axe2[i1]/axe2[i2]) = vecproj[i1] - vecproj[i2]*axe2[i1]/axe2[i2]+--> u*(axe1[i1] - axe1[i2]*axe2[i1]/axe2[i2]) = vecproj[i1] - vecproj[i2]*axe2[i1]/axe2[i2] -	--> u*((axe1[i1]*axe2[i2]  - axe1[i2]*axe2[i1])/axe2[i2]) = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1])/axe2[i2]+--> u*((axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1])/axe2[i2]) = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1])/axe2[i2] -	--> u*(axe1[i1]*axe2[i2]  - axe1[i2]*axe2[i1]) = vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1]+--> u*(axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1]) = vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1] -	--> u = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1]) /(axe1[i1]*axe2[i2]  - axe1[i2]*axe2[i1])+--> u = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1]) /(axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1])  if 0.0<= u+v <=1.0 then they are inside of triangle -	\return false if the point is outside of triangle.This function  doesn't take the margin-	*/-	SIMD_FORCE_INLINE bool get_uv_parameters(-			const btVector3 & point,-			const btVector3 & tri_plane,-			GREAL & u, GREAL & v) const-	{-		btVector3 _axe1 = m_vertices[1]-m_vertices[0];-		btVector3 _axe2 = m_vertices[2]-m_vertices[0];-		btVector3 _vecproj = point - m_vertices[0];-		GUINT _i1 = (tri_plane.closestAxis()+1)%3;-		GUINT _i2 = (_i1+1)%3;-		if(btFabs(_axe2[_i2])<G_EPSILON)-		{-			u = (_vecproj[_i2]*_axe2[_i1] - _vecproj[_i1]*_axe2[_i2]) /(_axe1[_i2]*_axe2[_i1]  - _axe1[_i1]*_axe2[_i2]);-			v = (_vecproj[_i1] - u*_axe1[_i1])/_axe2[_i1];-		}-		else-		{-			u = (_vecproj[_i1]*_axe2[_i2] - _vecproj[_i2]*_axe2[_i1]) /(_axe1[_i1]*_axe2[_i2]  - _axe1[_i2]*_axe2[_i1]);-			v = (_vecproj[_i2] - u*_axe1[_i2])/_axe2[_i2];-		}+\return false if the point is outside of triangle.This function doesn't take the margin+*/+SIMD_FORCE_INLINE bool get_uv_parameters(+const btVector3 & point,+const btVector3 & tri_plane,+GREAL & u, GREAL & v) const+{+btVector3 _axe1 = m_vertices[1]-m_vertices[0];+btVector3 _axe2 = m_vertices[2]-m_vertices[0];+btVector3 _vecproj = point - m_vertices[0];+GUINT _i1 = (tri_plane.closestAxis()+1)%3;+GUINT _i2 = (_i1+1)%3;+if(btFabs(_axe2[_i2])<G_EPSILON)+{+u = (_vecproj[_i2]*_axe2[_i1] - _vecproj[_i1]*_axe2[_i2]) /(_axe1[_i2]*_axe2[_i1] - _axe1[_i1]*_axe2[_i2]);+v = (_vecproj[_i1] - u*_axe1[_i1])/_axe2[_i1];+}+else+{+u = (_vecproj[_i1]*_axe2[_i2] - _vecproj[_i2]*_axe2[_i1]) /(_axe1[_i1]*_axe2[_i2] - _axe1[_i2]*_axe2[_i1]);+v = (_vecproj[_i2] - u*_axe1[_i2])/_axe2[_i2];+} -		if(u<-G_EPSILON)-		{-			return false;-		}-		else if(v<-G_EPSILON)-		{-			return false;-		}-		else-		{-			btScalar sumuv;-			sumuv = u+v;-			if(sumuv<-G_EPSILON)-			{-				return false;-			}-			else if(sumuv-1.0f>G_EPSILON)-			{-				return false;-			}-		}-		return true;-	}+if(u<-G_EPSILON)+{+return false;+}+else if(v<-G_EPSILON)+{+return false;+}+else+{+btScalar sumuv;+sumuv = u+v;+if(sumuv<-G_EPSILON)+{+return false;+}+else if(sumuv-1.0f>G_EPSILON)+{+return false;+}+}+return true;+} -	//! is point in triangle beam?-	/*!-	Test if point is in triangle, with m_margin tolerance-	*/-	SIMD_FORCE_INLINE bool is_point_inside(const btVector3 & point, const btVector3 & tri_normal) const-	{-		//Test with edge 0-		btVector4 edge_plane;-		this->get_edge_plane(0,tri_normal,edge_plane);-		GREAL dist = DISTANCE_PLANE_POINT(edge_plane,point);-		if(dist-m_margin>0.0f) return false; // outside plane+//! is point in triangle beam?+/*!+Test if point is in triangle, with m_margin tolerance+*/+SIMD_FORCE_INLINE bool is_point_inside(const btVector3 & point, const btVector3 & tri_normal) const+{+//Test with edge 0+btVector4 edge_plane;+this->get_edge_plane(0,tri_normal,edge_plane);+GREAL dist = DISTANCE_PLANE_POINT(edge_plane,point);+if(dist-m_margin>0.0f) return false; // outside plane -		this->get_edge_plane(1,tri_normal,edge_plane);-		dist = DISTANCE_PLANE_POINT(edge_plane,point);-		if(dist-m_margin>0.0f) return false; // outside plane+this->get_edge_plane(1,tri_normal,edge_plane);+dist = DISTANCE_PLANE_POINT(edge_plane,point);+if(dist-m_margin>0.0f) return false; // outside plane -		this->get_edge_plane(2,tri_normal,edge_plane);-		dist = DISTANCE_PLANE_POINT(edge_plane,point);-		if(dist-m_margin>0.0f) return false; // outside plane-		return true;-	}+this->get_edge_plane(2,tri_normal,edge_plane);+dist = DISTANCE_PLANE_POINT(edge_plane,point);+if(dist-m_margin>0.0f) return false; // outside plane+return true;+}  -	//! Bidireccional ray collision-	SIMD_FORCE_INLINE bool ray_collision(-		const btVector3 & vPoint,-		const btVector3 & vDir, btVector3 & pout, btVector3 & triangle_normal,-		GREAL & tparam, GREAL tmax = G_REAL_INFINITY)-	{-		btVector4 faceplane;-		{-			btVector3 dif1 = m_vertices[1] - m_vertices[0];-			btVector3 dif2 = m_vertices[2] - m_vertices[0];-    		VEC_CROSS(faceplane,dif1,dif2);-    		faceplane[3] = m_vertices[0].dot(faceplane);-		}+//! Bidireccional ray collision+SIMD_FORCE_INLINE bool ray_collision(+const btVector3 & vPoint,+const btVector3 & vDir, btVector3 & pout, btVector3 & triangle_normal,+GREAL & tparam, GREAL tmax = G_REAL_INFINITY)+{+btVector4 faceplane;+{+btVector3 dif1 = m_vertices[1] - m_vertices[0];+btVector3 dif2 = m_vertices[2] - m_vertices[0];+VEC_CROSS(faceplane,dif1,dif2);+faceplane[3] = m_vertices[0].dot(faceplane);+} -		GUINT res = LINE_PLANE_COLLISION(faceplane,vDir,vPoint,pout,tparam, btScalar(0), tmax);-		if(res == 0) return false;-		if(! is_point_inside(pout,faceplane)) return false;+GUINT res = LINE_PLANE_COLLISION(faceplane,vDir,vPoint,pout,tparam, btScalar(0), tmax);+if(res == 0) return false;+if(! is_point_inside(pout,faceplane)) return false; -		if(res==2) //invert normal-		{-			triangle_normal.setValue(-faceplane[0],-faceplane[1],-faceplane[2]);-		}-		else-		{-			triangle_normal.setValue(faceplane[0],faceplane[1],faceplane[2]);-		}+if(res==2) //invert normal+{+triangle_normal.setValue(-faceplane[0],-faceplane[1],-faceplane[2]);+}+else+{+triangle_normal.setValue(faceplane[0],faceplane[1],faceplane[2]);+} -		VEC_NORMALIZE(triangle_normal);+VEC_NORMALIZE(triangle_normal); -		return true;-	}+return true;+}  -	//! one direccion ray collision-	SIMD_FORCE_INLINE bool ray_collision_front_side(-		const btVector3 & vPoint,-		const btVector3 & vDir, btVector3 & pout, btVector3 & triangle_normal,-		GREAL & tparam, GREAL tmax = G_REAL_INFINITY)-	{-		btVector4 faceplane;-		{-			btVector3 dif1 = m_vertices[1] - m_vertices[0];-			btVector3 dif2 = m_vertices[2] - m_vertices[0];-    		VEC_CROSS(faceplane,dif1,dif2);-    		faceplane[3] = m_vertices[0].dot(faceplane);-		}+//! one direccion ray collision+SIMD_FORCE_INLINE bool ray_collision_front_side(+const btVector3 & vPoint,+const btVector3 & vDir, btVector3 & pout, btVector3 & triangle_normal,+GREAL & tparam, GREAL tmax = G_REAL_INFINITY)+{+btVector4 faceplane;+{+btVector3 dif1 = m_vertices[1] - m_vertices[0];+btVector3 dif2 = m_vertices[2] - m_vertices[0];+VEC_CROSS(faceplane,dif1,dif2);+faceplane[3] = m_vertices[0].dot(faceplane);+} -		GUINT res = LINE_PLANE_COLLISION(faceplane,vDir,vPoint,pout,tparam, btScalar(0), tmax);-		if(res != 1) return false;+GUINT res = LINE_PLANE_COLLISION(faceplane,vDir,vPoint,pout,tparam, btScalar(0), tmax);+if(res != 1) return false; -		if(!is_point_inside(pout,faceplane)) return false;+if(!is_point_inside(pout,faceplane)) return false; -		triangle_normal.setValue(faceplane[0],faceplane[1],faceplane[2]);+triangle_normal.setValue(faceplane[0],faceplane[1],faceplane[2]); -		VEC_NORMALIZE(triangle_normal);+VEC_NORMALIZE(triangle_normal); -		return true;-	}+return true;+}  }; 
bullet/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,28 +28,28 @@ /// Algorithm operates in worldspace, in order to keep inbetween motion globally consistent. /// It uses GJK at the moment. Future improvement would use minkowski sum / supporting vertex, merging innerloops class btContinuousConvexCollision : public btConvexCast-{-	btSimplexSolverInterface* m_simplexSolver;-	btConvexPenetrationDepthSolver*	m_penetrationDepthSolver;-	const btConvexShape*	m_convexA;-	//second object is either a convex or a plane (code sharing)-	const btConvexShape*	m_convexB1;-	const btStaticPlaneShape*	m_planeShape;+{ private:+btSimplexSolverInterface* m_simplexSolver;+btConvexPenetrationDepthSolver* m_penetrationDepthSolver;+const btConvexShape* m_convexA;+//second object is either a convex or a plane (code sharing)+const btConvexShape* m_convexB1;+const btStaticPlaneShape* m_planeShape; -	void computeClosestPoints( const btTransform& transA, const btTransform& transB,struct btPointCollector& pointCollector);+void computeClosestPoints( const btTransform& transA, const btTransform& transB,struct btPointCollector& pointCollector);  public: -	btContinuousConvexCollision (const btConvexShape*	shapeA,const btConvexShape*	shapeB ,btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver* penetrationDepthSolver);+btContinuousConvexCollision (const btConvexShape* shapeA,const btConvexShape* shapeB ,btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver* penetrationDepthSolver); -	btContinuousConvexCollision(const btConvexShape*	shapeA,const btStaticPlaneShape*	plane );+btContinuousConvexCollision(const btConvexShape* shapeA,const btStaticPlaneShape* plane ); -	virtual bool	calcTimeOfImpact(-				const btTransform& fromA,-				const btTransform& toA,-				const btTransform& fromB,-				const btTransform& toB,-				CastResult& result);+virtual bool calcTimeOfImpact(+const btTransform& fromA,+const btTransform& toA,+const btTransform& fromB,+const btTransform& toB,+CastResult& result);   };
bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,49 +25,49 @@  /// btConvexCast is an interface for Casting class btConvexCast-{+{ private: public:  -	virtual ~btConvexCast();+virtual ~btConvexCast(); -	///RayResult stores the closest result-	/// alternatively, add a callback method to decide about closest/all results-	struct	CastResult-	{-		//virtual bool	addRayResult(const btVector3& normal,btScalar	fraction) = 0;-				-		virtual void	DebugDraw(btScalar	fraction) {(void)fraction;}-		virtual void	drawCoordSystem(const btTransform& trans) {(void)trans;}-		virtual void	reportFailure(int errNo, int numIterations) {(void)errNo;(void)numIterations;}-		CastResult()-			:m_fraction(btScalar(BT_LARGE_FLOAT)),-			m_debugDrawer(0),-			m_allowedPenetration(btScalar(0))-		{-		}+///RayResult stores the closest result+/// alternatively, add a callback method to decide about closest/all results+struct CastResult+{+//virtual bool addRayResult(const btVector3& normal,btScalar fraction) = 0; +virtual void DebugDraw(btScalar fraction) {(void)fraction;}+virtual void drawCoordSystem(const btTransform& trans) {(void)trans;}+virtual void reportFailure(int errNo, int numIterations) {(void)errNo;(void)numIterations;}+CastResult()+:m_fraction(btScalar(BT_LARGE_FLOAT)),+m_debugDrawer(0),+m_allowedPenetration(btScalar(0))+{+} -		virtual ~CastResult() {}; -		btTransform	m_hitTransformA;-		btTransform	m_hitTransformB;-		btVector3	m_normal;-		btVector3   m_hitPoint;-		btScalar	m_fraction; //input and output-		btIDebugDraw* m_debugDrawer;-		btScalar	m_allowedPenetration;+virtual ~CastResult() {}; -	};+btTransform m_hitTransformA;+btTransform m_hitTransformB;+btVector3 m_normal;+btVector3 m_hitPoint;+btScalar m_fraction; //input and output+btIDebugDraw* m_debugDrawer;+btScalar m_allowedPenetration; +}; -	/// cast a convex against another convex object-	virtual bool	calcTimeOfImpact(-					const btTransform& fromA,-					const btTransform& toA,-					const btTransform& fromB,-					const btTransform& toB,-					CastResult& result) = 0;++/// cast a convex against another convex object+virtual bool calcTimeOfImpact(+const btTransform& fromA,+const btTransform& toA,+const btTransform& fromB,+const btTransform& toB,+CastResult& result) = 0; };  #endif //BT_CONVEX_CAST_H
bullet/BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,16 +25,16 @@  ///ConvexPenetrationDepthSolver provides an interface for penetration depth calculation. class btConvexPenetrationDepthSolver-{-public:	-	-	virtual ~btConvexPenetrationDepthSolver() {};-	virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,-		const btConvexShape* convexA,const btConvexShape* convexB,-					const btTransform& transA,const btTransform& transB,-				btVector3& v, btVector3& pa, btVector3& pb,-				class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc-				) = 0;+{ private:+public:++virtual ~btConvexPenetrationDepthSolver() {};+virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,+const btConvexShape* convexA,const btConvexShape* convexB,+const btTransform& transA,const btTransform& transB,+btVector3& v, btVector3& pa, btVector3& pb,+class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc+) = 0;   };
bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,63 +28,63 @@ /// by taking closestPointInA = closestPointInB + m_distance * m_normalOnSurfaceB struct btDiscreteCollisionDetectorInterface {-	-	struct Result-	{-	-		virtual ~Result(){}	 -		///setShapeIdentifiersA/B provides experimental support for per-triangle material / custom material combiner-		virtual void setShapeIdentifiersA(int partId0,int index0)=0;-		virtual void setShapeIdentifiersB(int partId1,int index1)=0;-		virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)=0;-	};+struct Result+{ -	struct ClosestPointInput-	{-		ClosestPointInput()-			:m_maximumDistanceSquared(btScalar(BT_LARGE_FLOAT)),-			m_stackAlloc(0)-		{-		}+virtual ~Result(){} -		btTransform m_transformA;-		btTransform m_transformB;-		btScalar	m_maximumDistanceSquared;-		btStackAlloc* m_stackAlloc;-	};+///setShapeIdentifiersA/B provides experimental support for per-triangle material / custom material combiner+virtual void setShapeIdentifiersA(int partId0,int index0)=0;+virtual void setShapeIdentifiersB(int partId1,int index1)=0;+virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)=0;+}; -	virtual ~btDiscreteCollisionDetectorInterface() {};+struct ClosestPointInput+{+ClosestPointInput()+:m_maximumDistanceSquared(btScalar(BT_LARGE_FLOAT)),+m_stackAlloc(0)+{+} -	//-	// give either closest points (distance > 0) or penetration (distance)-	// the normal always points from B towards A-	//-	virtual void	getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false) = 0;+btTransform m_transformA;+btTransform m_transformB;+btScalar m_maximumDistanceSquared;+btStackAlloc* m_stackAlloc;+}; +virtual ~btDiscreteCollisionDetectorInterface() {};++//+// give either closest points (distance > 0) or penetration (distance)+// the normal always points from B towards A+//+virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false) = 0;+ };  struct btStorageResult : public btDiscreteCollisionDetectorInterface::Result {-		btVector3	m_normalOnSurfaceB;-		btVector3	m_closestPointInB;-		btScalar	m_distance; //negative means penetration !+btVector3 m_normalOnSurfaceB;+btVector3 m_closestPointInB;+btScalar m_distance; //negative means penetration ! -		btStorageResult() : m_distance(btScalar(BT_LARGE_FLOAT))-		{+btStorageResult() : m_distance(btScalar(BT_LARGE_FLOAT))+{ -		}-		virtual ~btStorageResult() {};+}+virtual ~btStorageResult() {}; -		virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)-		{-			if (depth < m_distance)-			{-				m_normalOnSurfaceB = normalOnBInWorld;-				m_closestPointInB = pointInWorld;-				m_distance = depth;-			}-		}+virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)+{+if (depth < m_distance)+{+m_normalOnSurfaceB = normalOnBInWorld;+m_closestPointInB = pointInWorld;+m_distance = depth;+}+} };  #endif //BT_DISCRETE_COLLISION_DETECTOR1_INTERFACE_H
bullet/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,22 +28,22 @@  ///GjkConvexCast performs a raycast on a convex object using support mapping. class btGjkConvexCast : public btConvexCast-{-	btSimplexSolverInterface*	m_simplexSolver;-	const btConvexShape*	m_convexA;-	const btConvexShape*	m_convexB;+{ private:+btSimplexSolverInterface* m_simplexSolver;+const btConvexShape* m_convexA;+const btConvexShape* m_convexB;  public: -	btGjkConvexCast(const btConvexShape*	convexA,const btConvexShape* convexB,btSimplexSolverInterface* simplexSolver);+btGjkConvexCast(const btConvexShape* convexA,const btConvexShape* convexB,btSimplexSolverInterface* simplexSolver); -	/// cast a convex against another convex object-	virtual bool	calcTimeOfImpact(-					const btTransform& fromA,-					const btTransform& toA,-					const btTransform& fromB,-					const btTransform& toB,-					CastResult& result);+/// cast a convex against another convex object+virtual bool calcTimeOfImpact(+const btTransform& fromA,+const btTransform& toA,+const btTransform& fromB,+const btTransform& toB,+CastResult& result);  }; 
bullet/BulletCollision/NarrowPhaseCollision/btGjkEpa2.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2008 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the@@ -28,45 +28,45 @@ #include "BulletCollision/CollisionShapes/btConvexShape.h"  ///btGjkEpaSolver contributed under zlib by Nathanael Presson-struct	btGjkEpaSolver2+struct btGjkEpaSolver2 {-struct	sResults-	{-	enum eStatus-		{-		Separated,		/* Shapes doesnt penetrate												*/ -		Penetrating,	/* Shapes are penetrating												*/ -		GJK_Failed,		/* GJK phase fail, no big issue, shapes are probably just 'touching'	*/ -		EPA_Failed		/* EPA phase fail, bigger problem, need to save parameters, and debug	*/ -		}		status;-	btVector3	witnesses[2];-	btVector3	normal;-	btScalar	distance;-	};+struct sResults+{+enum eStatus+{+Separated, /* Shapes doesnt penetrate */+Penetrating, /* Shapes are penetrating */+GJK_Failed, /* GJK phase fail, no big issue, shapes are probably just 'touching' */+EPA_Failed /* EPA phase fail, bigger problem, need to save parameters, and debug */+} status;+btVector3 witnesses[2];+btVector3 normal;+btScalar distance;+}; -static int		StackSizeRequirement();+static int StackSizeRequirement(); -static bool		Distance(	const btConvexShape* shape0,const btTransform& wtrs0,-							const btConvexShape* shape1,const btTransform& wtrs1,-							const btVector3& guess,-							sResults& results);+static bool Distance( const btConvexShape* shape0,const btTransform& wtrs0,+const btConvexShape* shape1,const btTransform& wtrs1,+const btVector3& guess,+sResults& results); -static bool		Penetration(const btConvexShape* shape0,const btTransform& wtrs0,-							const btConvexShape* shape1,const btTransform& wtrs1,-							const btVector3& guess,-							sResults& results,-							bool usemargins=true);+static bool Penetration(const btConvexShape* shape0,const btTransform& wtrs0,+const btConvexShape* shape1,const btTransform& wtrs1,+const btVector3& guess,+sResults& results,+bool usemargins=true); #ifndef __SPU__-static btScalar	SignedDistance(	const btVector3& position,-								btScalar margin,-								const btConvexShape* shape,-								const btTransform& wtrs,-								sResults& results);-							-static bool		SignedDistance(	const btConvexShape* shape0,const btTransform& wtrs0,-								const btConvexShape* shape1,const btTransform& wtrs1,-								const btVector3& guess,-								sResults& results);+static btScalar SignedDistance( const btVector3& position,+btScalar margin,+const btConvexShape* shape,+const btTransform& wtrs,+sResults& results);++static bool SignedDistance( const btConvexShape* shape0,const btTransform& wtrs0,+const btConvexShape* shape1,const btTransform& wtrs1,+const btVector3& guess,+sResults& results); #endif //__SPU__  };
bullet/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h view
@@ -1,13 +1,13 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ -EPA Copyright (c) Ricardo Padrela 2006 +EPA Copyright (c) Ricardo Padrela 2006  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,22 +22,22 @@ ///EpaPenetrationDepthSolver uses the Expanding Polytope Algorithm to ///calculate the penetration depth between two convex shapes. class btGjkEpaPenetrationDepthSolver : public btConvexPenetrationDepthSolver-{-	public :+{ private:+public : -		btGjkEpaPenetrationDepthSolver()-		{-		}+btGjkEpaPenetrationDepthSolver()+{+} -		bool			calcPenDepth( btSimplexSolverInterface& simplexSolver,-									  const btConvexShape* pConvexA, const btConvexShape* pConvexB,-									  const btTransform& transformA, const btTransform& transformB,-									  btVector3& v, btVector3& wWitnessOnA, btVector3& wWitnessOnB,-									  class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc );+bool calcPenDepth( btSimplexSolverInterface& simplexSolver,+const btConvexShape* pConvexA, const btConvexShape* pConvexB,+const btTransform& transformA, const btTransform& transformB,+btVector3& v, btVector3& wWitnessOnA, btVector3& wWitnessOnB,+class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc ); -	private :+private :  }; -#endif	// BT_GJP_EPA_PENETRATION_DEPTH_H+#endif // BT_GJP_EPA_PENETRATION_DEPTH_H 
bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,74 +28,74 @@  /// btGjkPairDetector uses GJK to implement the btDiscreteCollisionDetectorInterface class btGjkPairDetector : public btDiscreteCollisionDetectorInterface-{-	+{ private: -	btVector3	m_cachedSeparatingAxis;-	btConvexPenetrationDepthSolver*	m_penetrationDepthSolver;-	btSimplexSolverInterface* m_simplexSolver;-	const btConvexShape* m_minkowskiA;-	const btConvexShape* m_minkowskiB;-	int	m_shapeTypeA;-	int m_shapeTypeB;-	btScalar	m_marginA;-	btScalar	m_marginB; -	bool		m_ignoreMargin;-	btScalar	m_cachedSeparatingDistance;-	+btVector3 m_cachedSeparatingAxis;+btConvexPenetrationDepthSolver* m_penetrationDepthSolver;+btSimplexSolverInterface* m_simplexSolver;+const btConvexShape* m_minkowskiA;+const btConvexShape* m_minkowskiB;+int m_shapeTypeA;+int m_shapeTypeB;+btScalar m_marginA;+btScalar m_marginB; +bool m_ignoreMargin;+btScalar m_cachedSeparatingDistance;++ public: -	//some debugging to fix degeneracy problems-	int			m_lastUsedMethod;-	int			m_curIter;-	int			m_degenerateSimplex;-	int			m_catchDegeneracies;+//some debugging to fix degeneracy problems+int m_lastUsedMethod;+int m_curIter;+int m_degenerateSimplex;+int m_catchDegeneracies;  -	btGjkPairDetector(const btConvexShape* objectA,const btConvexShape* objectB,btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver*	penetrationDepthSolver);-	btGjkPairDetector(const btConvexShape* objectA,const btConvexShape* objectB,int shapeTypeA,int shapeTypeB,btScalar marginA, btScalar marginB, btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver*	penetrationDepthSolver);-	virtual ~btGjkPairDetector() {};+btGjkPairDetector(const btConvexShape* objectA,const btConvexShape* objectB,btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver* penetrationDepthSolver);+btGjkPairDetector(const btConvexShape* objectA,const btConvexShape* objectB,int shapeTypeA,int shapeTypeB,btScalar marginA, btScalar marginB, btSimplexSolverInterface* simplexSolver,btConvexPenetrationDepthSolver* penetrationDepthSolver);+virtual ~btGjkPairDetector() {}; -	virtual void	getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false);+virtual void getClosestPoints(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw,bool swapResults=false); -	void	getClosestPointsNonVirtual(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw);-	+void getClosestPointsNonVirtual(const ClosestPointInput& input,Result& output,class btIDebugDraw* debugDraw); -	void setMinkowskiA(btConvexShape* minkA)-	{-		m_minkowskiA = minkA;-	} -	void setMinkowskiB(btConvexShape* minkB)-	{-		m_minkowskiB = minkB;-	}-	void setCachedSeperatingAxis(const btVector3& seperatingAxis)-	{-		m_cachedSeparatingAxis = seperatingAxis;-	}+void setMinkowskiA(btConvexShape* minkA)+{+m_minkowskiA = minkA;+} -	const btVector3& getCachedSeparatingAxis() const-	{-		return m_cachedSeparatingAxis;-	}-	btScalar	getCachedSeparatingDistance() const-	{-		return m_cachedSeparatingDistance;-	}+void setMinkowskiB(btConvexShape* minkB)+{+m_minkowskiB = minkB;+}+void setCachedSeperatingAxis(const btVector3& seperatingAxis)+{+m_cachedSeparatingAxis = seperatingAxis;+} -	void	setPenetrationDepthSolver(btConvexPenetrationDepthSolver*	penetrationDepthSolver)-	{-		m_penetrationDepthSolver = penetrationDepthSolver;-	}+const btVector3& getCachedSeparatingAxis() const+{+return m_cachedSeparatingAxis;+}+btScalar getCachedSeparatingDistance() const+{+return m_cachedSeparatingDistance;+} -	///don't use setIgnoreMargin, it's for Bullet's internal use-	void	setIgnoreMargin(bool ignoreMargin)-	{-		m_ignoreMargin = ignoreMargin;-	}+void setPenetrationDepthSolver(btConvexPenetrationDepthSolver* penetrationDepthSolver)+{+m_penetrationDepthSolver = penetrationDepthSolver;+}++///don't use setIgnoreMargin, it's for Bullet's internal use+void setIgnoreMargin(bool ignoreMargin)+{+m_ignoreMargin = ignoreMargin;+}   };
bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,19 +20,19 @@ #include "LinearMath/btTransformUtil.h"  #ifdef PFX_USE_FREE_VECTORMATH-	#include "physics_effects/base_level/solver/pfx_constraint_row.h"+#include "physics_effects/base_level/solver/pfx_constraint_row.h" typedef sce::PhysicsEffects::PfxConstraintRow btConstraintRow; #else-	// Don't change following order of parameters-	ATTRIBUTE_ALIGNED16(struct) btConstraintRow {-		btScalar m_normal[3];-		btScalar m_rhs;-		btScalar m_jacDiagInv;-		btScalar m_lowerLimit;-		btScalar m_upperLimit;-		btScalar m_accumImpulse;-	};-	typedef btConstraintRow PfxConstraintRow;+// Don't change following order of parameters+ATTRIBUTE_ALIGNED16(struct) btConstraintRow {+btScalar m_normal[3];+btScalar m_rhs;+btScalar m_jacDiagInv;+btScalar m_lowerLimit;+btScalar m_upperLimit;+btScalar m_accumImpulse;+};+typedef btConstraintRow PfxConstraintRow; #endif //PFX_USE_FREE_VECTORMATH  @@ -40,119 +40,119 @@ /// ManifoldContactPoint collects and maintains persistent contactpoints. /// used to improve stability and performance of rigidbody dynamics response. class btManifoldPoint-	{-		public:-			btManifoldPoint()-				:m_userPersistentData(0),-				m_appliedImpulse(0.f),-				m_lateralFrictionInitialized(false),-				m_appliedImpulseLateral1(0.f),-				m_appliedImpulseLateral2(0.f),-				m_contactMotion1(0.f),-				m_contactMotion2(0.f),-				m_contactCFM1(0.f),-				m_contactCFM2(0.f),-				m_lifeTime(0)-			{-			}+{ private:+public:+btManifoldPoint()+:m_userPersistentData(0),+m_appliedImpulse(0.f),+m_lateralFrictionInitialized(false),+m_appliedImpulseLateral1(0.f),+m_appliedImpulseLateral2(0.f),+m_contactMotion1(0.f),+m_contactMotion2(0.f),+m_contactCFM1(0.f),+m_contactCFM2(0.f),+m_lifeTime(0)+{+} -			btManifoldPoint( const btVector3 &pointA, const btVector3 &pointB, -					const btVector3 &normal, -					btScalar distance ) :-					m_localPointA( pointA ), -					m_localPointB( pointB ), -					m_normalWorldOnB( normal ), -					m_distance1( distance ),-					m_combinedFriction(btScalar(0.)),-					m_combinedRestitution(btScalar(0.)),-					m_userPersistentData(0),-					m_appliedImpulse(0.f),-					m_lateralFrictionInitialized(false),-					m_appliedImpulseLateral1(0.f),-					m_appliedImpulseLateral2(0.f),-					m_contactMotion1(0.f),-					m_contactMotion2(0.f),-					m_contactCFM1(0.f),-					m_contactCFM2(0.f),-					m_lifeTime(0)-			{-				mConstraintRow[0].m_accumImpulse = 0.f;-				mConstraintRow[1].m_accumImpulse = 0.f;-				mConstraintRow[2].m_accumImpulse = 0.f;-			}+btManifoldPoint( const btVector3 &pointA, const btVector3 &pointB,+const btVector3 &normal,+btScalar distance ) :+m_localPointA( pointA ),+m_localPointB( pointB ),+m_normalWorldOnB( normal ),+m_distance1( distance ),+m_combinedFriction(btScalar(0.)),+m_combinedRestitution(btScalar(0.)),+m_userPersistentData(0),+m_appliedImpulse(0.f),+m_lateralFrictionInitialized(false),+m_appliedImpulseLateral1(0.f),+m_appliedImpulseLateral2(0.f),+m_contactMotion1(0.f),+m_contactMotion2(0.f),+m_contactCFM1(0.f),+m_contactCFM2(0.f),+m_lifeTime(0)+{+mConstraintRow[0].m_accumImpulse = 0.f;+mConstraintRow[1].m_accumImpulse = 0.f;+mConstraintRow[2].m_accumImpulse = 0.f;+} -			 -			btVector3 m_localPointA;			-			btVector3 m_localPointB;			-			btVector3	m_positionWorldOnB;-			///m_positionWorldOnA is redundant information, see getPositionWorldOnA(), but for clarity-			btVector3	m_positionWorldOnA;-			btVector3 m_normalWorldOnB;-		-			btScalar	m_distance1;-			btScalar	m_combinedFriction;-			btScalar	m_combinedRestitution; -         //BP mod, store contact triangles.-         int	   m_partId0;-         int      m_partId1;-         int      m_index0;-         int      m_index1;-				-			mutable void*	m_userPersistentData;-			btScalar		m_appliedImpulse;+btVector3 m_localPointA;+btVector3 m_localPointB;+btVector3 m_positionWorldOnB;+///m_positionWorldOnA is redundant information, see getPositionWorldOnA(), but for clarity+btVector3 m_positionWorldOnA;+btVector3 m_normalWorldOnB; -			bool			m_lateralFrictionInitialized;-			btScalar		m_appliedImpulseLateral1;-			btScalar		m_appliedImpulseLateral2;-			btScalar		m_contactMotion1;-			btScalar		m_contactMotion2;-			btScalar		m_contactCFM1;-			btScalar		m_contactCFM2;+btScalar m_distance1;+btScalar m_combinedFriction;+btScalar m_combinedRestitution; -			int				m_lifeTime;//lifetime of the contactpoint in frames-			-			btVector3		m_lateralFrictionDir1;-			btVector3		m_lateralFrictionDir2;+//BP mod, store contact triangles.+int m_partId0;+int m_partId1;+int m_index0;+int m_index1; +mutable void* m_userPersistentData;+btScalar m_appliedImpulse; +bool m_lateralFrictionInitialized;+btScalar m_appliedImpulseLateral1;+btScalar m_appliedImpulseLateral2;+btScalar m_contactMotion1;+btScalar m_contactMotion2;+btScalar m_contactCFM1;+btScalar m_contactCFM2; -			btConstraintRow mConstraintRow[3];+int m_lifeTime;//lifetime of the contactpoint in frames +btVector3 m_lateralFrictionDir1;+btVector3 m_lateralFrictionDir2; -			btScalar getDistance() const-			{-				return m_distance1;-			}-			int	getLifeTime() const-			{-				return m_lifeTime;-			} -			const btVector3& getPositionWorldOnA() const {-				return m_positionWorldOnA;-//				return m_positionWorldOnB + m_normalWorldOnB * m_distance1;-			} -			const btVector3& getPositionWorldOnB() const-			{-				return m_positionWorldOnB;-			}+btConstraintRow mConstraintRow[3]; -			void	setDistance(btScalar dist)-			{-				m_distance1 = dist;-			}-			-			///this returns the most recent applied impulse, to satisfy contact constraints by the constraint solver-			btScalar	getAppliedImpulse() const-			{-				return m_appliedImpulse;-			} -			+btScalar getDistance() const+{+return m_distance1;+}+int getLifeTime() const+{+return m_lifeTime;+} -	};+const btVector3& getPositionWorldOnA() const {+return m_positionWorldOnA;+// return m_positionWorldOnB + m_normalWorldOnB * m_distance1;+}++const btVector3& getPositionWorldOnB() const+{+return m_positionWorldOnB;+}++void setDistance(btScalar dist)+{+m_distance1 = dist;+}++///this returns the most recent applied impulse, to satisfy contact constraints by the constraint solver+btScalar getAppliedImpulse() const+{+return m_appliedImpulse;+}++++};  #endif //BT_MANIFOLD_CONTACT_POINT_H
bullet/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,19 +21,19 @@ ///MinkowskiPenetrationDepthSolver implements bruteforce penetration depth estimation. ///Implementation is based on sampling the depth using support mapping, and using GJK step to get the witness points. class btMinkowskiPenetrationDepthSolver : public btConvexPenetrationDepthSolver-{+{ private: protected: -	static btVector3*	getPenetrationDirections();+static btVector3* getPenetrationDirections();  public: -	virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,-	const btConvexShape* convexA,const btConvexShape* convexB,-				const btTransform& transA,const btTransform& transB,-			btVector3& v, btVector3& pa, btVector3& pb,-			class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc-			);+virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,+const btConvexShape* convexA,const btConvexShape* convexB,+const btTransform& transA,const btTransform& transB,+btVector3& v, btVector3& pa, btVector3& pb,+class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc+); };  #endif //BT_MINKOWSKI_PENETRATION_DEPTH_SOLVER_H
bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,14 +29,14 @@  typedef bool (*ContactDestroyedCallback)(void* userPersistentData); typedef bool (*ContactProcessedCallback)(btManifoldPoint& cp,void* body0,void* body1);-extern ContactDestroyedCallback	gContactDestroyedCallback;+extern ContactDestroyedCallback gContactDestroyedCallback; extern ContactProcessedCallback gContactProcessedCallback;  //the enum starts at 1024 to avoid type conflicts with btTypedConstraint enum btContactManifoldTypes {-	MIN_CONTACT_MANIFOLD_TYPE = 1024,-	BT_PERSISTENT_MANIFOLD_TYPE+MIN_CONTACT_MANIFOLD_TYPE = 1024,+BT_PERSISTENT_MANIFOLD_TYPE };  #define MANIFOLD_CACHE_SIZE 4@@ -54,171 +54,167 @@ //ATTRIBUTE_ALIGNED16( class) btPersistentManifold : public btTypedObject { -	btManifoldPoint m_pointCache[MANIFOLD_CACHE_SIZE];+btManifoldPoint m_pointCache[MANIFOLD_CACHE_SIZE]; -	/// this two body pointers can point to the physics rigidbody class.-	/// void* will allow any rigidbody class-	void* m_body0;-	void* m_body1;+/// this two body pointers can point to the physics rigidbody class.+/// void* will allow any rigidbody class+void* m_body0;+void* m_body1; -	int	m_cachedPoints;+int m_cachedPoints; -	btScalar	m_contactBreakingThreshold;-	btScalar	m_contactProcessingThreshold;+btScalar m_contactBreakingThreshold;+btScalar m_contactProcessingThreshold; -	-	/// sort cached points so most isolated points come first-	int	sortCachedPoints(const btManifoldPoint& pt); -	int		findContactPoint(const btManifoldPoint* unUsed, int numUnused,const btManifoldPoint& pt);+/// sort cached points so most isolated points come first+int sortCachedPoints(const btManifoldPoint& pt); +int findContactPoint(const btManifoldPoint* unUsed, int numUnused,const btManifoldPoint& pt);+ public: -	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	int	m_companionIdA;-	int	m_companionIdB;+int m_companionIdA;+int m_companionIdB; -	int m_index1a;+int m_index1a; -	btPersistentManifold();+btPersistentManifold(); -	btPersistentManifold(void* body0,void* body1,int , btScalar contactBreakingThreshold,btScalar contactProcessingThreshold)-		: btTypedObject(BT_PERSISTENT_MANIFOLD_TYPE),-	m_body0(body0),m_body1(body1),m_cachedPoints(0),-		m_contactBreakingThreshold(contactBreakingThreshold),-		m_contactProcessingThreshold(contactProcessingThreshold)-	{-	}+btPersistentManifold(void* body0,void* body1,int , btScalar contactBreakingThreshold,btScalar contactProcessingThreshold)+: btTypedObject(BT_PERSISTENT_MANIFOLD_TYPE),+m_body0(body0),m_body1(body1),m_cachedPoints(0),+m_contactBreakingThreshold(contactBreakingThreshold),+m_contactProcessingThreshold(contactProcessingThreshold)+{+} -	SIMD_FORCE_INLINE void* getBody0() { return m_body0;}-	SIMD_FORCE_INLINE void* getBody1() { return m_body1;}+SIMD_FORCE_INLINE void* getBody0() { return m_body0;}+SIMD_FORCE_INLINE void* getBody1() { return m_body1;} -	SIMD_FORCE_INLINE const void* getBody0() const { return m_body0;}-	SIMD_FORCE_INLINE const void* getBody1() const { return m_body1;}+SIMD_FORCE_INLINE const void* getBody0() const { return m_body0;}+SIMD_FORCE_INLINE const void* getBody1() const { return m_body1;} -	void	setBodies(void* body0,void* body1)-	{-		m_body0 = body0;-		m_body1 = body1;-	}+void setBodies(void* body0,void* body1)+{+m_body0 = body0;+m_body1 = body1;+} -	void clearUserCache(btManifoldPoint& pt);+void clearUserCache(btManifoldPoint& pt);  #ifdef DEBUG_PERSISTENCY-	void	DebugPersistency();+void DebugPersistency(); #endif //-	-	SIMD_FORCE_INLINE int	getNumContacts() const { return m_cachedPoints;} -	SIMD_FORCE_INLINE const btManifoldPoint& getContactPoint(int index) const-	{-		btAssert(index < m_cachedPoints);-		return m_pointCache[index];-	}+SIMD_FORCE_INLINE int getNumContacts() const { return m_cachedPoints;} -	SIMD_FORCE_INLINE btManifoldPoint& getContactPoint(int index)-	{-		btAssert(index < m_cachedPoints);-		return m_pointCache[index];-	}+SIMD_FORCE_INLINE const btManifoldPoint& getContactPoint(int index) const+{+btAssert(index < m_cachedPoints);+return m_pointCache[index];+} -	///@todo: get this margin from the current physics / collision environment-	btScalar	getContactBreakingThreshold() const;+SIMD_FORCE_INLINE btManifoldPoint& getContactPoint(int index)+{+btAssert(index < m_cachedPoints);+return m_pointCache[index];+} -	btScalar	getContactProcessingThreshold() const-	{-		return m_contactProcessingThreshold;-	}-	-	int getCacheEntry(const btManifoldPoint& newPoint) const;+///@todo: get this margin from the current physics / collision environment+btScalar getContactBreakingThreshold() const; -	int addManifoldPoint( const btManifoldPoint& newPoint);+btScalar getContactProcessingThreshold() const+{+return m_contactProcessingThreshold;+} -	void removeContactPoint (int index)-	{-		clearUserCache(m_pointCache[index]);+int getCacheEntry(const btManifoldPoint& newPoint) const; -		int lastUsedIndex = getNumContacts() - 1;-//		m_pointCache[index] = m_pointCache[lastUsedIndex];-		if(index != lastUsedIndex) -		{-			m_pointCache[index] = m_pointCache[lastUsedIndex]; -			//get rid of duplicated userPersistentData pointer-			m_pointCache[lastUsedIndex].m_userPersistentData = 0;-			m_pointCache[lastUsedIndex].mConstraintRow[0].m_accumImpulse = 0.f;-			m_pointCache[lastUsedIndex].mConstraintRow[1].m_accumImpulse = 0.f;-			m_pointCache[lastUsedIndex].mConstraintRow[2].m_accumImpulse = 0.f;+int addManifoldPoint( const btManifoldPoint& newPoint); -			m_pointCache[lastUsedIndex].m_appliedImpulse = 0.f;-			m_pointCache[lastUsedIndex].m_lateralFrictionInitialized = false;-			m_pointCache[lastUsedIndex].m_appliedImpulseLateral1 = 0.f;-			m_pointCache[lastUsedIndex].m_appliedImpulseLateral2 = 0.f;-			m_pointCache[lastUsedIndex].m_lifeTime = 0;-		}+void removeContactPoint (int index)+{+clearUserCache(m_pointCache[index]); -		btAssert(m_pointCache[lastUsedIndex].m_userPersistentData==0);-		m_cachedPoints--;-	}-	void replaceContactPoint(const btManifoldPoint& newPoint,int insertIndex)-	{-		btAssert(validContactDistance(newPoint));+int lastUsedIndex = getNumContacts() - 1;+// m_pointCache[index] = m_pointCache[lastUsedIndex];+if(index != lastUsedIndex)+{+m_pointCache[index] = m_pointCache[lastUsedIndex];+//get rid of duplicated userPersistentData pointer+m_pointCache[lastUsedIndex].m_userPersistentData = 0;+m_pointCache[lastUsedIndex].mConstraintRow[0].m_accumImpulse = 0.f;+m_pointCache[lastUsedIndex].mConstraintRow[1].m_accumImpulse = 0.f;+m_pointCache[lastUsedIndex].mConstraintRow[2].m_accumImpulse = 0.f; +m_pointCache[lastUsedIndex].m_appliedImpulse = 0.f;+m_pointCache[lastUsedIndex].m_lateralFrictionInitialized = false;+m_pointCache[lastUsedIndex].m_appliedImpulseLateral1 = 0.f;+m_pointCache[lastUsedIndex].m_appliedImpulseLateral2 = 0.f;+m_pointCache[lastUsedIndex].m_lifeTime = 0;+}++btAssert(m_pointCache[lastUsedIndex].m_userPersistentData==0);+m_cachedPoints--;+}+void replaceContactPoint(const btManifoldPoint& newPoint,int insertIndex)+{+btAssert(validContactDistance(newPoint));+ #define MAINTAIN_PERSISTENCY 1 #ifdef MAINTAIN_PERSISTENCY-		int	lifeTime = m_pointCache[insertIndex].getLifeTime();-		btScalar	appliedImpulse = m_pointCache[insertIndex].mConstraintRow[0].m_accumImpulse;-		btScalar	appliedLateralImpulse1 = m_pointCache[insertIndex].mConstraintRow[1].m_accumImpulse;-		btScalar	appliedLateralImpulse2 = m_pointCache[insertIndex].mConstraintRow[2].m_accumImpulse;-//		bool isLateralFrictionInitialized = m_pointCache[insertIndex].m_lateralFrictionInitialized;-		-		-			-		btAssert(lifeTime>=0);-		void* cache = m_pointCache[insertIndex].m_userPersistentData;-		-		m_pointCache[insertIndex] = newPoint;+int lifeTime = m_pointCache[insertIndex].getLifeTime();+btScalar appliedImpulse = m_pointCache[insertIndex].mConstraintRow[0].m_accumImpulse;+btScalar appliedLateralImpulse1 = m_pointCache[insertIndex].mConstraintRow[1].m_accumImpulse;+btScalar appliedLateralImpulse2 = m_pointCache[insertIndex].mConstraintRow[2].m_accumImpulse;+// bool isLateralFrictionInitialized = m_pointCache[insertIndex].m_lateralFrictionInitialized; -		m_pointCache[insertIndex].m_userPersistentData = cache;-		m_pointCache[insertIndex].m_appliedImpulse = appliedImpulse;-		m_pointCache[insertIndex].m_appliedImpulseLateral1 = appliedLateralImpulse1;-		m_pointCache[insertIndex].m_appliedImpulseLateral2 = appliedLateralImpulse2;-		-		m_pointCache[insertIndex].mConstraintRow[0].m_accumImpulse =  appliedImpulse;-		m_pointCache[insertIndex].mConstraintRow[1].m_accumImpulse = appliedLateralImpulse1;-		m_pointCache[insertIndex].mConstraintRow[2].m_accumImpulse = appliedLateralImpulse2;  -		m_pointCache[insertIndex].m_lifeTime = lifeTime;+btAssert(lifeTime>=0);+void* cache = m_pointCache[insertIndex].m_userPersistentData;++m_pointCache[insertIndex] = newPoint;++m_pointCache[insertIndex].m_userPersistentData = cache;+m_pointCache[insertIndex].m_appliedImpulse = appliedImpulse;+m_pointCache[insertIndex].m_appliedImpulseLateral1 = appliedLateralImpulse1;+m_pointCache[insertIndex].m_appliedImpulseLateral2 = appliedLateralImpulse2;++m_pointCache[insertIndex].mConstraintRow[0].m_accumImpulse = appliedImpulse;+m_pointCache[insertIndex].mConstraintRow[1].m_accumImpulse = appliedLateralImpulse1;+m_pointCache[insertIndex].mConstraintRow[2].m_accumImpulse = appliedLateralImpulse2;+++m_pointCache[insertIndex].m_lifeTime = lifeTime; #else-		clearUserCache(m_pointCache[insertIndex]);-		m_pointCache[insertIndex] = newPoint;-	+clearUserCache(m_pointCache[insertIndex]);+m_pointCache[insertIndex] = newPoint;+ #endif-	}+} -	bool validContactDistance(const btManifoldPoint& pt) const-	{-		if (pt.m_lifeTime >1)-		{-			return pt.m_distance1 <= getContactBreakingThreshold();-		}-		return pt.m_distance1 <= getContactProcessingThreshold();-	-	}-	/// calculated new worldspace coordinates and depth, and reject points that exceed the collision margin-	void	refreshContactPoints(  const btTransform& trA,const btTransform& trB); -	-	SIMD_FORCE_INLINE	void	clearManifold()-	{-		int i;-		for (i=0;i<m_cachedPoints;i++)-		{-			clearUserCache(m_pointCache[i]);-		}-		m_cachedPoints = 0;-	}+bool validContactDistance(const btManifoldPoint& pt) const+{+return pt.m_distance1 <= getContactBreakingThreshold();+}+/// calculated new worldspace coordinates and depth, and reject points that exceed the collision margin+void refreshContactPoints( const btTransform& trA,const btTransform& trB);+++SIMD_FORCE_INLINE void clearManifold()+{+int i;+for (i=0;i<m_cachedPoints;i++)+{+clearUserCache(m_pointCache[i]);+}+m_cachedPoints = 0;+}   
bullet/BulletCollision/NarrowPhaseCollision/btPointCollector.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,42 +22,42 @@  struct btPointCollector : public btDiscreteCollisionDetectorInterface::Result {-	-	-	btVector3 m_normalOnBInWorld;-	btVector3 m_pointInWorld;-	btScalar	m_distance;//negative means penetration -	bool	m_hasResult; -	btPointCollector () -		: m_distance(btScalar(BT_LARGE_FLOAT)),m_hasResult(false)-	{-	}+btVector3 m_normalOnBInWorld;+btVector3 m_pointInWorld;+btScalar m_distance;//negative means penetration -	virtual void setShapeIdentifiersA(int partId0,int index0)-	{-		(void)partId0;-		(void)index0;-			-	}-	virtual void setShapeIdentifiersB(int partId1,int index1)-	{-		(void)partId1;-		(void)index1;-	}+bool m_hasResult; -	virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)-	{-		if (depth< m_distance)-		{-			m_hasResult = true;-			m_normalOnBInWorld = normalOnBInWorld;-			m_pointInWorld = pointInWorld;-			//negative means penetration-			m_distance = depth;-		}-	}+btPointCollector ()+: m_distance(btScalar(BT_LARGE_FLOAT)),m_hasResult(false)+{+}++virtual void setShapeIdentifiersA(int partId0,int index0)+{+(void)partId0;+(void)index0;++}+virtual void setShapeIdentifiersB(int partId1,int index1)+{+(void)partId1;+(void)index1;+}++virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth)+{+if (depth< m_distance)+{+m_hasResult = true;+m_normalOnBInWorld = normalOnBInWorld;+m_pointInWorld = pointInWorld;+//negative means penetration+m_distance = depth;+}+} };  #endif //BT_POINT_COLLECTOR_H
bullet/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.h view
@@ -1,46 +1,46 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2011 Advanced Micro Devices, Inc.  http://bulletphysics.org
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-///This file was written by Erwin Coumans
-
-
-#ifndef BT_POLYHEDRAL_CONTACT_CLIPPING_H
-#define BT_POLYHEDRAL_CONTACT_CLIPPING_H
-
-
-#include "LinearMath/btAlignedObjectArray.h"
-#include "LinearMath/btTransform.h"
-#include "btDiscreteCollisionDetectorInterface.h"
-
-class btConvexPolyhedron;
-
-typedef btAlignedObjectArray<btVector3> btVertexArray;
-
-// Clips a face to the back of a plane
-struct btPolyhedralContactClipping
-{
-	static void clipHullAgainstHull(const btVector3& separatingNormal, const btConvexPolyhedron& hullA, const btConvexPolyhedron& hullB, const btTransform& transA,const btTransform& transB, const btScalar minDist, btScalar maxDist, btDiscreteCollisionDetectorInterface::Result& resultOut);
-	static void	clipFaceAgainstHull(const btVector3& separatingNormal, const btConvexPolyhedron& hullA,  const btTransform& transA, btVertexArray& worldVertsB1, const btScalar minDist, btScalar maxDist,btDiscreteCollisionDetectorInterface::Result& resultOut);
-
-	static bool findSeparatingAxis(	const btConvexPolyhedron& hullA, const btConvexPolyhedron& hullB, const btTransform& transA,const btTransform& transB, btVector3& sep);
-
-	///the clipFace method is used internally
-	static void clipFace(const btVertexArray& pVtxIn, btVertexArray& ppVtxOut, const btVector3& planeNormalWS,btScalar planeEqWS);
-
-};
-
-#endif // BT_POLYHEDRAL_CONTACT_CLIPPING_H
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2011 Advanced Micro Devices, Inc. http://bulletphysics.org++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++///This file was written by Erwin Coumans+++#ifndef BT_POLYHEDRAL_CONTACT_CLIPPING_H+#define BT_POLYHEDRAL_CONTACT_CLIPPING_H+++#include "LinearMath/btAlignedObjectArray.h"+#include "LinearMath/btTransform.h"+#include "btDiscreteCollisionDetectorInterface.h"++class btConvexPolyhedron;++typedef btAlignedObjectArray<btVector3> btVertexArray;++// Clips a face to the back of a plane+struct btPolyhedralContactClipping+{+static void clipHullAgainstHull(const btVector3& separatingNormal, const btConvexPolyhedron& hullA, const btConvexPolyhedron& hullB, const btTransform& transA,const btTransform& transB, const btScalar minDist, btScalar maxDist, btDiscreteCollisionDetectorInterface::Result& resultOut);+static void clipFaceAgainstHull(const btVector3& separatingNormal, const btConvexPolyhedron& hullA, const btTransform& transA, btVertexArray& worldVertsB1, const btScalar minDist, btScalar maxDist,btDiscreteCollisionDetectorInterface::Result& resultOut);++static bool findSeparatingAxis( const btConvexPolyhedron& hullA, const btConvexPolyhedron& hullB, const btTransform& transA,const btTransform& transB, btVector3& sep);++///the clipFace method is used internally+static void clipFace(const btVertexArray& pVtxIn, btVertexArray& ppVtxOut, const btVector3& planeNormalWS,btScalar planeEqWS);++};++#endif // BT_POLYHEDRAL_CONTACT_CLIPPING_H+
bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,51 +21,51 @@ struct btBroadphaseProxy; class btConvexShape; -class  btTriangleRaycastCallback: public btTriangleCallback-{+class btTriangleRaycastCallback: public btTriangleCallback+{ private: public: -	//input-	btVector3 m_from;-	btVector3 m_to;+//input+btVector3 m_from;+btVector3 m_to; -   //@BP Mod - allow backface filtering and unflipped normals-   enum EFlags-   {-      kF_None                 = 0,-      kF_FilterBackfaces      = 1 << 0,-      kF_KeepUnflippedNormal  = 1 << 1,   // Prevents returned face normal getting flipped when a ray hits a back-facing triangle+//@BP Mod - allow backface filtering and unflipped normals+enum EFlags+{+kF_None = 0,+kF_FilterBackfaces = 1 << 0,+kF_KeepUnflippedNormal = 1 << 1, // Prevents returned face normal getting flipped when a ray hits a back-facing triangle -      kF_Terminator        = 0xFFFFFFFF-   };-   unsigned int m_flags;+kF_Terminator = 0xFFFFFFFF+};+unsigned int m_flags; -	btScalar	m_hitFraction;+btScalar m_hitFraction; -	btTriangleRaycastCallback(const btVector3& from,const btVector3& to, unsigned int flags=0);-	-	virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);+btTriangleRaycastCallback(const btVector3& from,const btVector3& to, unsigned int flags=0); -	virtual btScalar reportHit(const btVector3& hitNormalLocal, btScalar hitFraction, int partId, int triangleIndex ) = 0;-	+virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);++virtual btScalar reportHit(const btVector3& hitNormalLocal, btScalar hitFraction, int partId, int triangleIndex ) = 0;+ };  class btTriangleConvexcastCallback : public btTriangleCallback-{+{ private: public:-	const btConvexShape* m_convexShape;-	btTransform m_convexShapeFrom;-	btTransform m_convexShapeTo;-	btTransform m_triangleToWorld;-	btScalar m_hitFraction;-	btScalar m_triangleCollisionMargin;-	btScalar m_allowedPenetration;+const btConvexShape* m_convexShape;+btTransform m_convexShapeFrom;+btTransform m_convexShapeTo;+btTransform m_triangleToWorld;+btScalar m_hitFraction;+btScalar m_triangleCollisionMargin;+btScalar m_allowedPenetration; -	btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld, const btScalar triangleCollisionMargin);+btTriangleConvexcastCallback (const btConvexShape* convexShape, const btTransform& convexShapeFrom, const btTransform& convexShapeTo, const btTransform& triangleToWorld, const btScalar triangleCollisionMargin); -	virtual void processTriangle (btVector3* triangle, int partId, int triangleIndex);+virtual void processTriangle (btVector3* triangle, int partId, int triangleIndex); -	virtual btScalar reportHit (const btVector3& hitNormalLocal, const btVector3& hitPointLocal, btScalar hitFraction, int partId, int triangleIndex) = 0;+virtual btScalar reportHit (const btVector3& hitNormalLocal, const btVector3& hitPointLocal, btScalar hitFraction, int partId, int triangleIndex) = 0; };  #endif //BT_RAYCAST_TRI_CALLBACK_H
bullet/BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,31 +30,31 @@ /// Used by GJK or Linear Casting. Can be implemented by the Johnson-algorithm or alternative approaches based on /// voronoi regions or barycentric coordinates class btSimplexSolverInterface-{-	public:-		virtual ~btSimplexSolverInterface() {};+{ private:+public:+virtual ~btSimplexSolverInterface() {}; -	virtual void reset() = 0;+virtual void reset() = 0; -	virtual void addVertex(const btVector3& w, const btVector3& p, const btVector3& q) = 0;-	-	virtual bool closest(btVector3& v) = 0;+virtual void addVertex(const btVector3& w, const btVector3& p, const btVector3& q) = 0; -	virtual btScalar maxVertex() = 0;+virtual bool closest(btVector3& v) = 0; -	virtual bool fullSimplex() const = 0;+virtual btScalar maxVertex() = 0; -	virtual int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const = 0;+virtual bool fullSimplex() const = 0; -	virtual bool inSimplex(const btVector3& w) = 0;-	-	virtual void backup_closest(btVector3& v) = 0;+virtual int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const = 0; -	virtual bool emptySimplex() const = 0;+virtual bool inSimplex(const btVector3& w) = 0; -	virtual void compute_points(btVector3& p1, btVector3& p2) = 0;+virtual void backup_closest(btVector3& v) = 0; -	virtual int numVertices() const =0;+virtual bool emptySimplex() const = 0;++virtual void compute_points(btVector3& p1, btVector3& p2) = 0;++virtual int numVertices() const =0;   };
bullet/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,24 +26,24 @@ /// GJK based Ray Cast, optimized version /// Objects should not start in overlap, otherwise results are not defined. class btSubsimplexConvexCast : public btConvexCast-{-	btSimplexSolverInterface* m_simplexSolver;-	const btConvexShape*	m_convexA;-	const btConvexShape*	m_convexB;+{ private:+btSimplexSolverInterface* m_simplexSolver;+const btConvexShape* m_convexA;+const btConvexShape* m_convexB;  public: -	btSubsimplexConvexCast (const btConvexShape*	shapeA,const btConvexShape*	shapeB,btSimplexSolverInterface* simplexSolver);+btSubsimplexConvexCast (const btConvexShape* shapeA,const btConvexShape* shapeB,btSimplexSolverInterface* simplexSolver); -	//virtual ~btSubsimplexConvexCast();-	///SimsimplexConvexCast calculateTimeOfImpact calculates the time of impact+normal for the linear cast (sweep) between two moving objects.-	///Precondition is that objects should not penetration/overlap at the start from the interval. Overlap can be tested using btGjkPairDetector.-	virtual bool	calcTimeOfImpact(-			const btTransform& fromA,-			const btTransform& toA,-			const btTransform& fromB,-			const btTransform& toB,-			CastResult& result);+//virtual ~btSubsimplexConvexCast();+///SimsimplexConvexCast calculateTimeOfImpact calculates the time of impact+normal for the linear cast (sweep) between two moving objects.+///Precondition is that objects should not penetration/overlap at the start from the interval. Overlap can be tested using btGjkPairDetector.+virtual bool calcTimeOfImpact(+const btTransform& fromA,+const btTransform& toA,+const btTransform& fromB,+const btTransform& toB,+CastResult& result);  }; 
bullet/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,62 +30,62 @@   struct btUsageBitfield{-	btUsageBitfield()-	{-		reset();-	}+btUsageBitfield()+{+reset();+} -	void reset()-	{-		usedVertexA = false;-		usedVertexB = false;-		usedVertexC = false;-		usedVertexD = false;-	}-	unsigned short usedVertexA	: 1;-	unsigned short usedVertexB	: 1;-	unsigned short usedVertexC	: 1;-	unsigned short usedVertexD	: 1;-	unsigned short unused1		: 1;-	unsigned short unused2		: 1;-	unsigned short unused3		: 1;-	unsigned short unused4		: 1;+void reset()+{+usedVertexA = false;+usedVertexB = false;+usedVertexC = false;+usedVertexD = false;+}+unsigned short usedVertexA : 1;+unsigned short usedVertexB : 1;+unsigned short usedVertexC : 1;+unsigned short usedVertexD : 1;+unsigned short unused1 : 1;+unsigned short unused2 : 1;+unsigned short unused3 : 1;+unsigned short unused4 : 1; };  -struct	btSubSimplexClosestResult+struct btSubSimplexClosestResult {-	btVector3	m_closestPointOnSimplex;-	//MASK for m_usedVertices-	//stores the simplex vertex-usage, using the MASK, -	// if m_usedVertices & MASK then the related vertex is used-	btUsageBitfield	m_usedVertices;-	btScalar	m_barycentricCoords[4];-	bool m_degenerate;+btVector3 m_closestPointOnSimplex;+//MASK for m_usedVertices+//stores the simplex vertex-usage, using the MASK,+// if m_usedVertices & MASK then the related vertex is used+btUsageBitfield m_usedVertices;+btScalar m_barycentricCoords[4];+bool m_degenerate; -	void	reset()-	{-		m_degenerate = false;-		setBarycentricCoordinates();-		m_usedVertices.reset();-	}-	bool	isValid()-	{-		bool valid = (m_barycentricCoords[0] >= btScalar(0.)) &&-			(m_barycentricCoords[1] >= btScalar(0.)) &&-			(m_barycentricCoords[2] >= btScalar(0.)) &&-			(m_barycentricCoords[3] >= btScalar(0.));+void reset()+{+m_degenerate = false;+setBarycentricCoordinates();+m_usedVertices.reset();+}+bool isValid()+{+bool valid = (m_barycentricCoords[0] >= btScalar(0.)) &&+(m_barycentricCoords[1] >= btScalar(0.)) &&+(m_barycentricCoords[2] >= btScalar(0.)) &&+(m_barycentricCoords[3] >= btScalar(0.));  -		return valid;-	}-	void	setBarycentricCoordinates(btScalar a=btScalar(0.),btScalar b=btScalar(0.),btScalar c=btScalar(0.),btScalar d=btScalar(0.))-	{-		m_barycentricCoords[0] = a;-		m_barycentricCoords[1] = b;-		m_barycentricCoords[2] = c;-		m_barycentricCoords[3] = d;-	}+return valid;+}+void setBarycentricCoordinates(btScalar a=btScalar(0.),btScalar b=btScalar(0.),btScalar c=btScalar(0.),btScalar d=btScalar(0.))+{+m_barycentricCoords[0] = a;+m_barycentricCoords[1] = b;+m_barycentricCoords[2] = c;+m_barycentricCoords[3] = d;+}  }; @@ -99,78 +99,78 @@ { public: -	int	m_numVertices;+int m_numVertices; -	btVector3	m_simplexVectorW[VORONOI_SIMPLEX_MAX_VERTS];-	btVector3	m_simplexPointsP[VORONOI_SIMPLEX_MAX_VERTS];-	btVector3	m_simplexPointsQ[VORONOI_SIMPLEX_MAX_VERTS];+btVector3 m_simplexVectorW[VORONOI_SIMPLEX_MAX_VERTS];+btVector3 m_simplexPointsP[VORONOI_SIMPLEX_MAX_VERTS];+btVector3 m_simplexPointsQ[VORONOI_SIMPLEX_MAX_VERTS]; -	 -	btVector3	m_cachedP1;-	btVector3	m_cachedP2;-	btVector3	m_cachedV;-	btVector3	m_lastW;-	-	btScalar	m_equalVertexThreshold;-	bool		m_cachedValidClosest; +btVector3 m_cachedP1;+btVector3 m_cachedP2;+btVector3 m_cachedV;+btVector3 m_lastW; -	btSubSimplexClosestResult m_cachedBC;+btScalar m_equalVertexThreshold;+bool m_cachedValidClosest; -	bool	m_needsUpdate;-	-	void	removeVertex(int index);-	void	reduceVertices (const btUsageBitfield& usedVerts);-	bool	updateClosestVectorAndPoints(); -	bool	closestPtPointTetrahedron(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& d, btSubSimplexClosestResult& finalResult);-	int		pointOutsideOfPlane(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& d);-	bool	closestPtPointTriangle(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c,btSubSimplexClosestResult& result);+btSubSimplexClosestResult m_cachedBC; +bool m_needsUpdate;++void removeVertex(int index);+void reduceVertices (const btUsageBitfield& usedVerts);+bool updateClosestVectorAndPoints();++bool closestPtPointTetrahedron(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& d, btSubSimplexClosestResult& finalResult);+int pointOutsideOfPlane(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& d);+bool closestPtPointTriangle(const btVector3& p, const btVector3& a, const btVector3& b, const btVector3& c,btSubSimplexClosestResult& result);+ public: -	btVoronoiSimplexSolver()-		:  m_equalVertexThreshold(VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD)-	{-	}-	 void reset();+btVoronoiSimplexSolver()+: m_equalVertexThreshold(VORONOI_DEFAULT_EQUAL_VERTEX_THRESHOLD)+{+}+void reset(); -	 void addVertex(const btVector3& w, const btVector3& p, const btVector3& q);+void addVertex(const btVector3& w, const btVector3& p, const btVector3& q); -	 void	setEqualVertexThreshold(btScalar threshold)-	 {-		 m_equalVertexThreshold = threshold;-	 }+void setEqualVertexThreshold(btScalar threshold)+{+m_equalVertexThreshold = threshold;+} -	 btScalar	getEqualVertexThreshold() const-	 {-		 return m_equalVertexThreshold;-	 }+btScalar getEqualVertexThreshold() const+{+return m_equalVertexThreshold;+} -	 bool closest(btVector3& v);+bool closest(btVector3& v); -	 btScalar maxVertex();+btScalar maxVertex(); -	 bool fullSimplex() const-	 {-		 return (m_numVertices == 4);-	 }+bool fullSimplex() const+{+return (m_numVertices == 4);+} -	 int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const;+int getSimplex(btVector3 *pBuf, btVector3 *qBuf, btVector3 *yBuf) const; -	 bool inSimplex(const btVector3& w);-	-	 void backup_closest(btVector3& v) ;+bool inSimplex(const btVector3& w); -	 bool emptySimplex() const ;+void backup_closest(btVector3& v) ; -	 void compute_points(btVector3& p1, btVector3& p2) ;+bool emptySimplex() const ; -	 int numVertices() const -	 {-		 return m_numVertices;-	 }+void compute_points(btVector3& p1, btVector3& p2) ;++int numVertices() const+{+return m_numVertices;+}   };
bullet/BulletDynamics/Character/btCharacterControllerInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,22 +24,22 @@ class btCollisionWorld;  class btCharacterControllerInterface : public btActionInterface-{+{ private: public:-	btCharacterControllerInterface () {};-	virtual ~btCharacterControllerInterface () {};-	-	virtual void	setWalkDirection(const btVector3& walkDirection) = 0;-	virtual void	setVelocityForTimeInterval(const btVector3& velocity, btScalar timeInterval) = 0;-	virtual void	reset () = 0;-	virtual void	warp (const btVector3& origin) = 0;+btCharacterControllerInterface () {};+virtual ~btCharacterControllerInterface () {}; -	virtual void	preStep ( btCollisionWorld* collisionWorld) = 0;-	virtual void	playerStep (btCollisionWorld* collisionWorld, btScalar dt) = 0;-	virtual bool	canJump () const = 0;-	virtual void	jump () = 0;+virtual void setWalkDirection(const btVector3& walkDirection) = 0;+virtual void setVelocityForTimeInterval(const btVector3& velocity, btScalar timeInterval) = 0;+virtual void reset () = 0;+virtual void warp (const btVector3& origin) = 0; -	virtual bool	onGround () const = 0;+virtual void preStep ( btCollisionWorld* collisionWorld) = 0;+virtual void playerStep (btCollisionWorld* collisionWorld, btScalar dt) = 0;+virtual bool canJump () const = 0;+virtual void jump () = 0;++virtual bool onGround () const = 0; };  #endif //BT_CHARACTER_CONTROLLER_INTERFACE_H
bullet/BulletDynamics/Character/btKinematicCharacterController.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -34,129 +34,129 @@ ///It uses a ghost object and convex sweep test to test for upcoming collisions. This is combined with discrete collision detection to recover from penetrations. ///Interaction between btKinematicCharacterController and dynamic rigid bodies needs to be explicity implemented by the user. class btKinematicCharacterController : public btCharacterControllerInterface-{+{ private: protected: -	btScalar m_halfHeight;-	-	btPairCachingGhostObject* m_ghostObject;-	btConvexShape*	m_convexShape;//is also in m_ghostObject, but it needs to be convex, so we store it here to avoid upcast-	-	btScalar m_verticalVelocity;-	btScalar m_verticalOffset;-	btScalar m_fallSpeed;-	btScalar m_jumpSpeed;-	btScalar m_maxJumpHeight;-	btScalar m_maxSlopeRadians; // Slope angle that is set (used for returning the exact value)-	btScalar m_maxSlopeCosine;  // Cosine equivalent of m_maxSlopeRadians (calculated once when set, for optimization)-	btScalar m_gravity;+btScalar m_halfHeight; -	btScalar m_turnAngle;-	-	btScalar m_stepHeight;+btPairCachingGhostObject* m_ghostObject;+btConvexShape* m_convexShape;//is also in m_ghostObject, but it needs to be convex, so we store it here to avoid upcast -	btScalar	m_addedMargin;//@todo: remove this and fix the code+btScalar m_verticalVelocity;+btScalar m_verticalOffset;+btScalar m_fallSpeed;+btScalar m_jumpSpeed;+btScalar m_maxJumpHeight;+btScalar m_maxSlopeRadians; // Slope angle that is set (used for returning the exact value)+btScalar m_maxSlopeCosine; // Cosine equivalent of m_maxSlopeRadians (calculated once when set, for optimization)+btScalar m_gravity; -	///this is the desired walk direction, set by the user-	btVector3	m_walkDirection;-	btVector3	m_normalizedDirection;+btScalar m_turnAngle; -	//some internal variables-	btVector3 m_currentPosition;-	btScalar  m_currentStepOffset;-	btVector3 m_targetPosition;+btScalar m_stepHeight; -	///keep track of the contact manifolds-	btManifoldArray	m_manifoldArray;+btScalar m_addedMargin;//@todo: remove this and fix the code -	bool m_touchingContact;-	btVector3 m_touchingNormal;+///this is the desired walk direction, set by the user+btVector3 m_walkDirection;+btVector3 m_normalizedDirection; -	bool  m_wasOnGround;-	bool  m_wasJumping;-	bool	m_useGhostObjectSweepTest;-	bool	m_useWalkDirection;-	btScalar	m_velocityTimeInterval;-	int m_upAxis;+//some internal variables+btVector3 m_currentPosition;+btScalar m_currentStepOffset;+btVector3 m_targetPosition; -	static btVector3* getUpAxisDirections();+///keep track of the contact manifolds+btManifoldArray m_manifoldArray; -	btVector3 computeReflectionDirection (const btVector3& direction, const btVector3& normal);-	btVector3 parallelComponent (const btVector3& direction, const btVector3& normal);-	btVector3 perpindicularComponent (const btVector3& direction, const btVector3& normal);+bool m_touchingContact;+btVector3 m_touchingNormal; -	bool recoverFromPenetration ( btCollisionWorld* collisionWorld);-	void stepUp (btCollisionWorld* collisionWorld);-	void updateTargetPositionBasedOnCollision (const btVector3& hit_normal, btScalar tangentMag = btScalar(0.0), btScalar normalMag = btScalar(1.0));-	void stepForwardAndStrafe (btCollisionWorld* collisionWorld, const btVector3& walkMove);-	void stepDown (btCollisionWorld* collisionWorld, btScalar dt);+bool m_wasOnGround;+bool m_wasJumping;+bool m_useGhostObjectSweepTest;+bool m_useWalkDirection;+btScalar m_velocityTimeInterval;+int m_upAxis;++static btVector3* getUpAxisDirections();++btVector3 computeReflectionDirection (const btVector3& direction, const btVector3& normal);+btVector3 parallelComponent (const btVector3& direction, const btVector3& normal);+btVector3 perpindicularComponent (const btVector3& direction, const btVector3& normal);++bool recoverFromPenetration ( btCollisionWorld* collisionWorld);+void stepUp (btCollisionWorld* collisionWorld);+void updateTargetPositionBasedOnCollision (const btVector3& hit_normal, btScalar tangentMag = btScalar(0.0), btScalar normalMag = btScalar(1.0));+void stepForwardAndStrafe (btCollisionWorld* collisionWorld, const btVector3& walkMove);+void stepDown (btCollisionWorld* collisionWorld, btScalar dt); public:-	btKinematicCharacterController (btPairCachingGhostObject* ghostObject,btConvexShape* convexShape,btScalar stepHeight, int upAxis = 1);-	~btKinematicCharacterController ();-	+btKinematicCharacterController (btPairCachingGhostObject* ghostObject,btConvexShape* convexShape,btScalar stepHeight, int upAxis = 1);+~btKinematicCharacterController (); -	///btActionInterface interface-	virtual void updateAction( btCollisionWorld* collisionWorld,btScalar deltaTime)-	{-		preStep ( collisionWorld);-		playerStep (collisionWorld, deltaTime);-	}-	-	///btActionInterface interface-	void	debugDraw(btIDebugDraw* debugDrawer); -	void setUpAxis (int axis)-	{-		if (axis < 0)-			axis = 0;-		if (axis > 2)-			axis = 2;-		m_upAxis = axis;-	}+///btActionInterface interface+virtual void updateAction( btCollisionWorld* collisionWorld,btScalar deltaTime)+{+preStep ( collisionWorld);+playerStep (collisionWorld, deltaTime);+} -	/// This should probably be called setPositionIncrementPerSimulatorStep.-	/// This is neither a direction nor a velocity, but the amount to-	///	increment the position each simulation iteration, regardless-	///	of dt.-	/// This call will reset any velocity set by setVelocityForTimeInterval().-	virtual void	setWalkDirection(const btVector3& walkDirection);+///btActionInterface interface+void debugDraw(btIDebugDraw* debugDrawer); -	/// Caller provides a velocity with which the character should move for-	///	the given time period.  After the time period, velocity is reset-	///	to zero.-	/// This call will reset any walk direction set by setWalkDirection().-	/// Negative time intervals will result in no motion.-	virtual void setVelocityForTimeInterval(const btVector3& velocity,-				btScalar timeInterval);+void setUpAxis (int axis)+{+if (axis < 0)+axis = 0;+if (axis > 2)+axis = 2;+m_upAxis = axis;+} -	void reset ();-	void warp (const btVector3& origin);+/// This should probably be called setPositionIncrementPerSimulatorStep.+/// This is neither a direction nor a velocity, but the amount to+/// increment the position each simulation iteration, regardless+/// of dt.+/// This call will reset any velocity set by setVelocityForTimeInterval().+virtual void setWalkDirection(const btVector3& walkDirection); -	void preStep (  btCollisionWorld* collisionWorld);-	void playerStep ( btCollisionWorld* collisionWorld, btScalar dt);+/// Caller provides a velocity with which the character should move for+/// the given time period. After the time period, velocity is reset+/// to zero.+/// This call will reset any walk direction set by setWalkDirection().+/// Negative time intervals will result in no motion.+virtual void setVelocityForTimeInterval(const btVector3& velocity,+btScalar timeInterval); -	void setFallSpeed (btScalar fallSpeed);-	void setJumpSpeed (btScalar jumpSpeed);-	void setMaxJumpHeight (btScalar maxJumpHeight);-	bool canJump () const;+void reset ();+void warp (const btVector3& origin); -	void jump ();+void preStep ( btCollisionWorld* collisionWorld);+void playerStep ( btCollisionWorld* collisionWorld, btScalar dt); -	void setGravity(btScalar gravity);-	btScalar getGravity() const;+void setFallSpeed (btScalar fallSpeed);+void setJumpSpeed (btScalar jumpSpeed);+void setMaxJumpHeight (btScalar maxJumpHeight);+bool canJump () const; -	/// The max slope determines the maximum angle that the controller can walk up.-	/// The slope angle is measured in radians.-	void setMaxSlope(btScalar slopeRadians);-	btScalar getMaxSlope() const;+void jump (); -	btPairCachingGhostObject* getGhostObject();-	void	setUseGhostSweepTest(bool useGhostObjectSweepTest)-	{-		m_useGhostObjectSweepTest = useGhostObjectSweepTest;-	}+void setGravity(btScalar gravity);+btScalar getGravity() const; -	bool onGround () const;+/// The max slope determines the maximum angle that the controller can walk up.+/// The slope angle is measured in radians.+void setMaxSlope(btScalar slopeRadians);+btScalar getMaxSlope() const;++btPairCachingGhostObject* getGhostObject();+void setUseGhostSweepTest(bool useGhostObjectSweepTest)+{+m_useGhostObjectSweepTest = useGhostObjectSweepTest;+}++bool onGround () const; };  #endif // BT_KINEMATIC_CHARACTER_CONTROLLER_H
bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h view
@@ -4,8 +4,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -44,302 +44,302 @@  enum btConeTwistFlags {-	BT_CONETWIST_FLAGS_LIN_CFM = 1,-	BT_CONETWIST_FLAGS_LIN_ERP = 2,-	BT_CONETWIST_FLAGS_ANG_CFM = 4+BT_CONETWIST_FLAGS_LIN_CFM = 1,+BT_CONETWIST_FLAGS_LIN_ERP = 2,+BT_CONETWIST_FLAGS_ANG_CFM = 4 };  ///btConeTwistConstraint can be used to simulate ragdoll joints (upper arm, leg etc) class btConeTwistConstraint : public btTypedConstraint-{+{ private: #ifdef IN_PARALLELL_SOLVER public: #endif-	btJacobianEntry	m_jac[3]; //3 orthogonal linear constraints+btJacobianEntry m_jac[3]; //3 orthogonal linear constraints -	btTransform m_rbAFrame; -	btTransform m_rbBFrame;+btTransform m_rbAFrame;+btTransform m_rbBFrame; -	btScalar	m_limitSoftness;-	btScalar	m_biasFactor;-	btScalar	m_relaxationFactor;+btScalar m_limitSoftness;+btScalar m_biasFactor;+btScalar m_relaxationFactor; -	btScalar	m_damping;+btScalar m_damping; -	btScalar	m_swingSpan1;-	btScalar	m_swingSpan2;-	btScalar	m_twistSpan;+btScalar m_swingSpan1;+btScalar m_swingSpan2;+btScalar m_twistSpan; -	btScalar	m_fixThresh;+btScalar m_fixThresh; -	btVector3   m_swingAxis;-	btVector3	m_twistAxis;+btVector3 m_swingAxis;+btVector3 m_twistAxis; -	btScalar	m_kSwing;-	btScalar	m_kTwist;+btScalar m_kSwing;+btScalar m_kTwist; -	btScalar	m_twistLimitSign;-	btScalar	m_swingCorrection;-	btScalar	m_twistCorrection;+btScalar m_twistLimitSign;+btScalar m_swingCorrection;+btScalar m_twistCorrection; -	btScalar	m_twistAngle;+btScalar m_twistAngle; -	btScalar	m_accSwingLimitImpulse;-	btScalar	m_accTwistLimitImpulse;+btScalar m_accSwingLimitImpulse;+btScalar m_accTwistLimitImpulse; -	bool		m_angularOnly;-	bool		m_solveTwistLimit;-	bool		m_solveSwingLimit;+bool m_angularOnly;+bool m_solveTwistLimit;+bool m_solveSwingLimit; -	bool	m_useSolveConstraintObsolete;+bool m_useSolveConstraintObsolete; -	// not yet used...-	btScalar	m_swingLimitRatio;-	btScalar	m_twistLimitRatio;-	btVector3   m_twistAxisA;+// not yet used...+btScalar m_swingLimitRatio;+btScalar m_twistLimitRatio;+btVector3 m_twistAxisA; -	// motor-	bool		 m_bMotorEnabled;-	bool		 m_bNormalizedMotorStrength;-	btQuaternion m_qTarget;-	btScalar	 m_maxMotorImpulse;-	btVector3	 m_accMotorImpulse;-	-	// parameters-	int			m_flags;-	btScalar	m_linCFM;-	btScalar	m_linERP;-	btScalar	m_angCFM;-	+// motor+bool m_bMotorEnabled;+bool m_bNormalizedMotorStrength;+btQuaternion m_qTarget;+btScalar m_maxMotorImpulse;+btVector3 m_accMotorImpulse;++// parameters+int m_flags;+btScalar m_linCFM;+btScalar m_linERP;+btScalar m_angCFM;+ protected: -	void init();+void init(); -	void computeConeLimitInfo(const btQuaternion& qCone, // in-		btScalar& swingAngle, btVector3& vSwingAxis, btScalar& swingLimit); // all outs+void computeConeLimitInfo(const btQuaternion& qCone, // in+btScalar& swingAngle, btVector3& vSwingAxis, btScalar& swingLimit); // all outs -	void computeTwistLimitInfo(const btQuaternion& qTwist, // in-		btScalar& twistAngle, btVector3& vTwistAxis); // all outs+void computeTwistLimitInfo(const btQuaternion& qTwist, // in+btScalar& twistAngle, btVector3& vTwistAxis); // all outs -	void adjustSwingAxisToUseEllipseNormal(btVector3& vSwingAxis) const;+void adjustSwingAxisToUseEllipseNormal(btVector3& vSwingAxis) const;   public: -	btConeTwistConstraint(btRigidBody& rbA,btRigidBody& rbB,const btTransform& rbAFrame, const btTransform& rbBFrame);-	-	btConeTwistConstraint(btRigidBody& rbA,const btTransform& rbAFrame);+btConeTwistConstraint(btRigidBody& rbA,btRigidBody& rbB,const btTransform& rbAFrame, const btTransform& rbBFrame); -	virtual void	buildJacobian();+btConeTwistConstraint(btRigidBody& rbA,const btTransform& rbAFrame); -	virtual void getInfo1 (btConstraintInfo1* info);+virtual void buildJacobian(); -	void	getInfo1NonVirtual(btConstraintInfo1* info);-	-	virtual void getInfo2 (btConstraintInfo2* info);-	-	void	getInfo2NonVirtual(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btMatrix3x3& invInertiaWorldA,const btMatrix3x3& invInertiaWorldB);+virtual void getInfo1 (btConstraintInfo1* info); -	virtual	void	solveConstraintObsolete(btRigidBody& bodyA,btRigidBody& bodyB,btScalar	timeStep);+void getInfo1NonVirtual(btConstraintInfo1* info); -	void	updateRHS(btScalar	timeStep);+virtual void getInfo2 (btConstraintInfo2* info); +void getInfo2NonVirtual(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btMatrix3x3& invInertiaWorldA,const btMatrix3x3& invInertiaWorldB); -	const btRigidBody& getRigidBodyA() const-	{-		return m_rbA;-	}-	const btRigidBody& getRigidBodyB() const-	{-		return m_rbB;-	}+virtual void solveConstraintObsolete(btRigidBody& bodyA,btRigidBody& bodyB,btScalar timeStep); -	void	setAngularOnly(bool angularOnly)-	{-		m_angularOnly = angularOnly;-	}+void updateRHS(btScalar timeStep); -	void	setLimit(int limitIndex,btScalar limitValue)-	{-		switch (limitIndex)-		{-		case 3:-			{-				m_twistSpan = limitValue;-				break;-			}-		case 4:-			{-				m_swingSpan2 = limitValue;-				break;-			}-		case 5:-			{-				m_swingSpan1 = limitValue;-				break;-			}-		default:-			{-			}-		};-	} -	// setLimit(), a few notes:-	// _softness:-	//		0->1, recommend ~0.8->1.-	//		describes % of limits where movement is free.-	//		beyond this softness %, the limit is gradually enforced until the "hard" (1.0) limit is reached.-	// _biasFactor:-	//		0->1?, recommend 0.3 +/-0.3 or so.-	//		strength with which constraint resists zeroth order (angular, not angular velocity) limit violation.-	// __relaxationFactor:-	//		0->1, recommend to stay near 1.-	//		the lower the value, the less the constraint will fight velocities which violate the angular limits.-	void	setLimit(btScalar _swingSpan1,btScalar _swingSpan2,btScalar _twistSpan, btScalar _softness = 1.f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f)-	{-		m_swingSpan1 = _swingSpan1;-		m_swingSpan2 = _swingSpan2;-		m_twistSpan  = _twistSpan;+const btRigidBody& getRigidBodyA() const+{+return m_rbA;+}+const btRigidBody& getRigidBodyB() const+{+return m_rbB;+} -		m_limitSoftness =  _softness;-		m_biasFactor = _biasFactor;-		m_relaxationFactor = _relaxationFactor;-	}+void setAngularOnly(bool angularOnly)+{+m_angularOnly = angularOnly;+} -	const btTransform& getAFrame() { return m_rbAFrame; };	-	const btTransform& getBFrame() { return m_rbBFrame; };+void setLimit(int limitIndex,btScalar limitValue)+{+switch (limitIndex)+{+case 3:+{+m_twistSpan = limitValue;+break;+}+case 4:+{+m_swingSpan2 = limitValue;+break;+}+case 5:+{+m_swingSpan1 = limitValue;+break;+}+default:+{+}+};+} -	inline int getSolveTwistLimit()-	{-		return m_solveTwistLimit;-	}+// setLimit(), a few notes:+// _softness:+// 0->1, recommend ~0.8->1.+// describes % of limits where movement is free.+// beyond this softness %, the limit is gradually enforced until the "hard" (1.0) limit is reached.+// _biasFactor:+// 0->1?, recommend 0.3 +/-0.3 or so.+// strength with which constraint resists zeroth order (angular, not angular velocity) limit violation.+// __relaxationFactor:+// 0->1, recommend to stay near 1.+// the lower the value, the less the constraint will fight velocities which violate the angular limits.+void setLimit(btScalar _swingSpan1,btScalar _swingSpan2,btScalar _twistSpan, btScalar _softness = 1.f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f)+{+m_swingSpan1 = _swingSpan1;+m_swingSpan2 = _swingSpan2;+m_twistSpan = _twistSpan; -	inline int getSolveSwingLimit()-	{-		return m_solveTwistLimit;-	}+m_limitSoftness = _softness;+m_biasFactor = _biasFactor;+m_relaxationFactor = _relaxationFactor;+} -	inline btScalar getTwistLimitSign()-	{-		return m_twistLimitSign;-	}+const btTransform& getAFrame() { return m_rbAFrame; };+const btTransform& getBFrame() { return m_rbBFrame; }; -	void calcAngleInfo();-	void calcAngleInfo2(const btTransform& transA, const btTransform& transB,const btMatrix3x3& invInertiaWorldA,const btMatrix3x3& invInertiaWorldB);+inline int getSolveTwistLimit()+{+return m_solveTwistLimit;+} -	inline btScalar getSwingSpan1()-	{-		return m_swingSpan1;-	}-	inline btScalar getSwingSpan2()-	{-		return m_swingSpan2;-	}-	inline btScalar getTwistSpan()-	{-		return m_twistSpan;-	}-	inline btScalar getTwistAngle()-	{-		return m_twistAngle;-	}-	bool isPastSwingLimit() { return m_solveSwingLimit; }+inline int getSolveSwingLimit()+{+return m_solveTwistLimit;+} -	void setDamping(btScalar damping) { m_damping = damping; }+inline btScalar getTwistLimitSign()+{+return m_twistLimitSign;+} -	void enableMotor(bool b) { m_bMotorEnabled = b; }-	void setMaxMotorImpulse(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; m_bNormalizedMotorStrength = false; }-	void setMaxMotorImpulseNormalized(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; m_bNormalizedMotorStrength = true; }+void calcAngleInfo();+void calcAngleInfo2(const btTransform& transA, const btTransform& transB,const btMatrix3x3& invInertiaWorldA,const btMatrix3x3& invInertiaWorldB); -	btScalar getFixThresh() { return m_fixThresh; }-	void setFixThresh(btScalar fixThresh) { m_fixThresh = fixThresh; }+inline btScalar getSwingSpan1()+{+return m_swingSpan1;+}+inline btScalar getSwingSpan2()+{+return m_swingSpan2;+}+inline btScalar getTwistSpan()+{+return m_twistSpan;+}+inline btScalar getTwistAngle()+{+return m_twistAngle;+}+bool isPastSwingLimit() { return m_solveSwingLimit; } -	// setMotorTarget:-	// q: the desired rotation of bodyA wrt bodyB.-	// note: if q violates the joint limits, the internal target is clamped to avoid conflicting impulses (very bad for stability)-	// note: don't forget to enableMotor()-	void setMotorTarget(const btQuaternion &q);+void setDamping(btScalar damping) { m_damping = damping; } -	// same as above, but q is the desired rotation of frameA wrt frameB in constraint space-	void setMotorTargetInConstraintSpace(const btQuaternion &q);+void enableMotor(bool b) { m_bMotorEnabled = b; }+void setMaxMotorImpulse(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; m_bNormalizedMotorStrength = false; }+void setMaxMotorImpulseNormalized(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; m_bNormalizedMotorStrength = true; } -	btVector3 GetPointForAngle(btScalar fAngleInRadians, btScalar fLength) const;+btScalar getFixThresh() { return m_fixThresh; }+void setFixThresh(btScalar fixThresh) { m_fixThresh = fixThresh; } -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void setParam(int num, btScalar value, int axis = -1);+// setMotorTarget:+// q: the desired rotation of bodyA wrt bodyB.+// note: if q violates the joint limits, the internal target is clamped to avoid conflicting impulses (very bad for stability)+// note: don't forget to enableMotor()+void setMotorTarget(const btQuaternion &q); -	virtual void setFrames(const btTransform& frameA, const btTransform& frameB);+// same as above, but q is the desired rotation of frameA wrt frameB in constraint space+void setMotorTargetInConstraintSpace(const btQuaternion &q); -	const btTransform& getFrameOffsetA() const-	{-		return m_rbAFrame;-	}+btVector3 GetPointForAngle(btScalar fAngleInRadians, btScalar fLength) const; -	const btTransform& getFrameOffsetB() const-	{-		return m_rbBFrame;-	}+///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1); +virtual void setFrames(const btTransform& frameA, const btTransform& frameB); -	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const;+const btTransform& getFrameOffsetA() const+{+return m_rbAFrame;+} -	virtual	int	calculateSerializeBufferSize() const;+const btTransform& getFrameOffsetB() const+{+return m_rbBFrame;+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const; +///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const;++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;+ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btConeTwistConstraintData+struct btConeTwistConstraintData {-	btTypedConstraintData	m_typeConstraintData;-	btTransformFloatData m_rbAFrame;-	btTransformFloatData m_rbBFrame;+btTypedConstraintData m_typeConstraintData;+btTransformFloatData m_rbAFrame;+btTransformFloatData m_rbBFrame; -	//limits-	float	m_swingSpan1;-	float	m_swingSpan2;-	float	m_twistSpan;-	float	m_limitSoftness;-	float	m_biasFactor;-	float	m_relaxationFactor;+//limits+float m_swingSpan1;+float m_swingSpan2;+float m_twistSpan;+float m_limitSoftness;+float m_biasFactor;+float m_relaxationFactor; -	float	m_damping;-		-	char m_pad[4];+float m_damping; +char m_pad[4];+ };-	  -SIMD_FORCE_INLINE int	btConeTwistConstraint::calculateSerializeBufferSize() const++SIMD_FORCE_INLINE int btConeTwistConstraint::calculateSerializeBufferSize() const {-	return sizeof(btConeTwistConstraintData);+return sizeof(btConeTwistConstraintData);  }  -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE const char*	btConeTwistConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btConeTwistConstraint::serialize(void* dataBuffer, btSerializer* serializer) const {-	btConeTwistConstraintData* cone = (btConeTwistConstraintData*) dataBuffer;-	btTypedConstraint::serialize(&cone->m_typeConstraintData,serializer);+btConeTwistConstraintData* cone = (btConeTwistConstraintData*) dataBuffer;+btTypedConstraint::serialize(&cone->m_typeConstraintData,serializer); -	m_rbAFrame.serializeFloat(cone->m_rbAFrame);-	m_rbBFrame.serializeFloat(cone->m_rbBFrame);-	-	cone->m_swingSpan1 = float(m_swingSpan1);-	cone->m_swingSpan2 = float(m_swingSpan2);-	cone->m_twistSpan = float(m_twistSpan);-	cone->m_limitSoftness = float(m_limitSoftness);-	cone->m_biasFactor = float(m_biasFactor);-	cone->m_relaxationFactor = float(m_relaxationFactor);-	cone->m_damping = float(m_damping);+m_rbAFrame.serializeFloat(cone->m_rbAFrame);+m_rbBFrame.serializeFloat(cone->m_rbBFrame); -	return "btConeTwistConstraintData";+cone->m_swingSpan1 = float(m_swingSpan1);+cone->m_swingSpan2 = float(m_swingSpan2);+cone->m_twistSpan = float(m_twistSpan);+cone->m_limitSoftness = float(m_limitSoftness);+cone->m_biasFactor = float(m_biasFactor);+cone->m_relaxationFactor = float(m_relaxationFactor);+cone->m_damping = float(m_damping);++return "btConeTwistConstraintData"; }  
bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,24 +26,24 @@ struct btBroadphaseProxy; class btIDebugDraw; class btStackAlloc;-class	btDispatcher;+class btDispatcher; /// btConstraintSolver provides solver interface class btConstraintSolver-{+{ private:  public: -	virtual ~btConstraintSolver() {}-	-	virtual void prepareSolve (int /* numBodies */, int /* numManifolds */) {;}+virtual ~btConstraintSolver() {} -	///solve a group of constraints-	virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints, const btContactSolverInfo& info,class btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher) = 0;+virtual void prepareSolve (int /* numBodies */, int /* numManifolds */) {;} -	virtual void allSolved (const btContactSolverInfo& /* info */,class btIDebugDraw* /* debugDrawer */, btStackAlloc* /* stackAlloc */) {;}+///solve a group of constraints+virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints, const btContactSolverInfo& info,class btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher) = 0; -	///clear internal cached data and reset random seed-	virtual	void	reset() = 0;+virtual void allSolved (const btContactSolverInfo& /* info */,class btIDebugDraw* /* debugDrawer */, btStackAlloc* /* stackAlloc */) {;}++///clear internal cached data and reset random seed+virtual void reset() = 0; };  
bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,36 +23,36 @@  ///btContactConstraint can be automatically created to solve contact constraints using the unified btTypedConstraint interface ATTRIBUTE_ALIGNED16(class) btContactConstraint : public btTypedConstraint-{+{ private: protected: -	btPersistentManifold m_contactManifold;+btPersistentManifold m_contactManifold;  public:  -	btContactConstraint(btPersistentManifold* contactManifold,btRigidBody& rbA,btRigidBody& rbB);+btContactConstraint(btPersistentManifold* contactManifold,btRigidBody& rbA,btRigidBody& rbB); -	void	setContactManifold(btPersistentManifold* contactManifold);+void setContactManifold(btPersistentManifold* contactManifold); -	btPersistentManifold* getContactManifold()-	{-		return &m_contactManifold;-	}+btPersistentManifold* getContactManifold()+{+return &m_contactManifold;+} -	const btPersistentManifold* getContactManifold() const-	{-		return &m_contactManifold;-	}+const btPersistentManifold* getContactManifold() const+{+return &m_contactManifold;+} -	virtual ~btContactConstraint();+virtual ~btContactConstraint(); -	virtual void getInfo1 (btConstraintInfo1* info);+virtual void getInfo1 (btConstraintInfo1* info); -	virtual void getInfo2 (btConstraintInfo2* info);+virtual void getInfo2 (btConstraintInfo2* info); -	///obsolete methods-	virtual void	buildJacobian();+///obsolete methods+virtual void buildJacobian();   };@@ -63,8 +63,8 @@  ///resolveSingleBilateral is an obsolete methods used for vehicle friction between two dynamic objects void resolveSingleBilateral(btRigidBody& body1, const btVector3& pos1,-                      btRigidBody& body2, const btVector3& pos2,-                      btScalar distance, const btVector3& normal,btScalar& impulse ,btScalar timeStep);+btRigidBody& body2, const btVector3& pos2,+btScalar distance, const btVector3& normal,btScalar& impulse ,btScalar timeStep);   
bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,72 +16,72 @@ #ifndef BT_CONTACT_SOLVER_INFO #define BT_CONTACT_SOLVER_INFO -enum	btSolverMode+enum btSolverMode {-	SOLVER_RANDMIZE_ORDER = 1,-	SOLVER_FRICTION_SEPARATE = 2,-	SOLVER_USE_WARMSTARTING = 4,-	SOLVER_USE_FRICTION_WARMSTARTING = 8,-	SOLVER_USE_2_FRICTION_DIRECTIONS = 16,-	SOLVER_ENABLE_FRICTION_DIRECTION_CACHING = 32,-	SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION = 64,-	SOLVER_CACHE_FRIENDLY = 128,-	SOLVER_SIMD = 256,	//enabled for Windows, the solver innerloop is branchless SIMD, 40% faster than FPU/scalar version-	SOLVER_CUDA = 512	//will be open sourced during Game Developers Conference 2009. Much faster.+SOLVER_RANDMIZE_ORDER = 1,+SOLVER_FRICTION_SEPARATE = 2,+SOLVER_USE_WARMSTARTING = 4,+SOLVER_USE_FRICTION_WARMSTARTING = 8,+SOLVER_USE_2_FRICTION_DIRECTIONS = 16,+SOLVER_ENABLE_FRICTION_DIRECTION_CACHING = 32,+SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION = 64,+SOLVER_CACHE_FRIENDLY = 128,+SOLVER_SIMD = 256, //enabled for Windows, the solver innerloop is branchless SIMD, 40% faster than FPU/scalar version+SOLVER_CUDA = 512 //will be open sourced during Game Developers Conference 2009. Much faster. };  struct btContactSolverInfoData {-	 -	btScalar	m_tau;-	btScalar	m_damping;//global non-contact constraint damping, can be locally overridden by constraints during 'getInfo2'.-	btScalar	m_friction;-	btScalar	m_timeStep;-	btScalar	m_restitution;-	int		m_numIterations;-	btScalar	m_maxErrorReduction;-	btScalar	m_sor;-	btScalar	m_erp;//used as Baumgarte factor-	btScalar	m_erp2;//used in Split Impulse-	btScalar	m_globalCfm;//constraint force mixing-	int			m_splitImpulse;-	btScalar	m_splitImpulsePenetrationThreshold;-	btScalar	m_linearSlop;-	btScalar	m_warmstartingFactor; -	int			m_solverMode;-	int	m_restingContactRestitutionThreshold;-	int			m_minimumSolverBatchSize;+btScalar m_tau;+btScalar m_damping;//global non-contact constraint damping, can be locally overridden by constraints during 'getInfo2'.+btScalar m_friction;+btScalar m_timeStep;+btScalar m_restitution;+int m_numIterations;+btScalar m_maxErrorReduction;+btScalar m_sor;+btScalar m_erp;//used as Baumgarte factor+btScalar m_erp2;//used in Split Impulse+btScalar m_globalCfm;//constraint force mixing+int m_splitImpulse;+btScalar m_splitImpulsePenetrationThreshold;+btScalar m_linearSlop;+btScalar m_warmstartingFactor; +int m_solverMode;+int m_restingContactRestitutionThreshold;+int m_minimumSolverBatchSize; + };  struct btContactSolverInfo : public btContactSolverInfoData { -	 -	inline btContactSolverInfo()-	{-		m_tau = btScalar(0.6);-		m_damping = btScalar(1.0);-		m_friction = btScalar(0.3);-		m_restitution = btScalar(0.);-		m_maxErrorReduction = btScalar(20.);-		m_numIterations = 10;-		m_erp = btScalar(0.2);-		m_erp2 = btScalar(0.1);-		m_globalCfm = btScalar(0.);-		m_sor = btScalar(1.);-		m_splitImpulse = false;-		m_splitImpulsePenetrationThreshold = -0.02f;-		m_linearSlop = btScalar(0.0);-		m_warmstartingFactor=btScalar(0.85);-		m_solverMode = SOLVER_USE_WARMSTARTING | SOLVER_SIMD;// | SOLVER_RANDMIZE_ORDER;-		m_restingContactRestitutionThreshold = 2;//resting contact lifetime threshold to disable restitution-		m_minimumSolverBatchSize = 128; //try to combine islands until the amount of constraints reaches this limit-	}++inline btContactSolverInfo()+{+m_tau = btScalar(0.6);+m_damping = btScalar(1.0);+m_friction = btScalar(0.3);+m_restitution = btScalar(0.);+m_maxErrorReduction = btScalar(20.);+m_numIterations = 10;+m_erp = btScalar(0.2);+m_erp2 = btScalar(0.1);+m_globalCfm = btScalar(0.);+m_sor = btScalar(1.);+m_splitImpulse = false;+m_splitImpulsePenetrationThreshold = -0.02f;+m_linearSlop = btScalar(0.0);+m_warmstartingFactor=btScalar(0.85);+m_solverMode = SOLVER_USE_WARMSTARTING | SOLVER_SIMD;// | SOLVER_RANDMIZE_ORDER;+m_restingContactRestitutionThreshold = 2;//resting contact lifetime threshold to disable restitution+m_minimumSolverBatchSize = 128; //try to combine islands until the amount of constraints reaches this limit+} };  #endif //BT_CONTACT_SOLVER_INFO
bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -38,196 +38,196 @@  //! Rotation Limit structure for generic joints class btRotationalLimitMotor-{+{ private: public:-    //! limit_parameters-    //!@{-    btScalar m_loLimit;//!< joint limit-    btScalar m_hiLimit;//!< joint limit-    btScalar m_targetVelocity;//!< target motor velocity-    btScalar m_maxMotorForce;//!< max force on motor-    btScalar m_maxLimitForce;//!< max force on limit-    btScalar m_damping;//!< Damping.-    btScalar m_limitSoftness;//! Relaxation factor-    btScalar m_normalCFM;//!< Constraint force mixing factor-    btScalar m_stopERP;//!< Error tolerance factor when joint is at limit-    btScalar m_stopCFM;//!< Constraint force mixing factor when joint is at limit-    btScalar m_bounce;//!< restitution factor-    bool m_enableMotor;+//! limit_parameters+//!@{+btScalar m_loLimit;//!< joint limit+btScalar m_hiLimit;//!< joint limit+btScalar m_targetVelocity;//!< target motor velocity+btScalar m_maxMotorForce;//!< max force on motor+btScalar m_maxLimitForce;//!< max force on limit+btScalar m_damping;//!< Damping.+btScalar m_limitSoftness;//! Relaxation factor+btScalar m_normalCFM;//!< Constraint force mixing factor+btScalar m_stopERP;//!< Error tolerance factor when joint is at limit+btScalar m_stopCFM;//!< Constraint force mixing factor when joint is at limit+btScalar m_bounce;//!< restitution factor+bool m_enableMotor; -    //!@}+//!@} -    //! temp_variables-    //!@{-    btScalar m_currentLimitError;//!  How much is violated this limit-    btScalar m_currentPosition;     //!  current value of angle -    int m_currentLimit;//!< 0=free, 1=at lo limit, 2=at hi limit-    btScalar m_accumulatedImpulse;-    //!@}+//! temp_variables+//!@{+btScalar m_currentLimitError;//! How much is violated this limit+btScalar m_currentPosition; //! current value of angle+int m_currentLimit;//!< 0=free, 1=at lo limit, 2=at hi limit+btScalar m_accumulatedImpulse;+//!@} -    btRotationalLimitMotor()-    {-    	m_accumulatedImpulse = 0.f;-        m_targetVelocity = 0;-        m_maxMotorForce = 0.1f;-        m_maxLimitForce = 300.0f;-        m_loLimit = 1.0f;-        m_hiLimit = -1.0f;-		m_normalCFM = 0.f;-		m_stopERP = 0.2f;-		m_stopCFM = 0.f;-        m_bounce = 0.0f;-        m_damping = 1.0f;-        m_limitSoftness = 0.5f;-        m_currentLimit = 0;-        m_currentLimitError = 0;-        m_enableMotor = false;-    }+btRotationalLimitMotor()+{+m_accumulatedImpulse = 0.f;+m_targetVelocity = 0;+m_maxMotorForce = 0.1f;+m_maxLimitForce = 300.0f;+m_loLimit = 1.0f;+m_hiLimit = -1.0f;+m_normalCFM = 0.f;+m_stopERP = 0.2f;+m_stopCFM = 0.f;+m_bounce = 0.0f;+m_damping = 1.0f;+m_limitSoftness = 0.5f;+m_currentLimit = 0;+m_currentLimitError = 0;+m_enableMotor = false;+} -    btRotationalLimitMotor(const btRotationalLimitMotor & limot)-    {-        m_targetVelocity = limot.m_targetVelocity;-        m_maxMotorForce = limot.m_maxMotorForce;-        m_limitSoftness = limot.m_limitSoftness;-        m_loLimit = limot.m_loLimit;-        m_hiLimit = limot.m_hiLimit;-		m_normalCFM = limot.m_normalCFM;-		m_stopERP = limot.m_stopERP;-		m_stopCFM =	limot.m_stopCFM;-        m_bounce = limot.m_bounce;-        m_currentLimit = limot.m_currentLimit;-        m_currentLimitError = limot.m_currentLimitError;-        m_enableMotor = limot.m_enableMotor;-    }+btRotationalLimitMotor(const btRotationalLimitMotor & limot)+{+m_targetVelocity = limot.m_targetVelocity;+m_maxMotorForce = limot.m_maxMotorForce;+m_limitSoftness = limot.m_limitSoftness;+m_loLimit = limot.m_loLimit;+m_hiLimit = limot.m_hiLimit;+m_normalCFM = limot.m_normalCFM;+m_stopERP = limot.m_stopERP;+m_stopCFM = limot.m_stopCFM;+m_bounce = limot.m_bounce;+m_currentLimit = limot.m_currentLimit;+m_currentLimitError = limot.m_currentLimitError;+m_enableMotor = limot.m_enableMotor;+}   -	//! Is limited-    bool isLimited()-    {-    	if(m_loLimit > m_hiLimit) return false;-    	return true;-    }+//! Is limited+bool isLimited()+{+if(m_loLimit > m_hiLimit) return false;+return true;+} -	//! Need apply correction-    bool needApplyTorques()-    {-    	if(m_currentLimit == 0 && m_enableMotor == false) return false;-    	return true;-    }+//! Need apply correction+bool needApplyTorques()+{+if(m_currentLimit == 0 && m_enableMotor == false) return false;+return true;+} -	//! calculates  error-	/*!-	calculates m_currentLimit and m_currentLimitError.-	*/-	int testLimitValue(btScalar test_value);+//! calculates error+/*!+calculates m_currentLimit and m_currentLimitError.+*/+int testLimitValue(btScalar test_value); -	//! apply the correction impulses for two bodies-    btScalar solveAngularLimits(btScalar timeStep,btVector3& axis, btScalar jacDiagABInv,btRigidBody * body0, btRigidBody * body1);+//! apply the correction impulses for two bodies+btScalar solveAngularLimits(btScalar timeStep,btVector3& axis, btScalar jacDiagABInv,btRigidBody * body0, btRigidBody * body1);  };    class btTranslationalLimitMotor-{+{ private: public:-	btVector3 m_lowerLimit;//!< the constraint lower limits-    btVector3 m_upperLimit;//!< the constraint upper limits-    btVector3 m_accumulatedImpulse;-    //! Linear_Limit_parameters-    //!@{-    btScalar	m_limitSoftness;//!< Softness for linear limit-    btScalar	m_damping;//!< Damping for linear limit-    btScalar	m_restitution;//! Bounce parameter for linear limit-	btVector3	m_normalCFM;//!< Constraint force mixing factor-    btVector3	m_stopERP;//!< Error tolerance factor when joint is at limit-	btVector3	m_stopCFM;//!< Constraint force mixing factor when joint is at limit-    //!@}-	bool		m_enableMotor[3];-    btVector3	m_targetVelocity;//!< target motor velocity-    btVector3	m_maxMotorForce;//!< max force on motor-    btVector3	m_currentLimitError;//!  How much is violated this limit-    btVector3	m_currentLinearDiff;//!  Current relative offset of constraint frames-    int			m_currentLimit[3];//!< 0=free, 1=at lower limit, 2=at upper limit+btVector3 m_lowerLimit;//!< the constraint lower limits+btVector3 m_upperLimit;//!< the constraint upper limits+btVector3 m_accumulatedImpulse;+//! Linear_Limit_parameters+//!@{+btScalar m_limitSoftness;//!< Softness for linear limit+btScalar m_damping;//!< Damping for linear limit+btScalar m_restitution;//! Bounce parameter for linear limit+btVector3 m_normalCFM;//!< Constraint force mixing factor+btVector3 m_stopERP;//!< Error tolerance factor when joint is at limit+btVector3 m_stopCFM;//!< Constraint force mixing factor when joint is at limit+//!@}+bool m_enableMotor[3];+btVector3 m_targetVelocity;//!< target motor velocity+btVector3 m_maxMotorForce;//!< max force on motor+btVector3 m_currentLimitError;//! How much is violated this limit+btVector3 m_currentLinearDiff;//! Current relative offset of constraint frames+int m_currentLimit[3];//!< 0=free, 1=at lower limit, 2=at upper limit -    btTranslationalLimitMotor()-    {-    	m_lowerLimit.setValue(0.f,0.f,0.f);-    	m_upperLimit.setValue(0.f,0.f,0.f);-    	m_accumulatedImpulse.setValue(0.f,0.f,0.f);-		m_normalCFM.setValue(0.f, 0.f, 0.f);-		m_stopERP.setValue(0.2f, 0.2f, 0.2f);-		m_stopCFM.setValue(0.f, 0.f, 0.f);+btTranslationalLimitMotor()+{+m_lowerLimit.setValue(0.f,0.f,0.f);+m_upperLimit.setValue(0.f,0.f,0.f);+m_accumulatedImpulse.setValue(0.f,0.f,0.f);+m_normalCFM.setValue(0.f, 0.f, 0.f);+m_stopERP.setValue(0.2f, 0.2f, 0.2f);+m_stopCFM.setValue(0.f, 0.f, 0.f); -    	m_limitSoftness = 0.7f;-    	m_damping = btScalar(1.0f);-    	m_restitution = btScalar(0.5f);-		for(int i=0; i < 3; i++) -		{-			m_enableMotor[i] = false;-			m_targetVelocity[i] = btScalar(0.f);-			m_maxMotorForce[i] = btScalar(0.f);-		}-    }+m_limitSoftness = 0.7f;+m_damping = btScalar(1.0f);+m_restitution = btScalar(0.5f);+for(int i=0; i < 3; i++)+{+m_enableMotor[i] = false;+m_targetVelocity[i] = btScalar(0.f);+m_maxMotorForce[i] = btScalar(0.f);+}+} -    btTranslationalLimitMotor(const btTranslationalLimitMotor & other )-    {-    	m_lowerLimit = other.m_lowerLimit;-    	m_upperLimit = other.m_upperLimit;-    	m_accumulatedImpulse = other.m_accumulatedImpulse;+btTranslationalLimitMotor(const btTranslationalLimitMotor & other )+{+m_lowerLimit = other.m_lowerLimit;+m_upperLimit = other.m_upperLimit;+m_accumulatedImpulse = other.m_accumulatedImpulse; -    	m_limitSoftness = other.m_limitSoftness ;-    	m_damping = other.m_damping;-    	m_restitution = other.m_restitution;-		m_normalCFM = other.m_normalCFM;-		m_stopERP = other.m_stopERP;-		m_stopCFM = other.m_stopCFM;+m_limitSoftness = other.m_limitSoftness ;+m_damping = other.m_damping;+m_restitution = other.m_restitution;+m_normalCFM = other.m_normalCFM;+m_stopERP = other.m_stopERP;+m_stopCFM = other.m_stopCFM; -		for(int i=0; i < 3; i++) -		{-			m_enableMotor[i] = other.m_enableMotor[i];-			m_targetVelocity[i] = other.m_targetVelocity[i];-			m_maxMotorForce[i] = other.m_maxMotorForce[i];-		}-    }+for(int i=0; i < 3; i++)+{+m_enableMotor[i] = other.m_enableMotor[i];+m_targetVelocity[i] = other.m_targetVelocity[i];+m_maxMotorForce[i] = other.m_maxMotorForce[i];+}+} -    //! Test limit-	/*!-    - free means upper < lower,-    - locked means upper == lower-    - limited means upper > lower-    - limitIndex: first 3 are linear, next 3 are angular-    */-    inline bool	isLimited(int limitIndex)-    {-       return (m_upperLimit[limitIndex] >= m_lowerLimit[limitIndex]);-    }-    inline bool needApplyForce(int limitIndex)-    {-    	if(m_currentLimit[limitIndex] == 0 && m_enableMotor[limitIndex] == false) return false;-    	return true;-    }-	int testLimitValue(int limitIndex, btScalar test_value);+//! Test limit+/*!+- free means upper < lower,+- locked means upper == lower+- limited means upper > lower+- limitIndex: first 3 are linear, next 3 are angular+*/+inline bool isLimited(int limitIndex)+{+return (m_upperLimit[limitIndex] >= m_lowerLimit[limitIndex]);+}+inline bool needApplyForce(int limitIndex)+{+if(m_currentLimit[limitIndex] == 0 && m_enableMotor[limitIndex] == false) return false;+return true;+}+int testLimitValue(int limitIndex, btScalar test_value);  -    btScalar solveLinearAxis(-    	btScalar timeStep,-        btScalar jacDiagABInv,-        btRigidBody& body1,const btVector3 &pointInA,-        btRigidBody& body2,const btVector3 &pointInB,-        int limit_index,-        const btVector3 & axis_normal_on_a,-		const btVector3 & anchorPos);+btScalar solveLinearAxis(+btScalar timeStep,+btScalar jacDiagABInv,+btRigidBody& body1,const btVector3 &pointInA,+btRigidBody& body2,const btVector3 &pointInB,+int limit_index,+const btVector3 & axis_normal_on_a,+const btVector3 & anchorPos);   };  enum bt6DofFlags {-	BT_6DOF_FLAGS_CFM_NORM = 1,-	BT_6DOF_FLAGS_CFM_STOP = 2,-	BT_6DOF_FLAGS_ERP_STOP = 4+BT_6DOF_FLAGS_CFM_NORM = 1,+BT_6DOF_FLAGS_CFM_STOP = 2,+BT_6DOF_FLAGS_ERP_STOP = 4 }; #define BT_6DOF_FLAGS_AXIS_SHIFT 3 // bits per axis @@ -247,21 +247,21 @@ <li> Angulars limits have these possible ranges: <table border=1 > <tr>-	<td><b>AXIS</b></td>-	<td><b>MIN ANGLE</b></td>-	<td><b>MAX ANGLE</b></td>+<td><b>AXIS</b></td>+<td><b>MIN ANGLE</b></td>+<td><b>MAX ANGLE</b></td> </tr><tr>-	<td>X</td>-	<td>-PI</td>-	<td>PI</td>+<td>X</td>+<td>-PI</td>+<td>PI</td> </tr><tr>-	<td>Y</td>-	<td>-PI/2</td>-	<td>PI/2</td>+<td>Y</td>+<td>-PI/2</td>+<td>PI/2</td> </tr><tr>-	<td>Z</td>-	<td>-PI</td>-	<td>PI</td>+<td>Z</td>+<td>-PI</td>+<td>PI</td> </tr> </table> </li>@@ -269,342 +269,342 @@  */ class btGeneric6DofConstraint : public btTypedConstraint-{+{ private: protected: -	//! relative_frames-    //!@{-	btTransform	m_frameInA;//!< the constraint space w.r.t body A-    btTransform	m_frameInB;//!< the constraint space w.r.t body B-    //!@}+//! relative_frames+//!@{+btTransform m_frameInA;//!< the constraint space w.r.t body A+btTransform m_frameInB;//!< the constraint space w.r.t body B+//!@} -    //! Jacobians-    //!@{-    btJacobianEntry	m_jacLinear[3];//!< 3 orthogonal linear constraints-    btJacobianEntry	m_jacAng[3];//!< 3 orthogonal angular constraints-    //!@}+//! Jacobians+//!@{+btJacobianEntry m_jacLinear[3];//!< 3 orthogonal linear constraints+btJacobianEntry m_jacAng[3];//!< 3 orthogonal angular constraints+//!@} -	//! Linear_Limit_parameters-    //!@{-    btTranslationalLimitMotor m_linearLimits;-    //!@}+//! Linear_Limit_parameters+//!@{+btTranslationalLimitMotor m_linearLimits;+//!@}  -    //! hinge_parameters-    //!@{-    btRotationalLimitMotor m_angularLimits[3];-	//!@}+//! hinge_parameters+//!@{+btRotationalLimitMotor m_angularLimits[3];+//!@}   protected:-    //! temporal variables-    //!@{-    btScalar m_timeStep;-    btTransform m_calculatedTransformA;-    btTransform m_calculatedTransformB;-    btVector3 m_calculatedAxisAngleDiff;-    btVector3 m_calculatedAxis[3];-    btVector3 m_calculatedLinearDiff;-	btScalar	m_factA;-	btScalar	m_factB;-	bool		m_hasStaticBody;-    -	btVector3 m_AnchorPos; // point betwen pivots of bodies A and B to solve linear axes+//! temporal variables+//!@{+btScalar m_timeStep;+btTransform m_calculatedTransformA;+btTransform m_calculatedTransformB;+btVector3 m_calculatedAxisAngleDiff;+btVector3 m_calculatedAxis[3];+btVector3 m_calculatedLinearDiff;+btScalar m_factA;+btScalar m_factB;+bool m_hasStaticBody; -    bool	m_useLinearReferenceFrameA;-	bool	m_useOffsetForConstraintFrame;-    -	int		m_flags;+btVector3 m_AnchorPos; // point betwen pivots of bodies A and B to solve linear axes -    //!@}+bool m_useLinearReferenceFrameA;+bool m_useOffsetForConstraintFrame; -    btGeneric6DofConstraint&	operator=(btGeneric6DofConstraint&	other)-    {-        btAssert(0);-        (void) other;-        return *this;-    }+int m_flags; +//!@} -	int setAngularLimits(btConstraintInfo2 *info, int row_offset,const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB);+btGeneric6DofConstraint& operator=(btGeneric6DofConstraint& other)+{+btAssert(0);+(void) other;+return *this;+} -	int setLinearLimits(btConstraintInfo2 *info, int row, const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB); -    void buildLinearJacobian(-        btJacobianEntry & jacLinear,const btVector3 & normalWorld,-        const btVector3 & pivotAInW,const btVector3 & pivotBInW);+int setAngularLimits(btConstraintInfo2 *info, int row_offset,const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB); -    void buildAngularJacobian(btJacobianEntry & jacAngular,const btVector3 & jointAxisW);+int setLinearLimits(btConstraintInfo2 *info, int row, const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB); -	// tests linear limits-	void calculateLinearInfo();+void buildLinearJacobian(+btJacobianEntry & jacLinear,const btVector3 & normalWorld,+const btVector3 & pivotAInW,const btVector3 & pivotBInW); -	//! calcs the euler angles between the two bodies.-    void calculateAngleInfo();+void buildAngularJacobian(btJacobianEntry & jacAngular,const btVector3 & jointAxisW); +// tests linear limits+void calculateLinearInfo(); +//! calcs the euler angles between the two bodies.+void calculateAngleInfo(); ++ public: -	///for backwards compatibility during the transition to 'getInfo/getInfo2'-	bool		m_useSolveConstraintObsolete;+///for backwards compatibility during the transition to 'getInfo/getInfo2'+bool m_useSolveConstraintObsolete; -    btGeneric6DofConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);-    btGeneric6DofConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameB);-    -	//! Calcs global transform of the offsets-	/*!-	Calcs the global transform for the joint offset for body A an B, and also calcs the agle differences between the bodies.-	\sa btGeneric6DofConstraint.getCalculatedTransformA , btGeneric6DofConstraint.getCalculatedTransformB, btGeneric6DofConstraint.calculateAngleInfo-	*/-    void calculateTransforms(const btTransform& transA,const btTransform& transB);+btGeneric6DofConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);+btGeneric6DofConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameB); -	void calculateTransforms();+//! Calcs global transform of the offsets+/*!+Calcs the global transform for the joint offset for body A an B, and also calcs the agle differences between the bodies.+\sa btGeneric6DofConstraint.getCalculatedTransformA , btGeneric6DofConstraint.getCalculatedTransformB, btGeneric6DofConstraint.calculateAngleInfo+*/+void calculateTransforms(const btTransform& transA,const btTransform& transB); -	//! Gets the global transform of the offset for body A-    /*!-    \sa btGeneric6DofConstraint.getFrameOffsetA, btGeneric6DofConstraint.getFrameOffsetB, btGeneric6DofConstraint.calculateAngleInfo.-    */-    const btTransform & getCalculatedTransformA() const-    {-    	return m_calculatedTransformA;-    }+void calculateTransforms(); -    //! Gets the global transform of the offset for body B-    /*!-    \sa btGeneric6DofConstraint.getFrameOffsetA, btGeneric6DofConstraint.getFrameOffsetB, btGeneric6DofConstraint.calculateAngleInfo.-    */-    const btTransform & getCalculatedTransformB() const-    {-    	return m_calculatedTransformB;-    }+//! Gets the global transform of the offset for body A+/*!+\sa btGeneric6DofConstraint.getFrameOffsetA, btGeneric6DofConstraint.getFrameOffsetB, btGeneric6DofConstraint.calculateAngleInfo.+*/+const btTransform & getCalculatedTransformA() const+{+return m_calculatedTransformA;+} -    const btTransform & getFrameOffsetA() const-    {-    	return m_frameInA;-    }+//! Gets the global transform of the offset for body B+/*!+\sa btGeneric6DofConstraint.getFrameOffsetA, btGeneric6DofConstraint.getFrameOffsetB, btGeneric6DofConstraint.calculateAngleInfo.+*/+const btTransform & getCalculatedTransformB() const+{+return m_calculatedTransformB;+} -    const btTransform & getFrameOffsetB() const-    {-    	return m_frameInB;-    }+const btTransform & getFrameOffsetA() const+{+return m_frameInA;+} +const btTransform & getFrameOffsetB() const+{+return m_frameInB;+} -    btTransform & getFrameOffsetA()-    {-    	return m_frameInA;-    } -    btTransform & getFrameOffsetB()-    {-    	return m_frameInB;-    }+btTransform & getFrameOffsetA()+{+return m_frameInA;+} +btTransform & getFrameOffsetB()+{+return m_frameInB;+} -	//! performs Jacobian calculation, and also calculates angle differences and axis-    virtual void	buildJacobian(); -	virtual void getInfo1 (btConstraintInfo1* info);+//! performs Jacobian calculation, and also calculates angle differences and axis+virtual void buildJacobian(); -	void getInfo1NonVirtual (btConstraintInfo1* info);+virtual void getInfo1 (btConstraintInfo1* info); -	virtual void getInfo2 (btConstraintInfo2* info);+void getInfo1NonVirtual (btConstraintInfo1* info); -	void getInfo2NonVirtual (btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB);+virtual void getInfo2 (btConstraintInfo2* info); +void getInfo2NonVirtual (btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB); -    void	updateRHS(btScalar	timeStep); -	//! Get the rotation axis in global coordinates-	/*!-	\pre btGeneric6DofConstraint.buildJacobian must be called previously.-	*/-    btVector3 getAxis(int axis_index) const;+void updateRHS(btScalar timeStep); -    //! Get the relative Euler angle-    /*!-	\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.-	*/-    btScalar getAngle(int axis_index) const;+//! Get the rotation axis in global coordinates+/*!+\pre btGeneric6DofConstraint.buildJacobian must be called previously.+*/+btVector3 getAxis(int axis_index) const; -	//! Get the relative position of the constraint pivot-    /*!-	\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.-	*/-	btScalar getRelativePivotPosition(int axis_index) const;+//! Get the relative Euler angle+/*!+\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.+*/+btScalar getAngle(int axis_index) const; -	void setFrames(const btTransform & frameA, const btTransform & frameB);+//! Get the relative position of the constraint pivot+/*!+\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.+*/+btScalar getRelativePivotPosition(int axis_index) const; -	//! Test angular limit.-	/*!-	Calculates angular correction and returns true if limit needs to be corrected.-	\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.-	*/-    bool testAngularLimitMotor(int axis_index);+void setFrames(const btTransform & frameA, const btTransform & frameB); -    void	setLinearLowerLimit(const btVector3& linearLower)-    {-    	m_linearLimits.m_lowerLimit = linearLower;-    }+//! Test angular limit.+/*!+Calculates angular correction and returns true if limit needs to be corrected.+\pre btGeneric6DofConstraint::calculateTransforms() must be called previously.+*/+bool testAngularLimitMotor(int axis_index); -	void	getLinearLowerLimit(btVector3& linearLower)-	{-		linearLower = m_linearLimits.m_lowerLimit;-	}+void setLinearLowerLimit(const btVector3& linearLower)+{+m_linearLimits.m_lowerLimit = linearLower;+} -	void	setLinearUpperLimit(const btVector3& linearUpper)-	{-		m_linearLimits.m_upperLimit = linearUpper;-	}+void getLinearLowerLimit(btVector3& linearLower)+{+linearLower = m_linearLimits.m_lowerLimit;+} -	void	getLinearUpperLimit(btVector3& linearUpper)-	{-		linearUpper = m_linearLimits.m_upperLimit;-	}+void setLinearUpperLimit(const btVector3& linearUpper)+{+m_linearLimits.m_upperLimit = linearUpper;+} -    void	setAngularLowerLimit(const btVector3& angularLower)-    {-		for(int i = 0; i < 3; i++) -			m_angularLimits[i].m_loLimit = btNormalizeAngle(angularLower[i]);-    }+void getLinearUpperLimit(btVector3& linearUpper)+{+linearUpper = m_linearLimits.m_upperLimit;+} -	void	getAngularLowerLimit(btVector3& angularLower)-	{-		for(int i = 0; i < 3; i++) -			angularLower[i] = m_angularLimits[i].m_loLimit;-	}+void setAngularLowerLimit(const btVector3& angularLower)+{+for(int i = 0; i < 3; i++)+m_angularLimits[i].m_loLimit = btNormalizeAngle(angularLower[i]);+} -    void	setAngularUpperLimit(const btVector3& angularUpper)-    {-		for(int i = 0; i < 3; i++)-			m_angularLimits[i].m_hiLimit = btNormalizeAngle(angularUpper[i]);-    }+void getAngularLowerLimit(btVector3& angularLower)+{+for(int i = 0; i < 3; i++)+angularLower[i] = m_angularLimits[i].m_loLimit;+} -	void	getAngularUpperLimit(btVector3& angularUpper)-	{-		for(int i = 0; i < 3; i++)-			angularUpper[i] = m_angularLimits[i].m_hiLimit;-	}+void setAngularUpperLimit(const btVector3& angularUpper)+{+for(int i = 0; i < 3; i++)+m_angularLimits[i].m_hiLimit = btNormalizeAngle(angularUpper[i]);+} -	//! Retrieves the angular limit informacion-    btRotationalLimitMotor * getRotationalLimitMotor(int index)-    {-    	return &m_angularLimits[index];-    }+void getAngularUpperLimit(btVector3& angularUpper)+{+for(int i = 0; i < 3; i++)+angularUpper[i] = m_angularLimits[i].m_hiLimit;+} -    //! Retrieves the  limit informacion-    btTranslationalLimitMotor * getTranslationalLimitMotor()-    {-    	return &m_linearLimits;-    }+//! Retrieves the angular limit informacion+btRotationalLimitMotor * getRotationalLimitMotor(int index)+{+return &m_angularLimits[index];+} -    //first 3 are linear, next 3 are angular-    void setLimit(int axis, btScalar lo, btScalar hi)-    {-    	if(axis<3)-    	{-    		m_linearLimits.m_lowerLimit[axis] = lo;-    		m_linearLimits.m_upperLimit[axis] = hi;-    	}-    	else-    	{-			lo = btNormalizeAngle(lo);-			hi = btNormalizeAngle(hi);-    		m_angularLimits[axis-3].m_loLimit = lo;-    		m_angularLimits[axis-3].m_hiLimit = hi;-    	}-    }+//! Retrieves the limit informacion+btTranslationalLimitMotor * getTranslationalLimitMotor()+{+return &m_linearLimits;+} -	//! Test limit-	/*!-    - free means upper < lower,-    - locked means upper == lower-    - limited means upper > lower-    - limitIndex: first 3 are linear, next 3 are angular-    */-    bool	isLimited(int limitIndex)-    {-    	if(limitIndex<3)-    	{-			return m_linearLimits.isLimited(limitIndex);+//first 3 are linear, next 3 are angular+void setLimit(int axis, btScalar lo, btScalar hi)+{+if(axis<3)+{+m_linearLimits.m_lowerLimit[axis] = lo;+m_linearLimits.m_upperLimit[axis] = hi;+}+else+{+lo = btNormalizeAngle(lo);+hi = btNormalizeAngle(hi);+m_angularLimits[axis-3].m_loLimit = lo;+m_angularLimits[axis-3].m_hiLimit = hi;+}+} -    	}-        return m_angularLimits[limitIndex-3].isLimited();-    }+//! Test limit+/*!+- free means upper < lower,+- locked means upper == lower+- limited means upper > lower+- limitIndex: first 3 are linear, next 3 are angular+*/+bool isLimited(int limitIndex)+{+if(limitIndex<3)+{+return m_linearLimits.isLimited(limitIndex); -	virtual void calcAnchorPos(void); // overridable+}+return m_angularLimits[limitIndex-3].isLimited();+} -	int get_limit_motor_info2(	btRotationalLimitMotor * limot,-								const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB,-								btConstraintInfo2 *info, int row, btVector3& ax1, int rotational, int rotAllowed = false);+virtual void calcAnchorPos(void); // overridable -	// access for UseFrameOffset-	bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }-	void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }+int get_limit_motor_info2( btRotationalLimitMotor * limot,+const btTransform& transA,const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB,const btVector3& angVelA,const btVector3& angVelB,+btConstraintInfo2 *info, int row, btVector3& ax1, int rotational, int rotAllowed = false); -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void setParam(int num, btScalar value, int axis = -1);-	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const;+// access for UseFrameOffset+bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }+void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; } -	void setAxis( const btVector3& axis1, const btVector3& axis2);+///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1);+///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const; +void setAxis( const btVector3& axis1, const btVector3& axis2); -	virtual	int	calculateSerializeBufferSize() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const; -	+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 struct btGeneric6DofConstraintData {-	btTypedConstraintData	m_typeConstraintData;-	btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.-	btTransformFloatData m_rbBFrame;-	-	btVector3FloatData	m_linearUpperLimit;-	btVector3FloatData	m_linearLowerLimit;+btTypedConstraintData m_typeConstraintData;+btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.+btTransformFloatData m_rbBFrame; -	btVector3FloatData	m_angularUpperLimit;-	btVector3FloatData	m_angularLowerLimit;-	-	int	m_useLinearReferenceFrameA;-	int m_useOffsetForConstraintFrame;+btVector3FloatData m_linearUpperLimit;+btVector3FloatData m_linearLowerLimit;++btVector3FloatData m_angularUpperLimit;+btVector3FloatData m_angularLowerLimit;++int m_useLinearReferenceFrameA;+int m_useOffsetForConstraintFrame; }; -SIMD_FORCE_INLINE	int	btGeneric6DofConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btGeneric6DofConstraint::calculateSerializeBufferSize() const {-	return sizeof(btGeneric6DofConstraintData);+return sizeof(btGeneric6DofConstraintData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btGeneric6DofConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btGeneric6DofConstraint::serialize(void* dataBuffer, btSerializer* serializer) const { -	btGeneric6DofConstraintData* dof = (btGeneric6DofConstraintData*)dataBuffer;-	btTypedConstraint::serialize(&dof->m_typeConstraintData,serializer);+btGeneric6DofConstraintData* dof = (btGeneric6DofConstraintData*)dataBuffer;+btTypedConstraint::serialize(&dof->m_typeConstraintData,serializer); -	m_frameInA.serializeFloat(dof->m_rbAFrame);-	m_frameInB.serializeFloat(dof->m_rbBFrame);+m_frameInA.serializeFloat(dof->m_rbAFrame);+m_frameInB.serializeFloat(dof->m_rbBFrame); -		-	int i;-	for (i=0;i<3;i++)-	{-		dof->m_angularLowerLimit.m_floats[i] =  float(m_angularLimits[i].m_loLimit);-		dof->m_angularUpperLimit.m_floats[i] =  float(m_angularLimits[i].m_hiLimit);-		dof->m_linearLowerLimit.m_floats[i] = float(m_linearLimits.m_lowerLimit[i]);-		dof->m_linearUpperLimit.m_floats[i] = float(m_linearLimits.m_upperLimit[i]);-	}-	-	dof->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA? 1 : 0;-	dof->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame ? 1 : 0; -	return "btGeneric6DofConstraintData";+int i;+for (i=0;i<3;i++)+{+dof->m_angularLowerLimit.m_floats[i] = float(m_angularLimits[i].m_loLimit);+dof->m_angularUpperLimit.m_floats[i] = float(m_angularLimits[i].m_hiLimit);+dof->m_linearLowerLimit.m_floats[i] = float(m_linearLimits.m_lowerLimit[i]);+dof->m_linearUpperLimit.m_floats[i] = float(m_linearLimits.m_upperLimit[i]);+}++dof->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA? 1 : 0;+dof->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame ? 1 : 0;++return "btGeneric6DofConstraintData"; }  
bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2007 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -33,29 +33,29 @@ /// 5 : rotation Z (1st Euler rotational around Z axis, range [-PI+epsilon, PI-epsilon] )  class btGeneric6DofSpringConstraint : public btGeneric6DofConstraint-{+{ private: protected:-	bool		m_springEnabled[6];-	btScalar	m_equilibriumPoint[6];-	btScalar	m_springStiffness[6];-	btScalar	m_springDamping[6]; // between 0 and 1 (1 == no damping)-	void internalUpdateSprings(btConstraintInfo2* info);-public: -    btGeneric6DofSpringConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);-	void enableSpring(int index, bool onOff);-	void setStiffness(int index, btScalar stiffness);-	void setDamping(int index, btScalar damping);-	void setEquilibriumPoint(); // set the current constraint position/orientation as an equilibrium point for all DOF-	void setEquilibriumPoint(int index);  // set the current constraint position/orientation as an equilibrium point for given DOF-	void setEquilibriumPoint(int index, btScalar val);+bool m_springEnabled[6];+btScalar m_equilibriumPoint[6];+btScalar m_springStiffness[6];+btScalar m_springDamping[6]; // between 0 and 1 (1 == no damping)+void internalUpdateSprings(btConstraintInfo2* info);+public:+btGeneric6DofSpringConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);+void enableSpring(int index, bool onOff);+void setStiffness(int index, btScalar stiffness);+void setDamping(int index, btScalar damping);+void setEquilibriumPoint(); // set the current constraint position/orientation as an equilibrium point for all DOF+void setEquilibriumPoint(int index); // set the current constraint position/orientation as an equilibrium point for given DOF+void setEquilibriumPoint(int index, btScalar val); -	virtual void setAxis( const btVector3& axis1, const btVector3& axis2);+virtual void setAxis( const btVector3& axis1, const btVector3& axis2); -	virtual void getInfo2 (btConstraintInfo2* info);+virtual void getInfo2 (btConstraintInfo2* info); -	virtual	int	calculateSerializeBufferSize() const;-	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+virtual int calculateSerializeBufferSize() const;+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;  }; @@ -63,34 +63,34 @@ ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 struct btGeneric6DofSpringConstraintData {-	btGeneric6DofConstraintData	m_6dofData;-	-	int			m_springEnabled[6];-	float		m_equilibriumPoint[6];-	float		m_springStiffness[6];-	float		m_springDamping[6];+btGeneric6DofConstraintData m_6dofData;++int m_springEnabled[6];+float m_equilibriumPoint[6];+float m_springStiffness[6];+float m_springDamping[6]; }; -SIMD_FORCE_INLINE	int	btGeneric6DofSpringConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btGeneric6DofSpringConstraint::calculateSerializeBufferSize() const {-	return sizeof(btGeneric6DofSpringConstraintData);+return sizeof(btGeneric6DofSpringConstraintData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btGeneric6DofSpringConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btGeneric6DofSpringConstraint::serialize(void* dataBuffer, btSerializer* serializer) const {-	btGeneric6DofSpringConstraintData* dof = (btGeneric6DofSpringConstraintData*)dataBuffer;-	btGeneric6DofConstraint::serialize(&dof->m_6dofData,serializer);+btGeneric6DofSpringConstraintData* dof = (btGeneric6DofSpringConstraintData*)dataBuffer;+btGeneric6DofConstraint::serialize(&dof->m_6dofData,serializer); -	int i;-	for (i=0;i<6;i++)-	{-		dof->m_equilibriumPoint[i] = m_equilibriumPoint[i];-		dof->m_springDamping[i] = m_springDamping[i];-		dof->m_springEnabled[i] = m_springEnabled[i]? 1 : 0;-		dof->m_springStiffness[i] = m_springStiffness[i];-	}-	return "btGeneric6DofConstraintData";+int i;+for (i=0;i<6;i++)+{+dof->m_equilibriumPoint[i] = m_equilibriumPoint[i];+dof->m_springDamping[i] = m_springDamping[i];+dof->m_springEnabled[i] = m_springEnabled[i]? 1 : 0;+dof->m_springStiffness[i] = m_springStiffness[i];+}+return "btGeneric6DofConstraintData"; }  #endif // BT_GENERIC_6DOF_SPRING_CONSTRAINT_H
bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2007 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,26 +30,26 @@ // 1 translational (along axis Z) with suspension spring  class btHinge2Constraint : public btGeneric6DofSpringConstraint-{+{ private: protected:-	btVector3	m_anchor;-	btVector3	m_axis1;-	btVector3	m_axis2;+btVector3 m_anchor;+btVector3 m_axis1;+btVector3 m_axis2; public:-	// constructor-	// anchor, axis1 and axis2 are in world coordinate system-	// axis1 must be orthogonal to axis2-    btHinge2Constraint(btRigidBody& rbA, btRigidBody& rbB, btVector3& anchor, btVector3& axis1, btVector3& axis2);-	// access-	const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }-	const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }-	const btVector3& getAxis1() { return m_axis1; }-	const btVector3& getAxis2() { return m_axis2; }-	btScalar getAngle1() { return getAngle(2); }-	btScalar getAngle2() { return getAngle(0); }-	// limits-	void setUpperLimit(btScalar ang1max) { setAngularUpperLimit(btVector3(-1.f, 0.f, ang1max)); }-	void setLowerLimit(btScalar ang1min) { setAngularLowerLimit(btVector3( 1.f, 0.f, ang1min)); }+// constructor+// anchor, axis1 and axis2 are in world coordinate system+// axis1 must be orthogonal to axis2+btHinge2Constraint(btRigidBody& rbA, btRigidBody& rbB, btVector3& anchor, btVector3& axis1, btVector3& axis2);+// access+const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }+const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }+const btVector3& getAxis1() { return m_axis1; }+const btVector3& getAxis2() { return m_axis2; }+btScalar getAngle1() { return getAngle(2); }+btScalar getAngle2() { return getAngle(0); }+// limits+void setUpperLimit(btScalar ang1max) { setAngularUpperLimit(btVector3(-1.f, 0.f, ang1max)); }+void setLowerLimit(btScalar ang1min) { setAngularLowerLimit(btVector3( 1.f, 0.f, ang1min)); } };  
bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,354 +28,354 @@ class btRigidBody;  #ifdef BT_USE_DOUBLE_PRECISION-#define btHingeConstraintData	btHingeConstraintDoubleData-#define btHingeConstraintDataName	"btHingeConstraintDoubleData"+#define btHingeConstraintData btHingeConstraintDoubleData+#define btHingeConstraintDataName "btHingeConstraintDoubleData" #else-#define btHingeConstraintData	btHingeConstraintFloatData-#define btHingeConstraintDataName	"btHingeConstraintFloatData"+#define btHingeConstraintData btHingeConstraintFloatData+#define btHingeConstraintDataName "btHingeConstraintFloatData" #endif //BT_USE_DOUBLE_PRECISION    enum btHingeFlags {-	BT_HINGE_FLAGS_CFM_STOP = 1,-	BT_HINGE_FLAGS_ERP_STOP = 2,-	BT_HINGE_FLAGS_CFM_NORM = 4+BT_HINGE_FLAGS_CFM_STOP = 1,+BT_HINGE_FLAGS_ERP_STOP = 2,+BT_HINGE_FLAGS_CFM_NORM = 4 };   /// hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in local space /// axis defines the orientation of the hinge axis ATTRIBUTE_ALIGNED16(class) btHingeConstraint : public btTypedConstraint-{+{ private: #ifdef IN_PARALLELL_SOLVER public: #endif-	btJacobianEntry	m_jac[3]; //3 orthogonal linear constraints-	btJacobianEntry	m_jacAng[3]; //2 orthogonal angular constraints+ 1 for limit/motor+btJacobianEntry m_jac[3]; //3 orthogonal linear constraints+btJacobianEntry m_jacAng[3]; //2 orthogonal angular constraints+ 1 for limit/motor -	btTransform m_rbAFrame; // constraint axii. Assumes z is hinge axis.-	btTransform m_rbBFrame;+btTransform m_rbAFrame; // constraint axii. Assumes z is hinge axis.+btTransform m_rbBFrame; -	btScalar	m_motorTargetVelocity;-	btScalar	m_maxMotorImpulse;+btScalar m_motorTargetVelocity;+btScalar m_maxMotorImpulse;  -#ifdef	_BT_USE_CENTER_LIMIT_-	btAngularLimit	m_limit;+#ifdef _BT_USE_CENTER_LIMIT_+btAngularLimit m_limit; #else-	btScalar	m_lowerLimit;	-	btScalar	m_upperLimit;	-	btScalar	m_limitSign;-	btScalar	m_correction;+btScalar m_lowerLimit;+btScalar m_upperLimit;+btScalar m_limitSign;+btScalar m_correction; -	btScalar	m_limitSoftness; -	btScalar	m_biasFactor; -	btScalar	m_relaxationFactor; +btScalar m_limitSoftness;+btScalar m_biasFactor;+btScalar m_relaxationFactor; -	bool		m_solveLimit;+bool m_solveLimit; #endif -	btScalar	m_kHinge;+btScalar m_kHinge;  -	btScalar	m_accLimitImpulse;-	btScalar	m_hingeAngle;-	btScalar	m_referenceSign;+btScalar m_accLimitImpulse;+btScalar m_hingeAngle;+btScalar m_referenceSign; -	bool		m_angularOnly;-	bool		m_enableAngularMotor;-	bool		m_useSolveConstraintObsolete;-	bool		m_useOffsetForConstraintFrame;-	bool		m_useReferenceFrameA;+bool m_angularOnly;+bool m_enableAngularMotor;+bool m_useSolveConstraintObsolete;+bool m_useOffsetForConstraintFrame;+bool m_useReferenceFrameA; -	btScalar	m_accMotorImpulse;+btScalar m_accMotorImpulse; -	int			m_flags;-	btScalar	m_normalCFM;-	btScalar	m_stopCFM;-	btScalar	m_stopERP;+int m_flags;+btScalar m_normalCFM;+btScalar m_stopCFM;+btScalar m_stopERP; -	+ public: -	btHingeConstraint(btRigidBody& rbA,btRigidBody& rbB, const btVector3& pivotInA,const btVector3& pivotInB, const btVector3& axisInA,const btVector3& axisInB, bool useReferenceFrameA = false);+btHingeConstraint(btRigidBody& rbA,btRigidBody& rbB, const btVector3& pivotInA,const btVector3& pivotInB, const btVector3& axisInA,const btVector3& axisInB, bool useReferenceFrameA = false); -	btHingeConstraint(btRigidBody& rbA,const btVector3& pivotInA,const btVector3& axisInA, bool useReferenceFrameA = false);-	-	btHingeConstraint(btRigidBody& rbA,btRigidBody& rbB, const btTransform& rbAFrame, const btTransform& rbBFrame, bool useReferenceFrameA = false);+btHingeConstraint(btRigidBody& rbA,const btVector3& pivotInA,const btVector3& axisInA, bool useReferenceFrameA = false); -	btHingeConstraint(btRigidBody& rbA,const btTransform& rbAFrame, bool useReferenceFrameA = false);+btHingeConstraint(btRigidBody& rbA,btRigidBody& rbB, const btTransform& rbAFrame, const btTransform& rbBFrame, bool useReferenceFrameA = false); +btHingeConstraint(btRigidBody& rbA,const btTransform& rbAFrame, bool useReferenceFrameA = false); -	virtual void	buildJacobian(); -	virtual void getInfo1 (btConstraintInfo1* info);+virtual void buildJacobian(); -	void getInfo1NonVirtual(btConstraintInfo1* info);+virtual void getInfo1 (btConstraintInfo1* info); -	virtual void getInfo2 (btConstraintInfo2* info);+void getInfo1NonVirtual(btConstraintInfo1* info); -	void	getInfo2NonVirtual(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB);+virtual void getInfo2 (btConstraintInfo2* info); -	void	getInfo2Internal(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB);-	void	getInfo2InternalUsingFrameOffset(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB);-		+void getInfo2NonVirtual(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB); -	void	updateRHS(btScalar	timeStep);+void getInfo2Internal(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB);+void getInfo2InternalUsingFrameOffset(btConstraintInfo2* info,const btTransform& transA,const btTransform& transB,const btVector3& angVelA,const btVector3& angVelB); -	const btRigidBody& getRigidBodyA() const-	{-		return m_rbA;-	}-	const btRigidBody& getRigidBodyB() const-	{-		return m_rbB;-	} -	btRigidBody& getRigidBodyA()	-	{		-		return m_rbA;	-	}	+void updateRHS(btScalar timeStep); -	btRigidBody& getRigidBodyB()	-	{		-		return m_rbB;	-	}+const btRigidBody& getRigidBodyA() const+{+return m_rbA;+}+const btRigidBody& getRigidBodyB() const+{+return m_rbB;+} -	btTransform& getFrameOffsetA()-	{-	return m_rbAFrame;-	}+btRigidBody& getRigidBodyA()+{+return m_rbA;+} -	btTransform& getFrameOffsetB()-	{-		return m_rbBFrame;-	}+btRigidBody& getRigidBodyB()+{+return m_rbB;+} -	void setFrames(const btTransform& frameA, const btTransform& frameB);-	-	void	setAngularOnly(bool angularOnly)-	{-		m_angularOnly = angularOnly;-	}+btTransform& getFrameOffsetA()+{+return m_rbAFrame;+} -	void	enableAngularMotor(bool enableMotor,btScalar targetVelocity,btScalar maxMotorImpulse)-	{-		m_enableAngularMotor  = enableMotor;-		m_motorTargetVelocity = targetVelocity;-		m_maxMotorImpulse = maxMotorImpulse;-	}+btTransform& getFrameOffsetB()+{+return m_rbBFrame;+} -	// extra motor API, including ability to set a target rotation (as opposed to angular velocity)-	// note: setMotorTarget sets angular velocity under the hood, so you must call it every tick to-	//       maintain a given angular target.-	void enableMotor(bool enableMotor) 	{ m_enableAngularMotor = enableMotor; }-	void setMaxMotorImpulse(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; }-	void setMotorTarget(const btQuaternion& qAinB, btScalar dt); // qAinB is rotation of body A wrt body B.-	void setMotorTarget(btScalar targetAngle, btScalar dt);+void setFrames(const btTransform& frameA, const btTransform& frameB); +void setAngularOnly(bool angularOnly)+{+m_angularOnly = angularOnly;+} -	void	setLimit(btScalar low,btScalar high,btScalar _softness = 0.9f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f)-	{-#ifdef	_BT_USE_CENTER_LIMIT_-		m_limit.set(low, high, _softness, _biasFactor, _relaxationFactor);+void enableAngularMotor(bool enableMotor,btScalar targetVelocity,btScalar maxMotorImpulse)+{+m_enableAngularMotor = enableMotor;+m_motorTargetVelocity = targetVelocity;+m_maxMotorImpulse = maxMotorImpulse;+}++// extra motor API, including ability to set a target rotation (as opposed to angular velocity)+// note: setMotorTarget sets angular velocity under the hood, so you must call it every tick to+// maintain a given angular target.+void enableMotor(bool enableMotor) { m_enableAngularMotor = enableMotor; }+void setMaxMotorImpulse(btScalar maxMotorImpulse) { m_maxMotorImpulse = maxMotorImpulse; }+void setMotorTarget(const btQuaternion& qAinB, btScalar dt); // qAinB is rotation of body A wrt body B.+void setMotorTarget(btScalar targetAngle, btScalar dt);+++void setLimit(btScalar low,btScalar high,btScalar _softness = 0.9f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f)+{+#ifdef _BT_USE_CENTER_LIMIT_+m_limit.set(low, high, _softness, _biasFactor, _relaxationFactor); #else-		m_lowerLimit = btNormalizeAngle(low);-		m_upperLimit = btNormalizeAngle(high);-		m_limitSoftness =  _softness;-		m_biasFactor = _biasFactor;-		m_relaxationFactor = _relaxationFactor;+m_lowerLimit = btNormalizeAngle(low);+m_upperLimit = btNormalizeAngle(high);+m_limitSoftness = _softness;+m_biasFactor = _biasFactor;+m_relaxationFactor = _relaxationFactor; #endif-	}+} -	void	setAxis(btVector3& axisInA)-	{-		btVector3 rbAxisA1, rbAxisA2;-		btPlaneSpace1(axisInA, rbAxisA1, rbAxisA2);-		btVector3 pivotInA = m_rbAFrame.getOrigin();-//		m_rbAFrame.getOrigin() = pivotInA;-		m_rbAFrame.getBasis().setValue( rbAxisA1.getX(),rbAxisA2.getX(),axisInA.getX(),-										rbAxisA1.getY(),rbAxisA2.getY(),axisInA.getY(),-										rbAxisA1.getZ(),rbAxisA2.getZ(),axisInA.getZ() );+void setAxis(btVector3& axisInA)+{+btVector3 rbAxisA1, rbAxisA2;+btPlaneSpace1(axisInA, rbAxisA1, rbAxisA2);+btVector3 pivotInA = m_rbAFrame.getOrigin();+// m_rbAFrame.getOrigin() = pivotInA;+m_rbAFrame.getBasis().setValue( rbAxisA1.getX(),rbAxisA2.getX(),axisInA.getX(),+rbAxisA1.getY(),rbAxisA2.getY(),axisInA.getY(),+rbAxisA1.getZ(),rbAxisA2.getZ(),axisInA.getZ() ); -		btVector3 axisInB = m_rbA.getCenterOfMassTransform().getBasis() * axisInA;+btVector3 axisInB = m_rbA.getCenterOfMassTransform().getBasis() * axisInA; -		btQuaternion rotationArc = shortestArcQuat(axisInA,axisInB);-		btVector3 rbAxisB1 =  quatRotate(rotationArc,rbAxisA1);-		btVector3 rbAxisB2 = axisInB.cross(rbAxisB1);+btQuaternion rotationArc = shortestArcQuat(axisInA,axisInB);+btVector3 rbAxisB1 = quatRotate(rotationArc,rbAxisA1);+btVector3 rbAxisB2 = axisInB.cross(rbAxisB1); -		m_rbBFrame.getOrigin() = m_rbB.getCenterOfMassTransform().inverse()(m_rbA.getCenterOfMassTransform()(pivotInA));+m_rbBFrame.getOrigin() = m_rbB.getCenterOfMassTransform().inverse()(m_rbA.getCenterOfMassTransform()(pivotInA)); -		m_rbBFrame.getBasis().setValue( rbAxisB1.getX(),rbAxisB2.getX(),axisInB.getX(),-										rbAxisB1.getY(),rbAxisB2.getY(),axisInB.getY(),-										rbAxisB1.getZ(),rbAxisB2.getZ(),axisInB.getZ() );-		m_rbBFrame.getBasis() = m_rbB.getCenterOfMassTransform().getBasis().inverse() * m_rbBFrame.getBasis();+m_rbBFrame.getBasis().setValue( rbAxisB1.getX(),rbAxisB2.getX(),axisInB.getX(),+rbAxisB1.getY(),rbAxisB2.getY(),axisInB.getY(),+rbAxisB1.getZ(),rbAxisB2.getZ(),axisInB.getZ() );+m_rbBFrame.getBasis() = m_rbB.getCenterOfMassTransform().getBasis().inverse() * m_rbBFrame.getBasis(); -	}+} -	btScalar	getLowerLimit() const-	{-#ifdef	_BT_USE_CENTER_LIMIT_-	return m_limit.getLow();+btScalar getLowerLimit() const+{+#ifdef _BT_USE_CENTER_LIMIT_+return m_limit.getLow(); #else-	return m_lowerLimit;+return m_lowerLimit; #endif-	}+} -	btScalar	getUpperLimit() const-	{-#ifdef	_BT_USE_CENTER_LIMIT_-	return m_limit.getHigh();-#else		-	return m_upperLimit;+btScalar getUpperLimit() const+{+#ifdef _BT_USE_CENTER_LIMIT_+return m_limit.getHigh();+#else+return m_upperLimit; #endif-	}+}  -	btScalar getHingeAngle();+btScalar getHingeAngle(); -	btScalar getHingeAngle(const btTransform& transA,const btTransform& transB);+btScalar getHingeAngle(const btTransform& transA,const btTransform& transB); -	void testLimit(const btTransform& transA,const btTransform& transB);+void testLimit(const btTransform& transA,const btTransform& transB);  -	const btTransform& getAFrame() const { return m_rbAFrame; };	-	const btTransform& getBFrame() const { return m_rbBFrame; };+const btTransform& getAFrame() const { return m_rbAFrame; };+const btTransform& getBFrame() const { return m_rbBFrame; }; -	btTransform& getAFrame() { return m_rbAFrame; };	-	btTransform& getBFrame() { return m_rbBFrame; };+btTransform& getAFrame() { return m_rbAFrame; };+btTransform& getBFrame() { return m_rbBFrame; }; -	inline int getSolveLimit()-	{-#ifdef	_BT_USE_CENTER_LIMIT_-	return m_limit.isLimit();+inline int getSolveLimit()+{+#ifdef _BT_USE_CENTER_LIMIT_+return m_limit.isLimit(); #else-	return m_solveLimit;+return m_solveLimit; #endif-	}+} -	inline btScalar getLimitSign()-	{-#ifdef	_BT_USE_CENTER_LIMIT_-	return m_limit.getSign();+inline btScalar getLimitSign()+{+#ifdef _BT_USE_CENTER_LIMIT_+return m_limit.getSign(); #else-		return m_limitSign;+return m_limitSign; #endif-	}+} -	inline bool getAngularOnly() -	{ -		return m_angularOnly; -	}-	inline bool getEnableAngularMotor() -	{ -		return m_enableAngularMotor; -	}-	inline btScalar getMotorTargetVelosity() -	{ -		return m_motorTargetVelocity; -	}-	inline btScalar getMaxMotorImpulse() -	{ -		return m_maxMotorImpulse; -	}-	// access for UseFrameOffset-	bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }-	void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }+inline bool getAngularOnly()+{+return m_angularOnly;+}+inline bool getEnableAngularMotor()+{+return m_enableAngularMotor;+}+inline btScalar getMotorTargetVelosity()+{+return m_motorTargetVelocity;+}+inline btScalar getMaxMotorImpulse()+{+return m_maxMotorImpulse;+}+// access for UseFrameOffset+bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }+void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }  -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void	setParam(int num, btScalar value, int axis = -1);-	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const;+///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1);+///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const; -	virtual	int	calculateSerializeBufferSize() const;+virtual int calculateSerializeBufferSize() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;   };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btHingeConstraintDoubleData+struct btHingeConstraintDoubleData {-	btTypedConstraintData	m_typeConstraintData;-	btTransformDoubleData m_rbAFrame; // constraint axii. Assumes z is hinge axis.-	btTransformDoubleData m_rbBFrame;-	int			m_useReferenceFrameA;-	int			m_angularOnly;-	int			m_enableAngularMotor;-	float	m_motorTargetVelocity;-	float	m_maxMotorImpulse;+btTypedConstraintData m_typeConstraintData;+btTransformDoubleData m_rbAFrame; // constraint axii. Assumes z is hinge axis.+btTransformDoubleData m_rbBFrame;+int m_useReferenceFrameA;+int m_angularOnly;+int m_enableAngularMotor;+float m_motorTargetVelocity;+float m_maxMotorImpulse; -	float	m_lowerLimit;-	float	m_upperLimit;-	float	m_limitSoftness;-	float	m_biasFactor;-	float	m_relaxationFactor;+float m_lowerLimit;+float m_upperLimit;+float m_limitSoftness;+float m_biasFactor;+float m_relaxationFactor;  }; ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btHingeConstraintFloatData+struct btHingeConstraintFloatData {-	btTypedConstraintData	m_typeConstraintData;-	btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.-	btTransformFloatData m_rbBFrame;-	int			m_useReferenceFrameA;-	int			m_angularOnly;-	-	int			m_enableAngularMotor;-	float	m_motorTargetVelocity;-	float	m_maxMotorImpulse;+btTypedConstraintData m_typeConstraintData;+btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.+btTransformFloatData m_rbBFrame;+int m_useReferenceFrameA;+int m_angularOnly; -	float	m_lowerLimit;-	float	m_upperLimit;-	float	m_limitSoftness;-	float	m_biasFactor;-	float	m_relaxationFactor;+int m_enableAngularMotor;+float m_motorTargetVelocity;+float m_maxMotorImpulse; +float m_lowerLimit;+float m_upperLimit;+float m_limitSoftness;+float m_biasFactor;+float m_relaxationFactor;+ };   -SIMD_FORCE_INLINE	int	btHingeConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btHingeConstraint::calculateSerializeBufferSize() const {-	return sizeof(btHingeConstraintData);+return sizeof(btHingeConstraintData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btHingeConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btHingeConstraint::serialize(void* dataBuffer, btSerializer* serializer) const {-	btHingeConstraintData* hingeData = (btHingeConstraintData*)dataBuffer;-	btTypedConstraint::serialize(&hingeData->m_typeConstraintData,serializer);+btHingeConstraintData* hingeData = (btHingeConstraintData*)dataBuffer;+btTypedConstraint::serialize(&hingeData->m_typeConstraintData,serializer); -	m_rbAFrame.serialize(hingeData->m_rbAFrame);-	m_rbBFrame.serialize(hingeData->m_rbBFrame);+m_rbAFrame.serialize(hingeData->m_rbAFrame);+m_rbBFrame.serialize(hingeData->m_rbBFrame); -	hingeData->m_angularOnly = m_angularOnly;-	hingeData->m_enableAngularMotor = m_enableAngularMotor;-	hingeData->m_maxMotorImpulse = float(m_maxMotorImpulse);-	hingeData->m_motorTargetVelocity = float(m_motorTargetVelocity);-	hingeData->m_useReferenceFrameA = m_useReferenceFrameA;-#ifdef	_BT_USE_CENTER_LIMIT_-	hingeData->m_lowerLimit = float(m_limit.getLow());-	hingeData->m_upperLimit = float(m_limit.getHigh());-	hingeData->m_limitSoftness = float(m_limit.getSoftness());-	hingeData->m_biasFactor = float(m_limit.getBiasFactor());-	hingeData->m_relaxationFactor = float(m_limit.getRelaxationFactor());+hingeData->m_angularOnly = m_angularOnly;+hingeData->m_enableAngularMotor = m_enableAngularMotor;+hingeData->m_maxMotorImpulse = float(m_maxMotorImpulse);+hingeData->m_motorTargetVelocity = float(m_motorTargetVelocity);+hingeData->m_useReferenceFrameA = m_useReferenceFrameA;+#ifdef _BT_USE_CENTER_LIMIT_+hingeData->m_lowerLimit = float(m_limit.getLow());+hingeData->m_upperLimit = float(m_limit.getHigh());+hingeData->m_limitSoftness = float(m_limit.getSoftness());+hingeData->m_biasFactor = float(m_limit.getBiasFactor());+hingeData->m_relaxationFactor = float(m_limit.getRelaxationFactor()); #else-	hingeData->m_lowerLimit = float(m_lowerLimit);-	hingeData->m_upperLimit = float(m_upperLimit);-	hingeData->m_limitSoftness = float(m_limitSoftness);-	hingeData->m_biasFactor = float(m_biasFactor);-	hingeData->m_relaxationFactor = float(m_relaxationFactor);+hingeData->m_lowerLimit = float(m_lowerLimit);+hingeData->m_upperLimit = float(m_upperLimit);+hingeData->m_limitSoftness = float(m_limitSoftness);+hingeData->m_biasFactor = float(m_biasFactor);+hingeData->m_relaxationFactor = float(m_relaxationFactor); #endif -	return btHingeConstraintDataName;+return btHingeConstraintDataName; }  #endif //BT_HINGECONSTRAINT_H
bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,127 +29,127 @@ /// it can be used in combination with a constraint solver /// Can be used to relate the effect of an impulse to the constraint error ATTRIBUTE_ALIGNED16(class) btJacobianEntry-{+{ private: public:-	btJacobianEntry() {};-	//constraint between two different rigidbodies-	btJacobianEntry(-		const btMatrix3x3& world2A,-		const btMatrix3x3& world2B,-		const btVector3& rel_pos1,const btVector3& rel_pos2,-		const btVector3& jointAxis,-		const btVector3& inertiaInvA, -		const btScalar massInvA,-		const btVector3& inertiaInvB,-		const btScalar massInvB)-		:m_linearJointAxis(jointAxis)-	{-		m_aJ = world2A*(rel_pos1.cross(m_linearJointAxis));-		m_bJ = world2B*(rel_pos2.cross(-m_linearJointAxis));-		m_0MinvJt	= inertiaInvA * m_aJ;-		m_1MinvJt = inertiaInvB * m_bJ;-		m_Adiag = massInvA + m_0MinvJt.dot(m_aJ) + massInvB + m_1MinvJt.dot(m_bJ);+btJacobianEntry() {};+//constraint between two different rigidbodies+btJacobianEntry(+const btMatrix3x3& world2A,+const btMatrix3x3& world2B,+const btVector3& rel_pos1,const btVector3& rel_pos2,+const btVector3& jointAxis,+const btVector3& inertiaInvA,+const btScalar massInvA,+const btVector3& inertiaInvB,+const btScalar massInvB)+:m_linearJointAxis(jointAxis)+{+m_aJ = world2A*(rel_pos1.cross(m_linearJointAxis));+m_bJ = world2B*(rel_pos2.cross(-m_linearJointAxis));+m_0MinvJt = inertiaInvA * m_aJ;+m_1MinvJt = inertiaInvB * m_bJ;+m_Adiag = massInvA + m_0MinvJt.dot(m_aJ) + massInvB + m_1MinvJt.dot(m_bJ); -		btAssert(m_Adiag > btScalar(0.0));-	}+btAssert(m_Adiag > btScalar(0.0));+} -	//angular constraint between two different rigidbodies-	btJacobianEntry(const btVector3& jointAxis,-		const btMatrix3x3& world2A,-		const btMatrix3x3& world2B,-		const btVector3& inertiaInvA,-		const btVector3& inertiaInvB)-		:m_linearJointAxis(btVector3(btScalar(0.),btScalar(0.),btScalar(0.)))-	{-		m_aJ= world2A*jointAxis;-		m_bJ = world2B*-jointAxis;-		m_0MinvJt	= inertiaInvA * m_aJ;-		m_1MinvJt = inertiaInvB * m_bJ;-		m_Adiag =  m_0MinvJt.dot(m_aJ) + m_1MinvJt.dot(m_bJ);+//angular constraint between two different rigidbodies+btJacobianEntry(const btVector3& jointAxis,+const btMatrix3x3& world2A,+const btMatrix3x3& world2B,+const btVector3& inertiaInvA,+const btVector3& inertiaInvB)+:m_linearJointAxis(btVector3(btScalar(0.),btScalar(0.),btScalar(0.)))+{+m_aJ= world2A*jointAxis;+m_bJ = world2B*-jointAxis;+m_0MinvJt = inertiaInvA * m_aJ;+m_1MinvJt = inertiaInvB * m_bJ;+m_Adiag = m_0MinvJt.dot(m_aJ) + m_1MinvJt.dot(m_bJ); -		btAssert(m_Adiag > btScalar(0.0));-	}+btAssert(m_Adiag > btScalar(0.0));+} -	//angular constraint between two different rigidbodies-	btJacobianEntry(const btVector3& axisInA,-		const btVector3& axisInB,-		const btVector3& inertiaInvA,-		const btVector3& inertiaInvB)-		: m_linearJointAxis(btVector3(btScalar(0.),btScalar(0.),btScalar(0.)))-		, m_aJ(axisInA)-		, m_bJ(-axisInB)-	{-		m_0MinvJt	= inertiaInvA * m_aJ;-		m_1MinvJt = inertiaInvB * m_bJ;-		m_Adiag =  m_0MinvJt.dot(m_aJ) + m_1MinvJt.dot(m_bJ);+//angular constraint between two different rigidbodies+btJacobianEntry(const btVector3& axisInA,+const btVector3& axisInB,+const btVector3& inertiaInvA,+const btVector3& inertiaInvB)+: m_linearJointAxis(btVector3(btScalar(0.),btScalar(0.),btScalar(0.)))+, m_aJ(axisInA)+, m_bJ(-axisInB)+{+m_0MinvJt = inertiaInvA * m_aJ;+m_1MinvJt = inertiaInvB * m_bJ;+m_Adiag = m_0MinvJt.dot(m_aJ) + m_1MinvJt.dot(m_bJ); -		btAssert(m_Adiag > btScalar(0.0));-	}+btAssert(m_Adiag > btScalar(0.0));+} -	//constraint on one rigidbody-	btJacobianEntry(-		const btMatrix3x3& world2A,-		const btVector3& rel_pos1,const btVector3& rel_pos2,-		const btVector3& jointAxis,-		const btVector3& inertiaInvA, -		const btScalar massInvA)-		:m_linearJointAxis(jointAxis)-	{-		m_aJ= world2A*(rel_pos1.cross(jointAxis));-		m_bJ = world2A*(rel_pos2.cross(-jointAxis));-		m_0MinvJt	= inertiaInvA * m_aJ;-		m_1MinvJt = btVector3(btScalar(0.),btScalar(0.),btScalar(0.));-		m_Adiag = massInvA + m_0MinvJt.dot(m_aJ);+//constraint on one rigidbody+btJacobianEntry(+const btMatrix3x3& world2A,+const btVector3& rel_pos1,const btVector3& rel_pos2,+const btVector3& jointAxis,+const btVector3& inertiaInvA,+const btScalar massInvA)+:m_linearJointAxis(jointAxis)+{+m_aJ= world2A*(rel_pos1.cross(jointAxis));+m_bJ = world2A*(rel_pos2.cross(-jointAxis));+m_0MinvJt = inertiaInvA * m_aJ;+m_1MinvJt = btVector3(btScalar(0.),btScalar(0.),btScalar(0.));+m_Adiag = massInvA + m_0MinvJt.dot(m_aJ); -		btAssert(m_Adiag > btScalar(0.0));-	}+btAssert(m_Adiag > btScalar(0.0));+} -	btScalar	getDiagonal() const { return m_Adiag; }+btScalar getDiagonal() const { return m_Adiag; } -	// for two constraints on the same rigidbody (for example vehicle friction)-	btScalar	getNonDiagonal(const btJacobianEntry& jacB, const btScalar massInvA) const-	{-		const btJacobianEntry& jacA = *this;-		btScalar lin = massInvA * jacA.m_linearJointAxis.dot(jacB.m_linearJointAxis);-		btScalar ang = jacA.m_0MinvJt.dot(jacB.m_aJ);-		return lin + ang;-	}+// for two constraints on the same rigidbody (for example vehicle friction)+btScalar getNonDiagonal(const btJacobianEntry& jacB, const btScalar massInvA) const+{+const btJacobianEntry& jacA = *this;+btScalar lin = massInvA * jacA.m_linearJointAxis.dot(jacB.m_linearJointAxis);+btScalar ang = jacA.m_0MinvJt.dot(jacB.m_aJ);+return lin + ang;+} -	 -	// for two constraints on sharing two same rigidbodies (for example two contact points between two rigidbodies)-	btScalar	getNonDiagonal(const btJacobianEntry& jacB,const btScalar massInvA,const btScalar massInvB) const-	{-		const btJacobianEntry& jacA = *this;-		btVector3 lin = jacA.m_linearJointAxis * jacB.m_linearJointAxis;-		btVector3 ang0 = jacA.m_0MinvJt * jacB.m_aJ;-		btVector3 ang1 = jacA.m_1MinvJt * jacB.m_bJ;-		btVector3 lin0 = massInvA * lin ;-		btVector3 lin1 = massInvB * lin;-		btVector3 sum = ang0+ang1+lin0+lin1;-		return sum[0]+sum[1]+sum[2];-	} -	btScalar getRelativeVelocity(const btVector3& linvelA,const btVector3& angvelA,const btVector3& linvelB,const btVector3& angvelB)-	{-		btVector3 linrel = linvelA - linvelB;-		btVector3 angvela  = angvelA * m_aJ;-		btVector3 angvelb  = angvelB * m_bJ;-		linrel *= m_linearJointAxis;-		angvela += angvelb;-		angvela += linrel;-		btScalar rel_vel2 = angvela[0]+angvela[1]+angvela[2];-		return rel_vel2 + SIMD_EPSILON;-	}+// for two constraints on sharing two same rigidbodies (for example two contact points between two rigidbodies)+btScalar getNonDiagonal(const btJacobianEntry& jacB,const btScalar massInvA,const btScalar massInvB) const+{+const btJacobianEntry& jacA = *this;+btVector3 lin = jacA.m_linearJointAxis * jacB.m_linearJointAxis;+btVector3 ang0 = jacA.m_0MinvJt * jacB.m_aJ;+btVector3 ang1 = jacA.m_1MinvJt * jacB.m_bJ;+btVector3 lin0 = massInvA * lin ;+btVector3 lin1 = massInvB * lin;+btVector3 sum = ang0+ang1+lin0+lin1;+return sum[0]+sum[1]+sum[2];+}++btScalar getRelativeVelocity(const btVector3& linvelA,const btVector3& angvelA,const btVector3& linvelB,const btVector3& angvelB)+{+btVector3 linrel = linvelA - linvelB;+btVector3 angvela = angvelA * m_aJ;+btVector3 angvelb = angvelB * m_bJ;+linrel *= m_linearJointAxis;+angvela += angvelb;+angvela += linrel;+btScalar rel_vel2 = angvela[0]+angvela[1]+angvela[2];+return rel_vel2 + SIMD_EPSILON;+} //private: -	btVector3	m_linearJointAxis;-	btVector3	m_aJ;-	btVector3	m_bJ;-	btVector3	m_0MinvJt;-	btVector3	m_1MinvJt;-	//Optimization: can be stored in the w/last component of one of the vectors-	btScalar	m_Adiag;+btVector3 m_linearJointAxis;+btVector3 m_aJ;+btVector3 m_bJ;+btVector3 m_0MinvJt;+btVector3 m_1MinvJt;+//Optimization: can be stored in the w/last component of one of the vectors+btScalar m_Adiag;  }; 
bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,138 +24,138 @@   #ifdef BT_USE_DOUBLE_PRECISION-#define btPoint2PointConstraintData	btPoint2PointConstraintDoubleData-#define btPoint2PointConstraintDataName	"btPoint2PointConstraintDoubleData"+#define btPoint2PointConstraintData btPoint2PointConstraintDoubleData+#define btPoint2PointConstraintDataName "btPoint2PointConstraintDoubleData" #else-#define btPoint2PointConstraintData	btPoint2PointConstraintFloatData-#define btPoint2PointConstraintDataName	"btPoint2PointConstraintFloatData"+#define btPoint2PointConstraintData btPoint2PointConstraintFloatData+#define btPoint2PointConstraintDataName "btPoint2PointConstraintFloatData" #endif //BT_USE_DOUBLE_PRECISION -struct	btConstraintSetting+struct btConstraintSetting {-	btConstraintSetting()	:-		m_tau(btScalar(0.3)),-		m_damping(btScalar(1.)),-		m_impulseClamp(btScalar(0.))-	{-	}-	btScalar		m_tau;-	btScalar		m_damping;-	btScalar		m_impulseClamp;+btConstraintSetting() :+m_tau(btScalar(0.3)),+m_damping(btScalar(1.)),+m_impulseClamp(btScalar(0.))+{+}+btScalar m_tau;+btScalar m_damping;+btScalar m_impulseClamp; };  enum btPoint2PointFlags {-	BT_P2P_FLAGS_ERP = 1,-	BT_P2P_FLAGS_CFM = 2+BT_P2P_FLAGS_ERP = 1,+BT_P2P_FLAGS_CFM = 2 };  /// point to point constraint between two rigidbodies each with a pivotpoint that descibes the 'ballsocket' location in local space ATTRIBUTE_ALIGNED16(class) btPoint2PointConstraint : public btTypedConstraint-{+{ private: #ifdef IN_PARALLELL_SOLVER public: #endif-	btJacobianEntry	m_jac[3]; //3 orthogonal linear constraints-	-	btVector3	m_pivotInA;-	btVector3	m_pivotInB;-	-	int			m_flags;-	btScalar	m_erp;-	btScalar	m_cfm;-	+btJacobianEntry m_jac[3]; //3 orthogonal linear constraints++btVector3 m_pivotInA;+btVector3 m_pivotInB;++int m_flags;+btScalar m_erp;+btScalar m_cfm;+ public: -	///for backwards compatibility during the transition to 'getInfo/getInfo2'-	bool		m_useSolveConstraintObsolete;+///for backwards compatibility during the transition to 'getInfo/getInfo2'+bool m_useSolveConstraintObsolete; -	btConstraintSetting	m_setting;+btConstraintSetting m_setting; -	btPoint2PointConstraint(btRigidBody& rbA,btRigidBody& rbB, const btVector3& pivotInA,const btVector3& pivotInB);+btPoint2PointConstraint(btRigidBody& rbA,btRigidBody& rbB, const btVector3& pivotInA,const btVector3& pivotInB); -	btPoint2PointConstraint(btRigidBody& rbA,const btVector3& pivotInA);+btPoint2PointConstraint(btRigidBody& rbA,const btVector3& pivotInA);  -	virtual void	buildJacobian();+virtual void buildJacobian(); -	virtual void getInfo1 (btConstraintInfo1* info);+virtual void getInfo1 (btConstraintInfo1* info); -	void getInfo1NonVirtual (btConstraintInfo1* info);+void getInfo1NonVirtual (btConstraintInfo1* info); -	virtual void getInfo2 (btConstraintInfo2* info);+virtual void getInfo2 (btConstraintInfo2* info); -	void getInfo2NonVirtual (btConstraintInfo2* info, const btTransform& body0_trans, const btTransform& body1_trans);+void getInfo2NonVirtual (btConstraintInfo2* info, const btTransform& body0_trans, const btTransform& body1_trans); -	void	updateRHS(btScalar	timeStep);+void updateRHS(btScalar timeStep); -	void	setPivotA(const btVector3& pivotA)-	{-		m_pivotInA = pivotA;-	}+void setPivotA(const btVector3& pivotA)+{+m_pivotInA = pivotA;+} -	void	setPivotB(const btVector3& pivotB)-	{-		m_pivotInB = pivotB;-	}+void setPivotB(const btVector3& pivotB)+{+m_pivotInB = pivotB;+} -	const btVector3& getPivotInA() const-	{-		return m_pivotInA;-	}+const btVector3& getPivotInA() const+{+return m_pivotInA;+} -	const btVector3& getPivotInB() const-	{-		return m_pivotInB;-	}+const btVector3& getPivotInB() const+{+return m_pivotInB;+} -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void	setParam(int num, btScalar value, int axis = -1);-	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const;+///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1);+///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const; -	virtual	int	calculateSerializeBufferSize() const;+virtual int calculateSerializeBufferSize() const; -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;   };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btPoint2PointConstraintFloatData+struct btPoint2PointConstraintFloatData {-	btTypedConstraintData	m_typeConstraintData;-	btVector3FloatData	m_pivotInA;-	btVector3FloatData	m_pivotInB;+btTypedConstraintData m_typeConstraintData;+btVector3FloatData m_pivotInA;+btVector3FloatData m_pivotInB; };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btPoint2PointConstraintDoubleData+struct btPoint2PointConstraintDoubleData {-	btTypedConstraintData	m_typeConstraintData;-	btVector3DoubleData	m_pivotInA;-	btVector3DoubleData	m_pivotInB;+btTypedConstraintData m_typeConstraintData;+btVector3DoubleData m_pivotInA;+btVector3DoubleData m_pivotInB; };  -SIMD_FORCE_INLINE	int	btPoint2PointConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btPoint2PointConstraint::calculateSerializeBufferSize() const {-	return sizeof(btPoint2PointConstraintData);+return sizeof(btPoint2PointConstraintData);  } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btPoint2PointConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btPoint2PointConstraint::serialize(void* dataBuffer, btSerializer* serializer) const {-	btPoint2PointConstraintData* p2pData = (btPoint2PointConstraintData*)dataBuffer;+btPoint2PointConstraintData* p2pData = (btPoint2PointConstraintData*)dataBuffer; -	btTypedConstraint::serialize(&p2pData->m_typeConstraintData,serializer);-	m_pivotInA.serialize(p2pData->m_pivotInA);-	m_pivotInB.serialize(p2pData->m_pivotInB);+btTypedConstraint::serialize(&p2pData->m_typeConstraintData,serializer);+m_pivotInA.serialize(p2pData->m_pivotInA);+m_pivotInB.serialize(p2pData->m_pivotInB); -	return btPoint2PointConstraintDataName;+return btPoint2PointConstraintDataName; }  #endif //BT_POINT2POINTCONSTRAINT_H
bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,96 +26,96 @@  ///The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method. class btSequentialImpulseConstraintSolver : public btConstraintSolver-{+{ private: protected: -	btConstraintArray			m_tmpSolverContactConstraintPool;-	btConstraintArray			m_tmpSolverNonContactConstraintPool;-	btConstraintArray			m_tmpSolverContactFrictionConstraintPool;-	btAlignedObjectArray<int>	m_orderTmpConstraintPool;-	btAlignedObjectArray<int>	m_orderFrictionConstraintPool;-	btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> m_tmpConstraintSizesPool;+btConstraintArray m_tmpSolverContactConstraintPool;+btConstraintArray m_tmpSolverNonContactConstraintPool;+btConstraintArray m_tmpSolverContactFrictionConstraintPool;+btAlignedObjectArray<int> m_orderTmpConstraintPool;+btAlignedObjectArray<int> m_orderFrictionConstraintPool;+btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> m_tmpConstraintSizesPool; -	void setupFrictionConstraint(	btSolverConstraint& solverConstraint, const btVector3& normalAxis,btRigidBody* solverBodyA,btRigidBody* solverBodyIdB,-									btManifoldPoint& cp,const btVector3& rel_pos1,const btVector3& rel_pos2,-									btCollisionObject* colObj0,btCollisionObject* colObj1, btScalar relaxation, -									btScalar desiredVelocity=0., btScalar cfmSlip=0.);+void setupFrictionConstraint( btSolverConstraint& solverConstraint, const btVector3& normalAxis,btRigidBody* solverBodyA,btRigidBody* solverBodyIdB,+btManifoldPoint& cp,const btVector3& rel_pos1,const btVector3& rel_pos2,+btCollisionObject* colObj0,btCollisionObject* colObj1, btScalar relaxation,+btScalar desiredVelocity=0., btScalar cfmSlip=0.); -	btSolverConstraint&	addFrictionConstraint(const btVector3& normalAxis,btRigidBody* solverBodyA,btRigidBody* solverBodyB,int frictionIndex,btManifoldPoint& cp,const btVector3& rel_pos1,const btVector3& rel_pos2,btCollisionObject* colObj0,btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity=0., btScalar cfmSlip=0.);-	-	void setupContactConstraint(btSolverConstraint& solverConstraint, btCollisionObject* colObj0, btCollisionObject* colObj1, btManifoldPoint& cp, -								const btContactSolverInfo& infoGlobal, btVector3& vel, btScalar& rel_vel, btScalar& relaxation, -								btVector3& rel_pos1, btVector3& rel_pos2);+btSolverConstraint& addFrictionConstraint(const btVector3& normalAxis,btRigidBody* solverBodyA,btRigidBody* solverBodyB,int frictionIndex,btManifoldPoint& cp,const btVector3& rel_pos1,const btVector3& rel_pos2,btCollisionObject* colObj0,btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity=0., btScalar cfmSlip=0.); -	void setFrictionConstraintImpulse( btSolverConstraint& solverConstraint, btRigidBody* rb0, btRigidBody* rb1, -										 btManifoldPoint& cp, const btContactSolverInfo& infoGlobal);+void setupContactConstraint(btSolverConstraint& solverConstraint, btCollisionObject* colObj0, btCollisionObject* colObj1, btManifoldPoint& cp,+const btContactSolverInfo& infoGlobal, btVector3& vel, btScalar& rel_vel, btScalar& relaxation,+btVector3& rel_pos1, btVector3& rel_pos2); -	///m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction-	unsigned long	m_btSeed2;+void setFrictionConstraintImpulse( btSolverConstraint& solverConstraint, btRigidBody* rb0, btRigidBody* rb1,+btManifoldPoint& cp, const btContactSolverInfo& infoGlobal); -//	void	initSolverBody(btSolverBody* solverBody, btCollisionObject* collisionObject);-	btScalar restitutionCurve(btScalar rel_vel, btScalar restitution);+///m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction+unsigned long m_btSeed2; -	void	convertContact(btPersistentManifold* manifold,const btContactSolverInfo& infoGlobal);+// void initSolverBody(btSolverBody* solverBody, btCollisionObject* collisionObject);+btScalar restitutionCurve(btScalar rel_vel, btScalar restitution); +void convertContact(btPersistentManifold* manifold,const btContactSolverInfo& infoGlobal); -	void	resolveSplitPenetrationSIMD(-        btRigidBody& body1,-        btRigidBody& body2,-        const btSolverConstraint& contactConstraint); -	void	resolveSplitPenetrationImpulseCacheFriendly(-        btRigidBody& body1,-        btRigidBody& body2,-        const btSolverConstraint& contactConstraint);+void resolveSplitPenetrationSIMD(+btRigidBody& body1,+btRigidBody& body2,+const btSolverConstraint& contactConstraint); -	//internal method-	int	getOrInitSolverBody(btCollisionObject& body);+void resolveSplitPenetrationImpulseCacheFriendly(+btRigidBody& body1,+btRigidBody& body2,+const btSolverConstraint& contactConstraint); -	void	resolveSingleConstraintRowGeneric(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);+//internal method+int getOrInitSolverBody(btCollisionObject& body); -	void	resolveSingleConstraintRowGenericSIMD(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);-	-	void	resolveSingleConstraintRowLowerLimit(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);-	-	void	resolveSingleConstraintRowLowerLimitSIMD(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);-		+void resolveSingleConstraintRowGeneric(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);++void resolveSingleConstraintRowGenericSIMD(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);++void resolveSingleConstraintRowLowerLimit(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);++void resolveSingleConstraintRowLowerLimitSIMD(btRigidBody& body1,btRigidBody& body2,const btSolverConstraint& contactConstraint);+ protected:-	static btRigidBody& getFixedBody();-	-	virtual void solveGroupCacheFriendlySplitImpulseIterations(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);-	virtual btScalar solveGroupCacheFriendlyFinish(btCollisionObject** bodies ,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);-	btScalar solveSingleIteration(int iteration, btCollisionObject** bodies ,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);+static btRigidBody& getFixedBody(); -	virtual btScalar solveGroupCacheFriendlySetup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);-	virtual btScalar solveGroupCacheFriendlyIterations(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);+virtual void solveGroupCacheFriendlySplitImpulseIterations(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);+virtual btScalar solveGroupCacheFriendlyFinish(btCollisionObject** bodies ,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);+btScalar solveSingleIteration(int iteration, btCollisionObject** bodies ,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc); +virtual btScalar solveGroupCacheFriendlySetup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc);+virtual btScalar solveGroupCacheFriendlyIterations(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifoldPtr, int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& infoGlobal,btIDebugDraw* debugDrawer,btStackAlloc* stackAlloc); + public: -	-	btSequentialImpulseConstraintSolver();-	virtual ~btSequentialImpulseConstraintSolver(); -	virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& info, btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher);-	+btSequentialImpulseConstraintSolver();+virtual ~btSequentialImpulseConstraintSolver(); -	-	///clear internal cached data and reset random seed-	virtual	void	reset();-	-	unsigned long btRand2();+virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& info, btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher); -	int btRandInt2 (int n); -	void	setRandSeed(unsigned long seed)-	{-		m_btSeed2 = seed;-	}-	unsigned long	getRandSeed() const-	{-		return m_btSeed2;-	}++///clear internal cached data and reset random seed+virtual void reset();++unsigned long btRand2();++int btRandInt2 (int n);++void setRandSeed(unsigned long seed)+{+m_btSeed2 = seed;+}+unsigned long getRandSeed() const+{+return m_btSeed2;+}  }; 
bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -18,8 +18,8 @@ April 04, 2008  TODO:- - add clamping od accumulated impulse to improve stability- - add conversion for ODE constraint solver+- add clamping od accumulated impulse to improve stability+- add conversion for ODE constraint solver */  #ifndef BT_SLIDER_CONSTRAINT_H@@ -37,294 +37,294 @@   -#define SLIDER_CONSTRAINT_DEF_SOFTNESS		(btScalar(1.0))-#define SLIDER_CONSTRAINT_DEF_DAMPING		(btScalar(1.0))-#define SLIDER_CONSTRAINT_DEF_RESTITUTION	(btScalar(0.7))-#define SLIDER_CONSTRAINT_DEF_CFM			(btScalar(0.f))+#define SLIDER_CONSTRAINT_DEF_SOFTNESS (btScalar(1.0))+#define SLIDER_CONSTRAINT_DEF_DAMPING (btScalar(1.0))+#define SLIDER_CONSTRAINT_DEF_RESTITUTION (btScalar(0.7))+#define SLIDER_CONSTRAINT_DEF_CFM (btScalar(0.f))   enum btSliderFlags {-	BT_SLIDER_FLAGS_CFM_DIRLIN = (1 << 0),-	BT_SLIDER_FLAGS_ERP_DIRLIN = (1 << 1),-	BT_SLIDER_FLAGS_CFM_DIRANG = (1 << 2),-	BT_SLIDER_FLAGS_ERP_DIRANG = (1 << 3),-	BT_SLIDER_FLAGS_CFM_ORTLIN = (1 << 4),-	BT_SLIDER_FLAGS_ERP_ORTLIN = (1 << 5),-	BT_SLIDER_FLAGS_CFM_ORTANG = (1 << 6),-	BT_SLIDER_FLAGS_ERP_ORTANG = (1 << 7),-	BT_SLIDER_FLAGS_CFM_LIMLIN = (1 << 8),-	BT_SLIDER_FLAGS_ERP_LIMLIN = (1 << 9),-	BT_SLIDER_FLAGS_CFM_LIMANG = (1 << 10),-	BT_SLIDER_FLAGS_ERP_LIMANG = (1 << 11)+BT_SLIDER_FLAGS_CFM_DIRLIN = (1 << 0),+BT_SLIDER_FLAGS_ERP_DIRLIN = (1 << 1),+BT_SLIDER_FLAGS_CFM_DIRANG = (1 << 2),+BT_SLIDER_FLAGS_ERP_DIRANG = (1 << 3),+BT_SLIDER_FLAGS_CFM_ORTLIN = (1 << 4),+BT_SLIDER_FLAGS_ERP_ORTLIN = (1 << 5),+BT_SLIDER_FLAGS_CFM_ORTANG = (1 << 6),+BT_SLIDER_FLAGS_ERP_ORTANG = (1 << 7),+BT_SLIDER_FLAGS_CFM_LIMLIN = (1 << 8),+BT_SLIDER_FLAGS_ERP_LIMLIN = (1 << 9),+BT_SLIDER_FLAGS_CFM_LIMANG = (1 << 10),+BT_SLIDER_FLAGS_ERP_LIMANG = (1 << 11) };   class btSliderConstraint : public btTypedConstraint-{+{ private: protected:-	///for backwards compatibility during the transition to 'getInfo/getInfo2'-	bool		m_useSolveConstraintObsolete;-	bool		m_useOffsetForConstraintFrame;-	btTransform	m_frameInA;-    btTransform	m_frameInB;-	// use frameA fo define limits, if true-	bool m_useLinearReferenceFrameA;-	// linear limits-	btScalar m_lowerLinLimit;-	btScalar m_upperLinLimit;-	// angular limits-	btScalar m_lowerAngLimit;-	btScalar m_upperAngLimit;-	// softness, restitution and damping for different cases-	// DirLin - moving inside linear limits-	// LimLin - hitting linear limit-	// DirAng - moving inside angular limits-	// LimAng - hitting angular limit-	// OrthoLin, OrthoAng - against constraint axis-	btScalar m_softnessDirLin;-	btScalar m_restitutionDirLin;-	btScalar m_dampingDirLin;-	btScalar m_cfmDirLin;+///for backwards compatibility during the transition to 'getInfo/getInfo2'+bool m_useSolveConstraintObsolete;+bool m_useOffsetForConstraintFrame;+btTransform m_frameInA;+btTransform m_frameInB;+// use frameA fo define limits, if true+bool m_useLinearReferenceFrameA;+// linear limits+btScalar m_lowerLinLimit;+btScalar m_upperLinLimit;+// angular limits+btScalar m_lowerAngLimit;+btScalar m_upperAngLimit;+// softness, restitution and damping for different cases+// DirLin - moving inside linear limits+// LimLin - hitting linear limit+// DirAng - moving inside angular limits+// LimAng - hitting angular limit+// OrthoLin, OrthoAng - against constraint axis+btScalar m_softnessDirLin;+btScalar m_restitutionDirLin;+btScalar m_dampingDirLin;+btScalar m_cfmDirLin; -	btScalar m_softnessDirAng;-	btScalar m_restitutionDirAng;-	btScalar m_dampingDirAng;-	btScalar m_cfmDirAng;+btScalar m_softnessDirAng;+btScalar m_restitutionDirAng;+btScalar m_dampingDirAng;+btScalar m_cfmDirAng; -	btScalar m_softnessLimLin;-	btScalar m_restitutionLimLin;-	btScalar m_dampingLimLin;-	btScalar m_cfmLimLin;+btScalar m_softnessLimLin;+btScalar m_restitutionLimLin;+btScalar m_dampingLimLin;+btScalar m_cfmLimLin; -	btScalar m_softnessLimAng;-	btScalar m_restitutionLimAng;-	btScalar m_dampingLimAng;-	btScalar m_cfmLimAng;+btScalar m_softnessLimAng;+btScalar m_restitutionLimAng;+btScalar m_dampingLimAng;+btScalar m_cfmLimAng; -	btScalar m_softnessOrthoLin;-	btScalar m_restitutionOrthoLin;-	btScalar m_dampingOrthoLin;-	btScalar m_cfmOrthoLin;+btScalar m_softnessOrthoLin;+btScalar m_restitutionOrthoLin;+btScalar m_dampingOrthoLin;+btScalar m_cfmOrthoLin; -	btScalar m_softnessOrthoAng;-	btScalar m_restitutionOrthoAng;-	btScalar m_dampingOrthoAng;-	btScalar m_cfmOrthoAng;-	-	// for interlal use-	bool m_solveLinLim;-	bool m_solveAngLim;+btScalar m_softnessOrthoAng;+btScalar m_restitutionOrthoAng;+btScalar m_dampingOrthoAng;+btScalar m_cfmOrthoAng; -	int m_flags;+// for interlal use+bool m_solveLinLim;+bool m_solveAngLim; -	btJacobianEntry	m_jacLin[3];-	btScalar		m_jacLinDiagABInv[3];+int m_flags; -    btJacobianEntry	m_jacAng[3];+btJacobianEntry m_jacLin[3];+btScalar m_jacLinDiagABInv[3]; -	btScalar m_timeStep;-    btTransform m_calculatedTransformA;-    btTransform m_calculatedTransformB;+btJacobianEntry m_jacAng[3]; -	btVector3 m_sliderAxis;-	btVector3 m_realPivotAInW;-	btVector3 m_realPivotBInW;-	btVector3 m_projPivotInW;-	btVector3 m_delta;-	btVector3 m_depth;-	btVector3 m_relPosA;-	btVector3 m_relPosB;+btScalar m_timeStep;+btTransform m_calculatedTransformA;+btTransform m_calculatedTransformB; -	btScalar m_linPos;-	btScalar m_angPos;+btVector3 m_sliderAxis;+btVector3 m_realPivotAInW;+btVector3 m_realPivotBInW;+btVector3 m_projPivotInW;+btVector3 m_delta;+btVector3 m_depth;+btVector3 m_relPosA;+btVector3 m_relPosB; -	btScalar m_angDepth;-	btScalar m_kAngle;+btScalar m_linPos;+btScalar m_angPos; -	bool	 m_poweredLinMotor;-    btScalar m_targetLinMotorVelocity;-    btScalar m_maxLinMotorForce;-    btScalar m_accumulatedLinMotorImpulse;-	-	bool	 m_poweredAngMotor;-    btScalar m_targetAngMotorVelocity;-    btScalar m_maxAngMotorForce;-    btScalar m_accumulatedAngMotorImpulse;+btScalar m_angDepth;+btScalar m_kAngle; -	//------------------------    -	void initParams();+bool m_poweredLinMotor;+btScalar m_targetLinMotorVelocity;+btScalar m_maxLinMotorForce;+btScalar m_accumulatedLinMotorImpulse;++bool m_poweredAngMotor;+btScalar m_targetAngMotorVelocity;+btScalar m_maxAngMotorForce;+btScalar m_accumulatedAngMotorImpulse;++//------------------------+void initParams(); public:-	// constructors-    btSliderConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);-    btSliderConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameA);+// constructors+btSliderConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA);+btSliderConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameA); -	// overrides+// overrides -    virtual void getInfo1 (btConstraintInfo1* info);+virtual void getInfo1 (btConstraintInfo1* info); -	void getInfo1NonVirtual(btConstraintInfo1* info);-	-	virtual void getInfo2 (btConstraintInfo2* info);+void getInfo1NonVirtual(btConstraintInfo1* info); -	void getInfo2NonVirtual(btConstraintInfo2* info, const btTransform& transA, const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB, btScalar rbAinvMass,btScalar rbBinvMass);+virtual void getInfo2 (btConstraintInfo2* info); +void getInfo2NonVirtual(btConstraintInfo2* info, const btTransform& transA, const btTransform& transB,const btVector3& linVelA,const btVector3& linVelB, btScalar rbAinvMass,btScalar rbBinvMass); -	// access-    const btRigidBody& getRigidBodyA() const { return m_rbA; }-    const btRigidBody& getRigidBodyB() const { return m_rbB; }-    const btTransform & getCalculatedTransformA() const { return m_calculatedTransformA; }-    const btTransform & getCalculatedTransformB() const { return m_calculatedTransformB; }-    const btTransform & getFrameOffsetA() const { return m_frameInA; }-    const btTransform & getFrameOffsetB() const { return m_frameInB; }-    btTransform & getFrameOffsetA() { return m_frameInA; }-    btTransform & getFrameOffsetB() { return m_frameInB; }-    btScalar getLowerLinLimit() { return m_lowerLinLimit; }-    void setLowerLinLimit(btScalar lowerLimit) { m_lowerLinLimit = lowerLimit; }-    btScalar getUpperLinLimit() { return m_upperLinLimit; }-    void setUpperLinLimit(btScalar upperLimit) { m_upperLinLimit = upperLimit; }-    btScalar getLowerAngLimit() { return m_lowerAngLimit; }-    void setLowerAngLimit(btScalar lowerLimit) { m_lowerAngLimit = btNormalizeAngle(lowerLimit); }-    btScalar getUpperAngLimit() { return m_upperAngLimit; }-    void setUpperAngLimit(btScalar upperLimit) { m_upperAngLimit = btNormalizeAngle(upperLimit); }-	bool getUseLinearReferenceFrameA() { return m_useLinearReferenceFrameA; }-	btScalar getSoftnessDirLin() { return m_softnessDirLin; }-	btScalar getRestitutionDirLin() { return m_restitutionDirLin; }-	btScalar getDampingDirLin() { return m_dampingDirLin ; }-	btScalar getSoftnessDirAng() { return m_softnessDirAng; }-	btScalar getRestitutionDirAng() { return m_restitutionDirAng; }-	btScalar getDampingDirAng() { return m_dampingDirAng; }-	btScalar getSoftnessLimLin() { return m_softnessLimLin; }-	btScalar getRestitutionLimLin() { return m_restitutionLimLin; }-	btScalar getDampingLimLin() { return m_dampingLimLin; }-	btScalar getSoftnessLimAng() { return m_softnessLimAng; }-	btScalar getRestitutionLimAng() { return m_restitutionLimAng; }-	btScalar getDampingLimAng() { return m_dampingLimAng; }-	btScalar getSoftnessOrthoLin() { return m_softnessOrthoLin; }-	btScalar getRestitutionOrthoLin() { return m_restitutionOrthoLin; }-	btScalar getDampingOrthoLin() { return m_dampingOrthoLin; }-	btScalar getSoftnessOrthoAng() { return m_softnessOrthoAng; }-	btScalar getRestitutionOrthoAng() { return m_restitutionOrthoAng; }-	btScalar getDampingOrthoAng() { return m_dampingOrthoAng; }-	void setSoftnessDirLin(btScalar softnessDirLin) { m_softnessDirLin = softnessDirLin; }-	void setRestitutionDirLin(btScalar restitutionDirLin) { m_restitutionDirLin = restitutionDirLin; }-	void setDampingDirLin(btScalar dampingDirLin) { m_dampingDirLin = dampingDirLin; }-	void setSoftnessDirAng(btScalar softnessDirAng) { m_softnessDirAng = softnessDirAng; }-	void setRestitutionDirAng(btScalar restitutionDirAng) { m_restitutionDirAng = restitutionDirAng; }-	void setDampingDirAng(btScalar dampingDirAng) { m_dampingDirAng = dampingDirAng; }-	void setSoftnessLimLin(btScalar softnessLimLin) { m_softnessLimLin = softnessLimLin; }-	void setRestitutionLimLin(btScalar restitutionLimLin) { m_restitutionLimLin = restitutionLimLin; }-	void setDampingLimLin(btScalar dampingLimLin) { m_dampingLimLin = dampingLimLin; }-	void setSoftnessLimAng(btScalar softnessLimAng) { m_softnessLimAng = softnessLimAng; }-	void setRestitutionLimAng(btScalar restitutionLimAng) { m_restitutionLimAng = restitutionLimAng; }-	void setDampingLimAng(btScalar dampingLimAng) { m_dampingLimAng = dampingLimAng; }-	void setSoftnessOrthoLin(btScalar softnessOrthoLin) { m_softnessOrthoLin = softnessOrthoLin; }-	void setRestitutionOrthoLin(btScalar restitutionOrthoLin) { m_restitutionOrthoLin = restitutionOrthoLin; }-	void setDampingOrthoLin(btScalar dampingOrthoLin) { m_dampingOrthoLin = dampingOrthoLin; }-	void setSoftnessOrthoAng(btScalar softnessOrthoAng) { m_softnessOrthoAng = softnessOrthoAng; }-	void setRestitutionOrthoAng(btScalar restitutionOrthoAng) { m_restitutionOrthoAng = restitutionOrthoAng; }-	void setDampingOrthoAng(btScalar dampingOrthoAng) { m_dampingOrthoAng = dampingOrthoAng; }-	void setPoweredLinMotor(bool onOff) { m_poweredLinMotor = onOff; }-	bool getPoweredLinMotor() { return m_poweredLinMotor; }-	void setTargetLinMotorVelocity(btScalar targetLinMotorVelocity) { m_targetLinMotorVelocity = targetLinMotorVelocity; }-	btScalar getTargetLinMotorVelocity() { return m_targetLinMotorVelocity; }-	void setMaxLinMotorForce(btScalar maxLinMotorForce) { m_maxLinMotorForce = maxLinMotorForce; }-	btScalar getMaxLinMotorForce() { return m_maxLinMotorForce; }-	void setPoweredAngMotor(bool onOff) { m_poweredAngMotor = onOff; }-	bool getPoweredAngMotor() { return m_poweredAngMotor; }-	void setTargetAngMotorVelocity(btScalar targetAngMotorVelocity) { m_targetAngMotorVelocity = targetAngMotorVelocity; }-	btScalar getTargetAngMotorVelocity() { return m_targetAngMotorVelocity; }-	void setMaxAngMotorForce(btScalar maxAngMotorForce) { m_maxAngMotorForce = maxAngMotorForce; }-	btScalar getMaxAngMotorForce() { return m_maxAngMotorForce; } -	btScalar getLinearPos() const { return m_linPos; }-	btScalar getAngularPos() const { return m_angPos; }-	-	+// access+const btRigidBody& getRigidBodyA() const { return m_rbA; }+const btRigidBody& getRigidBodyB() const { return m_rbB; }+const btTransform & getCalculatedTransformA() const { return m_calculatedTransformA; }+const btTransform & getCalculatedTransformB() const { return m_calculatedTransformB; }+const btTransform & getFrameOffsetA() const { return m_frameInA; }+const btTransform & getFrameOffsetB() const { return m_frameInB; }+btTransform & getFrameOffsetA() { return m_frameInA; }+btTransform & getFrameOffsetB() { return m_frameInB; }+btScalar getLowerLinLimit() { return m_lowerLinLimit; }+void setLowerLinLimit(btScalar lowerLimit) { m_lowerLinLimit = lowerLimit; }+btScalar getUpperLinLimit() { return m_upperLinLimit; }+void setUpperLinLimit(btScalar upperLimit) { m_upperLinLimit = upperLimit; }+btScalar getLowerAngLimit() { return m_lowerAngLimit; }+void setLowerAngLimit(btScalar lowerLimit) { m_lowerAngLimit = btNormalizeAngle(lowerLimit); }+btScalar getUpperAngLimit() { return m_upperAngLimit; }+void setUpperAngLimit(btScalar upperLimit) { m_upperAngLimit = btNormalizeAngle(upperLimit); }+bool getUseLinearReferenceFrameA() { return m_useLinearReferenceFrameA; }+btScalar getSoftnessDirLin() { return m_softnessDirLin; }+btScalar getRestitutionDirLin() { return m_restitutionDirLin; }+btScalar getDampingDirLin() { return m_dampingDirLin ; }+btScalar getSoftnessDirAng() { return m_softnessDirAng; }+btScalar getRestitutionDirAng() { return m_restitutionDirAng; }+btScalar getDampingDirAng() { return m_dampingDirAng; }+btScalar getSoftnessLimLin() { return m_softnessLimLin; }+btScalar getRestitutionLimLin() { return m_restitutionLimLin; }+btScalar getDampingLimLin() { return m_dampingLimLin; }+btScalar getSoftnessLimAng() { return m_softnessLimAng; }+btScalar getRestitutionLimAng() { return m_restitutionLimAng; }+btScalar getDampingLimAng() { return m_dampingLimAng; }+btScalar getSoftnessOrthoLin() { return m_softnessOrthoLin; }+btScalar getRestitutionOrthoLin() { return m_restitutionOrthoLin; }+btScalar getDampingOrthoLin() { return m_dampingOrthoLin; }+btScalar getSoftnessOrthoAng() { return m_softnessOrthoAng; }+btScalar getRestitutionOrthoAng() { return m_restitutionOrthoAng; }+btScalar getDampingOrthoAng() { return m_dampingOrthoAng; }+void setSoftnessDirLin(btScalar softnessDirLin) { m_softnessDirLin = softnessDirLin; }+void setRestitutionDirLin(btScalar restitutionDirLin) { m_restitutionDirLin = restitutionDirLin; }+void setDampingDirLin(btScalar dampingDirLin) { m_dampingDirLin = dampingDirLin; }+void setSoftnessDirAng(btScalar softnessDirAng) { m_softnessDirAng = softnessDirAng; }+void setRestitutionDirAng(btScalar restitutionDirAng) { m_restitutionDirAng = restitutionDirAng; }+void setDampingDirAng(btScalar dampingDirAng) { m_dampingDirAng = dampingDirAng; }+void setSoftnessLimLin(btScalar softnessLimLin) { m_softnessLimLin = softnessLimLin; }+void setRestitutionLimLin(btScalar restitutionLimLin) { m_restitutionLimLin = restitutionLimLin; }+void setDampingLimLin(btScalar dampingLimLin) { m_dampingLimLin = dampingLimLin; }+void setSoftnessLimAng(btScalar softnessLimAng) { m_softnessLimAng = softnessLimAng; }+void setRestitutionLimAng(btScalar restitutionLimAng) { m_restitutionLimAng = restitutionLimAng; }+void setDampingLimAng(btScalar dampingLimAng) { m_dampingLimAng = dampingLimAng; }+void setSoftnessOrthoLin(btScalar softnessOrthoLin) { m_softnessOrthoLin = softnessOrthoLin; }+void setRestitutionOrthoLin(btScalar restitutionOrthoLin) { m_restitutionOrthoLin = restitutionOrthoLin; }+void setDampingOrthoLin(btScalar dampingOrthoLin) { m_dampingOrthoLin = dampingOrthoLin; }+void setSoftnessOrthoAng(btScalar softnessOrthoAng) { m_softnessOrthoAng = softnessOrthoAng; }+void setRestitutionOrthoAng(btScalar restitutionOrthoAng) { m_restitutionOrthoAng = restitutionOrthoAng; }+void setDampingOrthoAng(btScalar dampingOrthoAng) { m_dampingOrthoAng = dampingOrthoAng; }+void setPoweredLinMotor(bool onOff) { m_poweredLinMotor = onOff; }+bool getPoweredLinMotor() { return m_poweredLinMotor; }+void setTargetLinMotorVelocity(btScalar targetLinMotorVelocity) { m_targetLinMotorVelocity = targetLinMotorVelocity; }+btScalar getTargetLinMotorVelocity() { return m_targetLinMotorVelocity; }+void setMaxLinMotorForce(btScalar maxLinMotorForce) { m_maxLinMotorForce = maxLinMotorForce; }+btScalar getMaxLinMotorForce() { return m_maxLinMotorForce; }+void setPoweredAngMotor(bool onOff) { m_poweredAngMotor = onOff; }+bool getPoweredAngMotor() { return m_poweredAngMotor; }+void setTargetAngMotorVelocity(btScalar targetAngMotorVelocity) { m_targetAngMotorVelocity = targetAngMotorVelocity; }+btScalar getTargetAngMotorVelocity() { return m_targetAngMotorVelocity; }+void setMaxAngMotorForce(btScalar maxAngMotorForce) { m_maxAngMotorForce = maxAngMotorForce; }+btScalar getMaxAngMotorForce() { return m_maxAngMotorForce; } -	// access for ODE solver-	bool getSolveLinLimit() { return m_solveLinLim; }-	btScalar getLinDepth() { return m_depth[0]; }-	bool getSolveAngLimit() { return m_solveAngLim; }-	btScalar getAngDepth() { return m_angDepth; }-	// shared code used by ODE solver-	void	calculateTransforms(const btTransform& transA,const btTransform& transB);-	void	testLinLimits();-	void	testAngLimits();-	// access for PE Solver-	btVector3 getAncorInA();-	btVector3 getAncorInB();-	// access for UseFrameOffset-	bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }-	void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; }+btScalar getLinearPos() const { return m_linPos; }+btScalar getAngularPos() const { return m_angPos; } -	void setFrames(const btTransform& frameA, const btTransform& frameB) -	{ -		m_frameInA=frameA; -		m_frameInB=frameB;-		calculateTransforms(m_rbA.getCenterOfMassTransform(),m_rbB.getCenterOfMassTransform());-		buildJacobian();-	}   -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void	setParam(int num, btScalar value, int axis = -1);-	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const;+// access for ODE solver+bool getSolveLinLimit() { return m_solveLinLim; }+btScalar getLinDepth() { return m_depth[0]; }+bool getSolveAngLimit() { return m_solveAngLim; }+btScalar getAngDepth() { return m_angDepth; }+// shared code used by ODE solver+void calculateTransforms(const btTransform& transA,const btTransform& transB);+void testLinLimits();+void testAngLimits();+// access for PE Solver+btVector3 getAncorInA();+btVector3 getAncorInB();+// access for UseFrameOffset+bool getUseFrameOffset() { return m_useOffsetForConstraintFrame; }+void setUseFrameOffset(bool frameOffsetOnOff) { m_useOffsetForConstraintFrame = frameOffsetOnOff; } -	virtual	int	calculateSerializeBufferSize() const;+void setFrames(const btTransform& frameA, const btTransform& frameB)+{+m_frameInA=frameA;+m_frameInB=frameB;+calculateTransforms(m_rbA.getCenterOfMassTransform(),m_rbB.getCenterOfMassTransform());+buildJacobian();+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const; +///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1);+///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const; +virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;++ };  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 struct btSliderConstraintData {-	btTypedConstraintData	m_typeConstraintData;-	btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.-	btTransformFloatData m_rbBFrame;-	-	float	m_linearUpperLimit;-	float	m_linearLowerLimit;+btTypedConstraintData m_typeConstraintData;+btTransformFloatData m_rbAFrame; // constraint axii. Assumes z is hinge axis.+btTransformFloatData m_rbBFrame; -	float	m_angularUpperLimit;-	float	m_angularLowerLimit;+float m_linearUpperLimit;+float m_linearLowerLimit; -	int	m_useLinearReferenceFrameA;-	int m_useOffsetForConstraintFrame;+float m_angularUpperLimit;+float m_angularLowerLimit; +int m_useLinearReferenceFrameA;+int m_useOffsetForConstraintFrame;+ };  -SIMD_FORCE_INLINE		int	btSliderConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btSliderConstraint::calculateSerializeBufferSize() const {-	return sizeof(btSliderConstraintData);+return sizeof(btSliderConstraintData); } -	///fills the dataBuffer and returns the struct name (and 0 on failure)-SIMD_FORCE_INLINE	const char*	btSliderConstraint::serialize(void* dataBuffer, btSerializer* serializer) const+///fills the dataBuffer and returns the struct name (and 0 on failure)+SIMD_FORCE_INLINE const char* btSliderConstraint::serialize(void* dataBuffer, btSerializer* serializer) const { -	btSliderConstraintData* sliderData = (btSliderConstraintData*) dataBuffer;-	btTypedConstraint::serialize(&sliderData->m_typeConstraintData,serializer);+btSliderConstraintData* sliderData = (btSliderConstraintData*) dataBuffer;+btTypedConstraint::serialize(&sliderData->m_typeConstraintData,serializer); -	m_frameInA.serializeFloat(sliderData->m_rbAFrame);-	m_frameInB.serializeFloat(sliderData->m_rbBFrame);+m_frameInA.serializeFloat(sliderData->m_rbAFrame);+m_frameInB.serializeFloat(sliderData->m_rbBFrame); -	sliderData->m_linearUpperLimit = float(m_upperLinLimit);-	sliderData->m_linearLowerLimit = float(m_lowerLinLimit);+sliderData->m_linearUpperLimit = float(m_upperLinLimit);+sliderData->m_linearLowerLimit = float(m_lowerLinLimit); -	sliderData->m_angularUpperLimit = float(m_upperAngLimit);-	sliderData->m_angularLowerLimit = float(m_lowerAngLimit);+sliderData->m_angularUpperLimit = float(m_upperAngLimit);+sliderData->m_angularLowerLimit = float(m_lowerAngLimit); -	sliderData->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA;-	sliderData->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame;+sliderData->m_useLinearReferenceFrameA = m_useLinearReferenceFrameA;+sliderData->m_useOffsetForConstraintFrame = m_useOffsetForConstraintFrame; -	return "btSliderConstraintData";+return "btSliderConstraintData"; }  
bullet/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,80 +25,80 @@   /// constraint class used for lateral tyre friction.-class	btSolve2LinearConstraint-{-	btScalar	m_tau;-	btScalar	m_damping;+class btSolve2LinearConstraint+{ private:+btScalar m_tau;+btScalar m_damping;  public: -	btSolve2LinearConstraint(btScalar tau,btScalar damping)-	{-		m_tau = tau;-		m_damping = damping;-	}-	//-	// solve unilateral constraint (equality, direct method)-	//-	void resolveUnilateralPairConstraint(		-														   btRigidBody* body0,-		btRigidBody* body1,+btSolve2LinearConstraint(btScalar tau,btScalar damping)+{+m_tau = tau;+m_damping = damping;+}+//+// solve unilateral constraint (equality, direct method)+//+void resolveUnilateralPairConstraint(+btRigidBody* body0,+btRigidBody* body1, -		const btMatrix3x3& world2A,-						const btMatrix3x3& world2B,-						-						const btVector3& invInertiaADiag,-						const btScalar invMassA,-						const btVector3& linvelA,const btVector3& angvelA,-						const btVector3& rel_posA1,-						const btVector3& invInertiaBDiag,-						const btScalar invMassB,-						const btVector3& linvelB,const btVector3& angvelB,-						const btVector3& rel_posA2,+const btMatrix3x3& world2A,+const btMatrix3x3& world2B, -					  btScalar depthA, const btVector3& normalA, -					  const btVector3& rel_posB1,const btVector3& rel_posB2,-					  btScalar depthB, const btVector3& normalB, -					  btScalar& imp0,btScalar& imp1);+const btVector3& invInertiaADiag,+const btScalar invMassA,+const btVector3& linvelA,const btVector3& angvelA,+const btVector3& rel_posA1,+const btVector3& invInertiaBDiag,+const btScalar invMassB,+const btVector3& linvelB,const btVector3& angvelB,+const btVector3& rel_posA2, +btScalar depthA, const btVector3& normalA,+const btVector3& rel_posB1,const btVector3& rel_posB2,+btScalar depthB, const btVector3& normalB,+btScalar& imp0,btScalar& imp1); -	//-	// solving 2x2 lcp problem (inequality, direct solution )-	//-	void resolveBilateralPairConstraint(-			btRigidBody* body0,-						btRigidBody* body1,-		const btMatrix3x3& world2A,-						const btMatrix3x3& world2B,-						-						const btVector3& invInertiaADiag,-						const btScalar invMassA,-						const btVector3& linvelA,const btVector3& angvelA,-						const btVector3& rel_posA1,-						const btVector3& invInertiaBDiag,-						const btScalar invMassB,-						const btVector3& linvelB,const btVector3& angvelB,-						const btVector3& rel_posA2, -					  btScalar depthA, const btVector3& normalA, -					  const btVector3& rel_posB1,const btVector3& rel_posB2,-					  btScalar depthB, const btVector3& normalB, -					  btScalar& imp0,btScalar& imp1);+//+// solving 2x2 lcp problem (inequality, direct solution )+//+void resolveBilateralPairConstraint(+btRigidBody* body0,+btRigidBody* body1,+const btMatrix3x3& world2A,+const btMatrix3x3& world2B, +const btVector3& invInertiaADiag,+const btScalar invMassA,+const btVector3& linvelA,const btVector3& angvelA,+const btVector3& rel_posA1,+const btVector3& invInertiaBDiag,+const btScalar invMassB,+const btVector3& linvelB,const btVector3& angvelB,+const btVector3& rel_posA2,++btScalar depthA, const btVector3& normalA,+const btVector3& rel_posB1,const btVector3& rel_posB2,+btScalar depthB, const btVector3& normalB,+btScalar& imp0,btScalar& imp1);+ /*-	void resolveAngularConstraint(	const btMatrix3x3& invInertiaAWS,-						const btScalar invMassA,-						const btVector3& linvelA,const btVector3& angvelA,-						const btVector3& rel_posA1,-						const btMatrix3x3& invInertiaBWS,-						const btScalar invMassB,-						const btVector3& linvelB,const btVector3& angvelB,-						const btVector3& rel_posA2,+void resolveAngularConstraint( const btMatrix3x3& invInertiaAWS,+const btScalar invMassA,+const btVector3& linvelA,const btVector3& angvelA,+const btVector3& rel_posA1,+const btMatrix3x3& invInertiaBWS,+const btScalar invMassB,+const btVector3& linvelB,const btVector3& angvelB,+const btVector3& rel_posA2, -					  btScalar depthA, const btVector3& normalA, -					  const btVector3& rel_posB1,const btVector3& rel_posB2,-					  btScalar depthB, const btVector3& normalB, -					  btScalar& imp0,btScalar& imp1);+btScalar depthA, const btVector3& normalA,+const btVector3& rel_posB1,const btVector3& rel_posB2,+btScalar depthB, const btVector3& normalB,+btScalar& imp0,btScalar& imp1);  */ 
bullet/BulletDynamics/ConstraintSolver/btSolverBody.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,7 +16,7 @@ #ifndef BT_SOLVER_BODY_H #define BT_SOLVER_BODY_H -class	btRigidBody;+class btRigidBody; #include "LinearMath/btVector3.h" #include "LinearMath/btMatrix3x3.h" #include "BulletDynamics/Dynamics/btRigidBody.h"@@ -31,72 +31,72 @@  #ifdef USE_SIMD -struct	btSimdScalar+struct btSimdScalar {-	SIMD_FORCE_INLINE	btSimdScalar()-	{+SIMD_FORCE_INLINE btSimdScalar()+{ -	}+} -	SIMD_FORCE_INLINE	btSimdScalar(float	fl)-	:m_vec128 (_mm_set1_ps(fl))-	{-	}+SIMD_FORCE_INLINE btSimdScalar(float fl)+:m_vec128 (_mm_set1_ps(fl))+{+} -	SIMD_FORCE_INLINE	btSimdScalar(__m128 v128)-		:m_vec128(v128)-	{-	}-	union-	{-		__m128		m_vec128;-		float		m_floats[4];-		int			m_ints[4];-		btScalar	m_unusedPadding;-	};-	SIMD_FORCE_INLINE	__m128	get128()-	{-		return m_vec128;-	}+SIMD_FORCE_INLINE btSimdScalar(__m128 v128)+:m_vec128(v128)+{+}+union+{+__m128 m_vec128;+float m_floats[4];+int m_ints[4];+btScalar m_unusedPadding;+};+SIMD_FORCE_INLINE __m128 get128()+{+return m_vec128;+} -	SIMD_FORCE_INLINE	const __m128	get128() const-	{-		return m_vec128;-	}+SIMD_FORCE_INLINE const __m128 get128() const+{+return m_vec128;+} -	SIMD_FORCE_INLINE	void	set128(__m128 v128)-	{-		m_vec128 = v128;-	}+SIMD_FORCE_INLINE void set128(__m128 v128)+{+m_vec128 = v128;+} -	SIMD_FORCE_INLINE	operator       __m128()       -	{ -		return m_vec128; -	}-	SIMD_FORCE_INLINE	operator const __m128() const -	{ -		return m_vec128; -	}-	-	SIMD_FORCE_INLINE	operator float() const -	{ -		return m_floats[0]; -	}+SIMD_FORCE_INLINE operator __m128()+{+return m_vec128;+}+SIMD_FORCE_INLINE operator const __m128() const+{+return m_vec128;+} +SIMD_FORCE_INLINE operator float() const+{+return m_floats[0];+}+ };  ///@brief Return the elementwise product of two btSimdScalar-SIMD_FORCE_INLINE btSimdScalar -operator*(const btSimdScalar& v1, const btSimdScalar& v2) +SIMD_FORCE_INLINE btSimdScalar+operator*(const btSimdScalar& v1, const btSimdScalar& v2) {-	return btSimdScalar(_mm_mul_ps(v1.get128(),v2.get128()));+return btSimdScalar(_mm_mul_ps(v1.get128(),v2.get128())); }  ///@brief Return the elementwise product of two btSimdScalar-SIMD_FORCE_INLINE btSimdScalar -operator+(const btSimdScalar& v1, const btSimdScalar& v2) +SIMD_FORCE_INLINE btSimdScalar+operator+(const btSimdScalar& v1, const btSimdScalar& v2) {-	return btSimdScalar(_mm_add_ps(v1.get128(),v2.get128()));+return btSimdScalar(_mm_add_ps(v1.get128(),v2.get128())); }  @@ -105,83 +105,83 @@ #endif  ///The btSolverBody is an internal datastructure for the constraint solver. Only necessary data is packed to increase cache coherence/performance.-ATTRIBUTE_ALIGNED64 (struct)	btSolverBodyObsolete+ATTRIBUTE_ALIGNED64 (struct) btSolverBodyObsolete {-	BT_DECLARE_ALIGNED_ALLOCATOR();-	btVector3		m_deltaLinearVelocity;-	btVector3		m_deltaAngularVelocity;-	btVector3		m_angularFactor;-	btVector3		m_invMass;-	btRigidBody*	m_originalBody;-	btVector3		m_pushVelocity;-	btVector3		m_turnVelocity;+BT_DECLARE_ALIGNED_ALLOCATOR();+btVector3 m_deltaLinearVelocity;+btVector3 m_deltaAngularVelocity;+btVector3 m_angularFactor;+btVector3 m_invMass;+btRigidBody* m_originalBody;+btVector3 m_pushVelocity;+btVector3 m_turnVelocity; -	-	SIMD_FORCE_INLINE void	getVelocityInLocalPointObsolete(const btVector3& rel_pos, btVector3& velocity ) const-	{-		if (m_originalBody)-			velocity = m_originalBody->getLinearVelocity()+m_deltaLinearVelocity + (m_originalBody->getAngularVelocity()+m_deltaAngularVelocity).cross(rel_pos);-		else-			velocity.setValue(0,0,0);-	} -	SIMD_FORCE_INLINE void	getAngularVelocity(btVector3& angVel) const-	{-		if (m_originalBody)-			angVel = m_originalBody->getAngularVelocity()+m_deltaAngularVelocity;-		else-			angVel.setValue(0,0,0);-	}+SIMD_FORCE_INLINE void getVelocityInLocalPointObsolete(const btVector3& rel_pos, btVector3& velocity ) const+{+if (m_originalBody)+velocity = m_originalBody->getLinearVelocity()+m_deltaLinearVelocity + (m_originalBody->getAngularVelocity()+m_deltaAngularVelocity).cross(rel_pos);+else+velocity.setValue(0,0,0);+} +SIMD_FORCE_INLINE void getAngularVelocity(btVector3& angVel) const+{+if (m_originalBody)+angVel = m_originalBody->getAngularVelocity()+m_deltaAngularVelocity;+else+angVel.setValue(0,0,0);+} -	//Optimization for the iterative solver: avoid calculating constant terms involving inertia, normal, relative position-	SIMD_FORCE_INLINE void applyImpulse(const btVector3& linearComponent, const btVector3& angularComponent,const btScalar impulseMagnitude)-	{-		//if (m_invMass)-		{-			m_deltaLinearVelocity += linearComponent*impulseMagnitude;-			m_deltaAngularVelocity += angularComponent*(impulseMagnitude*m_angularFactor);-		}-	} -	SIMD_FORCE_INLINE void internalApplyPushImpulse(const btVector3& linearComponent, const btVector3& angularComponent,btScalar impulseMagnitude)-	{-		if (m_originalBody)-		{-			m_pushVelocity += linearComponent*impulseMagnitude;-			m_turnVelocity += angularComponent*(impulseMagnitude*m_angularFactor);-		}-	}-	-	void	writebackVelocity()-	{-		if (m_originalBody)-		{-			m_originalBody->setLinearVelocity(m_originalBody->getLinearVelocity()+ m_deltaLinearVelocity);-			m_originalBody->setAngularVelocity(m_originalBody->getAngularVelocity()+m_deltaAngularVelocity);-			-			//m_originalBody->setCompanionId(-1);-		}-	}+//Optimization for the iterative solver: avoid calculating constant terms involving inertia, normal, relative position+SIMD_FORCE_INLINE void applyImpulse(const btVector3& linearComponent, const btVector3& angularComponent,const btScalar impulseMagnitude)+{+//if (m_invMass)+{+m_deltaLinearVelocity += linearComponent*impulseMagnitude;+m_deltaAngularVelocity += angularComponent*(impulseMagnitude*m_angularFactor);+}+} +SIMD_FORCE_INLINE void internalApplyPushImpulse(const btVector3& linearComponent, const btVector3& angularComponent,btScalar impulseMagnitude)+{+if (m_originalBody)+{+m_pushVelocity += linearComponent*impulseMagnitude;+m_turnVelocity += angularComponent*(impulseMagnitude*m_angularFactor);+}+} -	void	writebackVelocity(btScalar timeStep)-	{-        (void) timeStep;-		if (m_originalBody)-		{-			m_originalBody->setLinearVelocity(m_originalBody->getLinearVelocity()+ m_deltaLinearVelocity);-			m_originalBody->setAngularVelocity(m_originalBody->getAngularVelocity()+m_deltaAngularVelocity);-			-			//correct the position/orientation based on push/turn recovery-			btTransform newTransform;-			btTransformUtil::integrateTransform(m_originalBody->getWorldTransform(),m_pushVelocity,m_turnVelocity,timeStep,newTransform);-			m_originalBody->setWorldTransform(newTransform);-			-			//m_originalBody->setCompanionId(-1);-		}-	}-	+void writebackVelocity()+{+if (m_originalBody)+{+m_originalBody->setLinearVelocity(m_originalBody->getLinearVelocity()+ m_deltaLinearVelocity);+m_originalBody->setAngularVelocity(m_originalBody->getAngularVelocity()+m_deltaAngularVelocity);++//m_originalBody->setCompanionId(-1);+}+}+++void writebackVelocity(btScalar timeStep)+{+(void) timeStep;+if (m_originalBody)+{+m_originalBody->setLinearVelocity(m_originalBody->getLinearVelocity()+ m_deltaLinearVelocity);+m_originalBody->setAngularVelocity(m_originalBody->getAngularVelocity()+m_deltaAngularVelocity);++//correct the position/orientation based on push/turn recovery+btTransform newTransform;+btTransformUtil::integrateTransform(m_originalBody->getWorldTransform(),m_pushVelocity,m_turnVelocity,timeStep,newTransform);+m_originalBody->setWorldTransform(newTransform);++//m_originalBody->setCompanionId(-1);+}+}+   };
bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,7 +16,7 @@ #ifndef BT_SOLVER_CONSTRAINT_H #define BT_SOLVER_CONSTRAINT_H -class	btRigidBody;+class btRigidBody; #include "LinearMath/btVector3.h" #include "LinearMath/btMatrix3x3.h" #include "btJacobianEntry.h"@@ -26,68 +26,68 @@   ///1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and friction constraints.-ATTRIBUTE_ALIGNED64 (struct)	btSolverConstraint+ATTRIBUTE_ALIGNED64 (struct) btSolverConstraint {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	btVector3		m_relpos1CrossNormal;-	btVector3		m_contactNormal;+btVector3 m_relpos1CrossNormal;+btVector3 m_contactNormal; -	btVector3		m_relpos2CrossNormal;-	//btVector3		m_contactNormal2;//usually m_contactNormal2 == -m_contactNormal+btVector3 m_relpos2CrossNormal;+//btVector3 m_contactNormal2;//usually m_contactNormal2 == -m_contactNormal -	btVector3		m_angularComponentA;-	btVector3		m_angularComponentB;-	-	mutable btSimdScalar	m_appliedPushImpulse;-	mutable btSimdScalar	m_appliedImpulse;-	-	-	btScalar	m_friction;-	btScalar	m_jacDiagABInv;-	union-	{-		int	m_numConsecutiveRowsPerKernel;-		btScalar	m_unusedPadding0;-	};+btVector3 m_angularComponentA;+btVector3 m_angularComponentB; -	union-	{-		int			m_frictionIndex;-		btScalar	m_unusedPadding1;-	};-	union-	{-		btRigidBody*	m_solverBodyA;-		int				m_companionIdA;-	};-	union-	{-		btRigidBody*	m_solverBodyB;-		int				m_companionIdB;-	};-	-	union-	{-		void*		m_originalContactPoint;-		btScalar	m_unusedPadding4;-	};+mutable btSimdScalar m_appliedPushImpulse;+mutable btSimdScalar m_appliedImpulse; -	btScalar		m_rhs;-	btScalar		m_cfm;-	btScalar		m_lowerLimit;-	btScalar		m_upperLimit; -	btScalar		m_rhsPenetration;+btScalar m_friction;+btScalar m_jacDiagABInv;+union+{+int m_numConsecutiveRowsPerKernel;+btScalar m_unusedPadding0;+}; -	enum		btSolverConstraintType-	{-		BT_SOLVER_CONTACT_1D = 0,-		BT_SOLVER_FRICTION_1D-	};+union+{+int m_frictionIndex;+btScalar m_unusedPadding1; };+union+{+btRigidBody* m_solverBodyA;+int m_companionIdA;+};+union+{+btRigidBody* m_solverBodyB;+int m_companionIdB;+}; -typedef btAlignedObjectArray<btSolverConstraint>	btConstraintArray;+union+{+void* m_originalContactPoint;+btScalar m_unusedPadding4;+};++btScalar m_rhs;+btScalar m_cfm;+btScalar m_lowerLimit;+btScalar m_upperLimit;++btScalar m_rhsPenetration;++enum btSolverConstraintType+{+BT_SOLVER_CONTACT_1D = 0,+BT_SOLVER_FRICTION_1D+};+};++typedef btAlignedObjectArray<btSolverConstraint> btConstraintArray;   #endif //BT_SOLVER_CONSTRAINT_H
bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2010 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2010 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,409 +25,409 @@ //Don't change any of the existing enum values, so add enum types at the end for serialization compatibility enum btTypedConstraintType {-	POINT2POINT_CONSTRAINT_TYPE=3,-	HINGE_CONSTRAINT_TYPE,-	CONETWIST_CONSTRAINT_TYPE,-	D6_CONSTRAINT_TYPE,-	SLIDER_CONSTRAINT_TYPE,-	CONTACT_CONSTRAINT_TYPE,-	D6_SPRING_CONSTRAINT_TYPE,-	MAX_CONSTRAINT_TYPE+POINT2POINT_CONSTRAINT_TYPE=3,+HINGE_CONSTRAINT_TYPE,+CONETWIST_CONSTRAINT_TYPE,+D6_CONSTRAINT_TYPE,+SLIDER_CONSTRAINT_TYPE,+CONTACT_CONSTRAINT_TYPE,+D6_SPRING_CONSTRAINT_TYPE,+MAX_CONSTRAINT_TYPE };   enum btConstraintParams {-	BT_CONSTRAINT_ERP=1,-	BT_CONSTRAINT_STOP_ERP,-	BT_CONSTRAINT_CFM,-	BT_CONSTRAINT_STOP_CFM+BT_CONSTRAINT_ERP=1,+BT_CONSTRAINT_STOP_ERP,+BT_CONSTRAINT_CFM,+BT_CONSTRAINT_STOP_CFM };  #if 1-	#define btAssertConstrParams(_par) btAssert(_par) +#define btAssertConstrParams(_par) btAssert(_par) #else-	#define btAssertConstrParams(_par)+#define btAssertConstrParams(_par) #endif   ///TypedConstraint is the baseclass for Bullet constraints and vehicles class btTypedConstraint : public btTypedObject-{-	int	m_userConstraintType;+{ private:+int m_userConstraintType; -	union-	{-		int	m_userConstraintId;-		void* m_userConstraintPtr;-	};+union+{+int m_userConstraintId;+void* m_userConstraintPtr;+}; -	btScalar	m_breakingImpulseThreshold;-	bool		m_isEnabled;+btScalar m_breakingImpulseThreshold;+bool m_isEnabled;  -	bool m_needsFeedback;+bool m_needsFeedback; -	btTypedConstraint&	operator=(btTypedConstraint&	other)-	{-		btAssert(0);-		(void) other;-		return *this;-	}+btTypedConstraint& operator=(btTypedConstraint& other)+{+btAssert(0);+(void) other;+return *this;+}  protected:-	btRigidBody&	m_rbA;-	btRigidBody&	m_rbB;-	btScalar	m_appliedImpulse;-	btScalar	m_dbgDrawSize;+btRigidBody& m_rbA;+btRigidBody& m_rbB;+btScalar m_appliedImpulse;+btScalar m_dbgDrawSize; -	///internal method used by the constraint solver, don't use them directly-	btScalar getMotorFactor(btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact);-	-	static btRigidBody& getFixedBody();+///internal method used by the constraint solver, don't use them directly+btScalar getMotorFactor(btScalar pos, btScalar lowLim, btScalar uppLim, btScalar vel, btScalar timeFact); +static btRigidBody& getFixedBody();+ public: -	virtual ~btTypedConstraint() {};-	btTypedConstraint(btTypedConstraintType type, btRigidBody& rbA);-	btTypedConstraint(btTypedConstraintType type, btRigidBody& rbA,btRigidBody& rbB);+virtual ~btTypedConstraint() {};+btTypedConstraint(btTypedConstraintType type, btRigidBody& rbA);+btTypedConstraint(btTypedConstraintType type, btRigidBody& rbA,btRigidBody& rbB); -	struct btConstraintInfo1 {-		int m_numConstraintRows,nub;-	};+struct btConstraintInfo1 {+int m_numConstraintRows,nub;+}; -	struct btConstraintInfo2 {-		// integrator parameters: frames per second (1/stepsize), default error-		// reduction parameter (0..1).-		btScalar fps,erp;+struct btConstraintInfo2 {+// integrator parameters: frames per second (1/stepsize), default error+// reduction parameter (0..1).+btScalar fps,erp; -		// for the first and second body, pointers to two (linear and angular)-		// n*3 jacobian sub matrices, stored by rows. these matrices will have-		// been initialized to 0 on entry. if the second body is zero then the-		// J2xx pointers may be 0.-		btScalar *m_J1linearAxis,*m_J1angularAxis,*m_J2linearAxis,*m_J2angularAxis;+// for the first and second body, pointers to two (linear and angular)+// n*3 jacobian sub matrices, stored by rows. these matrices will have+// been initialized to 0 on entry. if the second body is zero then the+// J2xx pointers may be 0.+btScalar *m_J1linearAxis,*m_J1angularAxis,*m_J2linearAxis,*m_J2angularAxis; -		// elements to jump from one row to the next in J's-		int rowskip;+// elements to jump from one row to the next in J's+int rowskip; -		// right hand sides of the equation J*v = c + cfm * lambda. cfm is the-		// "constraint force mixing" vector. c is set to zero on entry, cfm is-		// set to a constant value (typically very small or zero) value on entry.-		btScalar *m_constraintError,*cfm;+// right hand sides of the equation J*v = c + cfm * lambda. cfm is the+// "constraint force mixing" vector. c is set to zero on entry, cfm is+// set to a constant value (typically very small or zero) value on entry.+btScalar *m_constraintError,*cfm; -		// lo and hi limits for variables (set to -/+ infinity on entry).-		btScalar *m_lowerLimit,*m_upperLimit;+// lo and hi limits for variables (set to -/+ infinity on entry).+btScalar *m_lowerLimit,*m_upperLimit; -		// findex vector for variables. see the LCP solver interface for a-		// description of what this does. this is set to -1 on entry.-		// note that the returned indexes are relative to the first index of-		// the constraint.-		int *findex;-		// number of solver iterations-		int m_numIterations;+// findex vector for variables. see the LCP solver interface for a+// description of what this does. this is set to -1 on entry.+// note that the returned indexes are relative to the first index of+// the constraint.+int *findex;+// number of solver iterations+int m_numIterations; -		//damping of the velocity-		btScalar	m_damping;-	};+//damping of the velocity+btScalar m_damping;+}; -	///internal method used by the constraint solver, don't use them directly-	virtual void	buildJacobian() {};+///internal method used by the constraint solver, don't use them directly+virtual void buildJacobian() {}; -	///internal method used by the constraint solver, don't use them directly-	virtual	void	setupSolverConstraint(btConstraintArray& ca, int solverBodyA,int solverBodyB, btScalar timeStep)-	{-        (void)ca;-        (void)solverBodyA;-        (void)solverBodyB;-        (void)timeStep;-	}-	-	///internal method used by the constraint solver, don't use them directly-	virtual void getInfo1 (btConstraintInfo1* info)=0;+///internal method used by the constraint solver, don't use them directly+virtual void setupSolverConstraint(btConstraintArray& ca, int solverBodyA,int solverBodyB, btScalar timeStep)+{+(void)ca;+(void)solverBodyA;+(void)solverBodyB;+(void)timeStep;+} -	///internal method used by the constraint solver, don't use them directly-	virtual void getInfo2 (btConstraintInfo2* info)=0;+///internal method used by the constraint solver, don't use them directly+virtual void getInfo1 (btConstraintInfo1* info)=0; -	///internal method used by the constraint solver, don't use them directly-	void	internalSetAppliedImpulse(btScalar appliedImpulse)-	{-		m_appliedImpulse = appliedImpulse;-	}-	///internal method used by the constraint solver, don't use them directly-	btScalar	internalGetAppliedImpulse()-	{-		return m_appliedImpulse;-	}+///internal method used by the constraint solver, don't use them directly+virtual void getInfo2 (btConstraintInfo2* info)=0; +///internal method used by the constraint solver, don't use them directly+void internalSetAppliedImpulse(btScalar appliedImpulse)+{+m_appliedImpulse = appliedImpulse;+}+///internal method used by the constraint solver, don't use them directly+btScalar internalGetAppliedImpulse()+{+return m_appliedImpulse;+} -	btScalar	getBreakingImpulseThreshold() const-	{-		return 	m_breakingImpulseThreshold;-	} -	void	setBreakingImpulseThreshold(btScalar threshold)-	{-		m_breakingImpulseThreshold = threshold;-	}+btScalar getBreakingImpulseThreshold() const+{+return m_breakingImpulseThreshold;+} -	bool	isEnabled() const-	{-		return m_isEnabled;-	}+void setBreakingImpulseThreshold(btScalar threshold)+{+m_breakingImpulseThreshold = threshold;+} -	void	setEnabled(bool enabled)-	{-		m_isEnabled=enabled;-	}+bool isEnabled() const+{+return m_isEnabled;+} +void setEnabled(bool enabled)+{+m_isEnabled=enabled;+} -	///internal method used by the constraint solver, don't use them directly-	virtual	void	solveConstraintObsolete(btRigidBody& /*bodyA*/,btRigidBody& /*bodyB*/,btScalar	/*timeStep*/) {}; -	-	const btRigidBody& getRigidBodyA() const-	{-		return m_rbA;-	}-	const btRigidBody& getRigidBodyB() const-	{-		return m_rbB;-	}+///internal method used by the constraint solver, don't use them directly+virtual void solveConstraintObsolete(btRigidBody& /*bodyA*/,btRigidBody& /*bodyB*/,btScalar /*timeStep*/) {}; -	btRigidBody& getRigidBodyA() -	{-		return m_rbA;-	}-	btRigidBody& getRigidBodyB()-	{-		return m_rbB;-	} -	int getUserConstraintType() const-	{-		return m_userConstraintType ;-	}+const btRigidBody& getRigidBodyA() const+{+return m_rbA;+}+const btRigidBody& getRigidBodyB() const+{+return m_rbB;+} -	void	setUserConstraintType(int userConstraintType)-	{-		m_userConstraintType = userConstraintType;-	};+btRigidBody& getRigidBodyA()+{+return m_rbA;+}+btRigidBody& getRigidBodyB()+{+return m_rbB;+} -	void	setUserConstraintId(int uid)-	{-		m_userConstraintId = uid;-	}+int getUserConstraintType() const+{+return m_userConstraintType ;+} -	int getUserConstraintId() const-	{-		return m_userConstraintId;-	}+void setUserConstraintType(int userConstraintType)+{+m_userConstraintType = userConstraintType;+}; -	void	setUserConstraintPtr(void* ptr)-	{-		m_userConstraintPtr = ptr;-	}+void setUserConstraintId(int uid)+{+m_userConstraintId = uid;+} -	void*	getUserConstraintPtr()-	{-		return m_userConstraintPtr;-	}+int getUserConstraintId() const+{+return m_userConstraintId;+} -	int getUid() const-	{-		return m_userConstraintId;   -	} +void setUserConstraintPtr(void* ptr)+{+m_userConstraintPtr = ptr;+} -	bool	needsFeedback() const-	{-		return m_needsFeedback;-	}+void* getUserConstraintPtr()+{+return m_userConstraintPtr;+} -	///enableFeedback will allow to read the applied linear and angular impulse-	///use getAppliedImpulse, getAppliedLinearImpulse and getAppliedAngularImpulse to read feedback information-	void	enableFeedback(bool needsFeedback)-	{-		m_needsFeedback = needsFeedback;-	}+int getUid() const+{+return m_userConstraintId;+} -	///getAppliedImpulse is an estimated total applied impulse. -	///This feedback could be used to determine breaking constraints or playing sounds.-	btScalar	getAppliedImpulse() const-	{-		btAssert(m_needsFeedback);-		return m_appliedImpulse;-	}+bool needsFeedback() const+{+return m_needsFeedback;+} -	btTypedConstraintType getConstraintType () const-	{-		return btTypedConstraintType(m_objectType);-	}-	-	void setDbgDrawSize(btScalar dbgDrawSize)-	{-		m_dbgDrawSize = dbgDrawSize;-	}-	btScalar getDbgDrawSize()-	{-		return m_dbgDrawSize;-	}+///enableFeedback will allow to read the applied linear and angular impulse+///use getAppliedImpulse, getAppliedLinearImpulse and getAppliedAngularImpulse to read feedback information+void enableFeedback(bool needsFeedback)+{+m_needsFeedback = needsFeedback;+} -	///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5). -	///If no axis is provided, it uses the default axis for this constraint.-	virtual	void	setParam(int num, btScalar value, int axis = -1) = 0;+///getAppliedImpulse is an estimated total applied impulse.+///This feedback could be used to determine breaking constraints or playing sounds.+btScalar getAppliedImpulse() const+{+btAssert(m_needsFeedback);+return m_appliedImpulse;+} -	///return the local value of parameter-	virtual	btScalar getParam(int num, int axis = -1) const = 0;-	-	virtual	int	calculateSerializeBufferSize() const;+btTypedConstraintType getConstraintType () const+{+return btTypedConstraintType(m_objectType);+} -	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer, btSerializer* serializer) const;+void setDbgDrawSize(btScalar dbgDrawSize)+{+m_dbgDrawSize = dbgDrawSize;+}+btScalar getDbgDrawSize()+{+return m_dbgDrawSize;+} +///override the default global value of a parameter (such as ERP or CFM), optionally provide the axis (0..5).+///If no axis is provided, it uses the default axis for this constraint.+virtual void setParam(int num, btScalar value, int axis = -1) = 0;++///return the local value of parameter+virtual btScalar getParam(int num, int axis = -1) const = 0;++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;+ }; -// returns angle in range [-SIMD_2_PI, SIMD_2_PI], closest to one of the limits +// returns angle in range [-SIMD_2_PI, SIMD_2_PI], closest to one of the limits // all arguments should be normalized angles (i.e. in range [-SIMD_PI, SIMD_PI]) SIMD_FORCE_INLINE btScalar btAdjustAngleToLimits(btScalar angleInRadians, btScalar angleLowerLimitInRadians, btScalar angleUpperLimitInRadians) {-	if(angleLowerLimitInRadians >= angleUpperLimitInRadians)-	{-		return angleInRadians;-	}-	else if(angleInRadians < angleLowerLimitInRadians)-	{-		btScalar diffLo = btFabs(btNormalizeAngle(angleLowerLimitInRadians - angleInRadians));-		btScalar diffHi = btFabs(btNormalizeAngle(angleUpperLimitInRadians - angleInRadians));-		return (diffLo < diffHi) ? angleInRadians : (angleInRadians + SIMD_2_PI);-	}-	else if(angleInRadians > angleUpperLimitInRadians)-	{-		btScalar diffHi = btFabs(btNormalizeAngle(angleInRadians - angleUpperLimitInRadians));-		btScalar diffLo = btFabs(btNormalizeAngle(angleInRadians - angleLowerLimitInRadians));-		return (diffLo < diffHi) ? (angleInRadians - SIMD_2_PI) : angleInRadians;-	}-	else-	{-		return angleInRadians;-	}+if(angleLowerLimitInRadians >= angleUpperLimitInRadians)+{+return angleInRadians; }+else if(angleInRadians < angleLowerLimitInRadians)+{+btScalar diffLo = btFabs(btNormalizeAngle(angleLowerLimitInRadians - angleInRadians));+btScalar diffHi = btFabs(btNormalizeAngle(angleUpperLimitInRadians - angleInRadians));+return (diffLo < diffHi) ? angleInRadians : (angleInRadians + SIMD_2_PI);+}+else if(angleInRadians > angleUpperLimitInRadians)+{+btScalar diffHi = btFabs(btNormalizeAngle(angleInRadians - angleUpperLimitInRadians));+btScalar diffLo = btFabs(btNormalizeAngle(angleInRadians - angleLowerLimitInRadians));+return (diffLo < diffHi) ? (angleInRadians - SIMD_2_PI) : angleInRadians;+}+else+{+return angleInRadians;+}+}  ///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btTypedConstraintData+struct btTypedConstraintData {-	btRigidBodyData		*m_rbA;-	btRigidBodyData		*m_rbB;-	char	*m_name;+btRigidBodyData *m_rbA;+btRigidBodyData *m_rbB;+char *m_name; -	int	m_objectType;-	int	m_userConstraintType;-	int	m_userConstraintId;-	int	m_needsFeedback;+int m_objectType;+int m_userConstraintType;+int m_userConstraintId;+int m_needsFeedback; -	float	m_appliedImpulse;-	float	m_dbgDrawSize;+float m_appliedImpulse;+float m_dbgDrawSize; -	int	m_disableCollisionsBetweenLinkedBodies;-	char	m_pad4[4];-	+int m_disableCollisionsBetweenLinkedBodies;+char m_pad4[4];+ }; -SIMD_FORCE_INLINE	int	btTypedConstraint::calculateSerializeBufferSize() const+SIMD_FORCE_INLINE int btTypedConstraint::calculateSerializeBufferSize() const {-	return sizeof(btTypedConstraintData);+return sizeof(btTypedConstraintData); }    class btAngularLimit-{+{ private: private:-	btScalar -		m_center,-		m_halfRange,-		m_softness,-		m_biasFactor,-		m_relaxationFactor,-		m_correction,-		m_sign;+btScalar+m_center,+m_halfRange,+m_softness,+m_biasFactor,+m_relaxationFactor,+m_correction,+m_sign; -	bool-		m_solveLimit;+bool+m_solveLimit;  public:-	/// Default constructor initializes limit as inactive, allowing free constraint movement-	btAngularLimit()-		:m_center(0.0f),-		m_halfRange(-1.0f),-		m_softness(0.9f),-		m_biasFactor(0.3f),-		m_relaxationFactor(1.0f),-		m_correction(0.0f),-		m_sign(0.0f),-		m_solveLimit(false)-	{}+/// Default constructor initializes limit as inactive, allowing free constraint movement+btAngularLimit()+:m_center(0.0f),+m_halfRange(-1.0f),+m_softness(0.9f),+m_biasFactor(0.3f),+m_relaxationFactor(1.0f),+m_correction(0.0f),+m_sign(0.0f),+m_solveLimit(false)+{} -	/// Sets all limit's parameters.-	/// When low > high limit becomes inactive.-	/// When high - low > 2PI limit is ineffective too becouse no angle can exceed the limit-	void set(btScalar low, btScalar high, btScalar _softness = 0.9f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f);+/// Sets all limit's parameters.+/// When low > high limit becomes inactive.+/// When high - low > 2PI limit is ineffective too becouse no angle can exceed the limit+void set(btScalar low, btScalar high, btScalar _softness = 0.9f, btScalar _biasFactor = 0.3f, btScalar _relaxationFactor = 1.0f); -	/// Checks conastaint angle against limit. If limit is active and the angle violates the limit-	/// correction is calculated.-	void test(const btScalar angle);+/// Checks conastaint angle against limit. If limit is active and the angle violates the limit+/// correction is calculated.+void test(const btScalar angle); -	/// Returns limit's softness-	inline btScalar getSoftness() const-	{-		return m_softness;-	}+/// Returns limit's softness+inline btScalar getSoftness() const+{+return m_softness;+} -	/// Returns limit's bias factor-	inline btScalar getBiasFactor() const-	{-		return m_biasFactor;-	}+/// Returns limit's bias factor+inline btScalar getBiasFactor() const+{+return m_biasFactor;+} -	/// Returns limit's relaxation factor-	inline btScalar getRelaxationFactor() const-	{-		return m_relaxationFactor;-	}+/// Returns limit's relaxation factor+inline btScalar getRelaxationFactor() const+{+return m_relaxationFactor;+} -	/// Returns correction value evaluated when test() was invoked -	inline btScalar getCorrection() const-	{-		return m_correction;-	}+/// Returns correction value evaluated when test() was invoked+inline btScalar getCorrection() const+{+return m_correction;+} -	/// Returns sign value evaluated when test() was invoked -	inline btScalar getSign() const-	{-		return m_sign;-	}+/// Returns sign value evaluated when test() was invoked+inline btScalar getSign() const+{+return m_sign;+} -	/// Gives half of the distance between min and max limit angle-	inline btScalar getHalfRange() const-	{-		return m_halfRange;-	}+/// Gives half of the distance between min and max limit angle+inline btScalar getHalfRange() const+{+return m_halfRange;+} -	/// Returns true when the last test() invocation recognized limit violation-	inline bool isLimit() const-	{-		return m_solveLimit;-	}+/// Returns true when the last test() invocation recognized limit violation+inline bool isLimit() const+{+return m_solveLimit;+} -	/// Checks given angle against limit. If limit is active and angle doesn't fit it, the angle-	/// returned is modified so it equals to the limit closest to given angle.-	void fit(btScalar& angle) const;+/// Checks given angle against limit. If limit is active and angle doesn't fit it, the angle+/// returned is modified so it equals to the limit closest to given angle.+void fit(btScalar& angle) const; -	/// Returns correction value multiplied by sign value-	btScalar getError() const;+/// Returns correction value multiplied by sign value+btScalar getError() const; -	btScalar getLow() const;+btScalar getLow() const; -	btScalar getHigh() const;+btScalar getHigh() const;  }; 
bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2007 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -27,33 +27,33 @@ /// Constraint similar to ODE Universal Joint /// has 2 rotatioonal degrees of freedom, similar to Euler rotations around Z (axis 1) /// and Y (axis 2)-/// Description from ODE manual : -/// "Given axis 1 on body 1, and axis 2 on body 2 that is perpendicular to axis 1, it keeps them perpendicular. +/// Description from ODE manual :+/// "Given axis 1 on body 1, and axis 2 on body 2 that is perpendicular to axis 1, it keeps them perpendicular. /// In other words, rotation of the two bodies about the direction perpendicular to the two axes will be equal."  class btUniversalConstraint : public btGeneric6DofConstraint-{+{ private: protected:-	btVector3	m_anchor;-	btVector3	m_axis1;-	btVector3	m_axis2;+btVector3 m_anchor;+btVector3 m_axis1;+btVector3 m_axis2; public:-	// constructor-	// anchor, axis1 and axis2 are in world coordinate system-	// axis1 must be orthogonal to axis2-    btUniversalConstraint(btRigidBody& rbA, btRigidBody& rbB, btVector3& anchor, btVector3& axis1, btVector3& axis2);-	// access-	const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }-	const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }-	const btVector3& getAxis1() { return m_axis1; }-	const btVector3& getAxis2() { return m_axis2; }-	btScalar getAngle1() { return getAngle(2); }-	btScalar getAngle2() { return getAngle(1); }-	// limits-	void setUpperLimit(btScalar ang1max, btScalar ang2max) { setAngularUpperLimit(btVector3(0.f, ang1max, ang2max)); }-	void setLowerLimit(btScalar ang1min, btScalar ang2min) { setAngularLowerLimit(btVector3(0.f, ang1min, ang2min)); }+// constructor+// anchor, axis1 and axis2 are in world coordinate system+// axis1 must be orthogonal to axis2+btUniversalConstraint(btRigidBody& rbA, btRigidBody& rbB, btVector3& anchor, btVector3& axis1, btVector3& axis2);+// access+const btVector3& getAnchor() { return m_calculatedTransformA.getOrigin(); }+const btVector3& getAnchor2() { return m_calculatedTransformB.getOrigin(); }+const btVector3& getAxis1() { return m_axis1; }+const btVector3& getAxis2() { return m_axis2; }+btScalar getAngle1() { return getAngle(2); }+btScalar getAngle2() { return getAngle(1); }+// limits+void setUpperLimit(btScalar ang1max, btScalar ang2max) { setAngularUpperLimit(btVector3(0.f, ang1max, ang2max)); }+void setLowerLimit(btScalar ang1min, btScalar ang2min) { setAngularLowerLimit(btVector3(0.f, ang1min, ang2min)); } -	void setAxis( const btVector3& axis1, const btVector3& axis2);+void setAxis( const btVector3& axis1, const btVector3& axis2); };  
bullet/BulletDynamics/Dynamics/btActionInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,21 +24,21 @@  ///Basic interface to allow actions such as vehicles and characters to be updated inside a btDynamicsWorld class btActionInterface-{+{ private: protected: -	static btRigidBody& getFixedBody();-	-	+static btRigidBody& getFixedBody();++ public: -	virtual ~btActionInterface()-	{-	}+virtual ~btActionInterface()+{+} -	virtual void updateAction( btCollisionWorld* collisionWorld, btScalar deltaTimeStep)=0;+virtual void updateAction( btCollisionWorld* collisionWorld, btScalar deltaTimeStep)=0; -	virtual void debugDraw(btIDebugDraw* debugDrawer) = 0;+virtual void debugDraw(btIDebugDraw* debugDrawer) = 0;  }; 
bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -33,167 +33,165 @@ ///btDiscreteDynamicsWorld provides discrete rigid body simulation ///those classes replace the obsolete CcdPhysicsEnvironment/CcdPhysicsController class btDiscreteDynamicsWorld : public btDynamicsWorld-{+{ private: protected: -	btConstraintSolver*	m_constraintSolver;+btConstraintSolver* m_constraintSolver; -	btSimulationIslandManager*	m_islandManager;+btSimulationIslandManager* m_islandManager; -	btAlignedObjectArray<btTypedConstraint*> m_constraints;+btAlignedObjectArray<btTypedConstraint*> m_constraints; -	btAlignedObjectArray<btRigidBody*> m_nonStaticRigidBodies;+btAlignedObjectArray<btRigidBody*> m_nonStaticRigidBodies; -	btVector3	m_gravity;+btVector3 m_gravity; -	//for variable timesteps-	btScalar	m_localTime;-	//for variable timesteps+//for variable timesteps+btScalar m_localTime;+//for variable timesteps -	bool	m_ownsIslandManager;-	bool	m_ownsConstraintSolver;-	bool	m_synchronizeAllMotionStates;+bool m_ownsIslandManager;+bool m_ownsConstraintSolver;+bool m_synchronizeAllMotionStates; -	btAlignedObjectArray<btActionInterface*>	m_actions;-	-	int	m_profileTimings;+btAlignedObjectArray<btActionInterface*> m_actions; -	virtual void	predictUnconstraintMotion(btScalar timeStep);-	-	virtual void	integrateTransforms(btScalar timeStep);-		-	virtual void	addSpeculativeContacts(btScalar timeStep);+int m_profileTimings; -	virtual void	calculateSimulationIslands();+virtual void predictUnconstraintMotion(btScalar timeStep); -	virtual void	solveConstraints(btContactSolverInfo& solverInfo);-	-	void	updateActivationState(btScalar timeStep);+virtual void integrateTransforms(btScalar timeStep); -	void	updateActions(btScalar timeStep);+virtual void calculateSimulationIslands(); -	void	startProfiling(btScalar timeStep);+virtual void solveConstraints(btContactSolverInfo& solverInfo); -	virtual void	internalSingleStepSimulation( btScalar timeStep);+void updateActivationState(btScalar timeStep); +void updateActions(btScalar timeStep); -	virtual void	saveKinematicState(btScalar timeStep);+void startProfiling(btScalar timeStep); -	void	serializeRigidBodies(btSerializer* serializer);+virtual void internalSingleStepSimulation( btScalar timeStep); ++virtual void saveKinematicState(btScalar timeStep);++void serializeRigidBodies(btSerializer* serializer);+ public:  -	///this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those-	btDiscreteDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver,btCollisionConfiguration* collisionConfiguration);+///this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those+btDiscreteDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver,btCollisionConfiguration* collisionConfiguration); -	virtual ~btDiscreteDynamicsWorld();+virtual ~btDiscreteDynamicsWorld(); -	///if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's-	virtual int	stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.));+///if maxSubSteps > 0, it will interpolate motion between fixedTimeStep's+virtual int stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.));  -	virtual void	synchronizeMotionStates();+virtual void synchronizeMotionStates(); -	///this can be useful to synchronize a single rigid body -> graphics object-	void	synchronizeSingleMotionState(btRigidBody* body);+///this can be useful to synchronize a single rigid body -> graphics object+void synchronizeSingleMotionState(btRigidBody* body); -	virtual void	addConstraint(btTypedConstraint* constraint, bool disableCollisionsBetweenLinkedBodies=false);+virtual void addConstraint(btTypedConstraint* constraint, bool disableCollisionsBetweenLinkedBodies=false); -	virtual void	removeConstraint(btTypedConstraint* constraint);+virtual void removeConstraint(btTypedConstraint* constraint); -	virtual void	addAction(btActionInterface*);+virtual void addAction(btActionInterface*); -	virtual void	removeAction(btActionInterface*);-	-	btSimulationIslandManager*	getSimulationIslandManager()-	{-		return m_islandManager;-	}+virtual void removeAction(btActionInterface*); -	const btSimulationIslandManager*	getSimulationIslandManager() const -	{-		return m_islandManager;-	}+btSimulationIslandManager* getSimulationIslandManager()+{+return m_islandManager;+} -	btCollisionWorld*	getCollisionWorld()-	{-		return this;-	}+const btSimulationIslandManager* getSimulationIslandManager() const+{+return m_islandManager;+} -	virtual void	setGravity(const btVector3& gravity);+btCollisionWorld* getCollisionWorld()+{+return this;+} -	virtual btVector3 getGravity () const;+virtual void setGravity(const btVector3& gravity); -	virtual void	addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::StaticFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter);+virtual btVector3 getGravity () const; -	virtual void	addRigidBody(btRigidBody* body);+virtual void addCollisionObject(btCollisionObject* collisionObject,short int collisionFilterGroup=btBroadphaseProxy::StaticFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter ^ btBroadphaseProxy::StaticFilter); -	virtual void	addRigidBody(btRigidBody* body, short group, short mask);+virtual void addRigidBody(btRigidBody* body); -	virtual void	removeRigidBody(btRigidBody* body);+virtual void addRigidBody(btRigidBody* body, short group, short mask); -	///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject-	virtual void	removeCollisionObject(btCollisionObject* collisionObject);+virtual void removeRigidBody(btRigidBody* body); +///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject+virtual void removeCollisionObject(btCollisionObject* collisionObject); -	void	debugDrawConstraint(btTypedConstraint* constraint); -	virtual void	debugDrawWorld();+void debugDrawConstraint(btTypedConstraint* constraint); -	virtual void	setConstraintSolver(btConstraintSolver* solver);+virtual void debugDrawWorld(); -	virtual btConstraintSolver* getConstraintSolver();-	-	virtual	int		getNumConstraints() const;+virtual void setConstraintSolver(btConstraintSolver* solver); -	virtual btTypedConstraint* getConstraint(int index)	;+virtual btConstraintSolver* getConstraintSolver(); -	virtual const btTypedConstraint* getConstraint(int index) const;+virtual int getNumConstraints() const; -	-	virtual btDynamicsWorldType	getWorldType() const-	{-		return BT_DISCRETE_DYNAMICS_WORLD;-	}-	-	///the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.-	virtual void	clearForces();+virtual btTypedConstraint* getConstraint(int index) ; -	///apply gravity, call this once per timestep-	virtual void	applyGravity();+virtual const btTypedConstraint* getConstraint(int index) const; -	virtual void	setNumTasks(int numTasks)-	{-        (void) numTasks;-	} -	///obsolete, use updateActions instead-	virtual void updateVehicles(btScalar timeStep)-	{-		updateActions(timeStep);-	}+virtual btDynamicsWorldType getWorldType() const+{+return BT_DISCRETE_DYNAMICS_WORLD;+} -	///obsolete, use addAction instead-	virtual void	addVehicle(btActionInterface* vehicle);-	///obsolete, use removeAction instead-	virtual void	removeVehicle(btActionInterface* vehicle);-	///obsolete, use addAction instead-	virtual void	addCharacter(btActionInterface* character);-	///obsolete, use removeAction instead-	virtual void	removeCharacter(btActionInterface* character);+///the forces on each rigidbody is accumulating together with gravity. clear this after each timestep.+virtual void clearForces(); -	void	setSynchronizeAllMotionStates(bool synchronizeAll)-	{-		m_synchronizeAllMotionStates = synchronizeAll;-	}-	bool getSynchronizeAllMotionStates() const-	{-		return m_synchronizeAllMotionStates;-	}+///apply gravity, call this once per timestep+virtual void applyGravity(); -	///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)-	virtual	void	serialize(btSerializer* serializer);+virtual void setNumTasks(int numTasks)+{+(void) numTasks;+}++///obsolete, use updateActions instead+virtual void updateVehicles(btScalar timeStep)+{+updateActions(timeStep);+}++///obsolete, use addAction instead+virtual void addVehicle(btActionInterface* vehicle);+///obsolete, use removeAction instead+virtual void removeVehicle(btActionInterface* vehicle);+///obsolete, use addAction instead+virtual void addCharacter(btActionInterface* character);+///obsolete, use removeAction instead+virtual void removeCharacter(btActionInterface* character);++void setSynchronizeAllMotionStates(bool synchronizeAll)+{+m_synchronizeAllMotionStates = synchronizeAll;+}+bool getSynchronizeAllMotionStates() const+{+return m_synchronizeAllMotionStates;+}++///Preliminary serialization test for Bullet 2.76. Loading those files requires a separate parser (see Bullet/Demos/SerializeDemo)+virtual void serialize(btSerializer* serializer);  }; 
bullet/BulletDynamics/Dynamics/btDynamicsWorld.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,118 +30,118 @@  enum btDynamicsWorldType {-	BT_SIMPLE_DYNAMICS_WORLD=1,-	BT_DISCRETE_DYNAMICS_WORLD=2,-	BT_CONTINUOUS_DYNAMICS_WORLD=3,-	BT_SOFT_RIGID_DYNAMICS_WORLD=4+BT_SIMPLE_DYNAMICS_WORLD=1,+BT_DISCRETE_DYNAMICS_WORLD=2,+BT_CONTINUOUS_DYNAMICS_WORLD=3,+BT_SOFT_RIGID_DYNAMICS_WORLD=4 };  ///The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc. class btDynamicsWorld : public btCollisionWorld-{+{ private:  protected:-		btInternalTickCallback m_internalTickCallback;-		btInternalTickCallback m_internalPreTickCallback;-		void*	m_worldUserInfo;+btInternalTickCallback m_internalTickCallback;+btInternalTickCallback m_internalPreTickCallback;+void* m_worldUserInfo; -		btContactSolverInfo	m_solverInfo;+btContactSolverInfo m_solverInfo;  public:-		 -		btDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphase,btCollisionConfiguration* collisionConfiguration)-		:btCollisionWorld(dispatcher,broadphase,collisionConfiguration), m_internalTickCallback(0),m_internalPreTickCallback(0), m_worldUserInfo(0)-		{-		} -		virtual ~btDynamicsWorld()-		{-		}-		-		///stepSimulation proceeds the simulation over 'timeStep', units in preferably in seconds.-		///By default, Bullet will subdivide the timestep in constant substeps of each 'fixedTimeStep'.-		///in order to keep the simulation real-time, the maximum number of substeps can be clamped to 'maxSubSteps'.-		///You can disable subdividing the timestep/substepping by passing maxSubSteps=0 as second argument to stepSimulation, but in that case you have to keep the timeStep constant.-		virtual int		stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))=0;-			-		virtual void	debugDrawWorld() = 0;-				-		virtual void	addConstraint(btTypedConstraint* constraint, bool disableCollisionsBetweenLinkedBodies=false) -		{ -			(void)constraint; (void)disableCollisionsBetweenLinkedBodies;-		}+btDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* broadphase,btCollisionConfiguration* collisionConfiguration)+:btCollisionWorld(dispatcher,broadphase,collisionConfiguration), m_internalTickCallback(0),m_internalPreTickCallback(0), m_worldUserInfo(0)+{+} -		virtual void	removeConstraint(btTypedConstraint* constraint) {(void)constraint;}+virtual ~btDynamicsWorld()+{+} -		virtual void	addAction(btActionInterface* action) = 0;+///stepSimulation proceeds the simulation over 'timeStep', units in preferably in seconds.+///By default, Bullet will subdivide the timestep in constant substeps of each 'fixedTimeStep'.+///in order to keep the simulation real-time, the maximum number of substeps can be clamped to 'maxSubSteps'.+///You can disable subdividing the timestep/substepping by passing maxSubSteps=0 as second argument to stepSimulation, but in that case you have to keep the timeStep constant.+virtual int stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.))=0; -		virtual void	removeAction(btActionInterface* action) = 0;+virtual void debugDrawWorld() = 0; -		//once a rigidbody is added to the dynamics world, it will get this gravity assigned-		//existing rigidbodies in the world get gravity assigned too, during this method-		virtual void	setGravity(const btVector3& gravity) = 0;-		virtual btVector3 getGravity () const = 0;+virtual void addConstraint(btTypedConstraint* constraint, bool disableCollisionsBetweenLinkedBodies=false)+{+(void)constraint; (void)disableCollisionsBetweenLinkedBodies;+} -		virtual void	synchronizeMotionStates() = 0;+virtual void removeConstraint(btTypedConstraint* constraint) {(void)constraint;} -		virtual void	addRigidBody(btRigidBody* body) = 0;+virtual void addAction(btActionInterface* action) = 0; -		virtual void	addRigidBody(btRigidBody* body, short group, short mask) = 0;+virtual void removeAction(btActionInterface* action) = 0; -		virtual void	removeRigidBody(btRigidBody* body) = 0;+//once a rigidbody is added to the dynamics world, it will get this gravity assigned+//existing rigidbodies in the world get gravity assigned too, during this method+virtual void setGravity(const btVector3& gravity) = 0;+virtual btVector3 getGravity () const = 0; -		virtual void	setConstraintSolver(btConstraintSolver* solver) = 0;+virtual void synchronizeMotionStates() = 0; -		virtual btConstraintSolver* getConstraintSolver() = 0;-		-		virtual	int		getNumConstraints() const {	return 0;		}-		-		virtual btTypedConstraint* getConstraint(int index)		{	(void)index;		return 0;		}-		-		virtual const btTypedConstraint* getConstraint(int index) const	{	(void)index;	return 0;	}+virtual void addRigidBody(btRigidBody* body) = 0; -		virtual btDynamicsWorldType	getWorldType() const=0;+virtual void addRigidBody(btRigidBody* body, short group, short mask) = 0; -		virtual void	clearForces() = 0;+virtual void removeRigidBody(btRigidBody* body) = 0; -		/// Set the callback for when an internal tick (simulation substep) happens, optional user info-		void setInternalTickCallback(btInternalTickCallback cb,	void* worldUserInfo=0,bool isPreTick=false) -		{ -			if (isPreTick)-			{-				m_internalPreTickCallback = cb;-			} else-			{-				m_internalTickCallback = cb; -			}-			m_worldUserInfo = worldUserInfo;-		}+virtual void setConstraintSolver(btConstraintSolver* solver) = 0; -		void	setWorldUserInfo(void* worldUserInfo)-		{-			m_worldUserInfo = worldUserInfo;-		}+virtual btConstraintSolver* getConstraintSolver() = 0; -		void*	getWorldUserInfo() const-		{-			return m_worldUserInfo;-		}+virtual int getNumConstraints() const { return 0; } -		btContactSolverInfo& getSolverInfo()-		{-			return m_solverInfo;-		}+virtual btTypedConstraint* getConstraint(int index) { (void)index; return 0; } +virtual const btTypedConstraint* getConstraint(int index) const { (void)index; return 0; } -		///obsolete, use addAction instead.-		virtual void	addVehicle(btActionInterface* vehicle) {(void)vehicle;}-		///obsolete, use removeAction instead-		virtual void	removeVehicle(btActionInterface* vehicle) {(void)vehicle;}-		///obsolete, use addAction instead.-		virtual void	addCharacter(btActionInterface* character) {(void)character;}-		///obsolete, use removeAction instead-		virtual void	removeCharacter(btActionInterface* character) {(void)character;}+virtual btDynamicsWorldType getWorldType() const=0;++virtual void clearForces() = 0;++/// Set the callback for when an internal tick (simulation substep) happens, optional user info+void setInternalTickCallback(btInternalTickCallback cb, void* worldUserInfo=0,bool isPreTick=false)+{+if (isPreTick)+{+m_internalPreTickCallback = cb;+} else+{+m_internalTickCallback = cb;+}+m_worldUserInfo = worldUserInfo;+}++void setWorldUserInfo(void* worldUserInfo)+{+m_worldUserInfo = worldUserInfo;+}++void* getWorldUserInfo() const+{+return m_worldUserInfo;+}++btContactSolverInfo& getSolverInfo()+{+return m_solverInfo;+}+++///obsolete, use addAction instead.+virtual void addVehicle(btActionInterface* vehicle) {(void)vehicle;}+///obsolete, use removeAction instead+virtual void removeVehicle(btActionInterface* vehicle) {(void)vehicle;}+///obsolete, use addAction instead.+virtual void addCharacter(btActionInterface* character) {(void)character;}+///obsolete, use removeAction instead+virtual void removeCharacter(btActionInterface* character) {(void)character;}   };
bullet/BulletDynamics/Dynamics/btRigidBody.h view
@@ -1,688 +1,688 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/--#ifndef BT_RIGIDBODY_H-#define BT_RIGIDBODY_H--#include "LinearMath/btAlignedObjectArray.h"-#include "LinearMath/btTransform.h"-#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"-#include "BulletCollision/CollisionDispatch/btCollisionObject.h"--class btCollisionShape;-class btMotionState;-class btTypedConstraint;---extern btScalar gDeactivationTime;-extern bool gDisableDeactivation;--#ifdef BT_USE_DOUBLE_PRECISION-#define btRigidBodyData	btRigidBodyDoubleData-#define btRigidBodyDataName	"btRigidBodyDoubleData"-#else-#define btRigidBodyData	btRigidBodyFloatData-#define btRigidBodyDataName	"btRigidBodyFloatData"-#endif //BT_USE_DOUBLE_PRECISION---enum	btRigidBodyFlags-{-	BT_DISABLE_WORLD_GRAVITY = 1-};---///The btRigidBody is the main class for rigid body objects. It is derived from btCollisionObject, so it keeps a pointer to a btCollisionShape.-///It is recommended for performance and memory use to share btCollisionShape objects whenever possible.-///There are 3 types of rigid bodies: -///- A) Dynamic rigid bodies, with positive mass. Motion is controlled by rigid body dynamics.-///- B) Fixed objects with zero mass. They are not moving (basically collision objects)-///- C) Kinematic objects, which are objects without mass, but the user can move them. There is on-way interaction, and Bullet calculates a velocity based on the timestep and previous and current world transform.-///Bullet automatically deactivates dynamic rigid bodies, when the velocity is below a threshold for a given time.-///Deactivated (sleeping) rigid bodies don't take any processing time, except a minor broadphase collision detection impact (to allow active objects to activate/wake up sleeping objects)-class btRigidBody  : public btCollisionObject-{--	btMatrix3x3	m_invInertiaTensorWorld;-	btVector3		m_linearVelocity;-	btVector3		m_angularVelocity;-	btScalar		m_inverseMass;-	btVector3		m_linearFactor;--	btVector3		m_gravity;	-	btVector3		m_gravity_acceleration;-	btVector3		m_invInertiaLocal;-	btVector3		m_totalForce;-	btVector3		m_totalTorque;-	-	btScalar		m_linearDamping;-	btScalar		m_angularDamping;--	bool			m_additionalDamping;-	btScalar		m_additionalDampingFactor;-	btScalar		m_additionalLinearDampingThresholdSqr;-	btScalar		m_additionalAngularDampingThresholdSqr;-	btScalar		m_additionalAngularDampingFactor;---	btScalar		m_linearSleepingThreshold;-	btScalar		m_angularSleepingThreshold;--	//m_optionalMotionState allows to automatic synchronize the world transform for active objects-	btMotionState*	m_optionalMotionState;--	//keep track of typed constraints referencing this rigid body-	btAlignedObjectArray<btTypedConstraint*> m_constraintRefs;--	int				m_rigidbodyFlags;-	-	int				m_debugBodyId;-	--protected:--	ATTRIBUTE_ALIGNED64(btVector3		m_deltaLinearVelocity);-	btVector3		m_deltaAngularVelocity;-	btVector3		m_angularFactor;-	btVector3		m_invMass;-	btVector3		m_pushVelocity;-	btVector3		m_turnVelocity;---public:---	///The btRigidBodyConstructionInfo structure provides information to create a rigid body. Setting mass to zero creates a fixed (non-dynamic) rigid body.-	///For dynamic objects, you can use the collision shape to approximate the local inertia tensor, otherwise use the zero vector (default argument)-	///You can use the motion state to synchronize the world transform between physics and graphics objects. -	///And if the motion state is provided, the rigid body will initialize its initial world transform from the motion state,-	///m_startWorldTransform is only used when you don't provide a motion state.-	struct	btRigidBodyConstructionInfo-	{-		btScalar			m_mass;--		///When a motionState is provided, the rigid body will initialize its world transform from the motion state-		///In this case, m_startWorldTransform is ignored.-		btMotionState*		m_motionState;-		btTransform	m_startWorldTransform;--		btCollisionShape*	m_collisionShape;-		btVector3			m_localInertia;-		btScalar			m_linearDamping;-		btScalar			m_angularDamping;--		///best simulation results when friction is non-zero-		btScalar			m_friction;-		///best simulation results using zero restitution.-		btScalar			m_restitution;--		btScalar			m_linearSleepingThreshold;-		btScalar			m_angularSleepingThreshold;--		//Additional damping can help avoiding lowpass jitter motion, help stability for ragdolls etc.-		//Such damping is undesirable, so once the overall simulation quality of the rigid body dynamics system has improved, this should become obsolete-		bool				m_additionalDamping;-		btScalar			m_additionalDampingFactor;-		btScalar			m_additionalLinearDampingThresholdSqr;-		btScalar			m_additionalAngularDampingThresholdSqr;-		btScalar			m_additionalAngularDampingFactor;--		btRigidBodyConstructionInfo(	btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0)):-		m_mass(mass),-			m_motionState(motionState),-			m_collisionShape(collisionShape),-			m_localInertia(localInertia),-			m_linearDamping(btScalar(0.)),-			m_angularDamping(btScalar(0.)),-			m_friction(btScalar(0.5)),-			m_restitution(btScalar(0.)),-			m_linearSleepingThreshold(btScalar(0.8)),-			m_angularSleepingThreshold(btScalar(1.f)),-			m_additionalDamping(false),-			m_additionalDampingFactor(btScalar(0.005)),-			m_additionalLinearDampingThresholdSqr(btScalar(0.01)),-			m_additionalAngularDampingThresholdSqr(btScalar(0.01)),-			m_additionalAngularDampingFactor(btScalar(0.01))-		{-			m_startWorldTransform.setIdentity();-		}-	};--	///btRigidBody constructor using construction info-	btRigidBody(	const btRigidBodyConstructionInfo& constructionInfo);--	///btRigidBody constructor for backwards compatibility. -	///To specify friction (etc) during rigid body construction, please use the other constructor (using btRigidBodyConstructionInfo)-	btRigidBody(	btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0));---	virtual ~btRigidBody()-        { -                //No constraints should point to this rigidbody-		//Remove constraints from the dynamics world before you delete the related rigidbodies. -                btAssert(m_constraintRefs.size()==0); -        }--protected:--	///setupRigidBody is only used internally by the constructor-	void	setupRigidBody(const btRigidBodyConstructionInfo& constructionInfo);--public:--	void			proceedToTransform(const btTransform& newTrans); -	-	///to keep collision detection and dynamics separate we don't store a rigidbody pointer-	///but a rigidbody is derived from btCollisionObject, so we can safely perform an upcast-	static const btRigidBody*	upcast(const btCollisionObject* colObj)-	{-		if (colObj->getInternalType()&btCollisionObject::CO_RIGID_BODY)-			return (const btRigidBody*)colObj;-		return 0;-	}-	static btRigidBody*	upcast(btCollisionObject* colObj)-	{-		if (colObj->getInternalType()&btCollisionObject::CO_RIGID_BODY)-			return (btRigidBody*)colObj;-		return 0;-	}-	-	/// continuous collision detection needs prediction-	void			predictIntegratedTransform(btScalar step, btTransform& predictedTransform) ;-	-	void			saveKinematicState(btScalar step);-	-	void			applyGravity();-	-	void			setGravity(const btVector3& acceleration);  --	const btVector3&	getGravity() const-	{-		return m_gravity_acceleration;-	}--	void			setDamping(btScalar lin_damping, btScalar ang_damping);--	btScalar getLinearDamping() const-	{-		return m_linearDamping;-	}--	btScalar getAngularDamping() const-	{-		return m_angularDamping;-	}--	btScalar getLinearSleepingThreshold() const-	{-		return m_linearSleepingThreshold;-	}--	btScalar getAngularSleepingThreshold() const-	{-		return m_angularSleepingThreshold;-	}--	void			applyDamping(btScalar timeStep);--	SIMD_FORCE_INLINE const btCollisionShape*	getCollisionShape() const {-		return m_collisionShape;-	}--	SIMD_FORCE_INLINE btCollisionShape*	getCollisionShape() {-			return m_collisionShape;-	}-	-	void			setMassProps(btScalar mass, const btVector3& inertia);-	-	const btVector3& getLinearFactor() const-	{-		return m_linearFactor;-	}-	void setLinearFactor(const btVector3& linearFactor)-	{-		m_linearFactor = linearFactor;-		m_invMass = m_linearFactor*m_inverseMass;-	}-	btScalar		getInvMass() const { return m_inverseMass; }-	const btMatrix3x3& getInvInertiaTensorWorld() const { -		return m_invInertiaTensorWorld; -	}-		-	void			integrateVelocities(btScalar step);--	void			setCenterOfMassTransform(const btTransform& xform);--	void			applyCentralForce(const btVector3& force)-	{-		m_totalForce += force*m_linearFactor;-	}--	const btVector3& getTotalForce() const-	{-		return m_totalForce;-	};--	const btVector3& getTotalTorque() const-	{-		return m_totalTorque;-	};-    -	const btVector3& getInvInertiaDiagLocal() const-	{-		return m_invInertiaLocal;-	};--	void	setInvInertiaDiagLocal(const btVector3& diagInvInertia)-	{-		m_invInertiaLocal = diagInvInertia;-	}--	void	setSleepingThresholds(btScalar linear,btScalar angular)-	{-		m_linearSleepingThreshold = linear;-		m_angularSleepingThreshold = angular;-	}--	void	applyTorque(const btVector3& torque)-	{-		m_totalTorque += torque*m_angularFactor;-	}-	-	void	applyForce(const btVector3& force, const btVector3& rel_pos) -	{-		applyCentralForce(force);-		applyTorque(rel_pos.cross(force*m_linearFactor));-	}-	-	void applyCentralImpulse(const btVector3& impulse)-	{-		m_linearVelocity += impulse *m_linearFactor * m_inverseMass;-	}-	-  	void applyTorqueImpulse(const btVector3& torque)-	{-			m_angularVelocity += m_invInertiaTensorWorld * torque * m_angularFactor;-	}-	-	void applyImpulse(const btVector3& impulse, const btVector3& rel_pos) -	{-		if (m_inverseMass != btScalar(0.))-		{-			applyCentralImpulse(impulse);-			if (m_angularFactor)-			{-				applyTorqueImpulse(rel_pos.cross(impulse*m_linearFactor));-			}-		}-	}--	void clearForces() -	{-		m_totalForce.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));-		m_totalTorque.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));-	}-	-	void updateInertiaTensor();    -	-	const btVector3&     getCenterOfMassPosition() const { -		return m_worldTransform.getOrigin(); -	}-	btQuaternion getOrientation() const;-	-	const btTransform&  getCenterOfMassTransform() const { -		return m_worldTransform; -	}-	const btVector3&   getLinearVelocity() const { -		return m_linearVelocity; -	}-	const btVector3&    getAngularVelocity() const { -		return m_angularVelocity; -	}-	--	inline void setLinearVelocity(const btVector3& lin_vel)-	{ -		m_linearVelocity = lin_vel; -	}--	inline void setAngularVelocity(const btVector3& ang_vel) -	{ -		m_angularVelocity = ang_vel; -	}--	btVector3 getVelocityInLocalPoint(const btVector3& rel_pos) const-	{-		//we also calculate lin/ang velocity for kinematic objects-		return m_linearVelocity + m_angularVelocity.cross(rel_pos);--		//for kinematic objects, we could also use use:-		//		return 	(m_worldTransform(rel_pos) - m_interpolationWorldTransform(rel_pos)) / m_kinematicTimeStep;-	}--	void translate(const btVector3& v) -	{-		m_worldTransform.getOrigin() += v; -	}--	-	void	getAabb(btVector3& aabbMin,btVector3& aabbMax) const;-----	-	SIMD_FORCE_INLINE btScalar computeImpulseDenominator(const btVector3& pos, const btVector3& normal) const-	{-		btVector3 r0 = pos - getCenterOfMassPosition();--		btVector3 c0 = (r0).cross(normal);--		btVector3 vec = (c0 * getInvInertiaTensorWorld()).cross(r0);--		return m_inverseMass + normal.dot(vec);--	}--	SIMD_FORCE_INLINE btScalar computeAngularImpulseDenominator(const btVector3& axis) const-	{-		btVector3 vec = axis * getInvInertiaTensorWorld();-		return axis.dot(vec);-	}--	SIMD_FORCE_INLINE void	updateDeactivation(btScalar timeStep)-	{-		if ( (getActivationState() == ISLAND_SLEEPING) || (getActivationState() == DISABLE_DEACTIVATION))-			return;--		if ((getLinearVelocity().length2() < m_linearSleepingThreshold*m_linearSleepingThreshold) &&-			(getAngularVelocity().length2() < m_angularSleepingThreshold*m_angularSleepingThreshold))-		{-			m_deactivationTime += timeStep;-		} else-		{-			m_deactivationTime=btScalar(0.);-			setActivationState(0);-		}--	}--	SIMD_FORCE_INLINE bool	wantsSleeping()-	{--		if (getActivationState() == DISABLE_DEACTIVATION)-			return false;--		//disable deactivation-		if (gDisableDeactivation || (gDeactivationTime == btScalar(0.)))-			return false;--		if ( (getActivationState() == ISLAND_SLEEPING) || (getActivationState() == WANTS_DEACTIVATION))-			return true;--		if (m_deactivationTime> gDeactivationTime)-		{-			return true;-		}-		return false;-	}---	-	const btBroadphaseProxy*	getBroadphaseProxy() const-	{-		return m_broadphaseHandle;-	}-	btBroadphaseProxy*	getBroadphaseProxy() -	{-		return m_broadphaseHandle;-	}-	void	setNewBroadphaseProxy(btBroadphaseProxy* broadphaseProxy)-	{-		m_broadphaseHandle = broadphaseProxy;-	}--	//btMotionState allows to automatic synchronize the world transform for active objects-	btMotionState*	getMotionState()-	{-		return m_optionalMotionState;-	}-	const btMotionState*	getMotionState() const-	{-		return m_optionalMotionState;-	}-	void	setMotionState(btMotionState* motionState)-	{-		m_optionalMotionState = motionState;-		if (m_optionalMotionState)-			motionState->getWorldTransform(m_worldTransform);-	}--	//for experimental overriding of friction/contact solver func-	int	m_contactSolverType;-	int	m_frictionSolverType;--	void	setAngularFactor(const btVector3& angFac)-	{-		m_angularFactor = angFac;-	}--	void	setAngularFactor(btScalar angFac)-	{-		m_angularFactor.setValue(angFac,angFac,angFac);-	}-	const btVector3&	getAngularFactor() const-	{-		return m_angularFactor;-	}--	//is this rigidbody added to a btCollisionWorld/btDynamicsWorld/btBroadphase?-	bool	isInWorld() const-	{-		return (getBroadphaseProxy() != 0);-	}--	virtual bool checkCollideWithOverride(btCollisionObject* co);--	void addConstraintRef(btTypedConstraint* c);-	void removeConstraintRef(btTypedConstraint* c);--	btTypedConstraint* getConstraintRef(int index)-	{-		return m_constraintRefs[index];-	}--	int getNumConstraintRefs() const-	{-		return m_constraintRefs.size();-	}--	void	setFlags(int flags)-	{-		m_rigidbodyFlags = flags;-	}--	int getFlags() const-	{-		return m_rigidbodyFlags;-	}--	const btVector3& getDeltaLinearVelocity() const-	{-		return m_deltaLinearVelocity;-	}--	const btVector3& getDeltaAngularVelocity() const-	{-		return m_deltaAngularVelocity;-	}--	const btVector3& getPushVelocity() const -	{-		return m_pushVelocity;-	}--	const btVector3& getTurnVelocity() const -	{-		return m_turnVelocity;-	}---	////////////////////////////////////////////////-	///some internal methods, don't use them-		-	btVector3& internalGetDeltaLinearVelocity()-	{-		return m_deltaLinearVelocity;-	}--	btVector3& internalGetDeltaAngularVelocity()-	{-		return m_deltaAngularVelocity;-	}--	const btVector3& internalGetAngularFactor() const-	{-		return m_angularFactor;-	}--	const btVector3& internalGetInvMass() const-	{-		return m_invMass;-	}-	-	btVector3& internalGetPushVelocity()-	{-		return m_pushVelocity;-	}--	btVector3& internalGetTurnVelocity()-	{-		return m_turnVelocity;-	}--	SIMD_FORCE_INLINE void	internalGetVelocityInLocalPointObsolete(const btVector3& rel_pos, btVector3& velocity ) const-	{-		velocity = getLinearVelocity()+m_deltaLinearVelocity + (getAngularVelocity()+m_deltaAngularVelocity).cross(rel_pos);-	}--	SIMD_FORCE_INLINE void	internalGetAngularVelocity(btVector3& angVel) const-	{-		angVel = getAngularVelocity()+m_deltaAngularVelocity;-	}---	//Optimization for the iterative solver: avoid calculating constant terms involving inertia, normal, relative position-	SIMD_FORCE_INLINE void internalApplyImpulse(const btVector3& linearComponent, const btVector3& angularComponent,const btScalar impulseMagnitude)-	{-		if (m_inverseMass)-		{-			m_deltaLinearVelocity += linearComponent*impulseMagnitude;-			m_deltaAngularVelocity += angularComponent*(impulseMagnitude*m_angularFactor);-		}-	}--	SIMD_FORCE_INLINE void internalApplyPushImpulse(const btVector3& linearComponent, const btVector3& angularComponent,btScalar impulseMagnitude)-	{-		if (m_inverseMass)-		{-			m_pushVelocity += linearComponent*impulseMagnitude;-			m_turnVelocity += angularComponent*(impulseMagnitude*m_angularFactor);-		}-	}-	-	void	internalWritebackVelocity()-	{-		if (m_inverseMass)-		{-			setLinearVelocity(getLinearVelocity()+ m_deltaLinearVelocity);-			setAngularVelocity(getAngularVelocity()+m_deltaAngularVelocity);-			//m_deltaLinearVelocity.setZero();-			//m_deltaAngularVelocity .setZero();-			//m_originalBody->setCompanionId(-1);-		}-	}---	void	internalWritebackVelocity(btScalar timeStep);--	--	///////////////////////////////////////////////--	virtual	int	calculateSerializeBufferSize()	const;--	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer,  class btSerializer* serializer) const;--	virtual void serializeSingleObject(class btSerializer* serializer) const;--};--//@todo add m_optionalMotionState and m_constraintRefs to btRigidBodyData-///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btRigidBodyFloatData-{-	btCollisionObjectFloatData	m_collisionObjectData;-	btMatrix3x3FloatData		m_invInertiaTensorWorld;-	btVector3FloatData		m_linearVelocity;-	btVector3FloatData		m_angularVelocity;-	btVector3FloatData		m_angularFactor;-	btVector3FloatData		m_linearFactor;-	btVector3FloatData		m_gravity;	-	btVector3FloatData		m_gravity_acceleration;-	btVector3FloatData		m_invInertiaLocal;-	btVector3FloatData		m_totalForce;-	btVector3FloatData		m_totalTorque;-	float					m_inverseMass;-	float					m_linearDamping;-	float					m_angularDamping;-	float					m_additionalDampingFactor;-	float					m_additionalLinearDampingThresholdSqr;-	float					m_additionalAngularDampingThresholdSqr;-	float					m_additionalAngularDampingFactor;-	float					m_linearSleepingThreshold;-	float					m_angularSleepingThreshold;-	int						m_additionalDamping;-};--///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64-struct	btRigidBodyDoubleData-{-	btCollisionObjectDoubleData	m_collisionObjectData;-	btMatrix3x3DoubleData		m_invInertiaTensorWorld;-	btVector3DoubleData		m_linearVelocity;-	btVector3DoubleData		m_angularVelocity;-	btVector3DoubleData		m_angularFactor;-	btVector3DoubleData		m_linearFactor;-	btVector3DoubleData		m_gravity;	-	btVector3DoubleData		m_gravity_acceleration;-	btVector3DoubleData		m_invInertiaLocal;-	btVector3DoubleData		m_totalForce;-	btVector3DoubleData		m_totalTorque;-	double					m_inverseMass;-	double					m_linearDamping;-	double					m_angularDamping;-	double					m_additionalDampingFactor;-	double					m_additionalLinearDampingThresholdSqr;-	double					m_additionalAngularDampingThresholdSqr;-	double					m_additionalAngularDampingFactor;-	double					m_linearSleepingThreshold;-	double					m_angularSleepingThreshold;-	int						m_additionalDamping;-	char	m_padding[4];+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_RIGIDBODY_H+#define BT_RIGIDBODY_H++#include "LinearMath/btAlignedObjectArray.h"+#include "LinearMath/btTransform.h"+#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"+#include "BulletCollision/CollisionDispatch/btCollisionObject.h"++class btCollisionShape;+class btMotionState;+class btTypedConstraint;+++extern btScalar gDeactivationTime;+extern bool gDisableDeactivation;++#ifdef BT_USE_DOUBLE_PRECISION+#define btRigidBodyData btRigidBodyDoubleData+#define btRigidBodyDataName "btRigidBodyDoubleData"+#else+#define btRigidBodyData btRigidBodyFloatData+#define btRigidBodyDataName "btRigidBodyFloatData"+#endif //BT_USE_DOUBLE_PRECISION+++enum btRigidBodyFlags+{+BT_DISABLE_WORLD_GRAVITY = 1+};+++///The btRigidBody is the main class for rigid body objects. It is derived from btCollisionObject, so it keeps a pointer to a btCollisionShape.+///It is recommended for performance and memory use to share btCollisionShape objects whenever possible.+///There are 3 types of rigid bodies:+///- A) Dynamic rigid bodies, with positive mass. Motion is controlled by rigid body dynamics.+///- B) Fixed objects with zero mass. They are not moving (basically collision objects)+///- C) Kinematic objects, which are objects without mass, but the user can move them. There is on-way interaction, and Bullet calculates a velocity based on the timestep and previous and current world transform.+///Bullet automatically deactivates dynamic rigid bodies, when the velocity is below a threshold for a given time.+///Deactivated (sleeping) rigid bodies don't take any processing time, except a minor broadphase collision detection impact (to allow active objects to activate/wake up sleeping objects)+class btRigidBody : public btCollisionObject+{ private:++btMatrix3x3 m_invInertiaTensorWorld;+btVector3 m_linearVelocity;+btVector3 m_angularVelocity;+btScalar m_inverseMass;+btVector3 m_linearFactor;++btVector3 m_gravity;+btVector3 m_gravity_acceleration;+btVector3 m_invInertiaLocal;+btVector3 m_totalForce;+btVector3 m_totalTorque;++btScalar m_linearDamping;+btScalar m_angularDamping;++bool m_additionalDamping;+btScalar m_additionalDampingFactor;+btScalar m_additionalLinearDampingThresholdSqr;+btScalar m_additionalAngularDampingThresholdSqr;+btScalar m_additionalAngularDampingFactor;+++btScalar m_linearSleepingThreshold;+btScalar m_angularSleepingThreshold;++//m_optionalMotionState allows to automatic synchronize the world transform for active objects+btMotionState* m_optionalMotionState;++//keep track of typed constraints referencing this rigid body+btAlignedObjectArray<btTypedConstraint*> m_constraintRefs;++int m_rigidbodyFlags;++int m_debugBodyId;+++protected:++ATTRIBUTE_ALIGNED64(btVector3 m_deltaLinearVelocity);+btVector3 m_deltaAngularVelocity;+btVector3 m_angularFactor;+btVector3 m_invMass;+btVector3 m_pushVelocity;+btVector3 m_turnVelocity;+++public:+++///The btRigidBodyConstructionInfo structure provides information to create a rigid body. Setting mass to zero creates a fixed (non-dynamic) rigid body.+///For dynamic objects, you can use the collision shape to approximate the local inertia tensor, otherwise use the zero vector (default argument)+///You can use the motion state to synchronize the world transform between physics and graphics objects.+///And if the motion state is provided, the rigid body will initialize its initial world transform from the motion state,+///m_startWorldTransform is only used when you don't provide a motion state.+struct btRigidBodyConstructionInfo+{+btScalar m_mass;++///When a motionState is provided, the rigid body will initialize its world transform from the motion state+///In this case, m_startWorldTransform is ignored.+btMotionState* m_motionState;+btTransform m_startWorldTransform;++btCollisionShape* m_collisionShape;+btVector3 m_localInertia;+btScalar m_linearDamping;+btScalar m_angularDamping;++///best simulation results when friction is non-zero+btScalar m_friction;+///best simulation results using zero restitution.+btScalar m_restitution;++btScalar m_linearSleepingThreshold;+btScalar m_angularSleepingThreshold;++//Additional damping can help avoiding lowpass jitter motion, help stability for ragdolls etc.+//Such damping is undesirable, so once the overall simulation quality of the rigid body dynamics system has improved, this should become obsolete+bool m_additionalDamping;+btScalar m_additionalDampingFactor;+btScalar m_additionalLinearDampingThresholdSqr;+btScalar m_additionalAngularDampingThresholdSqr;+btScalar m_additionalAngularDampingFactor;++btRigidBodyConstructionInfo( btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0)):+m_mass(mass),+m_motionState(motionState),+m_collisionShape(collisionShape),+m_localInertia(localInertia),+m_linearDamping(btScalar(0.)),+m_angularDamping(btScalar(0.)),+m_friction(btScalar(0.5)),+m_restitution(btScalar(0.)),+m_linearSleepingThreshold(btScalar(0.8)),+m_angularSleepingThreshold(btScalar(1.f)),+m_additionalDamping(false),+m_additionalDampingFactor(btScalar(0.005)),+m_additionalLinearDampingThresholdSqr(btScalar(0.01)),+m_additionalAngularDampingThresholdSqr(btScalar(0.01)),+m_additionalAngularDampingFactor(btScalar(0.01))+{+m_startWorldTransform.setIdentity();+}+};++///btRigidBody constructor using construction info+btRigidBody( const btRigidBodyConstructionInfo& constructionInfo);++///btRigidBody constructor for backwards compatibility.+///To specify friction (etc) during rigid body construction, please use the other constructor (using btRigidBodyConstructionInfo)+btRigidBody( btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0));+++virtual ~btRigidBody()+{+//No constraints should point to this rigidbody+//Remove constraints from the dynamics world before you delete the related rigidbodies.+btAssert(m_constraintRefs.size()==0);+}++protected:++///setupRigidBody is only used internally by the constructor+void setupRigidBody(const btRigidBodyConstructionInfo& constructionInfo);++public:++void proceedToTransform(const btTransform& newTrans);++///to keep collision detection and dynamics separate we don't store a rigidbody pointer+///but a rigidbody is derived from btCollisionObject, so we can safely perform an upcast+static const btRigidBody* upcast(const btCollisionObject* colObj)+{+if (colObj->getInternalType()&btCollisionObject::CO_RIGID_BODY)+return (const btRigidBody*)colObj;+return 0;+}+static btRigidBody* upcast(btCollisionObject* colObj)+{+if (colObj->getInternalType()&btCollisionObject::CO_RIGID_BODY)+return (btRigidBody*)colObj;+return 0;+}++/// continuous collision detection needs prediction+void predictIntegratedTransform(btScalar step, btTransform& predictedTransform) ;++void saveKinematicState(btScalar step);++void applyGravity();++void setGravity(const btVector3& acceleration);++const btVector3& getGravity() const+{+return m_gravity_acceleration;+}++void setDamping(btScalar lin_damping, btScalar ang_damping);++btScalar getLinearDamping() const+{+return m_linearDamping;+}++btScalar getAngularDamping() const+{+return m_angularDamping;+}++btScalar getLinearSleepingThreshold() const+{+return m_linearSleepingThreshold;+}++btScalar getAngularSleepingThreshold() const+{+return m_angularSleepingThreshold;+}++void applyDamping(btScalar timeStep);++SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const {+return m_collisionShape;+}++SIMD_FORCE_INLINE btCollisionShape* getCollisionShape() {+return m_collisionShape;+}++void setMassProps(btScalar mass, const btVector3& inertia);++const btVector3& getLinearFactor() const+{+return m_linearFactor;+}+void setLinearFactor(const btVector3& linearFactor)+{+m_linearFactor = linearFactor;+m_invMass = m_linearFactor*m_inverseMass;+}+btScalar getInvMass() const { return m_inverseMass; }+const btMatrix3x3& getInvInertiaTensorWorld() const {+return m_invInertiaTensorWorld;+}++void integrateVelocities(btScalar step);++void setCenterOfMassTransform(const btTransform& xform);++void applyCentralForce(const btVector3& force)+{+m_totalForce += force*m_linearFactor;+}++const btVector3& getTotalForce() const+{+return m_totalForce;+};++const btVector3& getTotalTorque() const+{+return m_totalTorque;+};++const btVector3& getInvInertiaDiagLocal() const+{+return m_invInertiaLocal;+};++void setInvInertiaDiagLocal(const btVector3& diagInvInertia)+{+m_invInertiaLocal = diagInvInertia;+}++void setSleepingThresholds(btScalar linear,btScalar angular)+{+m_linearSleepingThreshold = linear;+m_angularSleepingThreshold = angular;+}++void applyTorque(const btVector3& torque)+{+m_totalTorque += torque*m_angularFactor;+}++void applyForce(const btVector3& force, const btVector3& rel_pos)+{+applyCentralForce(force);+applyTorque(rel_pos.cross(force*m_linearFactor));+}++void applyCentralImpulse(const btVector3& impulse)+{+m_linearVelocity += impulse *m_linearFactor * m_inverseMass;+}++void applyTorqueImpulse(const btVector3& torque)+{+m_angularVelocity += m_invInertiaTensorWorld * torque * m_angularFactor;+}++void applyImpulse(const btVector3& impulse, const btVector3& rel_pos)+{+if (m_inverseMass != btScalar(0.))+{+applyCentralImpulse(impulse);+if (m_angularFactor)+{+applyTorqueImpulse(rel_pos.cross(impulse*m_linearFactor));+}+}+}++void clearForces()+{+m_totalForce.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));+m_totalTorque.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));+}++void updateInertiaTensor();++const btVector3& getCenterOfMassPosition() const {+return m_worldTransform.getOrigin();+}+btQuaternion getOrientation() const;++const btTransform& getCenterOfMassTransform() const {+return m_worldTransform;+}+const btVector3& getLinearVelocity() const {+return m_linearVelocity;+}+const btVector3& getAngularVelocity() const {+return m_angularVelocity;+}+++inline void setLinearVelocity(const btVector3& lin_vel)+{+m_linearVelocity = lin_vel;+}++inline void setAngularVelocity(const btVector3& ang_vel)+{+m_angularVelocity = ang_vel;+}++btVector3 getVelocityInLocalPoint(const btVector3& rel_pos) const+{+//we also calculate lin/ang velocity for kinematic objects+return m_linearVelocity + m_angularVelocity.cross(rel_pos);++//for kinematic objects, we could also use use:+// return (m_worldTransform(rel_pos) - m_interpolationWorldTransform(rel_pos)) / m_kinematicTimeStep;+}++void translate(const btVector3& v)+{+m_worldTransform.getOrigin() += v;+}+++void getAabb(btVector3& aabbMin,btVector3& aabbMax) const;++++++SIMD_FORCE_INLINE btScalar computeImpulseDenominator(const btVector3& pos, const btVector3& normal) const+{+btVector3 r0 = pos - getCenterOfMassPosition();++btVector3 c0 = (r0).cross(normal);++btVector3 vec = (c0 * getInvInertiaTensorWorld()).cross(r0);++return m_inverseMass + normal.dot(vec);++}++SIMD_FORCE_INLINE btScalar computeAngularImpulseDenominator(const btVector3& axis) const+{+btVector3 vec = axis * getInvInertiaTensorWorld();+return axis.dot(vec);+}++SIMD_FORCE_INLINE void updateDeactivation(btScalar timeStep)+{+if ( (getActivationState() == ISLAND_SLEEPING) || (getActivationState() == DISABLE_DEACTIVATION))+return;++if ((getLinearVelocity().length2() < m_linearSleepingThreshold*m_linearSleepingThreshold) &&+(getAngularVelocity().length2() < m_angularSleepingThreshold*m_angularSleepingThreshold))+{+m_deactivationTime += timeStep;+} else+{+m_deactivationTime=btScalar(0.);+setActivationState(0);+}++}++SIMD_FORCE_INLINE bool wantsSleeping()+{++if (getActivationState() == DISABLE_DEACTIVATION)+return false;++//disable deactivation+if (gDisableDeactivation || (gDeactivationTime == btScalar(0.)))+return false;++if ( (getActivationState() == ISLAND_SLEEPING) || (getActivationState() == WANTS_DEACTIVATION))+return true;++if (m_deactivationTime> gDeactivationTime)+{+return true;+}+return false;+}++++const btBroadphaseProxy* getBroadphaseProxy() const+{+return m_broadphaseHandle;+}+btBroadphaseProxy* getBroadphaseProxy()+{+return m_broadphaseHandle;+}+void setNewBroadphaseProxy(btBroadphaseProxy* broadphaseProxy)+{+m_broadphaseHandle = broadphaseProxy;+}++//btMotionState allows to automatic synchronize the world transform for active objects+btMotionState* getMotionState()+{+return m_optionalMotionState;+}+const btMotionState* getMotionState() const+{+return m_optionalMotionState;+}+void setMotionState(btMotionState* motionState)+{+m_optionalMotionState = motionState;+if (m_optionalMotionState)+motionState->getWorldTransform(m_worldTransform);+}++//for experimental overriding of friction/contact solver func+int m_contactSolverType;+int m_frictionSolverType;++void setAngularFactor(const btVector3& angFac)+{+m_angularFactor = angFac;+}++void setAngularFactor(btScalar angFac)+{+m_angularFactor.setValue(angFac,angFac,angFac);+}+const btVector3& getAngularFactor() const+{+return m_angularFactor;+}++//is this rigidbody added to a btCollisionWorld/btDynamicsWorld/btBroadphase?+bool isInWorld() const+{+return (getBroadphaseProxy() != 0);+}++virtual bool checkCollideWithOverride(btCollisionObject* co);++void addConstraintRef(btTypedConstraint* c);+void removeConstraintRef(btTypedConstraint* c);++btTypedConstraint* getConstraintRef(int index)+{+return m_constraintRefs[index];+}++int getNumConstraintRefs() const+{+return m_constraintRefs.size();+}++void setFlags(int flags)+{+m_rigidbodyFlags = flags;+}++int getFlags() const+{+return m_rigidbodyFlags;+}++const btVector3& getDeltaLinearVelocity() const+{+return m_deltaLinearVelocity;+}++const btVector3& getDeltaAngularVelocity() const+{+return m_deltaAngularVelocity;+}++const btVector3& getPushVelocity() const+{+return m_pushVelocity;+}++const btVector3& getTurnVelocity() const+{+return m_turnVelocity;+}+++////////////////////////////////////////////////+///some internal methods, don't use them++btVector3& internalGetDeltaLinearVelocity()+{+return m_deltaLinearVelocity;+}++btVector3& internalGetDeltaAngularVelocity()+{+return m_deltaAngularVelocity;+}++const btVector3& internalGetAngularFactor() const+{+return m_angularFactor;+}++const btVector3& internalGetInvMass() const+{+return m_invMass;+}++btVector3& internalGetPushVelocity()+{+return m_pushVelocity;+}++btVector3& internalGetTurnVelocity()+{+return m_turnVelocity;+}++SIMD_FORCE_INLINE void internalGetVelocityInLocalPointObsolete(const btVector3& rel_pos, btVector3& velocity ) const+{+velocity = getLinearVelocity()+m_deltaLinearVelocity + (getAngularVelocity()+m_deltaAngularVelocity).cross(rel_pos);+}++SIMD_FORCE_INLINE void internalGetAngularVelocity(btVector3& angVel) const+{+angVel = getAngularVelocity()+m_deltaAngularVelocity;+}+++//Optimization for the iterative solver: avoid calculating constant terms involving inertia, normal, relative position+SIMD_FORCE_INLINE void internalApplyImpulse(const btVector3& linearComponent, const btVector3& angularComponent,const btScalar impulseMagnitude)+{+if (m_inverseMass)+{+m_deltaLinearVelocity += linearComponent*impulseMagnitude;+m_deltaAngularVelocity += angularComponent*(impulseMagnitude*m_angularFactor);+}+}++SIMD_FORCE_INLINE void internalApplyPushImpulse(const btVector3& linearComponent, const btVector3& angularComponent,btScalar impulseMagnitude)+{+if (m_inverseMass)+{+m_pushVelocity += linearComponent*impulseMagnitude;+m_turnVelocity += angularComponent*(impulseMagnitude*m_angularFactor);+}+}++void internalWritebackVelocity()+{+if (m_inverseMass)+{+setLinearVelocity(getLinearVelocity()+ m_deltaLinearVelocity);+setAngularVelocity(getAngularVelocity()+m_deltaAngularVelocity);+//m_deltaLinearVelocity.setZero();+//m_deltaAngularVelocity .setZero();+//m_originalBody->setCompanionId(-1);+}+}+++void internalWritebackVelocity(btScalar timeStep);++++///////////////////////////////////////////////++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, class btSerializer* serializer) const;++virtual void serializeSingleObject(class btSerializer* serializer) const;++};++//@todo add m_optionalMotionState and m_constraintRefs to btRigidBodyData+///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64+struct btRigidBodyFloatData+{+btCollisionObjectFloatData m_collisionObjectData;+btMatrix3x3FloatData m_invInertiaTensorWorld;+btVector3FloatData m_linearVelocity;+btVector3FloatData m_angularVelocity;+btVector3FloatData m_angularFactor;+btVector3FloatData m_linearFactor;+btVector3FloatData m_gravity;+btVector3FloatData m_gravity_acceleration;+btVector3FloatData m_invInertiaLocal;+btVector3FloatData m_totalForce;+btVector3FloatData m_totalTorque;+float m_inverseMass;+float m_linearDamping;+float m_angularDamping;+float m_additionalDampingFactor;+float m_additionalLinearDampingThresholdSqr;+float m_additionalAngularDampingThresholdSqr;+float m_additionalAngularDampingFactor;+float m_linearSleepingThreshold;+float m_angularSleepingThreshold;+int m_additionalDamping;+};++///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64+struct btRigidBodyDoubleData+{+btCollisionObjectDoubleData m_collisionObjectData;+btMatrix3x3DoubleData m_invInertiaTensorWorld;+btVector3DoubleData m_linearVelocity;+btVector3DoubleData m_angularVelocity;+btVector3DoubleData m_angularFactor;+btVector3DoubleData m_linearFactor;+btVector3DoubleData m_gravity;+btVector3DoubleData m_gravity_acceleration;+btVector3DoubleData m_invInertiaLocal;+btVector3DoubleData m_totalForce;+btVector3DoubleData m_totalTorque;+double m_inverseMass;+double m_linearDamping;+double m_angularDamping;+double m_additionalDampingFactor;+double m_additionalLinearDampingThresholdSqr;+double m_additionalAngularDampingThresholdSqr;+double m_additionalAngularDampingFactor;+double m_linearSleepingThreshold;+double m_angularSleepingThreshold;+int m_additionalDamping;+char m_padding[4]; };  
bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,66 +23,66 @@ class btConstraintSolver;  ///The btSimpleDynamicsWorld serves as unit-test and to verify more complicated and optimized dynamics worlds.-///Please use btDiscreteDynamicsWorld instead (or btContinuousDynamicsWorld once it is finished).+///Please use btDiscreteDynamicsWorld instead class btSimpleDynamicsWorld : public btDynamicsWorld-{+{ private: protected: -	btConstraintSolver*	m_constraintSolver;+btConstraintSolver* m_constraintSolver; -	bool	m_ownsConstraintSolver;+bool m_ownsConstraintSolver; -	void	predictUnconstraintMotion(btScalar timeStep);-	-	void	integrateTransforms(btScalar timeStep);-		-	btVector3	m_gravity;-	+void predictUnconstraintMotion(btScalar timeStep);++void integrateTransforms(btScalar timeStep);++btVector3 m_gravity;+ public:   -	///this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver-	btSimpleDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver,btCollisionConfiguration* collisionConfiguration);+///this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver+btSimpleDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver,btCollisionConfiguration* collisionConfiguration); -	virtual ~btSimpleDynamicsWorld();-		-	///maxSubSteps/fixedTimeStep for interpolation is currently ignored for btSimpleDynamicsWorld, use btDiscreteDynamicsWorld instead-	virtual int	stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.));+virtual ~btSimpleDynamicsWorld(); -	virtual void	setGravity(const btVector3& gravity);+///maxSubSteps/fixedTimeStep for interpolation is currently ignored for btSimpleDynamicsWorld, use btDiscreteDynamicsWorld instead+virtual int stepSimulation( btScalar timeStep,int maxSubSteps=1, btScalar fixedTimeStep=btScalar(1.)/btScalar(60.)); -	virtual btVector3 getGravity () const;+virtual void setGravity(const btVector3& gravity); -	virtual void	addRigidBody(btRigidBody* body);+virtual btVector3 getGravity () const; -	virtual void	addRigidBody(btRigidBody* body, short group, short mask);+virtual void addRigidBody(btRigidBody* body); -	virtual void	removeRigidBody(btRigidBody* body);+virtual void addRigidBody(btRigidBody* body, short group, short mask); -	virtual void	debugDrawWorld();-				-	virtual void	addAction(btActionInterface* action);+virtual void removeRigidBody(btRigidBody* body); -	virtual void	removeAction(btActionInterface* action);+virtual void debugDrawWorld(); -	///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject-	virtual void	removeCollisionObject(btCollisionObject* collisionObject);-	-	virtual void	updateAabbs();+virtual void addAction(btActionInterface* action); -	virtual void	synchronizeMotionStates();+virtual void removeAction(btActionInterface* action); -	virtual void	setConstraintSolver(btConstraintSolver* solver);+///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btCollisionWorld::removeCollisionObject+virtual void removeCollisionObject(btCollisionObject* collisionObject); -	virtual btConstraintSolver* getConstraintSolver();+virtual void updateAabbs(); -	virtual btDynamicsWorldType	getWorldType() const-	{-		return BT_SIMPLE_DYNAMICS_WORLD;-	}+virtual void synchronizeMotionStates(); -	virtual void	clearForces();+virtual void setConstraintSolver(btConstraintSolver* solver);++virtual btConstraintSolver* getConstraintSolver();++virtual btDynamicsWorldType getWorldType() const+{+return BT_SIMPLE_DYNAMICS_WORLD;+}++virtual void clearForces();  }; 
bullet/BulletDynamics/Vehicle/btRaycastVehicle.h view
@@ -1,12 +1,12 @@ /*- * Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/- *- * Permission to use, copy, modify, distribute and sell this software- * and its documentation for any purpose is hereby granted without fee,- * provided that the above copyright notice appear in all copies.- * Erwin Coumans makes no representations about the suitability - * of this software for any purpose.  - * It is provided "as is" without express or implied warranty.+* Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/+*+* Permission to use, copy, modify, distribute and sell this software+* and its documentation for any purpose is hereby granted without fee,+* provided that the above copyright notice appear in all copies.+* Erwin Coumans makes no representations about the suitability+* of this software for any purpose.+* It is provided "as is" without express or implied warranty. */ #ifndef BT_RAYCASTVEHICLE_H #define BT_RAYCASTVEHICLE_H@@ -23,211 +23,211 @@  ///rayCast vehicle, very special constraint that turn a rigidbody into a vehicle. class btRaycastVehicle : public btActionInterface-{+{ private: -		btAlignedObjectArray<btVector3>	m_forwardWS;-		btAlignedObjectArray<btVector3>	m_axle;-		btAlignedObjectArray<btScalar>	m_forwardImpulse;-		btAlignedObjectArray<btScalar>	m_sideImpulse;-	-		///backwards compatibility-		int	m_userConstraintType;-		int	m_userConstraintId;+btAlignedObjectArray<btVector3> m_forwardWS;+btAlignedObjectArray<btVector3> m_axle;+btAlignedObjectArray<btScalar> m_forwardImpulse;+btAlignedObjectArray<btScalar> m_sideImpulse; +///backwards compatibility+int m_userConstraintType;+int m_userConstraintId;+ public:-	class btVehicleTuning-		{-			public:+class btVehicleTuning+{ private:+public: -			btVehicleTuning()-				:m_suspensionStiffness(btScalar(5.88)),-				m_suspensionCompression(btScalar(0.83)),-				m_suspensionDamping(btScalar(0.88)),-				m_maxSuspensionTravelCm(btScalar(500.)),-				m_frictionSlip(btScalar(10.5)),-				m_maxSuspensionForce(btScalar(6000.))-			{-			}-			btScalar	m_suspensionStiffness;-			btScalar	m_suspensionCompression;-			btScalar	m_suspensionDamping;-			btScalar	m_maxSuspensionTravelCm;-			btScalar	m_frictionSlip;-			btScalar	m_maxSuspensionForce;+btVehicleTuning()+:m_suspensionStiffness(btScalar(5.88)),+m_suspensionCompression(btScalar(0.83)),+m_suspensionDamping(btScalar(0.88)),+m_maxSuspensionTravelCm(btScalar(500.)),+m_frictionSlip(btScalar(10.5)),+m_maxSuspensionForce(btScalar(6000.))+{+}+btScalar m_suspensionStiffness;+btScalar m_suspensionCompression;+btScalar m_suspensionDamping;+btScalar m_maxSuspensionTravelCm;+btScalar m_frictionSlip;+btScalar m_maxSuspensionForce; -		};+}; private: -	btScalar	m_tau;-	btScalar	m_damping;-	btVehicleRaycaster*	m_vehicleRaycaster;-	btScalar		m_pitchControl;-	btScalar	m_steeringValue; -	btScalar m_currentVehicleSpeedKmHour;+btScalar m_tau;+btScalar m_damping;+btVehicleRaycaster* m_vehicleRaycaster;+btScalar m_pitchControl;+btScalar m_steeringValue;+btScalar m_currentVehicleSpeedKmHour; -	btRigidBody* m_chassisBody;+btRigidBody* m_chassisBody; -	int m_indexRightAxis;-	int m_indexUpAxis;-	int	m_indexForwardAxis;+int m_indexRightAxis;+int m_indexUpAxis;+int m_indexForwardAxis; -	void defaultInit(const btVehicleTuning& tuning);+void defaultInit(const btVehicleTuning& tuning);  public: -	//constructor to create a car from an existing rigidbody-	btRaycastVehicle(const btVehicleTuning& tuning,btRigidBody* chassis,	btVehicleRaycaster* raycaster );+//constructor to create a car from an existing rigidbody+btRaycastVehicle(const btVehicleTuning& tuning,btRigidBody* chassis, btVehicleRaycaster* raycaster ); -	virtual ~btRaycastVehicle() ;+virtual ~btRaycastVehicle() ;  -	///btActionInterface interface-	virtual void updateAction( btCollisionWorld* collisionWorld, btScalar step)-	{-        (void) collisionWorld;-		updateVehicle(step);-	}-	+///btActionInterface interface+virtual void updateAction( btCollisionWorld* collisionWorld, btScalar step)+{+(void) collisionWorld;+updateVehicle(step);+} -	///btActionInterface interface-	void	debugDraw(btIDebugDraw* debugDrawer);-			-	const btTransform& getChassisWorldTransform() const;-	-	btScalar rayCast(btWheelInfo& wheel); -	virtual void updateVehicle(btScalar step);-	-	-	void resetSuspension();+///btActionInterface interface+void debugDraw(btIDebugDraw* debugDrawer); -	btScalar	getSteeringValue(int wheel) const;+const btTransform& getChassisWorldTransform() const; -	void	setSteeringValue(btScalar steering,int wheel);+btScalar rayCast(btWheelInfo& wheel); +virtual void updateVehicle(btScalar step); -	void	applyEngineForce(btScalar force, int wheel); -	const btTransform&	getWheelTransformWS( int wheelIndex ) const;+void resetSuspension(); -	void	updateWheelTransform( int wheelIndex, bool interpolatedTransform = true );-	-//	void	setRaycastWheelInfo( int wheelIndex , bool isInContact, const btVector3& hitPoint, const btVector3& hitNormal,btScalar depth);+btScalar getSteeringValue(int wheel) const; -	btWheelInfo&	addWheel( const btVector3& connectionPointCS0, const btVector3& wheelDirectionCS0,const btVector3& wheelAxleCS,btScalar suspensionRestLength,btScalar wheelRadius,const btVehicleTuning& tuning, bool isFrontWheel);+void setSteeringValue(btScalar steering,int wheel); -	inline int		getNumWheels() const {-		return int (m_wheelInfo.size());-	}-	-	btAlignedObjectArray<btWheelInfo>	m_wheelInfo; +void applyEngineForce(btScalar force, int wheel); -	const btWheelInfo&	getWheelInfo(int index) const;+const btTransform& getWheelTransformWS( int wheelIndex ) const; -	btWheelInfo&	getWheelInfo(int index);+void updateWheelTransform( int wheelIndex, bool interpolatedTransform = true ); -	void	updateWheelTransformsWS(btWheelInfo& wheel , bool interpolatedTransform = true);+// void setRaycastWheelInfo( int wheelIndex , bool isInContact, const btVector3& hitPoint, const btVector3& hitNormal,btScalar depth); -	-	void setBrake(btScalar brake,int wheelIndex);+btWheelInfo& addWheel( const btVector3& connectionPointCS0, const btVector3& wheelDirectionCS0,const btVector3& wheelAxleCS,btScalar suspensionRestLength,btScalar wheelRadius,const btVehicleTuning& tuning, bool isFrontWheel); -	void	setPitchControl(btScalar pitch)-	{-		m_pitchControl = pitch;-	}-	-	void	updateSuspension(btScalar deltaTime);+inline int getNumWheels() const {+return int (m_wheelInfo.size());+} -	virtual void	updateFriction(btScalar	timeStep);+btAlignedObjectArray<btWheelInfo> m_wheelInfo;  +const btWheelInfo& getWheelInfo(int index) const; -	inline btRigidBody* getRigidBody()-	{-		return m_chassisBody;-	}+btWheelInfo& getWheelInfo(int index); -	const btRigidBody* getRigidBody() const-	{-		return m_chassisBody;-	}+void updateWheelTransformsWS(btWheelInfo& wheel , bool interpolatedTransform = true); -	inline int	getRightAxis() const-	{-		return m_indexRightAxis;-	}-	inline int getUpAxis() const-	{-		return m_indexUpAxis;-	} -	inline int getForwardAxis() const-	{-		return m_indexForwardAxis;-	}+void setBrake(btScalar brake,int wheelIndex); -	-	///Worldspace forward vector-	btVector3 getForwardVector() const-	{-		const btTransform& chassisTrans = getChassisWorldTransform(); +void setPitchControl(btScalar pitch)+{+m_pitchControl = pitch;+} -		btVector3 forwardW ( -			  chassisTrans.getBasis()[0][m_indexForwardAxis], -			  chassisTrans.getBasis()[1][m_indexForwardAxis], -			  chassisTrans.getBasis()[2][m_indexForwardAxis]); +void updateSuspension(btScalar deltaTime); -		return forwardW;-	}+virtual void updateFriction(btScalar timeStep); -	///Velocity of vehicle (positive if velocity vector has same direction as foward vector)-	btScalar	getCurrentSpeedKmHour() const-	{-		return m_currentVehicleSpeedKmHour;-	} -	virtual void	setCoordinateSystem(int rightIndex,int upIndex,int forwardIndex)-	{-		m_indexRightAxis = rightIndex;-		m_indexUpAxis = upIndex;-		m_indexForwardAxis = forwardIndex;-	} +inline btRigidBody* getRigidBody()+{+return m_chassisBody;+} -	///backwards compatibility-	int getUserConstraintType() const-	{-		return m_userConstraintType ;-	}+const btRigidBody* getRigidBody() const+{+return m_chassisBody;+} -	void	setUserConstraintType(int userConstraintType)-	{-		m_userConstraintType = userConstraintType;-	};+inline int getRightAxis() const+{+return m_indexRightAxis;+}+inline int getUpAxis() const+{+return m_indexUpAxis;+} -	void	setUserConstraintId(int uid)-	{-		m_userConstraintId = uid;-	}+inline int getForwardAxis() const+{+return m_indexForwardAxis;+} -	int getUserConstraintId() const-	{-		return m_userConstraintId;-	} +///Worldspace forward vector+btVector3 getForwardVector() const+{+const btTransform& chassisTrans = getChassisWorldTransform();++btVector3 forwardW (+chassisTrans.getBasis()[0][m_indexForwardAxis],+chassisTrans.getBasis()[1][m_indexForwardAxis],+chassisTrans.getBasis()[2][m_indexForwardAxis]);++return forwardW;+}++///Velocity of vehicle (positive if velocity vector has same direction as foward vector)+btScalar getCurrentSpeedKmHour() const+{+return m_currentVehicleSpeedKmHour;+}++virtual void setCoordinateSystem(int rightIndex,int upIndex,int forwardIndex)+{+m_indexRightAxis = rightIndex;+m_indexUpAxis = upIndex;+m_indexForwardAxis = forwardIndex;+}+++///backwards compatibility+int getUserConstraintType() const+{+return m_userConstraintType ;+}++void setUserConstraintType(int userConstraintType)+{+m_userConstraintType = userConstraintType; }; -class btDefaultVehicleRaycaster : public btVehicleRaycaster+void setUserConstraintId(int uid) {-	btDynamicsWorld*	m_dynamicsWorld;+m_userConstraintId = uid;+}++int getUserConstraintId() const+{+return m_userConstraintId;+}++};++class btDefaultVehicleRaycaster : public btVehicleRaycaster+{ private:+btDynamicsWorld* m_dynamicsWorld; public:-	btDefaultVehicleRaycaster(btDynamicsWorld* world)-		:m_dynamicsWorld(world)-	{-	}+btDefaultVehicleRaycaster(btDynamicsWorld* world)+:m_dynamicsWorld(world)+{+} -	virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result);+virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result);  }; 
bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h view
@@ -1,12 +1,12 @@ /*- * Copyright (c) 2005 Erwin Coumans http://bulletphysics.org- *- * Permission to use, copy, modify, distribute and sell this software- * and its documentation for any purpose is hereby granted without fee,- * provided that the above copyright notice appear in all copies.- * Erwin Coumans makes no representations about the suitability - * of this software for any purpose.  - * It is provided "as is" without express or implied warranty.+* Copyright (c) 2005 Erwin Coumans http://bulletphysics.org+*+* Permission to use, copy, modify, distribute and sell this software+* and its documentation for any purpose is hereby granted without fee,+* provided that the above copyright notice appear in all copies.+* Erwin Coumans makes no representations about the suitability+* of this software for any purpose.+* It is provided "as is" without express or implied warranty. */ #ifndef BT_VEHICLE_RAYCASTER_H #define BT_VEHICLE_RAYCASTER_H@@ -19,15 +19,15 @@ virtual ~btVehicleRaycaster() { }-	struct btVehicleRaycasterResult-	{-		btVehicleRaycasterResult() :m_distFraction(btScalar(-1.)){};-		btVector3	m_hitPointInWorld;-		btVector3	m_hitNormalInWorld;-		btScalar	m_distFraction;-	};+struct btVehicleRaycasterResult+{+btVehicleRaycasterResult() :m_distFraction(btScalar(-1.)){};+btVector3 m_hitPointInWorld;+btVector3 m_hitNormalInWorld;+btScalar m_distFraction;+}; -	virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result) = 0;+virtual void* castRay(const btVector3& from,const btVector3& to, btVehicleRaycasterResult& result) = 0;  }; 
bullet/BulletDynamics/Vehicle/btWheelInfo.h view
@@ -1,12 +1,12 @@ /*- * Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/- *- * Permission to use, copy, modify, distribute and sell this software- * and its documentation for any purpose is hereby granted without fee,- * provided that the above copyright notice appear in all copies.- * Erwin Coumans makes no representations about the suitability - * of this software for any purpose.  - * It is provided "as is" without express or implied warranty.+* Copyright (c) 2005 Erwin Coumans http://continuousphysics.com/Bullet/+*+* Permission to use, copy, modify, distribute and sell this software+* and its documentation for any purpose is hereby granted without fee,+* provided that the above copyright notice appear in all copies.+* Erwin Coumans makes no representations about the suitability+* of this software for any purpose.+* It is provided "as is" without express or implied warranty. */ #ifndef BT_WHEEL_INFO_H #define BT_WHEEL_INFO_H@@ -18,100 +18,100 @@  struct btWheelInfoConstructionInfo {-	btVector3	m_chassisConnectionCS;-	btVector3	m_wheelDirectionCS;-	btVector3	m_wheelAxleCS;-	btScalar	m_suspensionRestLength;-	btScalar	m_maxSuspensionTravelCm;-	btScalar	m_wheelRadius;-	-	btScalar		m_suspensionStiffness;-	btScalar		m_wheelsDampingCompression;-	btScalar		m_wheelsDampingRelaxation;-	btScalar		m_frictionSlip;-	btScalar		m_maxSuspensionForce;-	bool m_bIsFrontWheel;-	+btVector3 m_chassisConnectionCS;+btVector3 m_wheelDirectionCS;+btVector3 m_wheelAxleCS;+btScalar m_suspensionRestLength;+btScalar m_maxSuspensionTravelCm;+btScalar m_wheelRadius;++btScalar m_suspensionStiffness;+btScalar m_wheelsDampingCompression;+btScalar m_wheelsDampingRelaxation;+btScalar m_frictionSlip;+btScalar m_maxSuspensionForce;+bool m_bIsFrontWheel;+ };  /// btWheelInfo contains information per wheel about friction and suspension. struct btWheelInfo {-	struct RaycastInfo-	{-		//set by raycaster-		btVector3	m_contactNormalWS;//contactnormal-		btVector3	m_contactPointWS;//raycast hitpoint-		btScalar	m_suspensionLength;-		btVector3	m_hardPointWS;//raycast starting point-		btVector3	m_wheelDirectionWS; //direction in worldspace-		btVector3	m_wheelAxleWS; // axle in worldspace-		bool		m_isInContact;-		void*		m_groundObject; //could be general void* ptr-	};+struct RaycastInfo+{+//set by raycaster+btVector3 m_contactNormalWS;//contactnormal+btVector3 m_contactPointWS;//raycast hitpoint+btScalar m_suspensionLength;+btVector3 m_hardPointWS;//raycast starting point+btVector3 m_wheelDirectionWS; //direction in worldspace+btVector3 m_wheelAxleWS; // axle in worldspace+bool m_isInContact;+void* m_groundObject; //could be general void* ptr+}; -	RaycastInfo	m_raycastInfo;+RaycastInfo m_raycastInfo; -	btTransform	m_worldTransform;-	-	btVector3	m_chassisConnectionPointCS; //const-	btVector3	m_wheelDirectionCS;//const-	btVector3	m_wheelAxleCS; // const or modified by steering-	btScalar	m_suspensionRestLength1;//const-	btScalar	m_maxSuspensionTravelCm;-	btScalar getSuspensionRestLength() const;-	btScalar	m_wheelsRadius;//const-	btScalar	m_suspensionStiffness;//const-	btScalar	m_wheelsDampingCompression;//const-	btScalar	m_wheelsDampingRelaxation;//const-	btScalar	m_frictionSlip;-	btScalar	m_steering;-	btScalar	m_rotation;-	btScalar	m_deltaRotation;-	btScalar	m_rollInfluence;-	btScalar	m_maxSuspensionForce;+btTransform m_worldTransform; -	btScalar	m_engineForce;+btVector3 m_chassisConnectionPointCS; //const+btVector3 m_wheelDirectionCS;//const+btVector3 m_wheelAxleCS; // const or modified by steering+btScalar m_suspensionRestLength1;//const+btScalar m_maxSuspensionTravelCm;+btScalar getSuspensionRestLength() const;+btScalar m_wheelsRadius;//const+btScalar m_suspensionStiffness;//const+btScalar m_wheelsDampingCompression;//const+btScalar m_wheelsDampingRelaxation;//const+btScalar m_frictionSlip;+btScalar m_steering;+btScalar m_rotation;+btScalar m_deltaRotation;+btScalar m_rollInfluence;+btScalar m_maxSuspensionForce; -	btScalar	m_brake;-	-	bool m_bIsFrontWheel;-	-	void*		m_clientInfo;//can be used to store pointer to sync transforms...+btScalar m_engineForce; -	btWheelInfo(btWheelInfoConstructionInfo& ci)+btScalar m_brake; -	{+bool m_bIsFrontWheel; -		m_suspensionRestLength1 = ci.m_suspensionRestLength;-		m_maxSuspensionTravelCm = ci.m_maxSuspensionTravelCm;+void* m_clientInfo;//can be used to store pointer to sync transforms... -		m_wheelsRadius = ci.m_wheelRadius;-		m_suspensionStiffness = ci.m_suspensionStiffness;-		m_wheelsDampingCompression = ci.m_wheelsDampingCompression;-		m_wheelsDampingRelaxation = ci.m_wheelsDampingRelaxation;-		m_chassisConnectionPointCS = ci.m_chassisConnectionCS;-		m_wheelDirectionCS = ci.m_wheelDirectionCS;-		m_wheelAxleCS = ci.m_wheelAxleCS;-		m_frictionSlip = ci.m_frictionSlip;-		m_steering = btScalar(0.);-		m_engineForce = btScalar(0.);-		m_rotation = btScalar(0.);-		m_deltaRotation = btScalar(0.);-		m_brake = btScalar(0.);-		m_rollInfluence = btScalar(0.1);-		m_bIsFrontWheel = ci.m_bIsFrontWheel;-		m_maxSuspensionForce = ci.m_maxSuspensionForce;+btWheelInfo(btWheelInfoConstructionInfo& ci) -	}+{ -	void	updateWheel(const btRigidBody& chassis,RaycastInfo& raycastInfo);+m_suspensionRestLength1 = ci.m_suspensionRestLength;+m_maxSuspensionTravelCm = ci.m_maxSuspensionTravelCm; -	btScalar	m_clippedInvContactDotSuspension;-	btScalar	m_suspensionRelativeVelocity;-	//calculated by suspension-	btScalar	m_wheelsSuspensionForce;-	btScalar	m_skidInfo;+m_wheelsRadius = ci.m_wheelRadius;+m_suspensionStiffness = ci.m_suspensionStiffness;+m_wheelsDampingCompression = ci.m_wheelsDampingCompression;+m_wheelsDampingRelaxation = ci.m_wheelsDampingRelaxation;+m_chassisConnectionPointCS = ci.m_chassisConnectionCS;+m_wheelDirectionCS = ci.m_wheelDirectionCS;+m_wheelAxleCS = ci.m_wheelAxleCS;+m_frictionSlip = ci.m_frictionSlip;+m_steering = btScalar(0.);+m_engineForce = btScalar(0.);+m_rotation = btScalar(0.);+m_deltaRotation = btScalar(0.);+m_brake = btScalar(0.);+m_rollInfluence = btScalar(0.1);+m_bIsFrontWheel = ci.m_bIsFrontWheel;+m_maxSuspensionForce = ci.m_maxSuspensionForce;++}++void updateWheel(const btRigidBody& chassis,RaycastInfo& raycastInfo);++btScalar m_clippedInvContactDotSuspension;+btScalar m_suspensionRelativeVelocity;+//calculated by suspension+btScalar m_wheelsSuspensionForce;+btScalar m_skidInfo;  }; 
bullet/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h view
@@ -1,744 +1,744 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_DATA_H
-#define BT_SOFT_BODY_SOLVER_DATA_H
-
-#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h"
-#include "vectormath/vmInclude.h"
-
-
-class btSoftBodyLinkData
-{
-public:
-	/**
-	 * Class representing a link as a set of three indices into the vertex array.
-	 */
-	class LinkNodePair
-	{
-	public:
-		int vertex0;
-		int vertex1;
-
-		LinkNodePair()
-		{
-			vertex0 = 0;
-			vertex1 = 0;
-		}
-
-		LinkNodePair( int v0, int v1 )
-		{
-			vertex0 = v0;
-			vertex1 = v1;
-		}
-	};
-
-	/**
-	 * Class describing a link for input into the system.
-	 */
-	class LinkDescription
-	{
-	protected:
-		int m_vertex0;
-		int m_vertex1;
-		float m_linkLinearStiffness;
-		float m_linkStrength;
-
-	public:
-
-		LinkDescription()
-		{
-			m_vertex0 = 0;
-			m_vertex1 = 0;
-			m_linkLinearStiffness = 1.0;
-			m_linkStrength = 1.0;
-		}
-
-		LinkDescription( int newVertex0, int newVertex1, float linkLinearStiffness )
-		{
-			m_vertex0 = newVertex0;
-			m_vertex1 = newVertex1;
-			m_linkLinearStiffness = linkLinearStiffness;
-			m_linkStrength = 1.0;
-		}
-
-		LinkNodePair getVertexPair() const
-		{
-			LinkNodePair nodes;
-			nodes.vertex0 = m_vertex0;
-			nodes.vertex1 = m_vertex1;
-			return nodes;
-		}
-
-		void setVertex0( int vertex )
-		{
-			m_vertex0 = vertex;
-		}
-
-		void setVertex1( int vertex )
-		{
-			m_vertex1 = vertex;
-		}
-
-		void setLinkLinearStiffness( float linearStiffness )
-		{
-			m_linkLinearStiffness = linearStiffness;
-		}
-
-		void setLinkStrength( float strength )
-		{
-			m_linkStrength = strength;
-		}
-
-		int getVertex0() const
-		{
-			return m_vertex0;
-		}
-
-		int getVertex1() const
-		{
-			return m_vertex1;
-		}
-
-		float getLinkStrength() const
-		{
-			return m_linkStrength;
-		}
-
-		float getLinkLinearStiffness() const
-		{
-			return m_linkLinearStiffness;
-		}
-	};
-
-
-protected:
-	// NOTE:
-	// Vertex reference data is stored relative to global array, not relative to individual cloth.
-	// Values must be correct if being passed into single-cloth VBOs or when migrating from one solver
-	// to another.
-
-	btAlignedObjectArray< LinkNodePair > m_links; // Vertex pair for the link
-	btAlignedObjectArray< float >								m_linkStrength; // Strength of each link
-	// (inverseMassA + inverseMassB)/ linear stiffness coefficient
-	btAlignedObjectArray< float >								m_linksMassLSC; 
-	btAlignedObjectArray< float >								m_linksRestLengthSquared; 
-	// Current vector length of link
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >			m_linksCLength;
-	// 1/(current length * current length * massLSC)
-	btAlignedObjectArray< float >								m_linksLengthRatio; 
-	btAlignedObjectArray< float >								m_linksRestLength;
-	btAlignedObjectArray< float >								m_linksMaterialLinearStiffnessCoefficient;
-
-public:
-	btSoftBodyLinkData()
-	{
-	}
-
-	virtual ~btSoftBodyLinkData()
-	{
-	}
-
-	virtual void clear()
-	{
-		m_links.resize(0);
-		m_linkStrength.resize(0);
-		m_linksMassLSC.resize(0);
-		m_linksRestLengthSquared.resize(0);
-		m_linksLengthRatio.resize(0);
-		m_linksRestLength.resize(0);
-		m_linksMaterialLinearStiffnessCoefficient.resize(0);
-	}
-
-	int getNumLinks()
-	{
-		return m_links.size();
-	}
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createLinks( int numLinks )
-	{
-		int previousSize = m_links.size();
-		int newSize = previousSize + numLinks;
-
-		// Resize all the arrays that store link data
-		m_links.resize( newSize );
-		m_linkStrength.resize( newSize );
-		m_linksMassLSC.resize( newSize );
-		m_linksRestLengthSquared.resize( newSize );
-		m_linksCLength.resize( newSize );
-		m_linksLengthRatio.resize( newSize );
-		m_linksRestLength.resize( newSize );
-		m_linksMaterialLinearStiffnessCoefficient.resize( newSize );
-	}
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setLinkAt( const LinkDescription &link, int linkIndex )
-	{
-		m_links[linkIndex] = link.getVertexPair();
-		m_linkStrength[linkIndex] = link.getLinkStrength();
-		m_linksMassLSC[linkIndex] = 0.f;
-		m_linksRestLengthSquared[linkIndex] = 0.f;
-		m_linksCLength[linkIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
-		m_linksLengthRatio[linkIndex] = 0.f;
-		m_linksRestLength[linkIndex] = 0.f;
-		m_linksMaterialLinearStiffnessCoefficient[linkIndex] = link.getLinkLinearStiffness();
-	}
-
-
-	/**
-	 * Return true if data is on the accelerator.
-	 * The CPU version of this class will return true here because
-	 * the CPU is the same as the accelerator.
-	 */
-	virtual bool onAccelerator()
-	{
-		return true;
-	}
-	
-	/**
-	 * Move data from host memory to the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveToAccelerator()
-	{
-		return true;
-	}
-
-	/**
-	 * Move data from host memory from the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveFromAccelerator()
-	{
-		return true;
-	}
-
-
-
-	/**
-	 * Return reference to the vertex index pair for link linkIndex as stored on the host.
-	 */
-	LinkNodePair &getVertexPair( int linkIndex )
-	{
-		return m_links[linkIndex];
-	}
-
-	/** 
-	 * Return reference to strength of link linkIndex as stored on the host.
-	 */
-	float &getStrength( int linkIndex )
-	{
-		return m_linkStrength[linkIndex];
-	}
-
-	/**
-	 * Return a reference to the strength of the link corrected for link sorting.
-	 * This is important if we are using data on an accelerator which has the data sorted in some fashion.
-	 */
-	virtual float &getStrengthCorrected( int linkIndex )
-	{
-		return getStrength( linkIndex );
-	}
-
-	/**
-	 * Return reference to the rest length of link linkIndex as stored on the host.
-	 */
-	float &getRestLength( int linkIndex )
-	{
-		return m_linksRestLength[linkIndex];
-	}
-
-	/**
-	 * Return reference to linear stiffness coefficient for link linkIndex as stored on the host.
-	 */
-	float &getLinearStiffnessCoefficient( int linkIndex )
-	{
-		return m_linksMaterialLinearStiffnessCoefficient[linkIndex];
-	}
-
-	/**
-	 * Return reference to the MassLSC value for link linkIndex as stored on the host.
-	 */
-	float &getMassLSC( int linkIndex )
-	{
-		return m_linksMassLSC[linkIndex];
-	}
-
-	/**
-	 * Return reference to rest length squared for link linkIndex as stored on the host.
-	 */
-	float &getRestLengthSquared( int linkIndex )
-	{
-		return m_linksRestLengthSquared[linkIndex];
-	}
-
-	/**
-	 * Return reference to current length of link linkIndex as stored on the host.
-	 */
-	Vectormath::Aos::Vector3 &getCurrentLength( int linkIndex )
-	{
-		return m_linksCLength[linkIndex];
-	}
-
-	 /**
-	  * Return the link length ratio from for link linkIndex as stored on the host.
-	  */
-	 float &getLinkLengthRatio( int linkIndex )
-	 {
-		 return m_linksLengthRatio[linkIndex];
-	 }
-};
-
-
-
-/**
- * Wrapper for vertex data information.
- * By wrapping it like this we stand a good chance of being able to optimise for storage format easily.
- * It should also help us make sure all the data structures remain consistent.
- */
-class btSoftBodyVertexData
-{
-public:
-	/**
-	 * Class describing a vertex for input into the system.
-	 */
-	class VertexDescription
-	{
-	private:
-		Vectormath::Aos::Point3 m_position;
-		/** Inverse mass. If this is 0f then the mass was 0 because that simplifies calculations. */
-		float m_inverseMass;
-
-	public:
-		VertexDescription()
-		{	
-			m_position = Vectormath::Aos::Point3( 0.f, 0.f, 0.f );
-			m_inverseMass = 0.f;
-		}
-
-		VertexDescription( const Vectormath::Aos::Point3 &position, float mass )
-		{
-			m_position = position;
-			if( mass > 0.f )
-				m_inverseMass = 1.0f/mass;
-			else
-				m_inverseMass = 0.f;
-		}
-
-		void setPosition( const Vectormath::Aos::Point3 &position )
-		{
-			m_position = position;
-		}
-
-		void setInverseMass( float inverseMass )
-		{
-			m_inverseMass = inverseMass;
-		}
-
-		void setMass( float mass )
-		{
-			if( mass > 0.f )
-				m_inverseMass = 1.0f/mass;
-			else
-				m_inverseMass = 0.f;
-		}
-
-		Vectormath::Aos::Point3 getPosition() const
-		{
-			return m_position;
-		}
-
-		float getInverseMass() const
-		{
-			return m_inverseMass;
-		}
-
-		float getMass() const
-		{
-			if( m_inverseMass == 0.f )
-				return 0.f;
-			else
-				return 1.0f/m_inverseMass;
-		}
-	};
-protected:
-
-	// identifier for the individual cloth
-	// For the CPU we don't really need this as we can grab the cloths and iterate over only their vertices
-	// For a parallel accelerator knowing on a per-vertex basis which cloth we're part of will help for obtaining
-	// per-cloth data
-	// For sorting etc it might also be helpful to be able to use in-array data such as this.
-	btAlignedObjectArray< int >							m_clothIdentifier;
-	btAlignedObjectArray< Vectormath::Aos::Point3 >		m_vertexPosition;			// vertex positions
-	btAlignedObjectArray< Vectormath::Aos::Point3 >		m_vertexPreviousPosition;	// vertex positions
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_vertexVelocity;			// Velocity
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_vertexForceAccumulator;	// Force accumulator
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_vertexNormal;				// Normals
-	btAlignedObjectArray< float >						m_vertexInverseMass;		// Inverse mass
-	btAlignedObjectArray< float >						m_vertexArea;				// Area controlled by the vertex
-	btAlignedObjectArray< int >							m_vertexTriangleCount;		// Number of triangles touching this vertex
-
-public:
-	btSoftBodyVertexData()
-	{
-	}
-
-	virtual ~btSoftBodyVertexData()
-	{
-	}
-
-	virtual void clear()
-	{
-		m_clothIdentifier.resize(0);
-		m_vertexPosition.resize(0);
-		m_vertexPreviousPosition.resize(0);
-		m_vertexVelocity.resize(0);
-		m_vertexForceAccumulator.resize(0);
-		m_vertexNormal.resize(0);
-		m_vertexInverseMass.resize(0);
-		m_vertexArea.resize(0);
-		m_vertexTriangleCount.resize(0);
-	}
-
-	int getNumVertices()
-	{
-		return m_vertexPosition.size();
-	}
-
-	int getClothIdentifier( int vertexIndex )
-	{
-		return m_clothIdentifier[vertexIndex];
-	}
-
-	void setVertexAt( const VertexDescription &vertex, int vertexIndex )
-	{
-		m_vertexPosition[vertexIndex] = vertex.getPosition();
-		m_vertexPreviousPosition[vertexIndex] = vertex.getPosition();
-		m_vertexVelocity[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
-		m_vertexForceAccumulator[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
-		m_vertexNormal[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);
-		m_vertexInverseMass[vertexIndex] = vertex.getInverseMass();
-		m_vertexArea[vertexIndex] = 0.f;
-		m_vertexTriangleCount[vertexIndex] = 0;
-	}
-
-	/** 
-	 * Create numVertices new vertices for cloth clothIdentifier 
-	 * maxVertices allows a buffer zone of extra vertices for alignment or tearing reasons.
-	 */
-	void createVertices( int numVertices, int clothIdentifier, int maxVertices = 0 )
-	{
-		int previousSize = m_vertexPosition.size();
-		if( maxVertices == 0 )
-			maxVertices = numVertices;
-		int newSize = previousSize + maxVertices;
-
-		// Resize all the arrays that store vertex data
-		m_clothIdentifier.resize( newSize );
-		m_vertexPosition.resize( newSize );
-		m_vertexPreviousPosition.resize( newSize );
-		m_vertexVelocity.resize( newSize );
-		m_vertexForceAccumulator.resize( newSize );
-		m_vertexNormal.resize( newSize );
-		m_vertexInverseMass.resize( newSize );
-		m_vertexArea.resize( newSize );
-		m_vertexTriangleCount.resize( newSize );
-
-		for( int vertexIndex = previousSize; vertexIndex < newSize; ++vertexIndex )
-			m_clothIdentifier[vertexIndex] = clothIdentifier;
-		for( int vertexIndex = (previousSize + numVertices); vertexIndex < newSize; ++vertexIndex )
-			m_clothIdentifier[vertexIndex] = -1;
-	}
-
-	// Get and set methods in header so they can be inlined
-
-	/**
-	 * Return a reference to the position of vertex vertexIndex as stored on the host.
-	 */
-	Vectormath::Aos::Point3 &getPosition( int vertexIndex )
-	{
-		return m_vertexPosition[vertexIndex];
-	}
-
-	Vectormath::Aos::Point3 getPosition( int vertexIndex ) const
-	{
-		return m_vertexPosition[vertexIndex];
-	}
-
-	/**
-	 * Return a reference to the previous position of vertex vertexIndex as stored on the host.
-	 */
-	Vectormath::Aos::Point3 &getPreviousPosition( int vertexIndex )
-	{
-		return m_vertexPreviousPosition[vertexIndex];
-	}
-
-	/**
-	 * Return a reference to the velocity of vertex vertexIndex as stored on the host.
-	 */
-	Vectormath::Aos::Vector3 &getVelocity( int vertexIndex )
-	{
-		return m_vertexVelocity[vertexIndex];
-	}
-
-	/**
-	 * Return a reference to the force accumulator of vertex vertexIndex as stored on the host.
-	 */
-	Vectormath::Aos::Vector3 &getForceAccumulator( int vertexIndex )
-	{
-		return m_vertexForceAccumulator[vertexIndex];
-	}
-
-	/**
-	 * Return a reference to the normal of vertex vertexIndex as stored on the host.
-	 */
-	Vectormath::Aos::Vector3 &getNormal( int vertexIndex )
-	{
-		return m_vertexNormal[vertexIndex];
-	}
-
-	Vectormath::Aos::Vector3 getNormal( int vertexIndex ) const
-	{
-		return m_vertexNormal[vertexIndex];
-	}
-
-	/**
-	 * Return a reference to the inverse mass of vertex vertexIndex as stored on the host.
-	 */
-	float &getInverseMass( int vertexIndex )
-	{
-		return m_vertexInverseMass[vertexIndex];
-	}
-
-	/**
-	 * Get access to the area controlled by this vertex.
-	 */
-	float &getArea( int vertexIndex )
-	{
-		return m_vertexArea[vertexIndex];
-	}
-
-	/**
-	 * Get access to the array of how many triangles touch each vertex.
-	 */
-	int &getTriangleCount( int vertexIndex )
-	{
-		return m_vertexTriangleCount[vertexIndex];
-	}
-
-
-
-	/**
-	 * Return true if data is on the accelerator.
-	 * The CPU version of this class will return true here because
-	 * the CPU is the same as the accelerator.
-	 */
-	virtual bool onAccelerator()
-	{
-		return true;
-	}
-	
-	/**
-	 * Move data from host memory to the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveToAccelerator()
-	{
-		return true;
-	}
-
-	/**
-	 * Move data from host memory from the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveFromAccelerator()
-	{
-		return true;
-	}
-
-	btAlignedObjectArray< Vectormath::Aos::Point3 >	&getVertexPositions()
-	{
-		return m_vertexPosition;
-	}
-};
-
-
-class btSoftBodyTriangleData
-{
-public:
-	/**
-	 * Class representing a triangle as a set of three indices into the
-	 * vertex array.
-	 */
-	class TriangleNodeSet
-	{
-	public:
-		int vertex0;
-		int vertex1;
-		int vertex2;
-		int _padding;
-
-		TriangleNodeSet( )
-		{
-			vertex0 = 0;
-			vertex1 = 0;
-			vertex2 = 0;
-			_padding = -1;
-		}
-
-		TriangleNodeSet( int newVertex0, int newVertex1, int newVertex2 )
-		{
-			vertex0 = newVertex0;
-			vertex1 = newVertex1;
-			vertex2 = newVertex2;
-		}
-	};
-
-	class TriangleDescription
-	{
-	protected:
-		int m_vertex0;
-		int m_vertex1;
-		int m_vertex2;
-
-	public:
-		TriangleDescription()
-		{
-			m_vertex0 = 0;
-			m_vertex1 = 0;
-			m_vertex2 = 0;
-		}
-
-		TriangleDescription( int newVertex0, int newVertex1, int newVertex2 )
-		{
-			m_vertex0 = newVertex0;
-			m_vertex1 = newVertex1;
-			m_vertex2 = newVertex2;
-		}
-
-		TriangleNodeSet getVertexSet() const
-		{
-			btSoftBodyTriangleData::TriangleNodeSet nodes;
-			nodes.vertex0 = m_vertex0;
-			nodes.vertex1 = m_vertex1;
-			nodes.vertex2 = m_vertex2;
-			return nodes;
-		}
-	};
-
-protected:
-	// NOTE:
-	// Vertex reference data is stored relative to global array, not relative to individual cloth.
-	// Values must be correct if being passed into single-cloth VBOs or when migrating from one solver
-	// to another.
-	btAlignedObjectArray< TriangleNodeSet > m_vertexIndices;
-	btAlignedObjectArray< float > m_area;
-	btAlignedObjectArray< Vectormath::Aos::Vector3 > m_normal;
-
-public:
-	btSoftBodyTriangleData()
-	{
-	}
-
-	virtual ~btSoftBodyTriangleData()
-	{
-
-	}
-
-	virtual void clear()
-	{
-		m_vertexIndices.resize(0);
-		m_area.resize(0);
-		m_normal.resize(0);
-	}
-
-	int getNumTriangles()
-	{
-		return m_vertexIndices.size();
-	}
-
-	virtual void setTriangleAt( const TriangleDescription &triangle, int triangleIndex )
-	{
-		m_vertexIndices[triangleIndex] = triangle.getVertexSet();
-	}
-
-	virtual void createTriangles( int numTriangles )		
-	{
-		int previousSize = m_vertexIndices.size();
-		int newSize = previousSize + numTriangles;
-
-		// Resize all the arrays that store triangle data
-		m_vertexIndices.resize( newSize );
-		m_area.resize( newSize );
-		m_normal.resize( newSize );
-	}
-
-	/**
-	 * Return the vertex index set for triangle triangleIndex as stored on the host.
-	 */
-	const TriangleNodeSet &getVertexSet( int triangleIndex )
-	{
-		return m_vertexIndices[triangleIndex];
-	}
-
-	/**
-	 * Get access to the triangle area.
-	 */
-	float &getTriangleArea( int triangleIndex )
-	{
-		return m_area[triangleIndex];
-	}
-
-	/**
-	 * Get access to the normal vector for this triangle.
-	 */
-	Vectormath::Aos::Vector3 &getNormal( int triangleIndex )
-	{
-		return m_normal[triangleIndex];
-	}
-
-	/**
-	 * Return true if data is on the accelerator.
-	 * The CPU version of this class will return true here because
-	 * the CPU is the same as the accelerator.
-	 */
-	virtual bool onAccelerator()
-	{
-		return true;
-	}
-	
-	/**
-	 * Move data from host memory to the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveToAccelerator()
-	{
-		return true;
-	}
-
-	/**
-	 * Move data from host memory from the accelerator.
-	 * The CPU version will always return that it has moved it.
-	 */
-	virtual bool moveFromAccelerator()
-	{
-		return true;
-	}
-};
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_DATA_H
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_DATA_H+#define BT_SOFT_BODY_SOLVER_DATA_H++#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h"+#include "vectormath/vmInclude.h"+++class btSoftBodyLinkData+{ private:+public:+/**+* Class representing a link as a set of three indices into the vertex array.+*/+class LinkNodePair+{ private:+public:+int vertex0;+int vertex1;++LinkNodePair()+{+vertex0 = 0;+vertex1 = 0;+}++LinkNodePair( int v0, int v1 )+{+vertex0 = v0;+vertex1 = v1;+}+};++/**+* Class describing a link for input into the system.+*/+class LinkDescription+{ private:+protected:+int m_vertex0;+int m_vertex1;+float m_linkLinearStiffness;+float m_linkStrength;++public:++LinkDescription()+{+m_vertex0 = 0;+m_vertex1 = 0;+m_linkLinearStiffness = 1.0;+m_linkStrength = 1.0;+}++LinkDescription( int newVertex0, int newVertex1, float linkLinearStiffness )+{+m_vertex0 = newVertex0;+m_vertex1 = newVertex1;+m_linkLinearStiffness = linkLinearStiffness;+m_linkStrength = 1.0;+}++LinkNodePair getVertexPair() const+{+LinkNodePair nodes;+nodes.vertex0 = m_vertex0;+nodes.vertex1 = m_vertex1;+return nodes;+}++void setVertex0( int vertex )+{+m_vertex0 = vertex;+}++void setVertex1( int vertex )+{+m_vertex1 = vertex;+}++void setLinkLinearStiffness( float linearStiffness )+{+m_linkLinearStiffness = linearStiffness;+}++void setLinkStrength( float strength )+{+m_linkStrength = strength;+}++int getVertex0() const+{+return m_vertex0;+}++int getVertex1() const+{+return m_vertex1;+}++float getLinkStrength() const+{+return m_linkStrength;+}++float getLinkLinearStiffness() const+{+return m_linkLinearStiffness;+}+};+++protected:+// NOTE:+// Vertex reference data is stored relative to global array, not relative to individual cloth.+// Values must be correct if being passed into single-cloth VBOs or when migrating from one solver+// to another.++btAlignedObjectArray< LinkNodePair > m_links; // Vertex pair for the link+btAlignedObjectArray< float > m_linkStrength; // Strength of each link+// (inverseMassA + inverseMassB)/ linear stiffness coefficient+btAlignedObjectArray< float > m_linksMassLSC;+btAlignedObjectArray< float > m_linksRestLengthSquared;+// Current vector length of link+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_linksCLength;+// 1/(current length * current length * massLSC)+btAlignedObjectArray< float > m_linksLengthRatio;+btAlignedObjectArray< float > m_linksRestLength;+btAlignedObjectArray< float > m_linksMaterialLinearStiffnessCoefficient;++public:+btSoftBodyLinkData()+{+}++virtual ~btSoftBodyLinkData()+{+}++virtual void clear()+{+m_links.resize(0);+m_linkStrength.resize(0);+m_linksMassLSC.resize(0);+m_linksRestLengthSquared.resize(0);+m_linksLengthRatio.resize(0);+m_linksRestLength.resize(0);+m_linksMaterialLinearStiffnessCoefficient.resize(0);+}++int getNumLinks()+{+return m_links.size();+}++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createLinks( int numLinks )+{+int previousSize = m_links.size();+int newSize = previousSize + numLinks;++// Resize all the arrays that store link data+m_links.resize( newSize );+m_linkStrength.resize( newSize );+m_linksMassLSC.resize( newSize );+m_linksRestLengthSquared.resize( newSize );+m_linksCLength.resize( newSize );+m_linksLengthRatio.resize( newSize );+m_linksRestLength.resize( newSize );+m_linksMaterialLinearStiffnessCoefficient.resize( newSize );+}++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setLinkAt( const LinkDescription &link, int linkIndex )+{+m_links[linkIndex] = link.getVertexPair();+m_linkStrength[linkIndex] = link.getLinkStrength();+m_linksMassLSC[linkIndex] = 0.f;+m_linksRestLengthSquared[linkIndex] = 0.f;+m_linksCLength[linkIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);+m_linksLengthRatio[linkIndex] = 0.f;+m_linksRestLength[linkIndex] = 0.f;+m_linksMaterialLinearStiffnessCoefficient[linkIndex] = link.getLinkLinearStiffness();+}+++/**+* Return true if data is on the accelerator.+* The CPU version of this class will return true here because+* the CPU is the same as the accelerator.+*/+virtual bool onAccelerator()+{+return true;+}++/**+* Move data from host memory to the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveToAccelerator()+{+return true;+}++/**+* Move data from host memory from the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveFromAccelerator()+{+return true;+}++++/**+* Return reference to the vertex index pair for link linkIndex as stored on the host.+*/+LinkNodePair &getVertexPair( int linkIndex )+{+return m_links[linkIndex];+}++/**+* Return reference to strength of link linkIndex as stored on the host.+*/+float &getStrength( int linkIndex )+{+return m_linkStrength[linkIndex];+}++/**+* Return a reference to the strength of the link corrected for link sorting.+* This is important if we are using data on an accelerator which has the data sorted in some fashion.+*/+virtual float &getStrengthCorrected( int linkIndex )+{+return getStrength( linkIndex );+}++/**+* Return reference to the rest length of link linkIndex as stored on the host.+*/+float &getRestLength( int linkIndex )+{+return m_linksRestLength[linkIndex];+}++/**+* Return reference to linear stiffness coefficient for link linkIndex as stored on the host.+*/+float &getLinearStiffnessCoefficient( int linkIndex )+{+return m_linksMaterialLinearStiffnessCoefficient[linkIndex];+}++/**+* Return reference to the MassLSC value for link linkIndex as stored on the host.+*/+float &getMassLSC( int linkIndex )+{+return m_linksMassLSC[linkIndex];+}++/**+* Return reference to rest length squared for link linkIndex as stored on the host.+*/+float &getRestLengthSquared( int linkIndex )+{+return m_linksRestLengthSquared[linkIndex];+}++/**+* Return reference to current length of link linkIndex as stored on the host.+*/+Vectormath::Aos::Vector3 &getCurrentLength( int linkIndex )+{+return m_linksCLength[linkIndex];+}++/**+* Return the link length ratio from for link linkIndex as stored on the host.+*/+float &getLinkLengthRatio( int linkIndex )+{+return m_linksLengthRatio[linkIndex];+}+};++++/**+* Wrapper for vertex data information.+* By wrapping it like this we stand a good chance of being able to optimise for storage format easily.+* It should also help us make sure all the data structures remain consistent.+*/+class btSoftBodyVertexData+{ private:+public:+/**+* Class describing a vertex for input into the system.+*/+class VertexDescription+{ private:+private:+Vectormath::Aos::Point3 m_position;+/** Inverse mass. If this is 0f then the mass was 0 because that simplifies calculations. */+float m_inverseMass;++public:+VertexDescription()+{+m_position = Vectormath::Aos::Point3( 0.f, 0.f, 0.f );+m_inverseMass = 0.f;+}++VertexDescription( const Vectormath::Aos::Point3 &position, float mass )+{+m_position = position;+if( mass > 0.f )+m_inverseMass = 1.0f/mass;+else+m_inverseMass = 0.f;+}++void setPosition( const Vectormath::Aos::Point3 &position )+{+m_position = position;+}++void setInverseMass( float inverseMass )+{+m_inverseMass = inverseMass;+}++void setMass( float mass )+{+if( mass > 0.f )+m_inverseMass = 1.0f/mass;+else+m_inverseMass = 0.f;+}++Vectormath::Aos::Point3 getPosition() const+{+return m_position;+}++float getInverseMass() const+{+return m_inverseMass;+}++float getMass() const+{+if( m_inverseMass == 0.f )+return 0.f;+else+return 1.0f/m_inverseMass;+}+};+protected:++// identifier for the individual cloth+// For the CPU we don't really need this as we can grab the cloths and iterate over only their vertices+// For a parallel accelerator knowing on a per-vertex basis which cloth we're part of will help for obtaining+// per-cloth data+// For sorting etc it might also be helpful to be able to use in-array data such as this.+btAlignedObjectArray< int > m_clothIdentifier;+btAlignedObjectArray< Vectormath::Aos::Point3 > m_vertexPosition; // vertex positions+btAlignedObjectArray< Vectormath::Aos::Point3 > m_vertexPreviousPosition; // vertex positions+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexVelocity; // Velocity+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexForceAccumulator; // Force accumulator+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_vertexNormal; // Normals+btAlignedObjectArray< float > m_vertexInverseMass; // Inverse mass+btAlignedObjectArray< float > m_vertexArea; // Area controlled by the vertex+btAlignedObjectArray< int > m_vertexTriangleCount; // Number of triangles touching this vertex++public:+btSoftBodyVertexData()+{+}++virtual ~btSoftBodyVertexData()+{+}++virtual void clear()+{+m_clothIdentifier.resize(0);+m_vertexPosition.resize(0);+m_vertexPreviousPosition.resize(0);+m_vertexVelocity.resize(0);+m_vertexForceAccumulator.resize(0);+m_vertexNormal.resize(0);+m_vertexInverseMass.resize(0);+m_vertexArea.resize(0);+m_vertexTriangleCount.resize(0);+}++int getNumVertices()+{+return m_vertexPosition.size();+}++int getClothIdentifier( int vertexIndex )+{+return m_clothIdentifier[vertexIndex];+}++void setVertexAt( const VertexDescription &vertex, int vertexIndex )+{+m_vertexPosition[vertexIndex] = vertex.getPosition();+m_vertexPreviousPosition[vertexIndex] = vertex.getPosition();+m_vertexVelocity[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);+m_vertexForceAccumulator[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);+m_vertexNormal[vertexIndex] = Vectormath::Aos::Vector3(0.f, 0.f, 0.f);+m_vertexInverseMass[vertexIndex] = vertex.getInverseMass();+m_vertexArea[vertexIndex] = 0.f;+m_vertexTriangleCount[vertexIndex] = 0;+}++/**+* Create numVertices new vertices for cloth clothIdentifier+* maxVertices allows a buffer zone of extra vertices for alignment or tearing reasons.+*/+void createVertices( int numVertices, int clothIdentifier, int maxVertices = 0 )+{+int previousSize = m_vertexPosition.size();+if( maxVertices == 0 )+maxVertices = numVertices;+int newSize = previousSize + maxVertices;++// Resize all the arrays that store vertex data+m_clothIdentifier.resize( newSize );+m_vertexPosition.resize( newSize );+m_vertexPreviousPosition.resize( newSize );+m_vertexVelocity.resize( newSize );+m_vertexForceAccumulator.resize( newSize );+m_vertexNormal.resize( newSize );+m_vertexInverseMass.resize( newSize );+m_vertexArea.resize( newSize );+m_vertexTriangleCount.resize( newSize );++for( int vertexIndex = previousSize; vertexIndex < newSize; ++vertexIndex )+m_clothIdentifier[vertexIndex] = clothIdentifier;+for( int vertexIndex = (previousSize + numVertices); vertexIndex < newSize; ++vertexIndex )+m_clothIdentifier[vertexIndex] = -1;+}++// Get and set methods in header so they can be inlined++/**+* Return a reference to the position of vertex vertexIndex as stored on the host.+*/+Vectormath::Aos::Point3 &getPosition( int vertexIndex )+{+return m_vertexPosition[vertexIndex];+}++Vectormath::Aos::Point3 getPosition( int vertexIndex ) const+{+return m_vertexPosition[vertexIndex];+}++/**+* Return a reference to the previous position of vertex vertexIndex as stored on the host.+*/+Vectormath::Aos::Point3 &getPreviousPosition( int vertexIndex )+{+return m_vertexPreviousPosition[vertexIndex];+}++/**+* Return a reference to the velocity of vertex vertexIndex as stored on the host.+*/+Vectormath::Aos::Vector3 &getVelocity( int vertexIndex )+{+return m_vertexVelocity[vertexIndex];+}++/**+* Return a reference to the force accumulator of vertex vertexIndex as stored on the host.+*/+Vectormath::Aos::Vector3 &getForceAccumulator( int vertexIndex )+{+return m_vertexForceAccumulator[vertexIndex];+}++/**+* Return a reference to the normal of vertex vertexIndex as stored on the host.+*/+Vectormath::Aos::Vector3 &getNormal( int vertexIndex )+{+return m_vertexNormal[vertexIndex];+}++Vectormath::Aos::Vector3 getNormal( int vertexIndex ) const+{+return m_vertexNormal[vertexIndex];+}++/**+* Return a reference to the inverse mass of vertex vertexIndex as stored on the host.+*/+float &getInverseMass( int vertexIndex )+{+return m_vertexInverseMass[vertexIndex];+}++/**+* Get access to the area controlled by this vertex.+*/+float &getArea( int vertexIndex )+{+return m_vertexArea[vertexIndex];+}++/**+* Get access to the array of how many triangles touch each vertex.+*/+int &getTriangleCount( int vertexIndex )+{+return m_vertexTriangleCount[vertexIndex];+}++++/**+* Return true if data is on the accelerator.+* The CPU version of this class will return true here because+* the CPU is the same as the accelerator.+*/+virtual bool onAccelerator()+{+return true;+}++/**+* Move data from host memory to the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveToAccelerator()+{+return true;+}++/**+* Move data from host memory from the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveFromAccelerator()+{+return true;+}++btAlignedObjectArray< Vectormath::Aos::Point3 > &getVertexPositions()+{+return m_vertexPosition;+}+};+++class btSoftBodyTriangleData+{ private:+public:+/**+* Class representing a triangle as a set of three indices into the+* vertex array.+*/+class TriangleNodeSet+{ private:+public:+int vertex0;+int vertex1;+int vertex2;+int _padding;++TriangleNodeSet( )+{+vertex0 = 0;+vertex1 = 0;+vertex2 = 0;+_padding = -1;+}++TriangleNodeSet( int newVertex0, int newVertex1, int newVertex2 )+{+vertex0 = newVertex0;+vertex1 = newVertex1;+vertex2 = newVertex2;+}+};++class TriangleDescription+{ private:+protected:+int m_vertex0;+int m_vertex1;+int m_vertex2;++public:+TriangleDescription()+{+m_vertex0 = 0;+m_vertex1 = 0;+m_vertex2 = 0;+}++TriangleDescription( int newVertex0, int newVertex1, int newVertex2 )+{+m_vertex0 = newVertex0;+m_vertex1 = newVertex1;+m_vertex2 = newVertex2;+}++TriangleNodeSet getVertexSet() const+{+btSoftBodyTriangleData::TriangleNodeSet nodes;+nodes.vertex0 = m_vertex0;+nodes.vertex1 = m_vertex1;+nodes.vertex2 = m_vertex2;+return nodes;+}+};++protected:+// NOTE:+// Vertex reference data is stored relative to global array, not relative to individual cloth.+// Values must be correct if being passed into single-cloth VBOs or when migrating from one solver+// to another.+btAlignedObjectArray< TriangleNodeSet > m_vertexIndices;+btAlignedObjectArray< float > m_area;+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_normal;++public:+btSoftBodyTriangleData()+{+}++virtual ~btSoftBodyTriangleData()+{++}++virtual void clear()+{+m_vertexIndices.resize(0);+m_area.resize(0);+m_normal.resize(0);+}++int getNumTriangles()+{+return m_vertexIndices.size();+}++virtual void setTriangleAt( const TriangleDescription &triangle, int triangleIndex )+{+m_vertexIndices[triangleIndex] = triangle.getVertexSet();+}++virtual void createTriangles( int numTriangles )+{+int previousSize = m_vertexIndices.size();+int newSize = previousSize + numTriangles;++// Resize all the arrays that store triangle data+m_vertexIndices.resize( newSize );+m_area.resize( newSize );+m_normal.resize( newSize );+}++/**+* Return the vertex index set for triangle triangleIndex as stored on the host.+*/+const TriangleNodeSet &getVertexSet( int triangleIndex )+{+return m_vertexIndices[triangleIndex];+}++/**+* Get access to the triangle area.+*/+float &getTriangleArea( int triangleIndex )+{+return m_area[triangleIndex];+}++/**+* Get access to the normal vector for this triangle.+*/+Vectormath::Aos::Vector3 &getNormal( int triangleIndex )+{+return m_normal[triangleIndex];+}++/**+* Return true if data is on the accelerator.+* The CPU version of this class will return true here because+* the CPU is the same as the accelerator.+*/+virtual bool onAccelerator()+{+return true;+}++/**+* Move data from host memory to the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveToAccelerator()+{+return true;+}++/**+* Move data from host memory from the accelerator.+* The CPU version will always return that it has moved it.+*/+virtual bool moveFromAccelerator()+{+return true;+}+};+++#endif // #ifndef BT_SOFT_BODY_SOLVER_DATA_H+
bullet/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolver_CPU.h view
@@ -1,370 +1,370 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H
-#define BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H
-
-#include "vectormath/vmInclude.h"
-#include "BulletSoftBody/btSoftBodySolvers.h"
-#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-
-struct btCPUCollisionShapeDescription
-{
-	int softBodyIdentifier;
-	int collisionShapeType;
-	Vectormath::Aos::Transform3 shapeTransform;
-	union
-	{
-		struct Sphere
-		{
-			float radius;
-		} sphere;
-		struct Capsule
-		{
-			float radius;
-			float halfHeight;
-			int upAxis;
-		} capsule;
-	} shapeInformation;
-	
-	float margin;
-	float friction;
-	Vectormath::Aos::Vector3 linearVelocity;
-	Vectormath::Aos::Vector3 angularVelocity;
-
-	btCPUCollisionShapeDescription()
-	{
-		collisionShapeType = 0;
-		margin = 0;
-		friction = 0;
-	}
-};
-
-class btCPUSoftBodySolver : public btSoftBodySolver
-{
-protected:
-	/**
-	 * Entry in the collision shape array.
-	 * Specifies the shape type, the transform matrix and the necessary details of the collisionShape.
-	 */
-
-
-	// Public because output classes need it. This is a better encapsulation to break in the short term
-	// Than having the solvers themselves need dependencies on DX, CL etc unnecessarily
-public:
-	
-	struct CollisionObjectIndices
-	{
-		CollisionObjectIndices( int f, int e )
-		{
-			firstObject = f;
-			endObject = e;
-		}
-
-		int firstObject;
-		int endObject;
-	};
-
-	/**
-	 * SoftBody class to maintain information about a soft body instance
-	 * within a solver.
-	 * This data addresses the main solver arrays.
-	 */
-	class btAcceleratedSoftBodyInterface
-	{
-	protected:
-		/** Current number of vertices that are part of this cloth */
-		int m_numVertices;
-		/** Maximum number of vertices allocated to be part of this cloth */
-		int m_maxVertices;
-		/** Current number of triangles that are part of this cloth */
-		int m_numTriangles;
-		/** Maximum number of triangles allocated to be part of this cloth */
-		int m_maxTriangles;
-		/** Index of first vertex in the world allocated to this cloth */
-		int m_firstVertex;
-		/** Index of first triangle in the world allocated to this cloth */
-		int m_firstTriangle;
-		/** Index of first link in the world allocated to this cloth */
-		int m_firstLink;
-		/** Maximum number of links allocated to this cloth */
-		int m_maxLinks;
-		/** Current number of links allocated to this cloth */
-		int m_numLinks;
-
-		/** The actual soft body this data represents */
-		btSoftBody *m_softBody;
-
-
-	public:
-		btAcceleratedSoftBodyInterface( btSoftBody *softBody ) :
-		  m_softBody( softBody )
-		{
-			m_numVertices = 0;
-			m_maxVertices = 0;
-			m_numTriangles = 0;
-			m_maxTriangles = 0;
-			m_firstVertex = 0;
-			m_firstTriangle = 0;
-			m_firstLink = 0;
-			m_maxLinks = 0;
-			m_numLinks = 0;
-		}
-		int getNumVertices() const
-		{
-			return m_numVertices;
-		}
-
-		int getNumTriangles() const
-		{
-			return m_numTriangles;
-		}
-
-		int getMaxVertices() const
-		{
-			return m_maxVertices;
-		}
-
-		int getMaxTriangles() const
-		{
-			return m_maxTriangles;
-		}
-
-		int getFirstVertex() const
-		{
-			return m_firstVertex;
-		}
-
-		int getFirstTriangle() const
-		{
-			return m_firstTriangle;
-		}
-
-		/**
-		 * Update the bounds in the btSoftBody object
-		 */
-		void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );
-
-		// TODO: All of these set functions will have to do checks and
-		// update the world because restructuring of the arrays will be necessary
-		// Reasonable use of "friend"?
-		void setNumVertices( int numVertices )
-		{
-			m_numVertices = numVertices;
-		}	
-		
-		void setNumTriangles( int numTriangles )
-		{
-			m_numTriangles = numTriangles;
-		}
-
-		void setMaxVertices( int maxVertices )
-		{
-			m_maxVertices = maxVertices;
-		}
-
-		void setMaxTriangles( int maxTriangles )
-		{
-			m_maxTriangles = maxTriangles;
-		}
-
-		void setFirstVertex( int firstVertex )
-		{
-			m_firstVertex = firstVertex;
-		}
-
-		void setFirstTriangle( int firstTriangle )
-		{
-			m_firstTriangle = firstTriangle;
-		}
-
-		void setMaxLinks( int maxLinks )
-		{
-			m_maxLinks = maxLinks;
-		}
-
-		void setNumLinks( int numLinks )
-		{
-			m_numLinks = numLinks;
-		}
-
-		void setFirstLink( int firstLink )
-		{
-			m_firstLink = firstLink;
-		}
-
-		int getMaxLinks() const
-		{
-			return m_maxLinks;
-		}
-
-		int getNumLinks() const
-		{
-			return m_numLinks;
-		}
-
-		int getFirstLink() const
-		{
-			return m_firstLink;
-		}
-
-		btSoftBody* getSoftBody()
-		{
-			return m_softBody;
-		}
-
-		const btSoftBody* const getSoftBody() const
-		{
-			return m_softBody;
-		}
-	};
-	
-	btSoftBodyLinkData m_linkData;
-	btSoftBodyVertexData m_vertexData;
-	btSoftBodyTriangleData m_triangleData;
-
-protected:
-
-
-
-		
-	/** Variable to define whether we need to update solver constants on the next iteration */
-	bool m_updateSolverConstants;
-
-	/** 
-	 * Cloths owned by this solver.
-	 * Only our cloths are in this array.
-	 */
-	btAlignedObjectArray< btAcceleratedSoftBodyInterface * > m_softBodySet;
-	
-	/** Acceleration value to be applied to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothAcceleration;
-
-	/** Wind velocity to be applied normal to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothWindVelocity;
-
-	/** Velocity damping factor */
-	btAlignedObjectArray< float > m_perClothDampingFactor;
-
-	/** Velocity correction coefficient */
-	btAlignedObjectArray< float > m_perClothVelocityCorrectionCoefficient;
-
-	/** Lift parameter for wind effect on cloth. */
-	btAlignedObjectArray< float > m_perClothLiftFactor;
-	
-	/** Drag parameter for wind effect on cloth. */
-	btAlignedObjectArray< float > m_perClothDragFactor;
-
-	/** Density of the medium in which each cloth sits */
-	btAlignedObjectArray< float > m_perClothMediumDensity;
-
-	/** 
-	 * Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.
-	 */
-	btAlignedObjectArray< CollisionObjectIndices > m_perClothCollisionObjects;
-
-	/** 
-	 * Collision shapes being passed across to the cloths in this solver.
-	 */
-	btAlignedObjectArray< btCPUCollisionShapeDescription > m_collisionObjectDetails;
-
-
-	void prepareCollisionConstraints();
-
-	Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );
-
-	void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );
-	
-	float computeTriangleArea( 
-		const Vectormath::Aos::Point3 &vertex0,
-		const Vectormath::Aos::Point3 &vertex1,
-		const Vectormath::Aos::Point3 &vertex2 );
-
-	void applyForces( float solverdt );
-	void integrate( float solverdt );
-	void updateConstants( float timeStep );
-	int findSoftBodyIndex( const btSoftBody* const softBody );
-	
-	/** Update the bounds of the soft body objects in the solver */
-	void updateBounds();
-
-
-public:
-	btCPUSoftBodySolver();
-	
-	virtual ~btCPUSoftBodySolver();
-
-	
-	virtual SolverTypes getSolverType() const
-	{
-		return CPU_SOLVER;
-	}
-
-
-	virtual btSoftBodyLinkData &getLinkData();
-
-	virtual btSoftBodyVertexData &getVertexData();
-
-	virtual btSoftBodyTriangleData &getTriangleData();
-
-
-
-	btAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );
-	const btAcceleratedSoftBodyInterface * const findSoftBodyInterface( const btSoftBody* const softBody ) const;
-
-
-
-	virtual bool checkInitialized();
-
-	virtual void updateSoftBodies( );
-
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
-
-	virtual void copyBackToSoftBodies();
-
-	virtual void solveConstraints( float solverdt );
-
-	virtual void predictMotion( float solverdt );
-
-	virtual void processCollision( btSoftBody *, btCollisionObject* );
-
-	virtual void processCollision( btSoftBody*, btSoftBody *);
-
-};
-
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is the CPU to CPU generic version.
- */
-class btSoftBodySolverOutputCPUtoCPU : public btSoftBodySolverOutput
-{
-protected:
-
-public:
-	btSoftBodySolverOutputCPUtoCPU()
-	{
-	}
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );
-};
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H+#define BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H++#include "vectormath/vmInclude.h"+#include "BulletSoftBody/btSoftBodySolvers.h"+#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"+#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"++struct btCPUCollisionShapeDescription+{+int softBodyIdentifier;+int collisionShapeType;+Vectormath::Aos::Transform3 shapeTransform;+union+{+struct Sphere+{+float radius;+} sphere;+struct Capsule+{+float radius;+float halfHeight;+int upAxis;+} capsule;+} shapeInformation;++float margin;+float friction;+Vectormath::Aos::Vector3 linearVelocity;+Vectormath::Aos::Vector3 angularVelocity;++btCPUCollisionShapeDescription()+{+collisionShapeType = 0;+margin = 0;+friction = 0;+}+};++class btCPUSoftBodySolver : public btSoftBodySolver+{ private:+protected:+/**+* Entry in the collision shape array.+* Specifies the shape type, the transform matrix and the necessary details of the collisionShape.+*/+++// Public because output classes need it. This is a better encapsulation to break in the short term+// Than having the solvers themselves need dependencies on DX, CL etc unnecessarily+public:++struct CollisionObjectIndices+{+CollisionObjectIndices( int f, int e )+{+firstObject = f;+endObject = e;+}++int firstObject;+int endObject;+};++/**+* SoftBody class to maintain information about a soft body instance+* within a solver.+* This data addresses the main solver arrays.+*/+class btAcceleratedSoftBodyInterface+{ private:+protected:+/** Current number of vertices that are part of this cloth */+int m_numVertices;+/** Maximum number of vertices allocated to be part of this cloth */+int m_maxVertices;+/** Current number of triangles that are part of this cloth */+int m_numTriangles;+/** Maximum number of triangles allocated to be part of this cloth */+int m_maxTriangles;+/** Index of first vertex in the world allocated to this cloth */+int m_firstVertex;+/** Index of first triangle in the world allocated to this cloth */+int m_firstTriangle;+/** Index of first link in the world allocated to this cloth */+int m_firstLink;+/** Maximum number of links allocated to this cloth */+int m_maxLinks;+/** Current number of links allocated to this cloth */+int m_numLinks;++/** The actual soft body this data represents */+btSoftBody *m_softBody;+++public:+btAcceleratedSoftBodyInterface( btSoftBody *softBody ) :+m_softBody( softBody )+{+m_numVertices = 0;+m_maxVertices = 0;+m_numTriangles = 0;+m_maxTriangles = 0;+m_firstVertex = 0;+m_firstTriangle = 0;+m_firstLink = 0;+m_maxLinks = 0;+m_numLinks = 0;+}+int getNumVertices() const+{+return m_numVertices;+}++int getNumTriangles() const+{+return m_numTriangles;+}++int getMaxVertices() const+{+return m_maxVertices;+}++int getMaxTriangles() const+{+return m_maxTriangles;+}++int getFirstVertex() const+{+return m_firstVertex;+}++int getFirstTriangle() const+{+return m_firstTriangle;+}++/**+* Update the bounds in the btSoftBody object+*/+void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );++// TODO: All of these set functions will have to do checks and+// update the world because restructuring of the arrays will be necessary+// Reasonable use of "friend"?+void setNumVertices( int numVertices )+{+m_numVertices = numVertices;+}++void setNumTriangles( int numTriangles )+{+m_numTriangles = numTriangles;+}++void setMaxVertices( int maxVertices )+{+m_maxVertices = maxVertices;+}++void setMaxTriangles( int maxTriangles )+{+m_maxTriangles = maxTriangles;+}++void setFirstVertex( int firstVertex )+{+m_firstVertex = firstVertex;+}++void setFirstTriangle( int firstTriangle )+{+m_firstTriangle = firstTriangle;+}++void setMaxLinks( int maxLinks )+{+m_maxLinks = maxLinks;+}++void setNumLinks( int numLinks )+{+m_numLinks = numLinks;+}++void setFirstLink( int firstLink )+{+m_firstLink = firstLink;+}++int getMaxLinks() const+{+return m_maxLinks;+}++int getNumLinks() const+{+return m_numLinks;+}++int getFirstLink() const+{+return m_firstLink;+}++btSoftBody* getSoftBody()+{+return m_softBody;+}++const btSoftBody* const getSoftBody() const+{+return m_softBody;+}+};++btSoftBodyLinkData m_linkData;+btSoftBodyVertexData m_vertexData;+btSoftBodyTriangleData m_triangleData;++protected:+++++/** Variable to define whether we need to update solver constants on the next iteration */+bool m_updateSolverConstants;++/**+* Cloths owned by this solver.+* Only our cloths are in this array.+*/+btAlignedObjectArray< btAcceleratedSoftBodyInterface * > m_softBodySet;++/** Acceleration value to be applied to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothAcceleration;++/** Wind velocity to be applied normal to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothWindVelocity;++/** Velocity damping factor */+btAlignedObjectArray< float > m_perClothDampingFactor;++/** Velocity correction coefficient */+btAlignedObjectArray< float > m_perClothVelocityCorrectionCoefficient;++/** Lift parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothLiftFactor;++/** Drag parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothDragFactor;++/** Density of the medium in which each cloth sits */+btAlignedObjectArray< float > m_perClothMediumDensity;++/**+* Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.+*/+btAlignedObjectArray< CollisionObjectIndices > m_perClothCollisionObjects;++/**+* Collision shapes being passed across to the cloths in this solver.+*/+btAlignedObjectArray< btCPUCollisionShapeDescription > m_collisionObjectDetails;+++void prepareCollisionConstraints();++Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );++void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );++float computeTriangleArea(+const Vectormath::Aos::Point3 &vertex0,+const Vectormath::Aos::Point3 &vertex1,+const Vectormath::Aos::Point3 &vertex2 );++void applyForces( float solverdt );+void integrate( float solverdt );+void updateConstants( float timeStep );+int findSoftBodyIndex( const btSoftBody* const softBody );++/** Update the bounds of the soft body objects in the solver */+void updateBounds();+++public:+btCPUSoftBodySolver();++virtual ~btCPUSoftBodySolver();+++virtual SolverTypes getSolverType() const+{+return CPU_SOLVER;+}+++virtual btSoftBodyLinkData &getLinkData();++virtual btSoftBodyVertexData &getVertexData();++virtual btSoftBodyTriangleData &getTriangleData();++++btAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );+const btAcceleratedSoftBodyInterface * const findSoftBodyInterface( const btSoftBody* const softBody ) const;++++virtual bool checkInitialized();++virtual void updateSoftBodies( );++virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);++virtual void copyBackToSoftBodies();++virtual void solveConstraints( float solverdt );++virtual void predictMotion( float solverdt );++virtual void processCollision( btSoftBody *, btCollisionObject* );++virtual void processCollision( btSoftBody*, btSoftBody *);++};+++/**+* Class to manage movement of data from a solver to a given target.+* This version is the CPU to CPU generic version.+*/+class btSoftBodySolverOutputCPUtoCPU : public btSoftBodySolverOutput+{ private:+protected:++public:+btSoftBodySolverOutputCPUtoCPU()+{+}++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );+};+ #endif // #ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverBuffer_DX11.h view
@@ -1,323 +1,323 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-#ifndef BT_SOFT_BODY_SOLVER_BUFFER_DX11_H
-#define BT_SOFT_BODY_SOLVER_BUFFER_DX11_H
-
-// DX11 support
-#include <windows.h>
-#include <crtdbg.h>
-#include <d3d11.h>
-#include <d3dx11.h>
-#include <d3dcompiler.h>
-
-#ifndef SAFE_RELEASE
-#define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }
-#endif
-
-/**
- * DX11 Buffer that tracks a host buffer on use to ensure size-correctness.
- */
-template <typename ElementType> class btDX11Buffer
-{
-protected:
-	ID3D11Device*				m_d3dDevice;
-	ID3D11DeviceContext*		m_d3dDeviceContext;
-
-	ID3D11Buffer*               m_Buffer;
-	ID3D11ShaderResourceView*   m_SRV;
-	ID3D11UnorderedAccessView*  m_UAV;
-	btAlignedObjectArray< ElementType >*	m_CPUBuffer;
-
-	// TODO: Separate this from the main class
-	// as read back buffers can be shared between buffers
-	ID3D11Buffer*               m_readBackBuffer;
-
-	int m_gpuSize;
-	bool m_onGPU;
-
-	bool m_readOnlyOnGPU;
-	
-	bool createBuffer( ID3D11Buffer *preexistingBuffer = 0)
-	{
-		HRESULT hr = S_OK;
-
-		// Create all CS buffers
-		if( preexistingBuffer )
-		{
-			m_Buffer = preexistingBuffer;
-		} else {
-			D3D11_BUFFER_DESC buffer_desc;
-			ZeroMemory(&buffer_desc, sizeof(buffer_desc));		
-			buffer_desc.Usage = D3D11_USAGE_DEFAULT;
-			if( m_readOnlyOnGPU )
-				buffer_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
-			else
-				buffer_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS;
-			buffer_desc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;
-			
-			buffer_desc.ByteWidth = m_CPUBuffer->size() * sizeof(ElementType);
-			// At a minimum the buffer must exist
-			if( buffer_desc.ByteWidth == 0 )
-				buffer_desc.ByteWidth = sizeof(ElementType);
-			buffer_desc.StructureByteStride = sizeof(ElementType);
-			hr = m_d3dDevice->CreateBuffer(&buffer_desc, NULL, &m_Buffer);
-			if( FAILED( hr ) )
-		        return (hr==S_OK);
-		} 
-
-		if( m_readOnlyOnGPU )
-		{
-			D3D11_SHADER_RESOURCE_VIEW_DESC srvbuffer_desc;
-			ZeroMemory(&srvbuffer_desc, sizeof(srvbuffer_desc));
-			srvbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;
-			srvbuffer_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
-
-			srvbuffer_desc.Buffer.ElementWidth = m_CPUBuffer->size();
-			if( srvbuffer_desc.Buffer.ElementWidth == 0 )
-				srvbuffer_desc.Buffer.ElementWidth = 1;
-			hr = m_d3dDevice->CreateShaderResourceView(m_Buffer, &srvbuffer_desc, &m_SRV);
-			if( FAILED( hr ) )
-				return (hr==S_OK);
-		} else {
-			// Create SRV
-			D3D11_SHADER_RESOURCE_VIEW_DESC srvbuffer_desc;
-			ZeroMemory(&srvbuffer_desc, sizeof(srvbuffer_desc));
-			srvbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;
-			srvbuffer_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
-
-			srvbuffer_desc.Buffer.ElementWidth = m_CPUBuffer->size();
-			if( srvbuffer_desc.Buffer.ElementWidth == 0 )
-				srvbuffer_desc.Buffer.ElementWidth = 1;
-			hr = m_d3dDevice->CreateShaderResourceView(m_Buffer, &srvbuffer_desc, &m_SRV);
-			if( FAILED( hr ) )
-				return (hr==S_OK);
-
-			// Create UAV
-			D3D11_UNORDERED_ACCESS_VIEW_DESC uavbuffer_desc;
-			ZeroMemory(&uavbuffer_desc, sizeof(uavbuffer_desc));
-			uavbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;
-			uavbuffer_desc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
-
-			uavbuffer_desc.Buffer.NumElements = m_CPUBuffer->size();
-			if( uavbuffer_desc.Buffer.NumElements == 0 )
-				uavbuffer_desc.Buffer.NumElements = 1;
-			hr = m_d3dDevice->CreateUnorderedAccessView(m_Buffer, &uavbuffer_desc, &m_UAV);
-			if( FAILED( hr ) )
-				return (hr==S_OK);
-
-			// Create read back buffer
-			D3D11_BUFFER_DESC readback_buffer_desc;
-			ZeroMemory(&readback_buffer_desc, sizeof(readback_buffer_desc));
-
-			readback_buffer_desc.ByteWidth = m_CPUBuffer->size() * sizeof(ElementType);
-			readback_buffer_desc.Usage = D3D11_USAGE_STAGING;
-			readback_buffer_desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
-			readback_buffer_desc.StructureByteStride = sizeof(ElementType);
-			hr = m_d3dDevice->CreateBuffer(&readback_buffer_desc, NULL, &m_readBackBuffer);
-			if( FAILED( hr ) )
-				return (hr==S_OK);
-		}
-
-		m_gpuSize = m_CPUBuffer->size();
-		return true;
-	}
-
-
-
-public:
-	btDX11Buffer( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext, btAlignedObjectArray< ElementType > *CPUBuffer, bool readOnly )
-	{
-		m_d3dDevice = d3dDevice;
-		m_d3dDeviceContext = d3dDeviceContext;
-		m_Buffer = 0;
-		m_SRV = 0;
-		m_UAV = 0;
-		m_readBackBuffer = 0;
-
-		m_CPUBuffer = CPUBuffer;
-
-		m_gpuSize = 0;
-		m_onGPU = false;
-
-		m_readOnlyOnGPU = readOnly;
-	}
-
-	virtual ~btDX11Buffer()
-	{
-		SAFE_RELEASE(m_Buffer);
-		SAFE_RELEASE(m_SRV);
-		SAFE_RELEASE(m_UAV);
-		SAFE_RELEASE(m_readBackBuffer);
-	}
-
-	ID3D11ShaderResourceView* &getSRV()
-	{
-		return m_SRV;
-	}
-
-	ID3D11UnorderedAccessView* &getUAV()
-	{
-		return m_UAV;
-	}
-
-	ID3D11Buffer* &getBuffer()
-	{
-		return m_Buffer;
-	}
-
-	/**
-	 * Move the data to the GPU if it is not there already.
-	 */
-	bool moveToGPU()
-	{
-		// Reallocate if GPU size is too small
-		if( (m_CPUBuffer->size() > m_gpuSize ) )
-			m_onGPU = false;
-		if( !m_onGPU && m_CPUBuffer->size() > 0 )
-		{
-			// If the buffer doesn't exist or the CPU-side buffer has changed size, create
-			// We should really delete the old one, too, but let's leave that for later
-			if( !m_Buffer || (m_CPUBuffer->size() != m_gpuSize) )
-			{
-				SAFE_RELEASE(m_Buffer);
-				SAFE_RELEASE(m_SRV);
-				SAFE_RELEASE(m_UAV);
-				SAFE_RELEASE(m_readBackBuffer);
-				if( !createBuffer() )
-				{
-					btAssert("Buffer creation failed.");
-					return false;
-				}
-			}
-
-			if( m_gpuSize > 0 )
-			{
-				D3D11_BOX destRegion;
-				destRegion.left = 0;
-				destRegion.front = 0;
-				destRegion.top = 0;
-				destRegion.bottom = 1;
-				destRegion.back = 1;
-				destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);
-				m_d3dDeviceContext->UpdateSubresource(m_Buffer, 0, &destRegion, &((*m_CPUBuffer)[0]), 0, 0);
-
-				m_onGPU = true;
-			}
-
-		}
-
-		return true;
-	}
-
-	/**
-	 * Move the data back from the GPU if it is on there and isn't read only.
-	 */
-	bool moveFromGPU()
-	{
-		if( m_CPUBuffer->size() > 0 )
-		{
-			if( m_onGPU && !m_readOnlyOnGPU )
-			{
-				// Copy back
-				D3D11_MAPPED_SUBRESOURCE MappedResource = {0}; 
-				//m_pd3dImmediateContext->CopyResource(m_phAngVelReadBackBuffer, m_phAngVel);
-
-				D3D11_BOX destRegion;	
-				destRegion.left = 0;
-				destRegion.front = 0;
-				destRegion.top = 0;
-				destRegion.bottom = 1;
-				destRegion.back = 1;
-
-				destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);
-				m_d3dDeviceContext->CopySubresourceRegion(
-					m_readBackBuffer,
-					0,
-					0,
-					0,
-					0 ,
-					m_Buffer,
-					0,
-					&destRegion
-					);
-
-				m_d3dDeviceContext->Map(m_readBackBuffer, 0, D3D11_MAP_READ, 0, &MappedResource);   
-				//memcpy(m_hAngVel, MappedResource.pData, (m_maxObjs * sizeof(float) ));
-				memcpy(&((*m_CPUBuffer)[0]), MappedResource.pData, ((m_CPUBuffer->size()) * sizeof(ElementType) ));		
-				m_d3dDeviceContext->Unmap(m_readBackBuffer, 0);
-
-				m_onGPU = false;
-			}
-		}
-
-		return true;
-	}
-
-
-	/**
-	 * Copy the data back from the GPU without changing its state to be CPU-side.
-	 * Useful if we just want to view it on the host for visualization.
-	 */
-	bool copyFromGPU()
-	{
-		if( m_CPUBuffer->size() > 0 )
-		{
-			if( m_onGPU && !m_readOnlyOnGPU )
-			{
-				// Copy back
-				D3D11_MAPPED_SUBRESOURCE MappedResource = {0}; 
-
-				D3D11_BOX destRegion;	
-				destRegion.left = 0;
-				destRegion.front = 0;
-				destRegion.top = 0;
-				destRegion.bottom = 1;
-				destRegion.back = 1;
-
-				destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);
-				m_d3dDeviceContext->CopySubresourceRegion(
-					m_readBackBuffer,
-					0,
-					0,
-					0,
-					0 ,
-					m_Buffer,
-					0,
-					&destRegion
-					);
-
-				m_d3dDeviceContext->Map(m_readBackBuffer, 0, D3D11_MAP_READ, 0, &MappedResource);   
-				//memcpy(m_hAngVel, MappedResource.pData, (m_maxObjs * sizeof(float) ));
-				memcpy(&((*m_CPUBuffer)[0]), MappedResource.pData, ((m_CPUBuffer->size()) * sizeof(ElementType) ));		
-				m_d3dDeviceContext->Unmap(m_readBackBuffer, 0);
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Call if data has changed on the CPU.
-	 * Can then trigger a move to the GPU as necessary.
-	 */
-	virtual void changedOnCPU()
-	{
-		m_onGPU = false;
-	}
-}; // class btDX11Buffer
-
-
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+#ifndef BT_SOFT_BODY_SOLVER_BUFFER_DX11_H+#define BT_SOFT_BODY_SOLVER_BUFFER_DX11_H++// DX11 support+#include <windows.h>+#include <crtdbg.h>+#include <d3d11.h>+#include <d3dx11.h>+#include <d3dcompiler.h>++#ifndef SAFE_RELEASE+#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }+#endif++/**+* DX11 Buffer that tracks a host buffer on use to ensure size-correctness.+*/+template <typename ElementType> class btDX11Buffer+{+protected:+ID3D11Device* m_d3dDevice;+ID3D11DeviceContext* m_d3dDeviceContext;++ID3D11Buffer* m_Buffer;+ID3D11ShaderResourceView* m_SRV;+ID3D11UnorderedAccessView* m_UAV;+btAlignedObjectArray< ElementType >* m_CPUBuffer;++// TODO: Separate this from the main class+// as read back buffers can be shared between buffers+ID3D11Buffer* m_readBackBuffer;++int m_gpuSize;+bool m_onGPU;++bool m_readOnlyOnGPU;++bool createBuffer( ID3D11Buffer *preexistingBuffer = 0)+{+HRESULT hr = S_OK;++// Create all CS buffers+if( preexistingBuffer )+{+m_Buffer = preexistingBuffer;+} else {+D3D11_BUFFER_DESC buffer_desc;+ZeroMemory(&buffer_desc, sizeof(buffer_desc));+buffer_desc.Usage = D3D11_USAGE_DEFAULT;+if( m_readOnlyOnGPU )+buffer_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;+else+buffer_desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS;+buffer_desc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;++buffer_desc.ByteWidth = m_CPUBuffer->size() * sizeof(ElementType);+// At a minimum the buffer must exist+if( buffer_desc.ByteWidth == 0 )+buffer_desc.ByteWidth = sizeof(ElementType);+buffer_desc.StructureByteStride = sizeof(ElementType);+hr = m_d3dDevice->CreateBuffer(&buffer_desc, NULL, &m_Buffer);+if( FAILED( hr ) )+return (hr==S_OK);+}++if( m_readOnlyOnGPU )+{+D3D11_SHADER_RESOURCE_VIEW_DESC srvbuffer_desc;+ZeroMemory(&srvbuffer_desc, sizeof(srvbuffer_desc));+srvbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;+srvbuffer_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;++srvbuffer_desc.Buffer.ElementWidth = m_CPUBuffer->size();+if( srvbuffer_desc.Buffer.ElementWidth == 0 )+srvbuffer_desc.Buffer.ElementWidth = 1;+hr = m_d3dDevice->CreateShaderResourceView(m_Buffer, &srvbuffer_desc, &m_SRV);+if( FAILED( hr ) )+return (hr==S_OK);+} else {+// Create SRV+D3D11_SHADER_RESOURCE_VIEW_DESC srvbuffer_desc;+ZeroMemory(&srvbuffer_desc, sizeof(srvbuffer_desc));+srvbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;+srvbuffer_desc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;++srvbuffer_desc.Buffer.ElementWidth = m_CPUBuffer->size();+if( srvbuffer_desc.Buffer.ElementWidth == 0 )+srvbuffer_desc.Buffer.ElementWidth = 1;+hr = m_d3dDevice->CreateShaderResourceView(m_Buffer, &srvbuffer_desc, &m_SRV);+if( FAILED( hr ) )+return (hr==S_OK);++// Create UAV+D3D11_UNORDERED_ACCESS_VIEW_DESC uavbuffer_desc;+ZeroMemory(&uavbuffer_desc, sizeof(uavbuffer_desc));+uavbuffer_desc.Format = DXGI_FORMAT_UNKNOWN;+uavbuffer_desc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;++uavbuffer_desc.Buffer.NumElements = m_CPUBuffer->size();+if( uavbuffer_desc.Buffer.NumElements == 0 )+uavbuffer_desc.Buffer.NumElements = 1;+hr = m_d3dDevice->CreateUnorderedAccessView(m_Buffer, &uavbuffer_desc, &m_UAV);+if( FAILED( hr ) )+return (hr==S_OK);++// Create read back buffer+D3D11_BUFFER_DESC readback_buffer_desc;+ZeroMemory(&readback_buffer_desc, sizeof(readback_buffer_desc));++readback_buffer_desc.ByteWidth = m_CPUBuffer->size() * sizeof(ElementType);+readback_buffer_desc.Usage = D3D11_USAGE_STAGING;+readback_buffer_desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;+readback_buffer_desc.StructureByteStride = sizeof(ElementType);+hr = m_d3dDevice->CreateBuffer(&readback_buffer_desc, NULL, &m_readBackBuffer);+if( FAILED( hr ) )+return (hr==S_OK);+}++m_gpuSize = m_CPUBuffer->size();+return true;+}++++public:+btDX11Buffer( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext, btAlignedObjectArray< ElementType > *CPUBuffer, bool readOnly )+{+m_d3dDevice = d3dDevice;+m_d3dDeviceContext = d3dDeviceContext;+m_Buffer = 0;+m_SRV = 0;+m_UAV = 0;+m_readBackBuffer = 0;++m_CPUBuffer = CPUBuffer;++m_gpuSize = 0;+m_onGPU = false;++m_readOnlyOnGPU = readOnly;+}++virtual ~btDX11Buffer()+{+SAFE_RELEASE(m_Buffer);+SAFE_RELEASE(m_SRV);+SAFE_RELEASE(m_UAV);+SAFE_RELEASE(m_readBackBuffer);+}++ID3D11ShaderResourceView* &getSRV()+{+return m_SRV;+}++ID3D11UnorderedAccessView* &getUAV()+{+return m_UAV;+}++ID3D11Buffer* &getBuffer()+{+return m_Buffer;+}++/**+* Move the data to the GPU if it is not there already.+*/+bool moveToGPU()+{+// Reallocate if GPU size is too small+if( (m_CPUBuffer->size() > m_gpuSize ) )+m_onGPU = false;+if( !m_onGPU && m_CPUBuffer->size() > 0 )+{+// If the buffer doesn't exist or the CPU-side buffer has changed size, create+// We should really delete the old one, too, but let's leave that for later+if( !m_Buffer || (m_CPUBuffer->size() != m_gpuSize) )+{+SAFE_RELEASE(m_Buffer);+SAFE_RELEASE(m_SRV);+SAFE_RELEASE(m_UAV);+SAFE_RELEASE(m_readBackBuffer);+if( !createBuffer() )+{+btAssert("Buffer creation failed.");+return false;+}+}++if( m_gpuSize > 0 )+{+D3D11_BOX destRegion;+destRegion.left = 0;+destRegion.front = 0;+destRegion.top = 0;+destRegion.bottom = 1;+destRegion.back = 1;+destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);+m_d3dDeviceContext->UpdateSubresource(m_Buffer, 0, &destRegion, &((*m_CPUBuffer)[0]), 0, 0);++m_onGPU = true;+}++}++return true;+}++/**+* Move the data back from the GPU if it is on there and isn't read only.+*/+bool moveFromGPU()+{+if( m_CPUBuffer->size() > 0 )+{+if( m_onGPU && !m_readOnlyOnGPU )+{+// Copy back+D3D11_MAPPED_SUBRESOURCE MappedResource = {0};+//m_pd3dImmediateContext->CopyResource(m_phAngVelReadBackBuffer, m_phAngVel);++D3D11_BOX destRegion;+destRegion.left = 0;+destRegion.front = 0;+destRegion.top = 0;+destRegion.bottom = 1;+destRegion.back = 1;++destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);+m_d3dDeviceContext->CopySubresourceRegion(+m_readBackBuffer,+0,+0,+0,+0 ,+m_Buffer,+0,+&destRegion+);++m_d3dDeviceContext->Map(m_readBackBuffer, 0, D3D11_MAP_READ, 0, &MappedResource);+//memcpy(m_hAngVel, MappedResource.pData, (m_maxObjs * sizeof(float) ));+memcpy(&((*m_CPUBuffer)[0]), MappedResource.pData, ((m_CPUBuffer->size()) * sizeof(ElementType) ));+m_d3dDeviceContext->Unmap(m_readBackBuffer, 0);++m_onGPU = false;+}+}++return true;+}+++/**+* Copy the data back from the GPU without changing its state to be CPU-side.+* Useful if we just want to view it on the host for visualization.+*/+bool copyFromGPU()+{+if( m_CPUBuffer->size() > 0 )+{+if( m_onGPU && !m_readOnlyOnGPU )+{+// Copy back+D3D11_MAPPED_SUBRESOURCE MappedResource = {0};++D3D11_BOX destRegion;+destRegion.left = 0;+destRegion.front = 0;+destRegion.top = 0;+destRegion.bottom = 1;+destRegion.back = 1;++destRegion.right = (m_CPUBuffer->size())*sizeof(ElementType);+m_d3dDeviceContext->CopySubresourceRegion(+m_readBackBuffer,+0,+0,+0,+0 ,+m_Buffer,+0,+&destRegion+);++m_d3dDeviceContext->Map(m_readBackBuffer, 0, D3D11_MAP_READ, 0, &MappedResource);+//memcpy(m_hAngVel, MappedResource.pData, (m_maxObjs * sizeof(float) ));+memcpy(&((*m_CPUBuffer)[0]), MappedResource.pData, ((m_CPUBuffer->size()) * sizeof(ElementType) ));+m_d3dDeviceContext->Unmap(m_readBackBuffer, 0);+}+}++return true;+}++/**+* Call if data has changed on the CPU.+* Can then trigger a move to the GPU as necessary.+*/+virtual void changedOnCPU()+{+m_onGPU = false;+}+}; // class btDX11Buffer+++ #endif // #ifndef BT_SOFT_BODY_SOLVER_BUFFER_DX11_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11.h view
@@ -1,103 +1,103 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_DX11.h"
-
-
-#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H
-#define BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H
-
-struct ID3D11Device;
-struct ID3D11DeviceContext;
-
-
-class btSoftBodyLinkDataDX11 : public btSoftBodyLinkData
-{
-public:
-	bool				m_onGPU;
-	ID3D11Device		*m_d3dDevice;
-	ID3D11DeviceContext *m_d3dDeviceContext;
-
-
-	btDX11Buffer<LinkNodePair>				m_dx11Links;
-	btDX11Buffer<float>											m_dx11LinkStrength;
-	btDX11Buffer<float>											m_dx11LinksMassLSC;
-	btDX11Buffer<float>											m_dx11LinksRestLengthSquared;
-	btDX11Buffer<Vectormath::Aos::Vector3>						m_dx11LinksCLength;
-	btDX11Buffer<float>											m_dx11LinksLengthRatio;
-	btDX11Buffer<float>											m_dx11LinksRestLength;
-	btDX11Buffer<float>											m_dx11LinksMaterialLinearStiffnessCoefficient;
-
-	struct BatchPair
-	{
-		int start;
-		int length;
-
-		BatchPair() :
-			start(0),
-			length(0)
-		{
-		}
-
-		BatchPair( int s, int l ) : 
-			start( s ),
-			length( l )
-		{
-		}
-	};
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_linkAddresses;
-
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	btAlignedObjectArray< BatchPair >		m_batchStartLengths;
-
-
-	//ID3D11Buffer*               readBackBuffer;
-	
-	btSoftBodyLinkDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );
-
-	virtual ~btSoftBodyLinkDataDX11();
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createLinks( int numLinks );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setLinkAt( const LinkDescription &link, int linkIndex );
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-
-	/**
-	 * Generate (and later update) the batching for the entire link set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-};
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_DX11.h"+++#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H+#define BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H++struct ID3D11Device;+struct ID3D11DeviceContext;+++class btSoftBodyLinkDataDX11 : public btSoftBodyLinkData+{ private:+public:+bool m_onGPU;+ID3D11Device *m_d3dDevice;+ID3D11DeviceContext *m_d3dDeviceContext;+++btDX11Buffer<LinkNodePair> m_dx11Links;+btDX11Buffer<float> m_dx11LinkStrength;+btDX11Buffer<float> m_dx11LinksMassLSC;+btDX11Buffer<float> m_dx11LinksRestLengthSquared;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11LinksCLength;+btDX11Buffer<float> m_dx11LinksLengthRatio;+btDX11Buffer<float> m_dx11LinksRestLength;+btDX11Buffer<float> m_dx11LinksMaterialLinearStiffnessCoefficient;++struct BatchPair+{+int start;+int length;++BatchPair() :+start(0),+length(0)+{+}++BatchPair( int s, int l ) :+start( s ),+length( l )+{+}+};++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_linkAddresses;++/**+* Start and length values for computation batches over link data.+*/+btAlignedObjectArray< BatchPair > m_batchStartLengths;+++//ID3D11Buffer* readBackBuffer;++btSoftBodyLinkDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );++virtual ~btSoftBodyLinkDataDX11();++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createLinks( int numLinks );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setLinkAt( const LinkDescription &link, int linkIndex );++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();++/**+* Generate (and later update) the batching for the entire link set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();+};+++#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_DX11_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverLinkData_DX11SIMDAware.h view
@@ -1,173 +1,173 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_DX11.h"
-
-#ifndef BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H
-#define BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H
-
-struct ID3D11Device;
-struct ID3D11DeviceContext;
-
-
-class btSoftBodyLinkDataDX11SIMDAware : public btSoftBodyLinkData
-{
-public:
-	bool				m_onGPU;
-	ID3D11Device		*m_d3dDevice;
-	ID3D11DeviceContext *m_d3dDeviceContext;
-
-	const int m_wavefrontSize;
-	const int m_linksPerWorkItem;
-	const int m_maxLinksPerWavefront;
-	int m_maxBatchesWithinWave;
-	int m_maxVerticesWithinWave;
-	int m_numWavefronts;
-
-	int m_maxVertex;
-
-	struct NumBatchesVerticesPair
-	{
-		int numBatches;
-		int numVertices;
-	};
-
-	// Array storing number of links in each wavefront
-	btAlignedObjectArray<int>									m_linksPerWavefront;
-	btAlignedObjectArray<NumBatchesVerticesPair>				m_numBatchesAndVerticesWithinWaves;
-	btDX11Buffer< NumBatchesVerticesPair >						m_dx11NumBatchesAndVerticesWithinWaves;
-
-	// All arrays here will contain batches of m_maxLinksPerWavefront links
-	// ordered by wavefront.
-	// with either global vertex pairs or local vertex pairs
-	btAlignedObjectArray< int >									m_wavefrontVerticesGlobalAddresses; // List of global vertices per wavefront
-	btDX11Buffer<int>											m_dx11WavefrontVerticesGlobalAddresses;
-	btAlignedObjectArray< LinkNodePair >						m_linkVerticesLocalAddresses; // Vertex pair for the link
-	btDX11Buffer<LinkNodePair>									m_dx11LinkVerticesLocalAddresses;
-	btDX11Buffer<float>											m_dx11LinkStrength;
-	btDX11Buffer<float>											m_dx11LinksMassLSC;
-	btDX11Buffer<float>											m_dx11LinksRestLengthSquared;
-	btDX11Buffer<float>											m_dx11LinksRestLength;
-	btDX11Buffer<float>											m_dx11LinksMaterialLinearStiffnessCoefficient;
-
-	struct BatchPair
-	{
-		int start;
-		int length;
-
-		BatchPair() :
-			start(0),
-			length(0)
-		{
-		}
-
-		BatchPair( int s, int l ) : 
-			start( s ),
-			length( l )
-		{
-		}
-	};
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_linkAddresses;
-
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	btAlignedObjectArray< BatchPair >		m_wavefrontBatchStartLengths;
-
-
-	//ID3D11Buffer*               readBackBuffer;
-	
-	btSoftBodyLinkDataDX11SIMDAware( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );
-
-	virtual ~btSoftBodyLinkDataDX11SIMDAware();
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createLinks( int numLinks );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setLinkAt( const LinkDescription &link, int linkIndex );
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-
-	/**
-	 * Generate (and later update) the batching for the entire link set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-
-	int getMaxVerticesPerWavefront()
-	{
-		return m_maxVerticesWithinWave;
-	}
-
-	int getWavefrontSize()
-	{
-		return m_wavefrontSize;
-	}
-
-	int getLinksPerWorkItem()
-	{
-		return m_linksPerWorkItem;
-	}
-
-	int getMaxLinksPerWavefront()
-	{
-		return m_maxLinksPerWavefront;
-	}
-
-	int getMaxBatchesPerWavefront()
-	{
-		return m_maxBatchesWithinWave;
-	}
-
-	int getNumWavefronts()
-	{
-		return m_numWavefronts;
-	}
-
-	NumBatchesVerticesPair getNumBatchesAndVerticesWithinWavefront( int wavefront )
-	{
-		return m_numBatchesAndVerticesWithinWaves[wavefront];
-	}
-
-	int getVertexGlobalAddresses( int vertexIndex )
-	{
-		return m_wavefrontVerticesGlobalAddresses[vertexIndex];
-	}
-
-	/**
-	 * Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.
-	 */
-	LinkNodePair getVertexPairLocalAddresses( int linkIndex )
-	{
-		return m_linkVerticesLocalAddresses[linkIndex];
-	}
-
-};
-
-
-#endif // #ifndef BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_DX11.h"++#ifndef BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H+#define BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H++struct ID3D11Device;+struct ID3D11DeviceContext;+++class btSoftBodyLinkDataDX11SIMDAware : public btSoftBodyLinkData+{ private:+public:+bool m_onGPU;+ID3D11Device *m_d3dDevice;+ID3D11DeviceContext *m_d3dDeviceContext;++const int m_wavefrontSize;+const int m_linksPerWorkItem;+const int m_maxLinksPerWavefront;+int m_maxBatchesWithinWave;+int m_maxVerticesWithinWave;+int m_numWavefronts;++int m_maxVertex;++struct NumBatchesVerticesPair+{+int numBatches;+int numVertices;+};++// Array storing number of links in each wavefront+btAlignedObjectArray<int> m_linksPerWavefront;+btAlignedObjectArray<NumBatchesVerticesPair> m_numBatchesAndVerticesWithinWaves;+btDX11Buffer< NumBatchesVerticesPair > m_dx11NumBatchesAndVerticesWithinWaves;++// All arrays here will contain batches of m_maxLinksPerWavefront links+// ordered by wavefront.+// with either global vertex pairs or local vertex pairs+btAlignedObjectArray< int > m_wavefrontVerticesGlobalAddresses; // List of global vertices per wavefront+btDX11Buffer<int> m_dx11WavefrontVerticesGlobalAddresses;+btAlignedObjectArray< LinkNodePair > m_linkVerticesLocalAddresses; // Vertex pair for the link+btDX11Buffer<LinkNodePair> m_dx11LinkVerticesLocalAddresses;+btDX11Buffer<float> m_dx11LinkStrength;+btDX11Buffer<float> m_dx11LinksMassLSC;+btDX11Buffer<float> m_dx11LinksRestLengthSquared;+btDX11Buffer<float> m_dx11LinksRestLength;+btDX11Buffer<float> m_dx11LinksMaterialLinearStiffnessCoefficient;++struct BatchPair+{+int start;+int length;++BatchPair() :+start(0),+length(0)+{+}++BatchPair( int s, int l ) :+start( s ),+length( l )+{+}+};++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_linkAddresses;++/**+* Start and length values for computation batches over link data.+*/+btAlignedObjectArray< BatchPair > m_wavefrontBatchStartLengths;+++//ID3D11Buffer* readBackBuffer;++btSoftBodyLinkDataDX11SIMDAware( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );++virtual ~btSoftBodyLinkDataDX11SIMDAware();++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createLinks( int numLinks );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setLinkAt( const LinkDescription &link, int linkIndex );++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();++/**+* Generate (and later update) the batching for the entire link set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();++int getMaxVerticesPerWavefront()+{+return m_maxVerticesWithinWave;+}++int getWavefrontSize()+{+return m_wavefrontSize;+}++int getLinksPerWorkItem()+{+return m_linksPerWorkItem;+}++int getMaxLinksPerWavefront()+{+return m_maxLinksPerWavefront;+}++int getMaxBatchesPerWavefront()+{+return m_maxBatchesWithinWave;+}++int getNumWavefronts()+{+return m_numWavefronts;+}++NumBatchesVerticesPair getNumBatchesAndVerticesWithinWavefront( int wavefront )+{+return m_numBatchesAndVerticesWithinWaves[wavefront];+}++int getVertexGlobalAddresses( int vertexIndex )+{+return m_wavefrontVerticesGlobalAddresses[vertexIndex];+}++/**+* Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.+*/+LinkNodePair getVertexPairLocalAddresses( int linkIndex )+{+return m_linkVerticesLocalAddresses[linkIndex];+}++};+++#endif // #ifndef BT_ACCELERATED_SOFT_BODY_LINK_DATA_DX11_SIMDAWARE_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverTriangleData_DX11.h view
@@ -1,96 +1,96 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_DX11.h"
-
-
-#ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H
-#define BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H
-
-struct ID3D11Device;
-struct ID3D11DeviceContext;
-
-class btSoftBodyTriangleDataDX11 : public btSoftBodyTriangleData
-{
-public:
-	bool				m_onGPU;
-	ID3D11Device		*m_d3dDevice;
-	ID3D11DeviceContext *m_d3dDeviceContext;
-
-	btDX11Buffer<btSoftBodyTriangleData::TriangleNodeSet>							m_dx11VertexIndices;
-	btDX11Buffer<float>									m_dx11Area;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11Normal;
-
-	struct BatchPair
-	{
-		int start;
-		int length;
-
-		BatchPair() :
-			start(0),
-			length(0)
-		{
-		}
-
-		BatchPair( int s, int l ) : 
-			start( s ),
-			length( l )
-		{
-		}
-	};
-
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_triangleAddresses;
-
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	btAlignedObjectArray< BatchPair >		m_batchStartLengths;
-
-	//ID3D11Buffer*               readBackBuffer;
-
-public:
-	btSoftBodyTriangleDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );
-
-	virtual ~btSoftBodyTriangleDataDX11();
-
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createTriangles( int numTriangles );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setTriangleAt( const btSoftBodyTriangleData::TriangleDescription &triangle, int triangleIndex );
-
-	virtual bool onAccelerator();
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-	/**
-	 * Generate (and later update) the batching for the entire triangle set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-};
-
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_DX11.h"+++#ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H+#define BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H++struct ID3D11Device;+struct ID3D11DeviceContext;++class btSoftBodyTriangleDataDX11 : public btSoftBodyTriangleData+{ private:+public:+bool m_onGPU;+ID3D11Device *m_d3dDevice;+ID3D11DeviceContext *m_d3dDeviceContext;++btDX11Buffer<btSoftBodyTriangleData::TriangleNodeSet> m_dx11VertexIndices;+btDX11Buffer<float> m_dx11Area;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11Normal;++struct BatchPair+{+int start;+int length;++BatchPair() :+start(0),+length(0)+{+}++BatchPair( int s, int l ) :+start( s ),+length( l )+{+}+};+++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_triangleAddresses;++/**+* Start and length values for computation batches over link data.+*/+btAlignedObjectArray< BatchPair > m_batchStartLengths;++//ID3D11Buffer* readBackBuffer;++public:+btSoftBodyTriangleDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );++virtual ~btSoftBodyTriangleDataDX11();+++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createTriangles( int numTriangles );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setTriangleAt( const btSoftBodyTriangleData::TriangleDescription &triangle, int triangleIndex );++virtual bool onAccelerator();+virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();+/**+* Generate (and later update) the batching for the entire triangle set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();+};++++#endif // #ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_DX11_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexBuffer_DX11.h view
@@ -1,107 +1,107 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_DX11_H
-#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_DX11_H 
-
-
-#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"
-
-#include <windows.h>
-#include <crtdbg.h>
-#include <d3d11.h>
-#include <d3dx11.h>
-#include <d3dcompiler.h>
-
-class btDX11VertexBufferDescriptor : public btVertexBufferDescriptor
-{
-protected:
-	/** Context of the DX11 device on which the vertex buffer is stored. */
-	ID3D11DeviceContext* m_context;
-	/** DX11 vertex buffer */
-	ID3D11Buffer* m_vertexBuffer;
-	/** UAV for DX11 buffer */
-	ID3D11UnorderedAccessView*  m_vertexBufferUAV;
-
-
-public:
-	/**
-	 * buffer is a pointer to the DX11 buffer to place the vertex data in.
-	 * UAV is a pointer to the UAV representation of the buffer laid out in floats.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 */
-	btDX11VertexBufferDescriptor( ID3D11DeviceContext* context, ID3D11Buffer* buffer, ID3D11UnorderedAccessView *UAV, int vertexOffset, int vertexStride )
-	{
-		m_context = context;
-		m_vertexBuffer = buffer;
-		m_vertexBufferUAV = UAV;
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-		m_hasVertexPositions = true;
-	}
-
-	/**
-	 * buffer is a pointer to the DX11 buffer to place the vertex data in.
-	 * UAV is a pointer to the UAV representation of the buffer laid out in floats.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 * normalOffset is the offset in floats to the first normal.
-	 * normalStride is the stride in floats between normals.
-	 */
-	btDX11VertexBufferDescriptor( ID3D11DeviceContext* context, ID3D11Buffer* buffer, ID3D11UnorderedAccessView *UAV, int vertexOffset, int vertexStride, int normalOffset, int normalStride )
-	{
-		m_context = context;
-		m_vertexBuffer = buffer;
-		m_vertexBufferUAV = UAV;
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-		m_hasVertexPositions = true;
-		
-		m_normalOffset = normalOffset;
-		m_normalStride = normalStride;
-		m_hasNormals = true;
-	}
-
-	virtual ~btDX11VertexBufferDescriptor()
-	{
-
-	}
-
-	/**
-	 * Return the type of the vertex buffer descriptor.
-	 */
-	virtual BufferTypes getBufferType() const
-	{
-		return DX11_BUFFER;
-	}
-
-	virtual ID3D11DeviceContext* getContext() const
-	{
-		return m_context;
-	}
-
-	virtual ID3D11Buffer* getbtDX11Buffer() const
-	{
-		return m_vertexBuffer;
-	}
-
-	virtual ID3D11UnorderedAccessView* getDX11UAV() const
-	{
-		return m_vertexBufferUAV;
-	}		
-};
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_DX11_H+#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_DX11_H+++#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"++#include <windows.h>+#include <crtdbg.h>+#include <d3d11.h>+#include <d3dx11.h>+#include <d3dcompiler.h>++class btDX11VertexBufferDescriptor : public btVertexBufferDescriptor+{ private:+protected:+/** Context of the DX11 device on which the vertex buffer is stored. */+ID3D11DeviceContext* m_context;+/** DX11 vertex buffer */+ID3D11Buffer* m_vertexBuffer;+/** UAV for DX11 buffer */+ID3D11UnorderedAccessView* m_vertexBufferUAV;+++public:+/**+* buffer is a pointer to the DX11 buffer to place the vertex data in.+* UAV is a pointer to the UAV representation of the buffer laid out in floats.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+*/+btDX11VertexBufferDescriptor( ID3D11DeviceContext* context, ID3D11Buffer* buffer, ID3D11UnorderedAccessView *UAV, int vertexOffset, int vertexStride )+{+m_context = context;+m_vertexBuffer = buffer;+m_vertexBufferUAV = UAV;+m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;+m_hasVertexPositions = true;+}++/**+* buffer is a pointer to the DX11 buffer to place the vertex data in.+* UAV is a pointer to the UAV representation of the buffer laid out in floats.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+* normalOffset is the offset in floats to the first normal.+* normalStride is the stride in floats between normals.+*/+btDX11VertexBufferDescriptor( ID3D11DeviceContext* context, ID3D11Buffer* buffer, ID3D11UnorderedAccessView *UAV, int vertexOffset, int vertexStride, int normalOffset, int normalStride )+{+m_context = context;+m_vertexBuffer = buffer;+m_vertexBufferUAV = UAV;+m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;+m_hasVertexPositions = true;++m_normalOffset = normalOffset;+m_normalStride = normalStride;+m_hasNormals = true;+}++virtual ~btDX11VertexBufferDescriptor()+{++}++/**+* Return the type of the vertex buffer descriptor.+*/+virtual BufferTypes getBufferType() const+{+return DX11_BUFFER;+}++virtual ID3D11DeviceContext* getContext() const+{+return m_context;+}++virtual ID3D11Buffer* getbtDX11Buffer() const+{+return m_vertexBuffer;+}++virtual ID3D11UnorderedAccessView* getDX11UAV() const+{+return m_vertexBufferUAV;+}+};+ #endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_DX11_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolverVertexData_DX11.h view
@@ -1,63 +1,63 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_DX11.h"
-
-
-#ifndef BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H
-#define BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H
-
-class btSoftBodyLinkData;
-class btSoftBodyLinkData::LinkDescription;
-
-struct ID3D11Device;
-struct ID3D11DeviceContext;
-
-class btSoftBodyVertexDataDX11 : public btSoftBodyVertexData
-{
-protected:
-	bool				m_onGPU;
-	ID3D11Device		*m_d3dDevice;
-	ID3D11DeviceContext *m_d3dDeviceContext;
-
-public:
-	btDX11Buffer<int>										m_dx11ClothIdentifier;
-	btDX11Buffer<Vectormath::Aos::Point3>					m_dx11VertexPosition;
-	btDX11Buffer<Vectormath::Aos::Point3>					m_dx11VertexPreviousPosition;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11VertexVelocity;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11VertexForceAccumulator;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11VertexNormal;
-	btDX11Buffer<float>									m_dx11VertexInverseMass;
-	btDX11Buffer<float>									m_dx11VertexArea;
-	btDX11Buffer<int>										m_dx11VertexTriangleCount;
-
-
-	//ID3D11Buffer*               readBackBuffer;
-
-public:
-	btSoftBodyVertexDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );
-	virtual ~btSoftBodyVertexDataDX11();
-
-	virtual bool onAccelerator();
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-};
-
-
-#endif // #ifndef BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_DX11.h"+++#ifndef BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H+#define BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H++class btSoftBodyLinkData;+class btSoftBodyLinkData::LinkDescription;++struct ID3D11Device;+struct ID3D11DeviceContext;++class btSoftBodyVertexDataDX11 : public btSoftBodyVertexData+{ private:+protected:+bool m_onGPU;+ID3D11Device *m_d3dDevice;+ID3D11DeviceContext *m_d3dDeviceContext;++public:+btDX11Buffer<int> m_dx11ClothIdentifier;+btDX11Buffer<Vectormath::Aos::Point3> m_dx11VertexPosition;+btDX11Buffer<Vectormath::Aos::Point3> m_dx11VertexPreviousPosition;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11VertexVelocity;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11VertexForceAccumulator;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11VertexNormal;+btDX11Buffer<float> m_dx11VertexInverseMass;+btDX11Buffer<float> m_dx11VertexArea;+btDX11Buffer<int> m_dx11VertexTriangleCount;+++//ID3D11Buffer* readBackBuffer;++public:+btSoftBodyVertexDataDX11( ID3D11Device *d3dDevice, ID3D11DeviceContext *d3dDeviceContext );+virtual ~btSoftBodyVertexDataDX11();++virtual bool onAccelerator();+virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();+};+++#endif // #ifndef BT_SOFT_BHODY_SOLVER_VERTEX_DATA_DX11_H+
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11.h view
@@ -1,679 +1,691 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H
-#define BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H
-
-
-#include "vectormath/vmInclude.h"
-#include "BulletSoftBody/btSoftBodySolvers.h"
-#include "btSoftBodySolverVertexBuffer_DX11.h"
-#include "btSoftBodySolverLinkData_DX11.h"
-#include "btSoftBodySolverVertexData_DX11.h"
-#include "btSoftBodySolverTriangleData_DX11.h"
-
-
-
-class DXFunctions
-{
-public:
-	
-	typedef HRESULT (WINAPI * CompileFromMemoryFunc)(LPCSTR,SIZE_T,LPCSTR,const D3D10_SHADER_MACRO*,LPD3D10INCLUDE,LPCSTR,LPCSTR,UINT,UINT,ID3DX11ThreadPump*,ID3D10Blob**,ID3D10Blob**,HRESULT*);
-
-	ID3D11Device *		 m_dx11Device;
-	ID3D11DeviceContext* m_dx11Context;
-	CompileFromMemoryFunc m_dx11CompileFromMemory;
-
-	DXFunctions(ID3D11Device *dx11Device, ID3D11DeviceContext* dx11Context, CompileFromMemoryFunc dx11CompileFromMemory) :
-		m_dx11Device( dx11Device ),
-		m_dx11Context( dx11Context ),
-		m_dx11CompileFromMemory( dx11CompileFromMemory )
-	{
-
-	}
-
-	class KernelDesc
-	{
-	protected:
-		
-
-	public:
-		ID3D11ComputeShader* kernel;
-		ID3D11Buffer* constBuffer;
-
-		KernelDesc()
-		{
-			kernel = 0;
-			constBuffer = 0;
-		}
-
-		virtual ~KernelDesc()
-		{
-			// TODO: this should probably destroy its kernel but we need to be careful
-			// in case KernelDescs are copied
-		}
-	}; 
-
-	/**
-	 * Compile a compute shader kernel from a string and return the appropriate KernelDesc object.
-	 */
-	KernelDesc compileComputeShaderFromString( const char* shaderString, const char* shaderName, int constBufferSize, D3D10_SHADER_MACRO *compileMacros = 0 );
-
-};
-
-class btDX11SoftBodySolver : public btSoftBodySolver
-{
-protected:
-	/**
-	 * Entry in the collision shape array.
-	 * Specifies the shape type, the transform matrix and the necessary details of the collisionShape.
-	 */
-	struct CollisionShapeDescription
-	{
-		Vectormath::Aos::Transform3 shapeTransform;
-		Vectormath::Aos::Vector3 linearVelocity;
-		Vectormath::Aos::Vector3 angularVelocity;
-
-		int softBodyIdentifier;
-		int collisionShapeType;
-	
-		// Both needed for capsule
-		float radius;
-		float halfHeight;
-		
-		float margin;
-		float friction;
-
-		CollisionShapeDescription()
-		{
-			collisionShapeType = 0;
-			margin = 0;
-			friction = 0;
-		}
-	};
-
-	struct UIntVector3
-	{
-		UIntVector3()
-		{
-			x = 0;
-			y = 0;
-			z = 0;
-			_padding = 0;
-		}
-		
-		UIntVector3( unsigned int x_, unsigned int y_, unsigned int z_ )
-		{
-			x = x_;
-			y = y_;
-			z = z_;
-			_padding = 0;
-		}
-			
-		unsigned int x;
-		unsigned int y;
-		unsigned int z;
-		unsigned int _padding;
-	};
-
-
-
-public:
-	/**
-	 * SoftBody class to maintain information about a soft body instance
-	 * within a solver.
-	 * This data addresses the main solver arrays.
-	 */
-	class btAcceleratedSoftBodyInterface
-	{
-	protected:
-		/** Current number of vertices that are part of this cloth */
-		int m_numVertices;
-		/** Maximum number of vertices allocated to be part of this cloth */
-		int m_maxVertices;
-		/** Current number of triangles that are part of this cloth */
-		int m_numTriangles;
-		/** Maximum number of triangles allocated to be part of this cloth */
-		int m_maxTriangles;
-		/** Index of first vertex in the world allocated to this cloth */
-		int m_firstVertex;
-		/** Index of first triangle in the world allocated to this cloth */
-		int m_firstTriangle;
-		/** Index of first link in the world allocated to this cloth */
-		int m_firstLink;
-		/** Maximum number of links allocated to this cloth */
-		int m_maxLinks;
-		/** Current number of links allocated to this cloth */
-		int m_numLinks;
-
-		/** The actual soft body this data represents */
-		btSoftBody *m_softBody;
-
-
-	public:
-		btAcceleratedSoftBodyInterface( btSoftBody *softBody ) :
-		  m_softBody( softBody )
-		{
-			m_numVertices = 0;
-			m_maxVertices = 0;
-			m_numTriangles = 0;
-			m_maxTriangles = 0;
-			m_firstVertex = 0;
-			m_firstTriangle = 0;
-			m_firstLink = 0;
-			m_maxLinks = 0;
-			m_numLinks = 0;
-		}
-		int getNumVertices() const
-		{
-			return m_numVertices;
-		}
-
-		int getNumTriangles() const
-		{
-			return m_numTriangles;
-		}
-
-		int getMaxVertices() const
-		{
-			return m_maxVertices;
-		}
-
-		int getMaxTriangles() const
-		{
-			return m_maxTriangles;
-		}
-
-		int getFirstVertex() const
-		{
-			return m_firstVertex;
-		}
-
-		int getFirstTriangle() const
-		{
-			return m_firstTriangle;
-		}
-
-
-		/**
-		 * Update the bounds in the btSoftBody object
-		 */
-		void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );
-
-		// TODO: All of these set functions will have to do checks and
-		// update the world because restructuring of the arrays will be necessary
-		// Reasonable use of "friend"?
-		void setNumVertices( int numVertices )
-		{
-			m_numVertices = numVertices;
-		}	
-	
-		void setNumTriangles( int numTriangles )
-		{
-			m_numTriangles = numTriangles;
-		}
-
-		void setMaxVertices( int maxVertices )
-		{
-			m_maxVertices = maxVertices;
-		}
-
-		void setMaxTriangles( int maxTriangles )
-		{
-			m_maxTriangles = maxTriangles;
-		}
-
-		void setFirstVertex( int firstVertex )
-		{
-			m_firstVertex = firstVertex;
-		}
-
-		void setFirstTriangle( int firstTriangle )
-		{
-			m_firstTriangle = firstTriangle;
-		}
-
-		void setMaxLinks( int maxLinks )
-		{
-			m_maxLinks = maxLinks;
-		}
-
-		void setNumLinks( int numLinks )
-		{
-			m_numLinks = numLinks;
-		}
-
-		void setFirstLink( int firstLink )
-		{
-			m_firstLink = firstLink;
-		}
-
-		int getMaxLinks()
-		{
-			return m_maxLinks;
-		}
-
-		int getNumLinks()
-		{
-			return m_numLinks;
-		}
-
-		int getFirstLink()
-		{
-			return m_firstLink;
-		}
-
-		btSoftBody* getSoftBody()
-		{
-			return m_softBody;
-		}
-
-	};
-
-	
-	struct CollisionObjectIndices
-	{
-		CollisionObjectIndices( int f, int e )
-		{
-			firstObject = f;
-			endObject = e;
-		}
-
-		int firstObject;
-		int endObject;
-	};
-
-
-
-
-
-	struct PrepareLinksCB
-	{		
-		int numLinks;
-		int padding0;
-		int padding1;
-		int padding2;
-	};
-
-	struct SolvePositionsFromLinksKernelCB
-	{		
-		int startLink;
-		int numLinks;
-		float kst;
-		float ti;
-	};
-
-	struct IntegrateCB
-	{
-		int numNodes;
-		float solverdt;
-		int padding1;
-		int padding2;
-	};
-
-	struct UpdatePositionsFromVelocitiesCB
-	{
-		int numNodes;
-		float solverSDT;
-		int padding1;
-		int padding2;
-	};
-
-	struct UpdateVelocitiesFromPositionsWithoutVelocitiesCB
-	{
-		int numNodes;
-		float isolverdt;
-		int padding1;
-		int padding2;
-	};
-
-	struct UpdateVelocitiesFromPositionsWithVelocitiesCB
-	{
-		int numNodes;
-		float isolverdt;
-		int padding1;
-		int padding2;
-	};
-
-	struct UpdateSoftBodiesCB
-	{
-		int numNodes;
-		int startFace;
-		int numFaces;
-		float epsilon;
-	};
-
-
-	struct ApplyForcesCB
-	{
-		unsigned int numNodes;
-		float solverdt;
-		float epsilon;
-		int padding3;
-	};
-
-	struct AddVelocityCB
-	{
-		int startNode;
-		int lastNode;
-		float velocityX;
-		float velocityY;
-		float velocityZ;
-		int padding1;
-		int padding2;
-		int padding3;
-	};
-
-	struct VSolveLinksCB
-	{
-		int startLink;
-		int numLinks;
-		float kst;
-		int padding;
-	};
-
-	struct ComputeBoundsCB
-	{
-		int numNodes;
-		int numSoftBodies;
-		int padding1;
-		int padding2;
-	};
-
-	struct SolveCollisionsAndUpdateVelocitiesCB
-	{
-		unsigned int numNodes;
-		float isolverdt;
-		int padding0;
-		int padding1;
-	};
-
-	
-
-
-protected:
-	ID3D11Device *		 m_dx11Device;
-	ID3D11DeviceContext* m_dx11Context;
-	
-	DXFunctions dxFunctions;
-public:
-	/** Link data for all cloths. Note that this will be sorted batch-wise for efficient computation and m_linkAddresses will maintain the addressing. */
-	btSoftBodyLinkDataDX11 m_linkData;
-	btSoftBodyVertexDataDX11 m_vertexData;
-	btSoftBodyTriangleDataDX11 m_triangleData;
-
-protected:
-
-	/** Variable to define whether we need to update solver constants on the next iteration */
-	bool m_updateSolverConstants;
-
-	bool m_shadersInitialized;
-
-	/** 
-	 * Cloths owned by this solver.
-	 * Only our cloths are in this array.
-	 */
-	btAlignedObjectArray< btAcceleratedSoftBodyInterface * > m_softBodySet;
-
-	/** Acceleration value to be applied to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_perClothAcceleration;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11PerClothAcceleration;
-
-	/** Wind velocity to be applied normal to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_perClothWindVelocity;
-	btDX11Buffer<Vectormath::Aos::Vector3>				m_dx11PerClothWindVelocity;
-
-	/** Velocity damping factor */
-	btAlignedObjectArray< float >						m_perClothDampingFactor;
-	btDX11Buffer<float>									m_dx11PerClothDampingFactor;
-
-	/** Velocity correction coefficient */
-	btAlignedObjectArray< float >						m_perClothVelocityCorrectionCoefficient;
-	btDX11Buffer<float>									m_dx11PerClothVelocityCorrectionCoefficient;
-
-	/** Lift parameter for wind effect on cloth. */
-	btAlignedObjectArray< float >						m_perClothLiftFactor;
-	btDX11Buffer<float>									m_dx11PerClothLiftFactor;
-	
-	/** Drag parameter for wind effect on cloth. */
-	btAlignedObjectArray< float >						m_perClothDragFactor;
-	btDX11Buffer<float>									m_dx11PerClothDragFactor;
-
-	/** Density of the medium in which each cloth sits */
-	btAlignedObjectArray< float >						m_perClothMediumDensity;
-	btDX11Buffer<float>									m_dx11PerClothMediumDensity;
-
-	
-	/** 
-	 * Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.
-	 */
-	btAlignedObjectArray< CollisionObjectIndices >		m_perClothCollisionObjects;
-	btDX11Buffer<CollisionObjectIndices>				m_dx11PerClothCollisionObjects;
-
-	/** 
-	 * Collision shapes being passed across to the cloths in this solver.
-	 */
-	btAlignedObjectArray< CollisionShapeDescription >	m_collisionObjectDetails;
-	btDX11Buffer< CollisionShapeDescription >			m_dx11CollisionObjectDetails;
-
-	/** 
-	 * Minimum bounds for each cloth.
-	 * Updated by GPU and returned for use by broad phase.
-	 * These are int vectors as a reminder that they store the int representation of a float, not a float.
-	 * Bit 31 is inverted - is floats are stored with int-sortable values.
-	 */
-	btAlignedObjectArray< UIntVector3 >	m_perClothMinBounds;
-	btDX11Buffer< UIntVector3 >			m_dx11PerClothMinBounds;
-
-	/** 
-	 * Maximum bounds for each cloth.
-	 * Updated by GPU and returned for use by broad phase.
-	 * These are int vectors as a reminder that they store the int representation of a float, not a float.
-	 * Bit 31 is inverted - is floats are stored with int-sortable values.
-	 */
-	btAlignedObjectArray< UIntVector3 >	m_perClothMaxBounds;
-	btDX11Buffer< UIntVector3 >			m_dx11PerClothMaxBounds;
-
-	
-	/** 
-	 * Friction coefficient for each cloth
-	 */
-	btAlignedObjectArray< float >	m_perClothFriction;
-	btDX11Buffer< float >			m_dx11PerClothFriction;
-
-	DXFunctions::KernelDesc		prepareLinksKernel;
-	DXFunctions::KernelDesc		solvePositionsFromLinksKernel;
-	DXFunctions::KernelDesc		vSolveLinksKernel;
-	DXFunctions::KernelDesc		integrateKernel;
-	DXFunctions::KernelDesc		addVelocityKernel;
-	DXFunctions::KernelDesc		updatePositionsFromVelocitiesKernel;
-	DXFunctions::KernelDesc		updateVelocitiesFromPositionsWithoutVelocitiesKernel;
-	DXFunctions::KernelDesc		updateVelocitiesFromPositionsWithVelocitiesKernel;
-	DXFunctions::KernelDesc		solveCollisionsAndUpdateVelocitiesKernel;
-	DXFunctions::KernelDesc		resetNormalsAndAreasKernel;
-	DXFunctions::KernelDesc		normalizeNormalsAndAreasKernel;
-	DXFunctions::KernelDesc		computeBoundsKernel;
-	DXFunctions::KernelDesc		updateSoftBodiesKernel;
-
-	DXFunctions::KernelDesc		applyForcesKernel;
-
-
-	/**
-	 * Integrate motion on the solver.
-	 */
-	virtual void integrate( float solverdt );
-	float computeTriangleArea( 
-		const Vectormath::Aos::Point3 &vertex0,
-		const Vectormath::Aos::Point3 &vertex1,
-		const Vectormath::Aos::Point3 &vertex2 );
-
-
-	virtual bool buildShaders();
-
-	void resetNormalsAndAreas( int numVertices );
-
-	void normalizeNormalsAndAreas( int numVertices );
-
-	void executeUpdateSoftBodies( int firstTriangle, int numTriangles );
-
-	void prepareCollisionConstraints();
-
-	Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );
-
-	void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );
-
-	virtual void applyForces( float solverdt );
-	
-	virtual void updateConstants( float timeStep );
-	int findSoftBodyIndex( const btSoftBody* const softBody );
-
-	//////////////////////////////////////
-	// Kernel dispatches
-	virtual void prepareLinks();
-
-	void updatePositionsFromVelocities( float solverdt );
-	void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );
-	void solveLinksForVelocity( int startLink, int numLinks, float kst );
-	
-	void updateVelocitiesFromPositionsWithVelocities( float isolverdt );
-	void updateVelocitiesFromPositionsWithoutVelocities( float isolverdt );
-	void computeBounds( );
-	void solveCollisionsAndUpdateVelocities( float isolverdt );
-
-	// End kernel dispatches
-	/////////////////////////////////////
-
-	void updateBounds();
-
-	
-	void releaseKernels();
-
-public:
-	btDX11SoftBodySolver(ID3D11Device * dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory);
-
-	virtual ~btDX11SoftBodySolver();
-	
-	
-	virtual SolverTypes getSolverType() const
-	{
-		return DX_SOLVER;
-	}
-
-
-	virtual btSoftBodyLinkData &getLinkData();
-
-	virtual btSoftBodyVertexData &getVertexData();
-
-	virtual btSoftBodyTriangleData &getTriangleData();
-
-
-
-	
-
-	btAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );
-	const btAcceleratedSoftBodyInterface * const findSoftBodyInterface( const btSoftBody* const softBody ) const;
-
-	virtual bool checkInitialized();
-
-	virtual void updateSoftBodies( );
-
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
-
-	virtual void copyBackToSoftBodies();
-
-	virtual void solveConstraints( float solverdt );
-
-	virtual void predictMotion( float solverdt );
-
-	
-	virtual void processCollision( btSoftBody *, btCollisionObject* );
-
-	virtual void processCollision( btSoftBody*, btSoftBody* );
-
-};
-
-
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is the DX to CPU version.
- */
-class btSoftBodySolverOutputDXtoCPU : public btSoftBodySolverOutput
-{
-protected:
-
-public:
-	btSoftBodySolverOutputDXtoCPU()
-	{
-	}
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );
-};
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is the DX to DX version and subclasses DX to CPU so that it works for that too.
- */
-class btSoftBodySolverOutputDXtoDX : public btSoftBodySolverOutputDXtoCPU
-{
-protected:
-	struct OutputToVertexArrayCB
-	{
-		int startNode;
-		int numNodes;
-		int positionOffset;
-		int positionStride;
-		
-		int normalOffset;	
-		int normalStride;
-		int padding1;
-		int padding2;
-	};
-	
-	DXFunctions dxFunctions;
-	DXFunctions::KernelDesc outputToVertexArrayWithNormalsKernel;
-	DXFunctions::KernelDesc outputToVertexArrayWithoutNormalsKernel;
-
-	
-	bool m_shadersInitialized;
-
-	bool checkInitialized();
-	bool buildShaders();
-	void releaseKernels();
-
-public:
-	btSoftBodySolverOutputDXtoDX(ID3D11Device *dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory) :
-	  dxFunctions( dx11Device, dx11Context, dx11CompileFromMemory )
-	{
-		m_shadersInitialized = false;
-	}
-
-	~btSoftBodySolverOutputDXtoDX()
-	{
-		releaseKernels();
-	}
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );
-};
-
-#endif // #ifndef BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H
-
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H+#define BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H+++#include "vectormath/vmInclude.h"+#include "BulletSoftBody/btSoftBodySolvers.h"+#include "btSoftBodySolverVertexBuffer_DX11.h"+#include "btSoftBodySolverLinkData_DX11.h"+#include "btSoftBodySolverVertexData_DX11.h"+#include "btSoftBodySolverTriangleData_DX11.h"++++class DXFunctions+{ private:+public:++typedef HRESULT (WINAPI * CompileFromMemoryFunc)(LPCSTR,SIZE_T,LPCSTR,const D3D10_SHADER_MACRO*,LPD3D10INCLUDE,LPCSTR,LPCSTR,UINT,UINT,ID3DX11ThreadPump*,ID3D10Blob**,ID3D10Blob**,HRESULT*);++ID3D11Device * m_dx11Device;+ID3D11DeviceContext* m_dx11Context;+CompileFromMemoryFunc m_dx11CompileFromMemory;++DXFunctions(ID3D11Device *dx11Device, ID3D11DeviceContext* dx11Context, CompileFromMemoryFunc dx11CompileFromMemory) :+m_dx11Device( dx11Device ),+m_dx11Context( dx11Context ),+m_dx11CompileFromMemory( dx11CompileFromMemory )+{++}++class KernelDesc+{ private:+protected:+++public:+ID3D11ComputeShader* kernel;+ID3D11Buffer* constBuffer;++KernelDesc()+{+kernel = 0;+constBuffer = 0;+}++virtual ~KernelDesc()+{+// TODO: this should probably destroy its kernel but we need to be careful+// in case KernelDescs are copied+}+};++/**+* Compile a compute shader kernel from a string and return the appropriate KernelDesc object.+*/+KernelDesc compileComputeShaderFromString( const char* shaderString, const char* shaderName, int constBufferSize, D3D10_SHADER_MACRO *compileMacros = 0 );++};++class btDX11SoftBodySolver : public btSoftBodySolver+{ private:+protected:+/**+* Entry in the collision shape array.+* Specifies the shape type, the transform matrix and the necessary details of the collisionShape.+*/+struct CollisionShapeDescription+{+Vectormath::Aos::Transform3 shapeTransform;+Vectormath::Aos::Vector3 linearVelocity;+Vectormath::Aos::Vector3 angularVelocity;++int softBodyIdentifier;+int collisionShapeType;++// Both needed for capsule+float radius;+float halfHeight;++float margin;+float friction;++CollisionShapeDescription()+{+collisionShapeType = 0;+margin = 0;+friction = 0;+}+};++struct UIntVector3+{+UIntVector3()+{+x = 0;+y = 0;+z = 0;+_padding = 0;+}++UIntVector3( unsigned int x_, unsigned int y_, unsigned int z_ )+{+x = x_;+y = y_;+z = z_;+_padding = 0;+}++unsigned int x;+unsigned int y;+unsigned int z;+unsigned int _padding;+};++++public:+/**+* SoftBody class to maintain information about a soft body instance+* within a solver.+* This data addresses the main solver arrays.+*/+class btAcceleratedSoftBodyInterface+{ private:+protected:+/** Current number of vertices that are part of this cloth */+int m_numVertices;+/** Maximum number of vertices allocated to be part of this cloth */+int m_maxVertices;+/** Current number of triangles that are part of this cloth */+int m_numTriangles;+/** Maximum number of triangles allocated to be part of this cloth */+int m_maxTriangles;+/** Index of first vertex in the world allocated to this cloth */+int m_firstVertex;+/** Index of first triangle in the world allocated to this cloth */+int m_firstTriangle;+/** Index of first link in the world allocated to this cloth */+int m_firstLink;+/** Maximum number of links allocated to this cloth */+int m_maxLinks;+/** Current number of links allocated to this cloth */+int m_numLinks;++/** The actual soft body this data represents */+btSoftBody *m_softBody;+++public:+btAcceleratedSoftBodyInterface( btSoftBody *softBody ) :+m_softBody( softBody )+{+m_numVertices = 0;+m_maxVertices = 0;+m_numTriangles = 0;+m_maxTriangles = 0;+m_firstVertex = 0;+m_firstTriangle = 0;+m_firstLink = 0;+m_maxLinks = 0;+m_numLinks = 0;+}+int getNumVertices() const+{+return m_numVertices;+}++int getNumTriangles() const+{+return m_numTriangles;+}++int getMaxVertices() const+{+return m_maxVertices;+}++int getMaxTriangles() const+{+return m_maxTriangles;+}++int getFirstVertex() const+{+return m_firstVertex;+}++int getFirstTriangle() const+{+return m_firstTriangle;+}+++/**+* Update the bounds in the btSoftBody object+*/+void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );+++// TODO: All of these set functions will have to do checks and+// update the world because restructuring of the arrays will be necessary+// Reasonable use of "friend"?+void setNumVertices( int numVertices )+{+m_numVertices = numVertices;+}++void setNumTriangles( int numTriangles )+{+m_numTriangles = numTriangles;+}++void setMaxVertices( int maxVertices )+{+m_maxVertices = maxVertices;+}++void setMaxTriangles( int maxTriangles )+{+m_maxTriangles = maxTriangles;+}++void setFirstVertex( int firstVertex )+{+m_firstVertex = firstVertex;+}++void setFirstTriangle( int firstTriangle )+{+m_firstTriangle = firstTriangle;+}++void setMaxLinks( int maxLinks )+{+m_maxLinks = maxLinks;+}++void setNumLinks( int numLinks )+{+m_numLinks = numLinks;+}++void setFirstLink( int firstLink )+{+m_firstLink = firstLink;+}++int getMaxLinks()+{+return m_maxLinks;+}++int getNumLinks()+{+return m_numLinks;+}++int getFirstLink()+{+return m_firstLink;+}++btSoftBody* getSoftBody()+{+return m_softBody;+}++};+++struct CollisionObjectIndices+{+CollisionObjectIndices( int f, int e )+{+firstObject = f;+endObject = e;+}++int firstObject;+int endObject;+};++++++struct PrepareLinksCB+{+int numLinks;+int padding0;+int padding1;+int padding2;+};++struct SolvePositionsFromLinksKernelCB+{+int startLink;+int numLinks;+float kst;+float ti;+};++struct IntegrateCB+{+int numNodes;+float solverdt;+int padding1;+int padding2;+};++struct UpdatePositionsFromVelocitiesCB+{+int numNodes;+float solverSDT;+int padding1;+int padding2;+};++struct UpdateVelocitiesFromPositionsWithoutVelocitiesCB+{+int numNodes;+float isolverdt;+int padding1;+int padding2;+};++struct UpdateVelocitiesFromPositionsWithVelocitiesCB+{+int numNodes;+float isolverdt;+int padding1;+int padding2;+};++struct UpdateSoftBodiesCB+{+int numNodes;+int startFace;+int numFaces;+float epsilon;+};+++struct ApplyForcesCB+{+unsigned int numNodes;+float solverdt;+float epsilon;+int padding3;+};++struct AddVelocityCB+{+int startNode;+int lastNode;+float velocityX;+float velocityY;+float velocityZ;+int padding1;+int padding2;+int padding3;+};++struct VSolveLinksCB+{+int startLink;+int numLinks;+float kst;+int padding;+};++struct ComputeBoundsCB+{+int numNodes;+int numSoftBodies;+int padding1;+int padding2;+};++struct SolveCollisionsAndUpdateVelocitiesCB+{+unsigned int numNodes;+float isolverdt;+int padding0;+int padding1;+};+++++protected:+ID3D11Device * m_dx11Device;+ID3D11DeviceContext* m_dx11Context;++DXFunctions dxFunctions;+public:+/** Link data for all cloths. Note that this will be sorted batch-wise for efficient computation and m_linkAddresses will maintain the addressing. */+btSoftBodyLinkDataDX11 m_linkData;+btSoftBodyVertexDataDX11 m_vertexData;+btSoftBodyTriangleDataDX11 m_triangleData;++protected:++/** Variable to define whether we need to update solver constants on the next iteration */+bool m_updateSolverConstants;++bool m_shadersInitialized;++/**+* Cloths owned by this solver.+* Only our cloths are in this array.+*/+btAlignedObjectArray< btAcceleratedSoftBodyInterface * > m_softBodySet;++/** Acceleration value to be applied to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothAcceleration;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11PerClothAcceleration;++/** Wind velocity to be applied normal to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothWindVelocity;+btDX11Buffer<Vectormath::Aos::Vector3> m_dx11PerClothWindVelocity;++/** Velocity damping factor */+btAlignedObjectArray< float > m_perClothDampingFactor;+btDX11Buffer<float> m_dx11PerClothDampingFactor;++/** Velocity correction coefficient */+btAlignedObjectArray< float > m_perClothVelocityCorrectionCoefficient;+btDX11Buffer<float> m_dx11PerClothVelocityCorrectionCoefficient;++/** Lift parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothLiftFactor;+btDX11Buffer<float> m_dx11PerClothLiftFactor;++/** Drag parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothDragFactor;+btDX11Buffer<float> m_dx11PerClothDragFactor;++/** Density of the medium in which each cloth sits */+btAlignedObjectArray< float > m_perClothMediumDensity;+btDX11Buffer<float> m_dx11PerClothMediumDensity;+++/**+* Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.+*/+btAlignedObjectArray< CollisionObjectIndices > m_perClothCollisionObjects;+btDX11Buffer<CollisionObjectIndices> m_dx11PerClothCollisionObjects;++/**+* Collision shapes being passed across to the cloths in this solver.+*/+btAlignedObjectArray< CollisionShapeDescription > m_collisionObjectDetails;+btDX11Buffer< CollisionShapeDescription > m_dx11CollisionObjectDetails;++/**+* Minimum bounds for each cloth.+* Updated by GPU and returned for use by broad phase.+* These are int vectors as a reminder that they store the int representation of a float, not a float.+* Bit 31 is inverted - is floats are stored with int-sortable values.+*/+btAlignedObjectArray< UIntVector3 > m_perClothMinBounds;+btDX11Buffer< UIntVector3 > m_dx11PerClothMinBounds;++/**+* Maximum bounds for each cloth.+* Updated by GPU and returned for use by broad phase.+* These are int vectors as a reminder that they store the int representation of a float, not a float.+* Bit 31 is inverted - is floats are stored with int-sortable values.+*/+btAlignedObjectArray< UIntVector3 > m_perClothMaxBounds;+btDX11Buffer< UIntVector3 > m_dx11PerClothMaxBounds;+++/**+* Friction coefficient for each cloth+*/+btAlignedObjectArray< float > m_perClothFriction;+btDX11Buffer< float > m_dx11PerClothFriction;++DXFunctions::KernelDesc prepareLinksKernel;+DXFunctions::KernelDesc solvePositionsFromLinksKernel;+DXFunctions::KernelDesc vSolveLinksKernel;+DXFunctions::KernelDesc integrateKernel;+DXFunctions::KernelDesc addVelocityKernel;+DXFunctions::KernelDesc updatePositionsFromVelocitiesKernel;+DXFunctions::KernelDesc updateVelocitiesFromPositionsWithoutVelocitiesKernel;+DXFunctions::KernelDesc updateVelocitiesFromPositionsWithVelocitiesKernel;+DXFunctions::KernelDesc solveCollisionsAndUpdateVelocitiesKernel;+DXFunctions::KernelDesc resetNormalsAndAreasKernel;+DXFunctions::KernelDesc normalizeNormalsAndAreasKernel;+DXFunctions::KernelDesc computeBoundsKernel;+DXFunctions::KernelDesc updateSoftBodiesKernel;++DXFunctions::KernelDesc applyForcesKernel;++bool m_enableUpdateBounds;++/**+* Integrate motion on the solver.+*/+virtual void integrate( float solverdt );+float computeTriangleArea(+const Vectormath::Aos::Point3 &vertex0,+const Vectormath::Aos::Point3 &vertex1,+const Vectormath::Aos::Point3 &vertex2 );+++virtual bool buildShaders();++void resetNormalsAndAreas( int numVertices );++void normalizeNormalsAndAreas( int numVertices );++void executeUpdateSoftBodies( int firstTriangle, int numTriangles );++void prepareCollisionConstraints();++Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );++void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );++virtual void applyForces( float solverdt );++virtual void updateConstants( float timeStep );+int findSoftBodyIndex( const btSoftBody* const softBody );++//////////////////////////////////////+// Kernel dispatches+virtual void prepareLinks();++void updatePositionsFromVelocities( float solverdt );+void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );+void solveLinksForVelocity( int startLink, int numLinks, float kst );++void updateVelocitiesFromPositionsWithVelocities( float isolverdt );+void updateVelocitiesFromPositionsWithoutVelocities( float isolverdt );+void computeBounds( );+void solveCollisionsAndUpdateVelocities( float isolverdt );++// End kernel dispatches+/////////////////////////////////////++void updateBounds();+++void releaseKernels();++public:+btDX11SoftBodySolver(ID3D11Device * dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory);++virtual ~btDX11SoftBodySolver();+++virtual SolverTypes getSolverType() const+{+return DX_SOLVER;+}++void setEnableUpdateBounds(bool enableBounds)+{+m_enableUpdateBounds = enableBounds;+}+bool getEnableUpdateBounds() const+{+return m_enableUpdateBounds;+}++++virtual btSoftBodyLinkData &getLinkData();++virtual btSoftBodyVertexData &getVertexData();++virtual btSoftBodyTriangleData &getTriangleData();++++++btAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );+const btAcceleratedSoftBodyInterface * const findSoftBodyInterface( const btSoftBody* const softBody ) const;++virtual bool checkInitialized();++virtual void updateSoftBodies( );++virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);++virtual void copyBackToSoftBodies();++virtual void solveConstraints( float solverdt );++virtual void predictMotion( float solverdt );+++virtual void processCollision( btSoftBody *, btCollisionObject* );++virtual void processCollision( btSoftBody*, btSoftBody* );++};++++/**+* Class to manage movement of data from a solver to a given target.+* This version is the DX to CPU version.+*/+class btSoftBodySolverOutputDXtoCPU : public btSoftBodySolverOutput+{ private:+protected:++public:+btSoftBodySolverOutputDXtoCPU()+{+}++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );+};++/**+* Class to manage movement of data from a solver to a given target.+* This version is the DX to DX version and subclasses DX to CPU so that it works for that too.+*/+class btSoftBodySolverOutputDXtoDX : public btSoftBodySolverOutputDXtoCPU+{ private:+protected:+struct OutputToVertexArrayCB+{+int startNode;+int numNodes;+int positionOffset;+int positionStride;++int normalOffset;+int normalStride;+int padding1;+int padding2;+};++DXFunctions dxFunctions;+DXFunctions::KernelDesc outputToVertexArrayWithNormalsKernel;+DXFunctions::KernelDesc outputToVertexArrayWithoutNormalsKernel;+++bool m_shadersInitialized;++bool checkInitialized();+bool buildShaders();+void releaseKernels();++public:+btSoftBodySolverOutputDXtoDX(ID3D11Device *dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory) :+dxFunctions( dx11Device, dx11Context, dx11CompileFromMemory )+{+m_shadersInitialized = false;+}++~btSoftBodySolverOutputDXtoDX()+{+releaseKernels();+}++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );+};++#endif // #ifndef BT_ACCELERATED_SOFT_BODY_DX11_SOLVER_H++
bullet/BulletMultiThreaded/GpuSoftBodySolvers/DX11/btSoftBodySolver_DX11SIMDAware.h view
@@ -1,81 +1,81 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "vectormath/vmInclude.h"
-#include "btSoftBodySolver_DX11.h"
-#include "btSoftBodySolverVertexBuffer_DX11.h"
-#include "btSoftBodySolverLinkData_DX11SIMDAware.h"
-#include "btSoftBodySolverVertexData_DX11.h"
-#include "btSoftBodySolverTriangleData_DX11.h"
-
-
-#ifndef BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H
-#define BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H
-
-class btDX11SIMDAwareSoftBodySolver : public btDX11SoftBodySolver
-{
-protected:
-	struct SolvePositionsFromLinksKernelCB
-	{		
-		int startWave;
-		int numWaves;
-		float kst;
-		float ti;
-	};
-
-
-	/** Link data for all cloths. Note that this will be sorted batch-wise for efficient computation and m_linkAddresses will maintain the addressing. */
-	btSoftBodyLinkDataDX11SIMDAware m_linkData;
-		
-	/** Variable to define whether we need to update solver constants on the next iteration */
-	bool m_updateSolverConstants;
-
-	
-	virtual bool buildShaders();
-
-	void updateConstants( float timeStep );
-
-
-	//////////////////////////////////////
-	// Kernel dispatches
-	
-
-	void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );
-
-	// End kernel dispatches
-	/////////////////////////////////////
-
-
-
-public:
-	btDX11SIMDAwareSoftBodySolver(ID3D11Device * dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory);
-
-	virtual ~btDX11SIMDAwareSoftBodySolver();
-
-	virtual btSoftBodyLinkData &getLinkData();
-
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
-
-	virtual void solveConstraints( float solverdt );
-	
-	virtual SolverTypes getSolverType() const
-	{
-		return DX_SIMD_SOLVER;
-	}
-	
-};
-
-#endif // #ifndef BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "vectormath/vmInclude.h"+#include "btSoftBodySolver_DX11.h"+#include "btSoftBodySolverVertexBuffer_DX11.h"+#include "btSoftBodySolverLinkData_DX11SIMDAware.h"+#include "btSoftBodySolverVertexData_DX11.h"+#include "btSoftBodySolverTriangleData_DX11.h"+++#ifndef BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H+#define BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H++class btDX11SIMDAwareSoftBodySolver : public btDX11SoftBodySolver+{ private:+protected:+struct SolvePositionsFromLinksKernelCB+{+int startWave;+int numWaves;+float kst;+float ti;+};+++/** Link data for all cloths. Note that this will be sorted batch-wise for efficient computation and m_linkAddresses will maintain the addressing. */+btSoftBodyLinkDataDX11SIMDAware m_linkData;++/** Variable to define whether we need to update solver constants on the next iteration */+bool m_updateSolverConstants;+++virtual bool buildShaders();++void updateConstants( float timeStep );+++//////////////////////////////////////+// Kernel dispatches+++void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );++// End kernel dispatches+/////////////////////////////////////++++public:+btDX11SIMDAwareSoftBodySolver(ID3D11Device * dx11Device, ID3D11DeviceContext* dx11Context, DXFunctions::CompileFromMemoryFunc dx11CompileFromMemory = &D3DX11CompileFromMemory);++virtual ~btDX11SIMDAwareSoftBodySolver();++virtual btSoftBodyLinkData &getLinkData();++virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);++virtual void solveConstraints( float solverdt );++virtual SolverTypes getSolverType() const+{+return DX_SIMD_SOLVER;+}++};++#endif // #ifndef BT_SOFT_BODY_DX11_SOLVER_SIMDAWARE_H+
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverBuffer_OpenCL.h view
@@ -1,209 +1,209 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_BUFFER_OPENCL_H
-#define BT_SOFT_BODY_SOLVER_BUFFER_OPENCL_H
-
-// OpenCL support
-
-#ifdef USE_MINICL
-	#include "MiniCL/cl.h"
-#else //USE_MINICL
-	#ifdef __APPLE__
-		#include <OpenCL/OpenCL.h>
-	#else
-		#include <CL/cl.h>
-	#endif //__APPLE__
-#endif//USE_MINICL
-
-#ifndef SAFE_RELEASE
-#define SAFE_RELEASE(p)      { if(p) { (p)->Release(); (p)=NULL; } }
-#endif
-
-template <typename ElementType> class btOpenCLBuffer
-{
-public:
-
-	cl_command_queue	m_cqCommandQue;
-	cl_context			m_clContext;
-	cl_mem				m_buffer;
-
-
-
-	btAlignedObjectArray< ElementType > * m_CPUBuffer;
-	
-	int  m_gpuSize;
-	bool m_onGPU;
-	bool m_readOnlyOnGPU;
-	bool m_allocated;
-
-
-	bool createBuffer( cl_mem* preexistingBuffer = 0)
-	{
-
-		cl_int err;
-		 
-
-		if( preexistingBuffer )
-		{
-			m_buffer = *preexistingBuffer;
-		} 
-		else {
-
-			cl_mem_flags flags= m_readOnlyOnGPU ? CL_MEM_READ_ONLY : CL_MEM_READ_WRITE;
-
-			size_t size = m_CPUBuffer->size() * sizeof(ElementType);
-			// At a minimum the buffer must exist
-			if( size == 0 )
-				size = sizeof(ElementType);
-			m_buffer = clCreateBuffer(m_clContext, flags, size, 0, &err);
-			if( err != CL_SUCCESS )
-			{
-				btAssert( "Buffer::Buffer(m_buffer)");
-			}
-		}
-
-		m_gpuSize = m_CPUBuffer->size();
-
-		return true;
-	}
-
-public:
-	btOpenCLBuffer( cl_command_queue	commandQue,cl_context ctx, btAlignedObjectArray< ElementType >* CPUBuffer, bool readOnly)
-		:m_cqCommandQue(commandQue),
-		m_clContext(ctx),
-		m_buffer(0),
-		m_CPUBuffer(CPUBuffer),
-		m_gpuSize(0),
-		m_onGPU(false),
-		m_readOnlyOnGPU(readOnly),
-		m_allocated(false)
-	{
-	}
-
-	~btOpenCLBuffer()
-	{
-		clReleaseMemObject(m_buffer);
-	}
-
-
-	bool moveToGPU()
-	{
-
-
-		cl_int err;
-
-		if( (m_CPUBuffer->size() != m_gpuSize) )
-		{
-			m_onGPU = false;
-		}
-
-		if( !m_allocated && m_CPUBuffer->size() == 0  )
-		{
-			// If it isn't on the GPU and yet there is no data on the CPU side this may cause a problem with some kernels.
-			// We should create *something* on the device side
-			if (!createBuffer()) {
-				return false;
-			}
-			m_allocated = true;
-		}
-
-		if( !m_onGPU && m_CPUBuffer->size() > 0 )
-		{
-			if (!m_allocated || (m_CPUBuffer->size() != m_gpuSize)) {
-				if (!createBuffer()) {
-					return false;
-				}
-				m_allocated = true;
-			}
-			
-			size_t size = m_CPUBuffer->size() * sizeof(ElementType);
-			err = clEnqueueWriteBuffer(m_cqCommandQue,m_buffer,
-				CL_FALSE,
-				0,
-				size, 
-				&((*m_CPUBuffer)[0]),0,0,0);
-			if( err != CL_SUCCESS )
-			{
-				btAssert( "CommandQueue::enqueueWriteBuffer(m_buffer)" );
-			}
-
-			m_onGPU = true;
-		}
-
-		return true;
-
-	}
-
-	bool moveFromGPU()
-	{
-
-		cl_int err;
-
-		if (m_CPUBuffer->size() > 0) {
-			if (m_onGPU && !m_readOnlyOnGPU) {
-				size_t size = m_CPUBuffer->size() * sizeof(ElementType);
-				err = clEnqueueReadBuffer(m_cqCommandQue,
-					m_buffer,
-					CL_TRUE,
-					0,
-					size,
-					&((*m_CPUBuffer)[0]),0,0,0);
-
-				if( err != CL_SUCCESS )
-				{
-					btAssert( "CommandQueue::enqueueReadBuffer(m_buffer)" );
-				}
-
-				m_onGPU = false;
-			}
-		}
-
-		return true;
-	}
-
-	bool copyFromGPU()
-	{
-
-		cl_int err;
-		size_t size = m_CPUBuffer->size() * sizeof(ElementType);
-
-		if (m_CPUBuffer->size() > 0) {
-			if (m_onGPU && !m_readOnlyOnGPU) {
-				err = clEnqueueReadBuffer(m_cqCommandQue,
-					m_buffer,
-					CL_TRUE,
-					0,size, 
-					&((*m_CPUBuffer)[0]),0,0,0);
-
-				if( err != CL_SUCCESS )
-				{
-					btAssert( "CommandQueue::enqueueReadBuffer(m_buffer)");
-				}
-
-			}
-		}
-
-		return true;
-	}
-
-	virtual void changedOnCPU()
-	{
-		m_onGPU = false;
-	}
-}; // class btOpenCLBuffer
-
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_BUFFER_OPENCL_H+#define BT_SOFT_BODY_SOLVER_BUFFER_OPENCL_H++// OpenCL support++#ifdef USE_MINICL+#include "MiniCL/cl.h"+#else //USE_MINICL+#ifdef __APPLE__+#include <OpenCL/OpenCL.h>+#else+#include <CL/cl.h>+#endif //__APPLE__+#endif//USE_MINICL++#ifndef SAFE_RELEASE+#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }+#endif++template <typename ElementType> class btOpenCLBuffer+{+public:++cl_command_queue m_cqCommandQue;+cl_context m_clContext;+cl_mem m_buffer;++++btAlignedObjectArray< ElementType > * m_CPUBuffer;++int m_gpuSize;+bool m_onGPU;+bool m_readOnlyOnGPU;+bool m_allocated;+++bool createBuffer( cl_mem* preexistingBuffer = 0)+{++cl_int err;+++if( preexistingBuffer )+{+m_buffer = *preexistingBuffer;+}+else {++cl_mem_flags flags= m_readOnlyOnGPU ? CL_MEM_READ_ONLY : CL_MEM_READ_WRITE;++size_t size = m_CPUBuffer->size() * sizeof(ElementType);+// At a minimum the buffer must exist+if( size == 0 )+size = sizeof(ElementType);+m_buffer = clCreateBuffer(m_clContext, flags, size, 0, &err);+if( err != CL_SUCCESS )+{+btAssert( "Buffer::Buffer(m_buffer)");+}+}++m_gpuSize = m_CPUBuffer->size();++return true;+}++public:+btOpenCLBuffer( cl_command_queue commandQue,cl_context ctx, btAlignedObjectArray< ElementType >* CPUBuffer, bool readOnly)+:m_cqCommandQue(commandQue),+m_clContext(ctx),+m_buffer(0),+m_CPUBuffer(CPUBuffer),+m_gpuSize(0),+m_onGPU(false),+m_readOnlyOnGPU(readOnly),+m_allocated(false)+{+}++~btOpenCLBuffer()+{+clReleaseMemObject(m_buffer);+}+++bool moveToGPU()+{+++cl_int err;++if( (m_CPUBuffer->size() != m_gpuSize) )+{+m_onGPU = false;+}++if( !m_allocated && m_CPUBuffer->size() == 0 )+{+// If it isn't on the GPU and yet there is no data on the CPU side this may cause a problem with some kernels.+// We should create *something* on the device side+if (!createBuffer()) {+return false;+}+m_allocated = true;+}++if( !m_onGPU && m_CPUBuffer->size() > 0 )+{+if (!m_allocated || (m_CPUBuffer->size() != m_gpuSize)) {+if (!createBuffer()) {+return false;+}+m_allocated = true;+}++size_t size = m_CPUBuffer->size() * sizeof(ElementType);+err = clEnqueueWriteBuffer(m_cqCommandQue,m_buffer,+CL_FALSE,+0,+size,+&((*m_CPUBuffer)[0]),0,0,0);+if( err != CL_SUCCESS )+{+btAssert( "CommandQueue::enqueueWriteBuffer(m_buffer)" );+}++m_onGPU = true;+}++return true;++}++bool moveFromGPU()+{++cl_int err;++if (m_CPUBuffer->size() > 0) {+if (m_onGPU && !m_readOnlyOnGPU) {+size_t size = m_CPUBuffer->size() * sizeof(ElementType);+err = clEnqueueReadBuffer(m_cqCommandQue,+m_buffer,+CL_TRUE,+0,+size,+&((*m_CPUBuffer)[0]),0,0,0);++if( err != CL_SUCCESS )+{+btAssert( "CommandQueue::enqueueReadBuffer(m_buffer)" );+}++m_onGPU = false;+}+}++return true;+}++bool copyFromGPU()+{++cl_int err;+size_t size = m_CPUBuffer->size() * sizeof(ElementType);++if (m_CPUBuffer->size() > 0) {+if (m_onGPU && !m_readOnlyOnGPU) {+err = clEnqueueReadBuffer(m_cqCommandQue,+m_buffer,+CL_TRUE,+0,size,+&((*m_CPUBuffer)[0]),0,0,0);++if( err != CL_SUCCESS )+{+btAssert( "CommandQueue::enqueueReadBuffer(m_buffer)");+}++}+}++return true;+}++virtual void changedOnCPU()+{+m_onGPU = false;+}+}; // class btOpenCLBuffer++ #endif // #ifndef BT_SOFT_BODY_SOLVER_BUFFER_OPENCL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCL.h view
@@ -1,99 +1,99 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-
-
-#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H
-#define BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H
-
-
-class btSoftBodyLinkDataOpenCL : public btSoftBodyLinkData
-{
-public:
-	bool				m_onGPU;
-
-	cl_command_queue	m_cqCommandQue;
-
-
-	btOpenCLBuffer<LinkNodePair> m_clLinks;
-	btOpenCLBuffer<float>							      m_clLinkStrength;
-	btOpenCLBuffer<float>								  m_clLinksMassLSC;
-	btOpenCLBuffer<float>								  m_clLinksRestLengthSquared;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>			  m_clLinksCLength;
-	btOpenCLBuffer<float>								  m_clLinksLengthRatio;
-	btOpenCLBuffer<float>								  m_clLinksRestLength;
-	btOpenCLBuffer<float>								  m_clLinksMaterialLinearStiffnessCoefficient;
-
-	struct BatchPair
-	{
-		int start;
-		int length;
-
-		BatchPair() :
-			start(0),
-			length(0)
-		{
-		}
-
-		BatchPair( int s, int l ) : 
-			start( s ),
-			length( l )
-		{
-		}
-	};
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_linkAddresses;
-
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	btAlignedObjectArray< BatchPair >		m_batchStartLengths;
-
-	btSoftBodyLinkDataOpenCL(cl_command_queue queue, cl_context ctx);
-
-	virtual ~btSoftBodyLinkDataOpenCL();
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createLinks( int numLinks );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setLinkAt( 
-		const LinkDescription &link, 
-		int linkIndex );
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-
-	/**
-	 * Generate (and later update) the batching for the entire link set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-};
-
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_OpenCL.h"+++#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H+#define BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H+++class btSoftBodyLinkDataOpenCL : public btSoftBodyLinkData+{ private:+public:+bool m_onGPU;++cl_command_queue m_cqCommandQue;+++btOpenCLBuffer<LinkNodePair> m_clLinks;+btOpenCLBuffer<float> m_clLinkStrength;+btOpenCLBuffer<float> m_clLinksMassLSC;+btOpenCLBuffer<float> m_clLinksRestLengthSquared;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clLinksCLength;+btOpenCLBuffer<float> m_clLinksLengthRatio;+btOpenCLBuffer<float> m_clLinksRestLength;+btOpenCLBuffer<float> m_clLinksMaterialLinearStiffnessCoefficient;++struct BatchPair+{+int start;+int length;++BatchPair() :+start(0),+length(0)+{+}++BatchPair( int s, int l ) :+start( s ),+length( l )+{+}+};++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_linkAddresses;++/**+* Start and length values for computation batches over link data.+*/+btAlignedObjectArray< BatchPair > m_batchStartLengths;++btSoftBodyLinkDataOpenCL(cl_command_queue queue, cl_context ctx);++virtual ~btSoftBodyLinkDataOpenCL();++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createLinks( int numLinks );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setLinkAt(+const LinkDescription &link,+int linkIndex );++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();++/**+* Generate (and later update) the batching for the entire link set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();+};++++#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverLinkData_OpenCLSIMDAware.h view
@@ -1,169 +1,169 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-
-
-#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H
-#define BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H
-
-
-class btSoftBodyLinkDataOpenCLSIMDAware : public btSoftBodyLinkData
-{
-public:
-	bool				m_onGPU;
-
-	cl_command_queue	m_cqCommandQue;
-
-	const int m_wavefrontSize;
-	const int m_linksPerWorkItem;
-	const int m_maxLinksPerWavefront;
-	int m_maxBatchesWithinWave;
-	int m_maxVerticesWithinWave;
-	int m_numWavefronts;
-
-	int m_maxVertex;
-
-	struct NumBatchesVerticesPair
-	{
-		int numBatches;
-		int numVertices;
-	};
-
-	btAlignedObjectArray<int>							  m_linksPerWavefront;
-	btAlignedObjectArray<NumBatchesVerticesPair>		  m_numBatchesAndVerticesWithinWaves;
-	btOpenCLBuffer< NumBatchesVerticesPair >			  m_clNumBatchesAndVerticesWithinWaves;
-
-	// All arrays here will contain batches of m_maxLinksPerWavefront links
-	// ordered by wavefront.
-	// with either global vertex pairs or local vertex pairs
-	btAlignedObjectArray< int >							  m_wavefrontVerticesGlobalAddresses; // List of global vertices per wavefront
-	btOpenCLBuffer<int>									  m_clWavefrontVerticesGlobalAddresses;
-	btAlignedObjectArray< LinkNodePair >				  m_linkVerticesLocalAddresses; // Vertex pair for the link
-	btOpenCLBuffer<LinkNodePair>						  m_clLinkVerticesLocalAddresses;
-	btOpenCLBuffer<float>							      m_clLinkStrength;
-	btOpenCLBuffer<float>								  m_clLinksMassLSC;
-	btOpenCLBuffer<float>								  m_clLinksRestLengthSquared;
-	btOpenCLBuffer<float>								  m_clLinksRestLength;
-	btOpenCLBuffer<float>								  m_clLinksMaterialLinearStiffnessCoefficient;
-
-	struct BatchPair
-	{
-		int start;
-		int length;
-
-		BatchPair() :
-			start(0),
-			length(0)
-		{
-		}
-
-		BatchPair( int s, int l ) : 
-			start( s ),
-			length( l )
-		{
-		}
-	};
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_linkAddresses;
-	
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	btAlignedObjectArray< BatchPair >		m_wavefrontBatchStartLengths;
-
-	btSoftBodyLinkDataOpenCLSIMDAware(cl_command_queue queue, cl_context ctx);
-
-	virtual ~btSoftBodyLinkDataOpenCLSIMDAware();
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createLinks( int numLinks );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setLinkAt( 
-		const LinkDescription &link, 
-		int linkIndex );
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-
-	/**
-	 * Generate (and later update) the batching for the entire link set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-
-	int getMaxVerticesPerWavefront()
-	{
-		return m_maxVerticesWithinWave;
-	}
-
-	int getWavefrontSize()
-	{
-		return m_wavefrontSize;
-	}
-
-	int getLinksPerWorkItem()
-	{
-		return m_linksPerWorkItem;
-	}
-
-	int getMaxLinksPerWavefront()
-	{
-		return m_maxLinksPerWavefront;
-	}
-
-	int getMaxBatchesPerWavefront()
-	{
-		return m_maxBatchesWithinWave;
-	}
-
-	int getNumWavefronts()
-	{
-		return m_numWavefronts;
-	}
-
-	NumBatchesVerticesPair getNumBatchesAndVerticesWithinWavefront( int wavefront )
-	{
-		return m_numBatchesAndVerticesWithinWaves[wavefront];
-	}
-
-	int getVertexGlobalAddresses( int vertexIndex )
-	{
-		return m_wavefrontVerticesGlobalAddresses[vertexIndex];
-	}
-
-	/**
-	 * Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.
-	 */
-	LinkNodePair getVertexPairLocalAddresses( int linkIndex )
-	{
-		return m_linkVerticesLocalAddresses[linkIndex];
-	}
-};
-
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_OpenCL.h"+++#ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H+#define BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H+++class btSoftBodyLinkDataOpenCLSIMDAware : public btSoftBodyLinkData+{ private:+public:+bool m_onGPU;++cl_command_queue m_cqCommandQue;++const int m_wavefrontSize;+const int m_linksPerWorkItem;+const int m_maxLinksPerWavefront;+int m_maxBatchesWithinWave;+int m_maxVerticesWithinWave;+int m_numWavefronts;++int m_maxVertex;++struct NumBatchesVerticesPair+{+int numBatches;+int numVertices;+};++btAlignedObjectArray<int> m_linksPerWavefront;+btAlignedObjectArray<NumBatchesVerticesPair> m_numBatchesAndVerticesWithinWaves;+btOpenCLBuffer< NumBatchesVerticesPair > m_clNumBatchesAndVerticesWithinWaves;++// All arrays here will contain batches of m_maxLinksPerWavefront links+// ordered by wavefront.+// with either global vertex pairs or local vertex pairs+btAlignedObjectArray< int > m_wavefrontVerticesGlobalAddresses; // List of global vertices per wavefront+btOpenCLBuffer<int> m_clWavefrontVerticesGlobalAddresses;+btAlignedObjectArray< LinkNodePair > m_linkVerticesLocalAddresses; // Vertex pair for the link+btOpenCLBuffer<LinkNodePair> m_clLinkVerticesLocalAddresses;+btOpenCLBuffer<float> m_clLinkStrength;+btOpenCLBuffer<float> m_clLinksMassLSC;+btOpenCLBuffer<float> m_clLinksRestLengthSquared;+btOpenCLBuffer<float> m_clLinksRestLength;+btOpenCLBuffer<float> m_clLinksMaterialLinearStiffnessCoefficient;++struct BatchPair+{+int start;+int length;++BatchPair() :+start(0),+length(0)+{+}++BatchPair( int s, int l ) :+start( s ),+length( l )+{+}+};++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_linkAddresses;++/**+* Start and length values for computation batches over link data.+*/+btAlignedObjectArray< BatchPair > m_wavefrontBatchStartLengths;++btSoftBodyLinkDataOpenCLSIMDAware(cl_command_queue queue, cl_context ctx);++virtual ~btSoftBodyLinkDataOpenCLSIMDAware();++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createLinks( int numLinks );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setLinkAt(+const LinkDescription &link,+int linkIndex );++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();++/**+* Generate (and later update) the batching for the entire link set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();++int getMaxVerticesPerWavefront()+{+return m_maxVerticesWithinWave;+}++int getWavefrontSize()+{+return m_wavefrontSize;+}++int getLinksPerWorkItem()+{+return m_linksPerWorkItem;+}++int getMaxLinksPerWavefront()+{+return m_maxLinksPerWavefront;+}++int getMaxBatchesPerWavefront()+{+return m_maxBatchesWithinWave;+}++int getNumWavefronts()+{+return m_numWavefronts;+}++NumBatchesVerticesPair getNumBatchesAndVerticesWithinWavefront( int wavefront )+{+return m_numBatchesAndVerticesWithinWaves[wavefront];+}++int getVertexGlobalAddresses( int vertexIndex )+{+return m_wavefrontVerticesGlobalAddresses[vertexIndex];+}++/**+* Get post-batching local addresses of the vertex pair for a link assuming all vertices used by a wavefront are loaded locally.+*/+LinkNodePair getVertexPairLocalAddresses( int linkIndex )+{+return m_linkVerticesLocalAddresses[linkIndex];+}+};++++#endif // #ifndef BT_SOFT_BODY_SOLVER_LINK_DATA_OPENCL_SIMDAWARE_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverOutputCLtoGL.h view
@@ -1,62 +1,62 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_OUTPUT_CL_TO_GL_H
-#define BT_SOFT_BODY_SOLVER_OUTPUT_CL_TO_GL_H
-
-#include "btSoftBodySolver_OpenCL.h"
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is the CL to GL interop version.
- */
-class btSoftBodySolverOutputCLtoGL : public btSoftBodySolverOutput
-{
-protected:
-	cl_command_queue	m_cqCommandQue;
-	cl_context			m_cxMainContext;
-	CLFunctions			clFunctions;
-	
-	cl_kernel		outputToVertexArrayWithNormalsKernel;
-	cl_kernel		outputToVertexArrayWithoutNormalsKernel;
-
-	bool m_shadersInitialized;
-	
-	virtual bool checkInitialized();	
-	virtual bool buildShaders();
-	void releaseKernels();
-public:
-	btSoftBodySolverOutputCLtoGL(cl_command_queue cqCommandQue, cl_context cxMainContext) :
-		m_cqCommandQue( cqCommandQue ),
-		m_cxMainContext( cxMainContext ),
-		clFunctions(cqCommandQue, cxMainContext),
-		outputToVertexArrayWithNormalsKernel( 0 ),
-		outputToVertexArrayWithoutNormalsKernel( 0 ),
-		m_shadersInitialized( false )
-	{
-	}
-
-	virtual ~btSoftBodySolverOutputCLtoGL()
-	{
-		releaseKernels();
-	}
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );
-};
-
-
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_OUTPUT_CL_TO_GL_H+#define BT_SOFT_BODY_SOLVER_OUTPUT_CL_TO_GL_H++#include "btSoftBodySolver_OpenCL.h"++/**+* Class to manage movement of data from a solver to a given target.+* This version is the CL to GL interop version.+*/+class btSoftBodySolverOutputCLtoGL : public btSoftBodySolverOutput+{ private:+protected:+cl_command_queue m_cqCommandQue;+cl_context m_cxMainContext;+CLFunctions clFunctions;++cl_kernel outputToVertexArrayWithNormalsKernel;+cl_kernel outputToVertexArrayWithoutNormalsKernel;++bool m_shadersInitialized;++virtual bool checkInitialized();+virtual bool buildShaders();+void releaseKernels();+public:+btSoftBodySolverOutputCLtoGL(cl_command_queue cqCommandQue, cl_context cxMainContext) :+m_cqCommandQue( cqCommandQue ),+m_cxMainContext( cxMainContext ),+clFunctions(cqCommandQue, cxMainContext),+outputToVertexArrayWithNormalsKernel( 0 ),+outputToVertexArrayWithoutNormalsKernel( 0 ),+m_shadersInitialized( false )+{+}++virtual ~btSoftBodySolverOutputCLtoGL()+{+releaseKernels();+}++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );+};+++ #endif // #ifndef BT_SOFT_BODY_SOLVER_OUTPUT_CL_TO_GL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverTriangleData_OpenCL.h view
@@ -1,84 +1,84 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-
-
-#ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H
-#define BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H
-
-
-class btSoftBodyTriangleDataOpenCL : public btSoftBodyTriangleData
-{
-public:
-	bool				m_onGPU;
-	cl_command_queue    m_queue;
-
-	btOpenCLBuffer<btSoftBodyTriangleData::TriangleNodeSet>					m_clVertexIndices;
-	btOpenCLBuffer<float>								m_clArea;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>			m_clNormal;
-
-	/**
-	 * Link addressing information for each cloth.
-	 * Allows link locations to be computed independently of data batching.
-	 */
-	btAlignedObjectArray< int >							m_triangleAddresses;
-
-	/**
-	 * Start and length values for computation batches over link data.
-	 */
-	struct btSomePair
-	{
-		btSomePair() {}
-		btSomePair(int f,int s)
-			:first(f),second(s)
-		{
-		}
-		int first;
-		int second;
-	};
-	btAlignedObjectArray< btSomePair >		m_batchStartLengths;
-
-public:
-	btSoftBodyTriangleDataOpenCL( cl_command_queue queue, cl_context ctx );
-
-	virtual ~btSoftBodyTriangleDataOpenCL();
-
-	/** Allocate enough space in all link-related arrays to fit numLinks links */
-	virtual void createTriangles( int numTriangles );
-	
-	/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */
-	virtual void setTriangleAt( const btSoftBodyTriangleData::TriangleDescription &triangle, int triangleIndex );
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-
-	/**
-	 * Generate (and later update) the batching for the entire triangle set.
-	 * This redoes a lot of work because it batches the entire set when each cloth is inserted.
-	 * In theory we could delay it until just before we need the cloth.
-	 * It's a one-off overhead, though, so that is a later optimisation.
-	 */
-	void generateBatches();
-}; // class btSoftBodyTriangleDataOpenCL
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_OpenCL.h"+++#ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H+#define BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H+++class btSoftBodyTriangleDataOpenCL : public btSoftBodyTriangleData+{ private:+public:+bool m_onGPU;+cl_command_queue m_queue;++btOpenCLBuffer<btSoftBodyTriangleData::TriangleNodeSet> m_clVertexIndices;+btOpenCLBuffer<float> m_clArea;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clNormal;++/**+* Link addressing information for each cloth.+* Allows link locations to be computed independently of data batching.+*/+btAlignedObjectArray< int > m_triangleAddresses;++/**+* Start and length values for computation batches over link data.+*/+struct btSomePair+{+btSomePair() {}+btSomePair(int f,int s)+:first(f),second(s)+{+}+int first;+int second;+};+btAlignedObjectArray< btSomePair > m_batchStartLengths;++public:+btSoftBodyTriangleDataOpenCL( cl_command_queue queue, cl_context ctx );++virtual ~btSoftBodyTriangleDataOpenCL();++/** Allocate enough space in all link-related arrays to fit numLinks links */+virtual void createTriangles( int numTriangles );++/** Insert the link described into the correct data structures assuming space has already been allocated by a call to createLinks */+virtual void setTriangleAt( const btSoftBodyTriangleData::TriangleDescription &triangle, int triangleIndex );++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();++/**+* Generate (and later update) the batching for the entire triangle set.+* This redoes a lot of work because it batches the entire set when each cloth is inserted.+* In theory we could delay it until just before we need the cloth.+* It's a one-off overhead, though, so that is a later optimisation.+*/+void generateBatches();+}; // class btSoftBodyTriangleDataOpenCL+++#endif // #ifndef BT_SOFT_BODY_SOLVER_TRIANGLE_DATA_OPENCL_H+
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexBuffer_OpenGL.h view
@@ -1,166 +1,166 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H
-#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H 
-
-
-#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"
-#ifdef USE_MINICL
-	#include "MiniCL/cl.h"
-#else //USE_MINICL
-	#ifdef __APPLE__
-		#include <OpenCL/OpenCL.h>
-	#else
-		#include <CL/cl.h>
-		#include <CL/cl_gl.h>
-	#endif //__APPLE__
-#endif//USE_MINICL
-
-
-#ifdef _WIN32//for glut.h
-#include <windows.h>
-#endif
-
-//think different
-#if defined(__APPLE__) && !defined (VMDMESA)
-#include <OpenGL/OpenGL.h>
-#include <OpenGL/gl.h>
-#include <OpenGL/glu.h>
-#include <GLUT/glut.h>
-#else
-
-
-#ifdef _WINDOWS
-#include <windows.h>
-#include <GL/gl.h>
-#include <GL/glu.h>
-#else
-#include <GL/glut.h>
-#endif //_WINDOWS
-#endif //APPLE
-
-
-
-class btOpenGLInteropVertexBufferDescriptor : public btVertexBufferDescriptor
-{
-protected:
-	/** OpenCL context */
-	cl_context			m_context;
-
-	/** OpenCL command queue */
-	cl_command_queue	m_commandQueue;
-	
-	/** OpenCL interop buffer */
-	cl_mem m_buffer;
-
-	/** VBO in GL that is the basis of the interop buffer */
-	GLuint m_openGLVBO;
-
-
-public:
-	/**
-	 * context is the OpenCL context this interop buffer will work in.
-	 * queue is the command queue that kernels and data movement will be enqueued into.
-	 * openGLVBO is the OpenGL vertex buffer data will be copied into.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 */
-	btOpenGLInteropVertexBufferDescriptor( cl_command_queue cqCommandQue, cl_context context, GLuint openGLVBO, int vertexOffset, int vertexStride )
-	{
-#ifndef USE_MINICL
-		cl_int ciErrNum = CL_SUCCESS;
-		m_context = context;
-		m_commandQueue = cqCommandQue;
-		
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-
-		m_openGLVBO = openGLVBO;
-		
-		m_buffer = clCreateFromGLBuffer(m_context, CL_MEM_WRITE_ONLY, openGLVBO, &ciErrNum);
-		if( ciErrNum != CL_SUCCESS )
-		{
-			btAssert( 0 &&  "clEnqueueAcquireGLObjects(copySoftBodyToVertexBuffer)");
-		}
-
-		m_hasVertexPositions = true;
-#else
-		btAssert(0);//MiniCL shouldn't get here
-#endif
-	}
-
-	/**
-	 * context is the OpenCL context this interop buffer will work in.
-	 * queue is the command queue that kernels and data movement will be enqueued into.
-	 * openGLVBO is the OpenGL vertex buffer data will be copied into.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 * normalOffset is the offset in floats to the first normal.
-	 * normalStride is the stride in floats between normals.
-	 */
-	btOpenGLInteropVertexBufferDescriptor( cl_command_queue cqCommandQue, cl_context context, GLuint openGLVBO, int vertexOffset, int vertexStride, int normalOffset, int normalStride )
-	{
-#ifndef USE_MINICL
-		cl_int ciErrNum = CL_SUCCESS;
-		m_context = context;
-		m_commandQueue = cqCommandQue;
-		
-		m_openGLVBO = openGLVBO;
-		
-		m_buffer = clCreateFromGLBuffer(m_context, CL_MEM_WRITE_ONLY, openGLVBO, &ciErrNum);
-		if( ciErrNum != CL_SUCCESS )
-		{
-			btAssert( 0 &&  "clEnqueueAcquireGLObjects(copySoftBodyToVertexBuffer)");
-		}
-
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-		m_hasVertexPositions = true;
-
-		m_normalOffset = normalOffset;
-		m_normalStride = normalStride;
-		m_hasNormals = true;
-#else
-		btAssert(0);
-#endif //USE_MINICL
-		
-	}
-
-	virtual ~btOpenGLInteropVertexBufferDescriptor()
-	{
-		clReleaseMemObject( m_buffer );
-	}
-
-	/**
-	 * Return the type of the vertex buffer descriptor.
-	 */
-	virtual BufferTypes getBufferType() const
-	{
-		return OPENGL_BUFFER;
-	}
-
-	virtual cl_context getContext() const
-	{
-		return m_context;
-	}
-
-	virtual cl_mem getBuffer() const
-	{
-		return m_buffer;
-	}	
-};
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H+#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H+++#include "BulletSoftBody/btSoftBodySolverVertexBuffer.h"+#ifdef USE_MINICL+#include "MiniCL/cl.h"+#else //USE_MINICL+#ifdef __APPLE__+#include <OpenCL/OpenCL.h>+#else+#include <CL/cl.h>+#include <CL/cl_gl.h>+#endif //__APPLE__+#endif//USE_MINICL+++#ifdef _WIN32//for glut.h+#include <windows.h>+#endif++//think different+#if defined(__APPLE__) && !defined (VMDMESA)+#include <OpenGL/OpenGL.h>+#include <OpenGL/gl.h>+#include <OpenGL/glu.h>+#include <GLUT/glut.h>+#else+++#ifdef _WINDOWS+#include <windows.h>+#include <GL/gl.h>+#include <GL/glu.h>+#else+#include <GL/glut.h>+#endif //_WINDOWS+#endif //APPLE++++class btOpenGLInteropVertexBufferDescriptor : public btVertexBufferDescriptor+{ private:+protected:+/** OpenCL context */+cl_context m_context;++/** OpenCL command queue */+cl_command_queue m_commandQueue;++/** OpenCL interop buffer */+cl_mem m_buffer;++/** VBO in GL that is the basis of the interop buffer */+GLuint m_openGLVBO;+++public:+/**+* context is the OpenCL context this interop buffer will work in.+* queue is the command queue that kernels and data movement will be enqueued into.+* openGLVBO is the OpenGL vertex buffer data will be copied into.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+*/+btOpenGLInteropVertexBufferDescriptor( cl_command_queue cqCommandQue, cl_context context, GLuint openGLVBO, int vertexOffset, int vertexStride )+{+#ifndef USE_MINICL+cl_int ciErrNum = CL_SUCCESS;+m_context = context;+m_commandQueue = cqCommandQue;++m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;++m_openGLVBO = openGLVBO;++m_buffer = clCreateFromGLBuffer(m_context, CL_MEM_WRITE_ONLY, openGLVBO, &ciErrNum);+if( ciErrNum != CL_SUCCESS )+{+btAssert( 0 && "clEnqueueAcquireGLObjects(copySoftBodyToVertexBuffer)");+}++m_hasVertexPositions = true;+#else+btAssert(0);//MiniCL shouldn't get here+#endif+}++/**+* context is the OpenCL context this interop buffer will work in.+* queue is the command queue that kernels and data movement will be enqueued into.+* openGLVBO is the OpenGL vertex buffer data will be copied into.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+* normalOffset is the offset in floats to the first normal.+* normalStride is the stride in floats between normals.+*/+btOpenGLInteropVertexBufferDescriptor( cl_command_queue cqCommandQue, cl_context context, GLuint openGLVBO, int vertexOffset, int vertexStride, int normalOffset, int normalStride )+{+#ifndef USE_MINICL+cl_int ciErrNum = CL_SUCCESS;+m_context = context;+m_commandQueue = cqCommandQue;++m_openGLVBO = openGLVBO;++m_buffer = clCreateFromGLBuffer(m_context, CL_MEM_WRITE_ONLY, openGLVBO, &ciErrNum);+if( ciErrNum != CL_SUCCESS )+{+btAssert( 0 && "clEnqueueAcquireGLObjects(copySoftBodyToVertexBuffer)");+}++m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;+m_hasVertexPositions = true;++m_normalOffset = normalOffset;+m_normalStride = normalStride;+m_hasNormals = true;+#else+btAssert(0);+#endif //USE_MINICL++}++virtual ~btOpenGLInteropVertexBufferDescriptor()+{+clReleaseMemObject( m_buffer );+}++/**+* Return the type of the vertex buffer descriptor.+*/+virtual BufferTypes getBufferType() const+{+return OPENGL_BUFFER;+}++virtual cl_context getContext() const+{+return m_context;+}++virtual cl_mem getBuffer() const+{+return m_buffer;+}+};++#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_OPENGL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolverVertexData_OpenCL.h view
@@ -1,52 +1,52 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-
-#ifndef BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H
-#define BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H
-
-
-class btSoftBodyVertexDataOpenCL : public btSoftBodyVertexData
-{
-protected:
-	bool		m_onGPU;
-	cl_command_queue	m_queue;
-
-public:
-	btOpenCLBuffer<int>									m_clClothIdentifier;
-	btOpenCLBuffer<Vectormath::Aos::Point3>				m_clVertexPosition;
-	btOpenCLBuffer<Vectormath::Aos::Point3>				m_clVertexPreviousPosition;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>				m_clVertexVelocity;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>				m_clVertexForceAccumulator;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>				m_clVertexNormal;
-	btOpenCLBuffer<float>									m_clVertexInverseMass;
-	btOpenCLBuffer<float>									m_clVertexArea;
-	btOpenCLBuffer<int>									m_clVertexTriangleCount;
-public:
-	btSoftBodyVertexDataOpenCL( cl_command_queue queue,  cl_context ctx);
-
-	virtual ~btSoftBodyVertexDataOpenCL();
-
-	virtual bool onAccelerator();
-
-	virtual bool moveToAccelerator();
-
-	virtual bool moveFromAccelerator();
-};
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#include "BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolverData.h"+#include "btSoftBodySolverBuffer_OpenCL.h"++#ifndef BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H+#define BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H+++class btSoftBodyVertexDataOpenCL : public btSoftBodyVertexData+{ private:+protected:+bool m_onGPU;+cl_command_queue m_queue;++public:+btOpenCLBuffer<int> m_clClothIdentifier;+btOpenCLBuffer<Vectormath::Aos::Point3> m_clVertexPosition;+btOpenCLBuffer<Vectormath::Aos::Point3> m_clVertexPreviousPosition;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clVertexVelocity;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clVertexForceAccumulator;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clVertexNormal;+btOpenCLBuffer<float> m_clVertexInverseMass;+btOpenCLBuffer<float> m_clVertexArea;+btOpenCLBuffer<int> m_clVertexTriangleCount;+public:+btSoftBodyVertexDataOpenCL( cl_command_queue queue, cl_context ctx);++virtual ~btSoftBodyVertexDataOpenCL();++virtual bool onAccelerator();++virtual bool moveToAccelerator();++virtual bool moveFromAccelerator();+};+++#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_DATA_OPENCL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCL.h view
@@ -1,488 +1,500 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_OPENCL_H
-#define BT_SOFT_BODY_SOLVER_OPENCL_H
-
-#include "stddef.h" //for size_t
-#include "vectormath/vmInclude.h"
-
-#include "BulletSoftBody/btSoftBodySolvers.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-#include "btSoftBodySolverLinkData_OpenCL.h"
-#include "btSoftBodySolverVertexData_OpenCL.h"
-#include "btSoftBodySolverTriangleData_OpenCL.h"
-
-class CLFunctions
-{
-protected:
-	cl_command_queue	m_cqCommandQue;
-	cl_context			m_cxMainContext;
-	
-public:
-	CLFunctions(cl_command_queue cqCommandQue, cl_context cxMainContext) :
-		m_cqCommandQue( cqCommandQue ),
-		m_cxMainContext( cxMainContext )
-	{
-	}
-
-
-	/**
-	 * Compile a compute shader kernel from a string and return the appropriate cl_kernel object.
-	 */	
-	cl_kernel compileCLKernelFromString( const char* kernelSource, const char* kernelName, const char* additionalMacros = "" );
-};
-
-/**
- * Entry in the collision shape array.
- * Specifies the shape type, the transform matrix and the necessary details of the collisionShape.
- */
-struct CollisionShapeDescription
-{
-	Vectormath::Aos::Transform3 shapeTransform;
-	Vectormath::Aos::Vector3 linearVelocity;
-	Vectormath::Aos::Vector3 angularVelocity;
-
-	int softBodyIdentifier;
-	int collisionShapeType;
-
-	// Both needed for capsule
-	float radius;
-	float halfHeight;
-	int upAxis;
-	
-	float margin;
-	float friction;
-
-	CollisionShapeDescription()
-	{
-		collisionShapeType = 0;
-		margin = 0;
-		friction = 0;
-	}
-};
-
-/**
-	 * SoftBody class to maintain information about a soft body instance
-	 * within a solver.
-	 * This data addresses the main solver arrays.
-	 */
-class btOpenCLAcceleratedSoftBodyInterface
-{
-protected:
-	/** Current number of vertices that are part of this cloth */
-	int m_numVertices;
-	/** Maximum number of vertices allocated to be part of this cloth */
-	int m_maxVertices;
-	/** Current number of triangles that are part of this cloth */
-	int m_numTriangles;
-	/** Maximum number of triangles allocated to be part of this cloth */
-	int m_maxTriangles;
-	/** Index of first vertex in the world allocated to this cloth */
-	int m_firstVertex;
-	/** Index of first triangle in the world allocated to this cloth */
-	int m_firstTriangle;
-	/** Index of first link in the world allocated to this cloth */
-	int m_firstLink;
-	/** Maximum number of links allocated to this cloth */
-	int m_maxLinks;
-	/** Current number of links allocated to this cloth */
-	int m_numLinks;
-
-	/** The actual soft body this data represents */
-	btSoftBody *m_softBody;
-
-
-public:
-	btOpenCLAcceleratedSoftBodyInterface( btSoftBody *softBody ) :
-	  m_softBody( softBody )
-	{
-		m_numVertices = 0;
-		m_maxVertices = 0;
-		m_numTriangles = 0;
-		m_maxTriangles = 0;
-		m_firstVertex = 0;
-		m_firstTriangle = 0;
-		m_firstLink = 0;
-		m_maxLinks = 0;
-		m_numLinks = 0;
-	}
-	int getNumVertices()
-	{
-		return m_numVertices;
-	}
-
-	int getNumTriangles()
-	{
-		return m_numTriangles;
-	}
-
-	int getMaxVertices()
-	{
-		return m_maxVertices;
-	}
-
-	int getMaxTriangles()
-	{
-		return m_maxTriangles;
-	}
-
-	int getFirstVertex()
-	{
-		return m_firstVertex;
-	}
-
-	int getFirstTriangle()
-	{
-		return m_firstTriangle;
-	}
-	
-	/**
-	 * Update the bounds in the btSoftBody object
-	 */
-	void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );
-
-	// TODO: All of these set functions will have to do checks and
-	// update the world because restructuring of the arrays will be necessary
-	// Reasonable use of "friend"?
-	void setNumVertices( int numVertices )
-	{
-		m_numVertices = numVertices;
-	}	
-
-	void setNumTriangles( int numTriangles )
-	{
-		m_numTriangles = numTriangles;
-	}
-
-	void setMaxVertices( int maxVertices )
-	{
-		m_maxVertices = maxVertices;
-	}
-
-	void setMaxTriangles( int maxTriangles )
-	{
-		m_maxTriangles = maxTriangles;
-	}
-
-	void setFirstVertex( int firstVertex )
-	{
-		m_firstVertex = firstVertex;
-	}
-
-	void setFirstTriangle( int firstTriangle )
-	{
-		m_firstTriangle = firstTriangle;
-	}
-
-	void setMaxLinks( int maxLinks )
-	{
-		m_maxLinks = maxLinks;
-	}
-
-	void setNumLinks( int numLinks )
-	{
-		m_numLinks = numLinks;
-	}
-
-	void setFirstLink( int firstLink )
-	{
-		m_firstLink = firstLink;
-	}
-
-	int getMaxLinks()
-	{
-		return m_maxLinks;
-	}
-
-	int getNumLinks()
-	{
-		return m_numLinks;
-	}
-
-	int getFirstLink()
-	{
-		return m_firstLink;
-	}
-
-	btSoftBody* getSoftBody()
-	{
-		return m_softBody;
-	}
-
-};
-
-
-
-class btOpenCLSoftBodySolver : public btSoftBodySolver
-{
-public:
-	
-
-	struct UIntVector3
-	{
-		UIntVector3()
-		{
-			x = 0;
-			y = 0;
-			z = 0;
-			_padding = 0;
-		}
-		
-		UIntVector3( unsigned int x_, unsigned int y_, unsigned int z_ )
-		{
-			x = x_;
-			y = y_;
-			z = z_;
-			_padding = 0;
-		}
-			
-		unsigned int x;
-		unsigned int y;
-		unsigned int z;
-		unsigned int _padding;
-	};
-
-	struct CollisionObjectIndices
-	{
-		CollisionObjectIndices( int f, int e )
-		{
-			firstObject = f;
-			endObject = e;
-		}
-
-		int firstObject;
-		int endObject;
-	};
-
-	btSoftBodyLinkDataOpenCL m_linkData;
-	btSoftBodyVertexDataOpenCL m_vertexData;
-	btSoftBodyTriangleDataOpenCL m_triangleData;
-
-protected:
-
-	CLFunctions clFunctions;
-
-	/** Variable to define whether we need to update solver constants on the next iteration */
-	bool m_updateSolverConstants;
-
-	bool m_shadersInitialized;
-
-	/** 
-	 * Cloths owned by this solver.
-	 * Only our cloths are in this array.
-	 */
-	btAlignedObjectArray< btOpenCLAcceleratedSoftBodyInterface * > m_softBodySet;
-
-	/** Acceleration value to be applied to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_perClothAcceleration;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>			m_clPerClothAcceleration;
-
-	/** Wind velocity to be applied normal to all non-static vertices in the solver. 
-	 * Index n is cloth n, array sized by number of cloths in the world not the solver. 
-	 */
-	btAlignedObjectArray< Vectormath::Aos::Vector3 >	m_perClothWindVelocity;
-	btOpenCLBuffer<Vectormath::Aos::Vector3>			m_clPerClothWindVelocity;
-
-	/** Velocity damping factor */
-	btAlignedObjectArray< float >						m_perClothDampingFactor;
-	btOpenCLBuffer<float>								m_clPerClothDampingFactor;
-
-	/** Velocity correction coefficient */
-	btAlignedObjectArray< float >						m_perClothVelocityCorrectionCoefficient;
-	btOpenCLBuffer<float>								m_clPerClothVelocityCorrectionCoefficient;
-
-	/** Lift parameter for wind effect on cloth. */
-	btAlignedObjectArray< float >						m_perClothLiftFactor;
-	btOpenCLBuffer<float>								m_clPerClothLiftFactor;
-	
-	/** Drag parameter for wind effect on cloth. */
-	btAlignedObjectArray< float >						m_perClothDragFactor;
-	btOpenCLBuffer<float>								m_clPerClothDragFactor;
-
-	/** Density of the medium in which each cloth sits */
-	btAlignedObjectArray< float >						m_perClothMediumDensity;
-	btOpenCLBuffer<float>								m_clPerClothMediumDensity;
-
-	/** 
-	 * Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.
-	 */
-	btAlignedObjectArray< CollisionObjectIndices >		m_perClothCollisionObjects;
-	btOpenCLBuffer<CollisionObjectIndices>				m_clPerClothCollisionObjects;
-
-	/** 
-	 * Collision shapes being passed across to the cloths in this solver.
-	 */
-	btAlignedObjectArray< CollisionShapeDescription >	m_collisionObjectDetails;
-	btOpenCLBuffer< CollisionShapeDescription >			m_clCollisionObjectDetails;
-
-
-	
-	/** 
-	 * Friction coefficient for each cloth
-	 */
-	btAlignedObjectArray< float >	m_perClothFriction;
-	btOpenCLBuffer< float >			m_clPerClothFriction;
-
-
-
-	cl_kernel		prepareLinksKernel;
-	cl_kernel		solvePositionsFromLinksKernel;
-	cl_kernel		updateConstantsKernel;
-	cl_kernel		integrateKernel;
-	cl_kernel		addVelocityKernel;
-	cl_kernel		updatePositionsFromVelocitiesKernel;
-	cl_kernel		updateVelocitiesFromPositionsWithoutVelocitiesKernel;
-	cl_kernel		updateVelocitiesFromPositionsWithVelocitiesKernel;
-	cl_kernel		vSolveLinksKernel;
-	cl_kernel		solveCollisionsAndUpdateVelocitiesKernel;
-	cl_kernel		resetNormalsAndAreasKernel;
-	cl_kernel		normalizeNormalsAndAreasKernel;
-	cl_kernel		updateSoftBodiesKernel;
-
-	cl_kernel		outputToVertexArrayKernel;
-	cl_kernel		applyForcesKernel;
-
-	cl_command_queue	m_cqCommandQue;
-	cl_context			m_cxMainContext;
-	
-	size_t				m_defaultWorkGroupSize;
-
-
-	virtual bool buildShaders();
-
-	void resetNormalsAndAreas( int numVertices );
-
-	void normalizeNormalsAndAreas( int numVertices );
-
-	void executeUpdateSoftBodies( int firstTriangle, int numTriangles );
-
-	void prepareCollisionConstraints();
-	
-	Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );
-
-	void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );
-	
-
-	int findSoftBodyIndex( const btSoftBody* const softBody );
-
-	virtual void applyForces( float solverdt );
-
-	/**
-	 * Integrate motion on the solver.
-	 */
-	virtual void integrate( float solverdt );
-
-	virtual void updateConstants( float timeStep );
-
-	float computeTriangleArea( 
-		const Vectormath::Aos::Point3 &vertex0,
-		const Vectormath::Aos::Point3 &vertex1,
-		const Vectormath::Aos::Point3 &vertex2 );
-
-
-	//////////////////////////////////////
-	// Kernel dispatches
-	void prepareLinks();
-
-	void solveLinksForVelocity( int startLink, int numLinks, float kst );
-
-	void updatePositionsFromVelocities( float solverdt );
-
-	virtual void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );
-	
-	void updateVelocitiesFromPositionsWithVelocities( float isolverdt );
-
-	void updateVelocitiesFromPositionsWithoutVelocities( float isolverdt );
-	virtual void solveCollisionsAndUpdateVelocities( float isolverdt );
-
-	// End kernel dispatches
-	/////////////////////////////////////
-	
-	void updateBounds();
-
-	void releaseKernels();
-
-public:
-	btOpenCLSoftBodySolver(cl_command_queue queue,cl_context	ctx);
-
-	virtual ~btOpenCLSoftBodySolver();
-
-
-	
-	btOpenCLAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );
-
-	virtual btSoftBodyLinkData &getLinkData();
-
-	virtual btSoftBodyVertexData &getVertexData();
-
-	virtual btSoftBodyTriangleData &getTriangleData();
-
-	virtual SolverTypes getSolverType() const
-	{
-		return CL_SOLVER;
-	}
-
-
-	virtual bool checkInitialized();
-
-	virtual void updateSoftBodies( );
-
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
-
-	virtual void copyBackToSoftBodies();
-
-	virtual void solveConstraints( float solverdt );
-
-	virtual void predictMotion( float solverdt );
-
-	virtual void processCollision( btSoftBody *, btCollisionObject* );
-
-	virtual void processCollision( btSoftBody*, btSoftBody* );
-
-	virtual void	setDefaultWorkgroupSize(size_t workGroupSize)
-	{
-		m_defaultWorkGroupSize = workGroupSize;
-	}
-	virtual size_t	getDefaultWorkGroupSize() const
-	{
-		return m_defaultWorkGroupSize;
-	}
-	
-}; // btOpenCLSoftBodySolver
-
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is the CL to CPU version.
- */
-class btSoftBodySolverOutputCLtoCPU : public btSoftBodySolverOutput
-{
-protected:
-
-public:
-	btSoftBodySolverOutputCLtoCPU()
-	{
-	}
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );
-};
-
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_OPENCL_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_OPENCL_H+#define BT_SOFT_BODY_SOLVER_OPENCL_H++#include "stddef.h" //for size_t+#include "vectormath/vmInclude.h"++#include "BulletSoftBody/btSoftBodySolvers.h"+#include "btSoftBodySolverBuffer_OpenCL.h"+#include "btSoftBodySolverLinkData_OpenCL.h"+#include "btSoftBodySolverVertexData_OpenCL.h"+#include "btSoftBodySolverTriangleData_OpenCL.h"++class CLFunctions+{ private:+protected:+cl_command_queue m_cqCommandQue;+cl_context m_cxMainContext;++int m_kernelCompilationFailures;++public:+CLFunctions(cl_command_queue cqCommandQue, cl_context cxMainContext) :+m_cqCommandQue( cqCommandQue ),+m_cxMainContext( cxMainContext ),+m_kernelCompilationFailures(0)+{+}++int getKernelCompilationFailures() const+{+return m_kernelCompilationFailures;+}++/**+* Compile a compute shader kernel from a string and return the appropriate cl_kernel object.+*/+cl_kernel compileCLKernelFromString( const char* kernelSource, const char* kernelName, const char* additionalMacros = "" );++void clearKernelCompilationFailures()+{+m_kernelCompilationFailures=0;+}+};++/**+* Entry in the collision shape array.+* Specifies the shape type, the transform matrix and the necessary details of the collisionShape.+*/+struct CollisionShapeDescription+{+Vectormath::Aos::Transform3 shapeTransform;+Vectormath::Aos::Vector3 linearVelocity;+Vectormath::Aos::Vector3 angularVelocity;++int softBodyIdentifier;+int collisionShapeType;++// Both needed for capsule+float radius;+float halfHeight;+int upAxis;++float margin;+float friction;++CollisionShapeDescription()+{+collisionShapeType = 0;+margin = 0;+friction = 0;+}+};++/**+* SoftBody class to maintain information about a soft body instance+* within a solver.+* This data addresses the main solver arrays.+*/+class btOpenCLAcceleratedSoftBodyInterface+{ private:+protected:+/** Current number of vertices that are part of this cloth */+int m_numVertices;+/** Maximum number of vertices allocated to be part of this cloth */+int m_maxVertices;+/** Current number of triangles that are part of this cloth */+int m_numTriangles;+/** Maximum number of triangles allocated to be part of this cloth */+int m_maxTriangles;+/** Index of first vertex in the world allocated to this cloth */+int m_firstVertex;+/** Index of first triangle in the world allocated to this cloth */+int m_firstTriangle;+/** Index of first link in the world allocated to this cloth */+int m_firstLink;+/** Maximum number of links allocated to this cloth */+int m_maxLinks;+/** Current number of links allocated to this cloth */+int m_numLinks;++/** The actual soft body this data represents */+btSoftBody *m_softBody;+++public:+btOpenCLAcceleratedSoftBodyInterface( btSoftBody *softBody ) :+m_softBody( softBody )+{+m_numVertices = 0;+m_maxVertices = 0;+m_numTriangles = 0;+m_maxTriangles = 0;+m_firstVertex = 0;+m_firstTriangle = 0;+m_firstLink = 0;+m_maxLinks = 0;+m_numLinks = 0;+}+int getNumVertices()+{+return m_numVertices;+}++int getNumTriangles()+{+return m_numTriangles;+}++int getMaxVertices()+{+return m_maxVertices;+}++int getMaxTriangles()+{+return m_maxTriangles;+}++int getFirstVertex()+{+return m_firstVertex;+}++int getFirstTriangle()+{+return m_firstTriangle;+}++/**+* Update the bounds in the btSoftBody object+*/+void updateBounds( const btVector3 &lowerBound, const btVector3 &upperBound );++// TODO: All of these set functions will have to do checks and+// update the world because restructuring of the arrays will be necessary+// Reasonable use of "friend"?+void setNumVertices( int numVertices )+{+m_numVertices = numVertices;+}++void setNumTriangles( int numTriangles )+{+m_numTriangles = numTriangles;+}++void setMaxVertices( int maxVertices )+{+m_maxVertices = maxVertices;+}++void setMaxTriangles( int maxTriangles )+{+m_maxTriangles = maxTriangles;+}++void setFirstVertex( int firstVertex )+{+m_firstVertex = firstVertex;+}++void setFirstTriangle( int firstTriangle )+{+m_firstTriangle = firstTriangle;+}++void setMaxLinks( int maxLinks )+{+m_maxLinks = maxLinks;+}++void setNumLinks( int numLinks )+{+m_numLinks = numLinks;+}++void setFirstLink( int firstLink )+{+m_firstLink = firstLink;+}++int getMaxLinks()+{+return m_maxLinks;+}++int getNumLinks()+{+return m_numLinks;+}++int getFirstLink()+{+return m_firstLink;+}++btSoftBody* getSoftBody()+{+return m_softBody;+}++};++++class btOpenCLSoftBodySolver : public btSoftBodySolver+{ private:+public:+++struct UIntVector3+{+UIntVector3()+{+x = 0;+y = 0;+z = 0;+_padding = 0;+}++UIntVector3( unsigned int x_, unsigned int y_, unsigned int z_ )+{+x = x_;+y = y_;+z = z_;+_padding = 0;+}++unsigned int x;+unsigned int y;+unsigned int z;+unsigned int _padding;+};++struct CollisionObjectIndices+{+CollisionObjectIndices( int f, int e )+{+firstObject = f;+endObject = e;+}++int firstObject;+int endObject;+};++btSoftBodyLinkDataOpenCL m_linkData;+btSoftBodyVertexDataOpenCL m_vertexData;+btSoftBodyTriangleDataOpenCL m_triangleData;++protected:++CLFunctions m_clFunctions;++/** Variable to define whether we need to update solver constants on the next iteration */+bool m_updateSolverConstants;++bool m_shadersInitialized;++/**+* Cloths owned by this solver.+* Only our cloths are in this array.+*/+btAlignedObjectArray< btOpenCLAcceleratedSoftBodyInterface * > m_softBodySet;++/** Acceleration value to be applied to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothAcceleration;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clPerClothAcceleration;++/** Wind velocity to be applied normal to all non-static vertices in the solver.+* Index n is cloth n, array sized by number of cloths in the world not the solver.+*/+btAlignedObjectArray< Vectormath::Aos::Vector3 > m_perClothWindVelocity;+btOpenCLBuffer<Vectormath::Aos::Vector3> m_clPerClothWindVelocity;++/** Velocity damping factor */+btAlignedObjectArray< float > m_perClothDampingFactor;+btOpenCLBuffer<float> m_clPerClothDampingFactor;++/** Velocity correction coefficient */+btAlignedObjectArray< float > m_perClothVelocityCorrectionCoefficient;+btOpenCLBuffer<float> m_clPerClothVelocityCorrectionCoefficient;++/** Lift parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothLiftFactor;+btOpenCLBuffer<float> m_clPerClothLiftFactor;++/** Drag parameter for wind effect on cloth. */+btAlignedObjectArray< float > m_perClothDragFactor;+btOpenCLBuffer<float> m_clPerClothDragFactor;++/** Density of the medium in which each cloth sits */+btAlignedObjectArray< float > m_perClothMediumDensity;+btOpenCLBuffer<float> m_clPerClothMediumDensity;++/**+* Collision shape details: pair of index of first collision shape for the cloth and number of collision objects.+*/+btAlignedObjectArray< CollisionObjectIndices > m_perClothCollisionObjects;+btOpenCLBuffer<CollisionObjectIndices> m_clPerClothCollisionObjects;++/**+* Collision shapes being passed across to the cloths in this solver.+*/+btAlignedObjectArray< CollisionShapeDescription > m_collisionObjectDetails;+btOpenCLBuffer< CollisionShapeDescription > m_clCollisionObjectDetails;++++/**+* Friction coefficient for each cloth+*/+btAlignedObjectArray< float > m_perClothFriction;+btOpenCLBuffer< float > m_clPerClothFriction;++++cl_kernel m_prepareLinksKernel;+cl_kernel m_solvePositionsFromLinksKernel;+cl_kernel m_updateConstantsKernel;+cl_kernel m_integrateKernel;+cl_kernel m_addVelocityKernel;+cl_kernel m_updatePositionsFromVelocitiesKernel;+cl_kernel m_updateVelocitiesFromPositionsWithoutVelocitiesKernel;+cl_kernel m_updateVelocitiesFromPositionsWithVelocitiesKernel;+cl_kernel m_vSolveLinksKernel;+cl_kernel m_solveCollisionsAndUpdateVelocitiesKernel;+cl_kernel m_resetNormalsAndAreasKernel;+cl_kernel m_normalizeNormalsAndAreasKernel;+cl_kernel m_updateSoftBodiesKernel;++cl_kernel m_outputToVertexArrayKernel;+cl_kernel m_applyForcesKernel;++cl_command_queue m_cqCommandQue;+cl_context m_cxMainContext;++size_t m_defaultWorkGroupSize;+++virtual bool buildShaders();++void resetNormalsAndAreas( int numVertices );++void normalizeNormalsAndAreas( int numVertices );++void executeUpdateSoftBodies( int firstTriangle, int numTriangles );++void prepareCollisionConstraints();++Vectormath::Aos::Vector3 ProjectOnAxis( const Vectormath::Aos::Vector3 &v, const Vectormath::Aos::Vector3 &a );++void ApplyClampedForce( float solverdt, const Vectormath::Aos::Vector3 &force, const Vectormath::Aos::Vector3 &vertexVelocity, float inverseMass, Vectormath::Aos::Vector3 &vertexForce );+++int findSoftBodyIndex( const btSoftBody* const softBody );++virtual void applyForces( float solverdt );++/**+* Integrate motion on the solver.+*/+virtual void integrate( float solverdt );++virtual void updateConstants( float timeStep );++float computeTriangleArea(+const Vectormath::Aos::Point3 &vertex0,+const Vectormath::Aos::Point3 &vertex1,+const Vectormath::Aos::Point3 &vertex2 );+++//////////////////////////////////////+// Kernel dispatches+void prepareLinks();++void solveLinksForVelocity( int startLink, int numLinks, float kst );++void updatePositionsFromVelocities( float solverdt );++virtual void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );++void updateVelocitiesFromPositionsWithVelocities( float isolverdt );++void updateVelocitiesFromPositionsWithoutVelocities( float isolverdt );+virtual void solveCollisionsAndUpdateVelocities( float isolverdt );++// End kernel dispatches+/////////////////////////////////////++void updateBounds();++void releaseKernels();++public:+btOpenCLSoftBodySolver(cl_command_queue queue,cl_context ctx);++virtual ~btOpenCLSoftBodySolver();++++btOpenCLAcceleratedSoftBodyInterface *findSoftBodyInterface( const btSoftBody* const softBody );++virtual btSoftBodyLinkData &getLinkData();++virtual btSoftBodyVertexData &getVertexData();++virtual btSoftBodyTriangleData &getTriangleData();++virtual SolverTypes getSolverType() const+{+return CL_SOLVER;+}+++virtual bool checkInitialized();++virtual void updateSoftBodies( );++virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);++virtual void copyBackToSoftBodies();++virtual void solveConstraints( float solverdt );++virtual void predictMotion( float solverdt );++virtual void processCollision( btSoftBody *, btCollisionObject* );++virtual void processCollision( btSoftBody*, btSoftBody* );++virtual void setDefaultWorkgroupSize(size_t workGroupSize)+{+m_defaultWorkGroupSize = workGroupSize;+}+virtual size_t getDefaultWorkGroupSize() const+{+return m_defaultWorkGroupSize;+}++}; // btOpenCLSoftBodySolver+++/**+* Class to manage movement of data from a solver to a given target.+* This version is the CL to CPU version.+*/+class btSoftBodySolverOutputCLtoCPU : public btSoftBodySolverOutput+{ private:+protected:++public:+btSoftBodySolverOutputCLtoCPU()+{+}++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer );+};++++#endif // #ifndef BT_SOFT_BODY_SOLVER_OPENCL_H
bullet/BulletMultiThreaded/GpuSoftBodySolvers/OpenCL/btSoftBodySolver_OpenCLSIMDAware.h view
@@ -1,82 +1,81 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H
-#define BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H
-
-#include "stddef.h" //for size_t
-#include "vectormath/vmInclude.h"
-
-#include "btSoftBodySolver_OpenCL.h"
-#include "btSoftBodySolverBuffer_OpenCL.h"
-#include "btSoftBodySolverLinkData_OpenCLSIMDAware.h"
-#include "btSoftBodySolverVertexData_OpenCL.h"
-#include "btSoftBodySolverTriangleData_OpenCL.h"
-
-
-
-
-
-class btOpenCLSoftBodySolverSIMDAware : public btOpenCLSoftBodySolver
-{
-protected:
-	
-
-	btSoftBodyLinkDataOpenCLSIMDAware m_linkData;
-
-
-	bool m_shadersInitialized;
-
-
-	bool buildShaders();
-
-
-	void updateConstants( float timeStep );
-
-	float computeTriangleArea( 
-		const Vectormath::Aos::Point3 &vertex0,
-		const Vectormath::Aos::Point3 &vertex1,
-		const Vectormath::Aos::Point3 &vertex2 );
-
-
-	//////////////////////////////////////
-	// Kernel dispatches
-	void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );
-	
-	void solveCollisionsAndUpdateVelocities( float isolverdt );
-	// End kernel dispatches
-	/////////////////////////////////////
-
-public:
-	btOpenCLSoftBodySolverSIMDAware(cl_command_queue queue,cl_context	ctx);
-
-	virtual ~btOpenCLSoftBodySolverSIMDAware();
-
-	virtual SolverTypes getSolverType() const
-	{
-		return CL_SIMD_SOLVER;
-	}
-
-
-	virtual btSoftBodyLinkData &getLinkData();
-
-
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);
-
-	virtual void solveConstraints( float solverdt );
-
-}; // btOpenCLSoftBodySolverSIMDAware
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H+#define BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H++#include "stddef.h" //for size_t+#include "vectormath/vmInclude.h"++#include "btSoftBodySolver_OpenCL.h"+#include "btSoftBodySolverBuffer_OpenCL.h"+#include "btSoftBodySolverLinkData_OpenCLSIMDAware.h"+#include "btSoftBodySolverVertexData_OpenCL.h"+#include "btSoftBodySolverTriangleData_OpenCL.h"++++++class btOpenCLSoftBodySolverSIMDAware : public btOpenCLSoftBodySolver+{ private:+protected:+++btSoftBodyLinkDataOpenCLSIMDAware m_linkData;+++++bool buildShaders();+++void updateConstants( float timeStep );++float computeTriangleArea(+const Vectormath::Aos::Point3 &vertex0,+const Vectormath::Aos::Point3 &vertex1,+const Vectormath::Aos::Point3 &vertex2 );+++//////////////////////////////////////+// Kernel dispatches+void solveLinksForPosition( int startLink, int numLinks, float kst, float ti );++void solveCollisionsAndUpdateVelocities( float isolverdt );+// End kernel dispatches+/////////////////////////////////////++public:+btOpenCLSoftBodySolverSIMDAware(cl_command_queue queue,cl_context ctx);++virtual ~btOpenCLSoftBodySolverSIMDAware();++virtual SolverTypes getSolverType() const+{+return CL_SIMD_SOLVER;+}+++virtual btSoftBodyLinkData &getLinkData();+++virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false);++virtual void solveConstraints( float solverdt );++}; // btOpenCLSoftBodySolverSIMDAware++#endif // #ifndef BT_SOFT_BODY_SOLVER_OPENCL_SIMDAWARE_H
bullet/BulletMultiThreaded/HeapManager.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,98 +18,98 @@ #define BT_HEAP_MANAGER_H__  #ifdef __SPU__-	#define HEAP_STACK_SIZE 32+#define HEAP_STACK_SIZE 32 #else-	#define HEAP_STACK_SIZE 64+#define HEAP_STACK_SIZE 64 #endif  #define MIN_ALLOC_SIZE 16   class HeapManager-{+{ private: private:-	ATTRIBUTE_ALIGNED16(unsigned char *mHeap);-	ATTRIBUTE_ALIGNED16(unsigned int mHeapBytes);-	ATTRIBUTE_ALIGNED16(unsigned char *mPoolStack[HEAP_STACK_SIZE]);-	ATTRIBUTE_ALIGNED16(unsigned int mCurStack);-	+ATTRIBUTE_ALIGNED16(unsigned char *mHeap);+ATTRIBUTE_ALIGNED16(unsigned int mHeapBytes);+ATTRIBUTE_ALIGNED16(unsigned char *mPoolStack[HEAP_STACK_SIZE]);+ATTRIBUTE_ALIGNED16(unsigned int mCurStack);+ public:-	enum {ALIGN16,ALIGN128};+enum {ALIGN16,ALIGN128}; -	HeapManager(unsigned char *buf,int bytes)-	{-		mHeap = buf;-		mHeapBytes = bytes;-		clear();-	}-	-	~HeapManager()-	{-	}-	-	int getAllocated()-	{-		return (int)(mPoolStack[mCurStack]-mHeap);-	}-	-	int getRest()-	{-		return mHeapBytes-getAllocated();-	}+HeapManager(unsigned char *buf,int bytes)+{+mHeap = buf;+mHeapBytes = bytes;+clear();+} -	void *allocate(size_t bytes,int alignment = ALIGN16)-	{-		if(bytes <= 0) bytes = MIN_ALLOC_SIZE;-		btAssert(mCurStack < (HEAP_STACK_SIZE-1));+~HeapManager()+{+} -		+int getAllocated()+{+return (int)(mPoolStack[mCurStack]-mHeap);+}++int getRest()+{+return mHeapBytes-getAllocated();+}++void *allocate(size_t bytes,int alignment = ALIGN16)+{+if(bytes <= 0) bytes = MIN_ALLOC_SIZE;+btAssert(mCurStack < (HEAP_STACK_SIZE-1));++ #if defined(_WIN64) || defined(__LP64__) || defined(__x86_64__)-		unsigned long long p = (unsigned long long )mPoolStack[mCurStack];-		if(alignment == ALIGN128) {-			p = ((p+127) & 0xffffffffffffff80);-			bytes = (bytes+127) & 0xffffffffffffff80;-		}-		else {-			bytes = (bytes+15) & 0xfffffffffffffff0;-		}+unsigned long long p = (unsigned long long )mPoolStack[mCurStack];+if(alignment == ALIGN128) {+p = ((p+127) & 0xffffffffffffff80);+bytes = (bytes+127) & 0xffffffffffffff80;+}+else {+bytes = (bytes+15) & 0xfffffffffffffff0;+} -		btAssert(bytes <=(mHeapBytes-(p-(unsigned long long )mHeap)) );-		+btAssert(bytes <=(mHeapBytes-(p-(unsigned long long )mHeap)) );+ #else-		unsigned long p = (unsigned long )mPoolStack[mCurStack];-		if(alignment == ALIGN128) {-			p = ((p+127) & 0xffffff80);-			bytes = (bytes+127) & 0xffffff80;-		}-		else {-			bytes = (bytes+15) & 0xfffffff0;-		}-		btAssert(bytes <=(mHeapBytes-(p-(unsigned long)mHeap)) );+unsigned long p = (unsigned long )mPoolStack[mCurStack];+if(alignment == ALIGN128) {+p = ((p+127) & 0xffffff80);+bytes = (bytes+127) & 0xffffff80;+}+else {+bytes = (bytes+15) & 0xfffffff0;+}+btAssert(bytes <=(mHeapBytes-(p-(unsigned long)mHeap)) ); #endif-		unsigned char * bla = (unsigned char *)(p + bytes);-		mPoolStack[++mCurStack] = bla;-		return (void*)p;-	}+unsigned char * bla = (unsigned char *)(p + bytes);+mPoolStack[++mCurStack] = bla;+return (void*)p;+} -	void deallocate(void *p)-	{-		(void) p;-		mCurStack--;-	}-	-	void clear()-	{-		mPoolStack[0] = mHeap;-		mCurStack = 0;-	}+void deallocate(void *p)+{+(void) p;+mCurStack--;+} -//	void printStack()-//	{-//		for(unsigned int i=0;i<=mCurStack;i++) {-//			PRINTF("memStack %2d 0x%x\n",i,(uint32_t)mPoolStack[i]);-//		}-//	}+void clear()+{+mPoolStack[0] = mHeap;+mCurStack = 0;+}++// void printStack()+// {+// for(unsigned int i=0;i<=mCurStack;i++) {+// PRINTF("memStack %2d 0x%x\n",i,(uint32_t)mPoolStack[i]);+// }+// }  }; 
bullet/BulletMultiThreaded/PlatformDefinitions.h view
@@ -7,11 +7,11 @@  #ifdef PFX_USE_FREE_VECTORMATH #include "physics_effects/base_level/base/pfx_vectormath_include.win32.h"-typedef Vectormath::Aos::Vector3    vmVector3;-typedef Vectormath::Aos::Quat       vmQuat;-typedef Vectormath::Aos::Matrix3    vmMatrix3;+typedef Vectormath::Aos::Vector3 vmVector3;+typedef Vectormath::Aos::Quat vmQuat;+typedef Vectormath::Aos::Matrix3 vmMatrix3; typedef Vectormath::Aos::Transform3 vmTransform3;-typedef Vectormath::Aos::Point3     vmPoint3;+typedef Vectormath::Aos::Point3 vmPoint3; #else #include "vectormath/vmInclude.h" #endif//PFX_USE_FREE_VECTORMATH@@ -24,69 +24,69 @@  typedef union {-  unsigned int u;-  void *p;+unsigned int u;+void *p; } addr64;  #define USE_WIN32_THREADING 1 -		#if defined(__MINGW32__) || defined(__CYGWIN__) || (defined (_MSC_VER) && _MSC_VER < 1300)-		#else-		#endif //__MINGW32__+#if defined(__MINGW32__) || defined(__CYGWIN__) || (defined (_MSC_VER) && _MSC_VER < 1300)+#else+#endif //__MINGW32__ -		typedef unsigned char     uint8_t;+typedef unsigned char uint8_t; #ifndef __PHYSICS_COMMON_H__ #ifndef PFX_USE_FREE_VECTORMATH #ifndef __BT_SKIP_UINT64_H-		typedef unsigned long int uint64_t;+typedef unsigned long int uint64_t; #endif //__BT_SKIP_UINT64_H #endif //PFX_USE_FREE_VECTORMATH-		typedef unsigned int      uint32_t;+typedef unsigned int uint32_t; #endif //__PHYSICS_COMMON_H__-		typedef unsigned short    uint16_t;+typedef unsigned short uint16_t; -		#include <malloc.h>-		#define memalign(alignment, size) malloc(size);-			+#include <malloc.h>+#define memalign(alignment, size) malloc(size);+ #include <string.h> //memcpy -		 -		#include <stdio.h>		-		#define spu_printf printf-		++#include <stdio.h>+#define spu_printf printf+ #else-		#include <stdint.h>-		#include <stdlib.h>-		#include <string.h> //for memcpy+#include <stdint.h>+#include <stdlib.h>+#include <string.h> //for memcpy -#if defined	(__CELLOS_LV2__)-	// Playstation 3 Cell SDK+#if defined (__CELLOS_LV2__)+// Playstation 3 Cell SDK #include <spu_printf.h>-		+ #else-	// posix system+// posix system -#define USE_PTHREADS    (1)+#define USE_PTHREADS (1)  #ifdef USE_LIBSPE2-#include <stdio.h>		-#define spu_printf printf	+#include <stdio.h>+#define spu_printf printf #define DWORD unsigned int-			typedef union-			{-			  unsigned long long ull;-			  unsigned int ui[2];-			  void *p;-			} addr64;+typedef union+{+unsigned long long ull;+unsigned int ui[2];+void *p;+} addr64; #endif // USE_LIBSPE2 -#endif	//__CELLOS_LV2__-	+#endif //__CELLOS_LV2__+ #endif  #ifdef __SPU__-#include <stdio.h>		+#include <stdio.h> #define printf spu_printf #endif 
bullet/BulletMultiThreaded/PosixThreadSupport.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -39,99 +39,99 @@ typedef void* (*PosixlsMemorySetupFunc)();  // PosixThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication-class PosixThreadSupport : public btThreadSupportInterface -{+class PosixThreadSupport : public btThreadSupportInterface+{ private: public:-    typedef enum sStatus {-        STATUS_BUSY,-        STATUS_READY,-        STATUS_FINISHED-    } Status;+typedef enum sStatus {+STATUS_BUSY,+STATUS_READY,+STATUS_FINISHED+} Status; -	// placeholder, until libspe2 support is there-	struct	btSpuStatus-	{-		uint32_t	m_taskId;-		uint32_t	m_commandId;-		uint32_t	m_status;+// placeholder, until libspe2 support is there+struct btSpuStatus+{+uint32_t m_taskId;+uint32_t m_commandId;+uint32_t m_status; -		PosixThreadFunc	m_userThreadFunc;-		void*	m_userPtr; //for taskDesc etc-		void*	m_lsMemory; //initialized using PosixLocalStoreMemorySetupFunc+PosixThreadFunc m_userThreadFunc;+void* m_userPtr; //for taskDesc etc+void* m_lsMemory; //initialized using PosixLocalStoreMemorySetupFunc -                pthread_t thread;-                sem_t* startSemaphore;+pthread_t thread;+sem_t* startSemaphore; -        unsigned long threadUsed;-	};+unsigned long threadUsed;+}; private: -	btAlignedObjectArray<btSpuStatus>	m_activeSpuStatus;+btAlignedObjectArray<btSpuStatus> m_activeSpuStatus; public:-	///Setup and initialize SPU/CELL/Libspe2+///Setup and initialize SPU/CELL/Libspe2 -	 -	struct	ThreadConstructionInfo-	{-		ThreadConstructionInfo(char* uniqueName,-									PosixThreadFunc userThreadFunc,-									PosixlsMemorySetupFunc	lsMemoryFunc,-									int numThreads=1,-									int threadStackSize=65535-									)-									:m_uniqueName(uniqueName),-									m_userThreadFunc(userThreadFunc),-									m_lsMemoryFunc(lsMemoryFunc),-									m_numThreads(numThreads),-									m_threadStackSize(threadStackSize)-		{ -		}+struct ThreadConstructionInfo+{+ThreadConstructionInfo(const char* uniqueName,+PosixThreadFunc userThreadFunc,+PosixlsMemorySetupFunc lsMemoryFunc,+int numThreads=1,+int threadStackSize=65535+)+:m_uniqueName(uniqueName),+m_userThreadFunc(userThreadFunc),+m_lsMemoryFunc(lsMemoryFunc),+m_numThreads(numThreads),+m_threadStackSize(threadStackSize)+{ -		char*					m_uniqueName;-		PosixThreadFunc			m_userThreadFunc;-		PosixlsMemorySetupFunc	m_lsMemoryFunc;-		int						m_numThreads;-		int						m_threadStackSize;+} -	};+const char* m_uniqueName;+PosixThreadFunc m_userThreadFunc;+PosixlsMemorySetupFunc m_lsMemoryFunc;+int m_numThreads;+int m_threadStackSize; -	PosixThreadSupport(ThreadConstructionInfo& threadConstructionInfo);+}; +PosixThreadSupport(ThreadConstructionInfo& threadConstructionInfo);+ ///cleanup/shutdown Libspe2-	virtual	~PosixThreadSupport();+virtual ~PosixThreadSupport(); -	void	startThreads(ThreadConstructionInfo&	threadInfo);+void startThreads(ThreadConstructionInfo& threadInfo);   ///send messages to SPUs-	virtual	void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1);+virtual void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1);  ///check for messages from SPUs-	virtual	void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1);+virtual void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1);  ///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	virtual	void startSPU();+virtual void startSPU();  ///tell the task scheduler we are done with the SPU tasks-	virtual	void stopSPU();+virtual void stopSPU(); -	virtual void setNumTasks(int numTasks) {}+virtual void setNumTasks(int numTasks) {} -	virtual int getNumTasks() const-	{-		return m_activeSpuStatus.size();-	}+virtual int getNumTasks() const+{+return m_activeSpuStatus.size();+} -	virtual btBarrier* createBarrier();+virtual btBarrier* createBarrier(); -	virtual btCriticalSection* createCriticalSection();-	-	virtual void*	getThreadLocalMemory(int taskId)-	{-		return m_activeSpuStatus[taskId].m_lsMemory;-	}+virtual btCriticalSection* createCriticalSection();++virtual void* getThreadLocalMemory(int taskId)+{+return m_activeSpuStatus[taskId].m_lsMemory;+}  }; 
bullet/BulletMultiThreaded/PpuAddressSpace.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2010 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2010 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,11 +26,11 @@   #if defined(_WIN64)-	typedef unsigned __int64 ppu_address_t;+typedef unsigned __int64 ppu_address_t; #elif defined(__LP64__) || defined(__x86_64__)-	typedef uint64_t ppu_address_t;+typedef uint64_t ppu_address_t; #else-	typedef uint32_t ppu_address_t;+typedef uint32_t ppu_address_t; #endif //defined(_WIN64)  #endif //BT_PPU_ADDRESS_SPACE_H
bullet/BulletMultiThreaded/SequentialThreadSupport.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -31,64 +31,64 @@  ///The SequentialThreadSupport is a portable non-parallel implementation of the btThreadSupportInterface ///This is useful for debugging and porting SPU Tasks to other platforms.-class SequentialThreadSupport : public btThreadSupportInterface -{+class SequentialThreadSupport : public btThreadSupportInterface+{ private: public:-	struct	btSpuStatus-	{-		uint32_t	m_taskId;-		uint32_t	m_commandId;-		uint32_t	m_status;+struct btSpuStatus+{+uint32_t m_taskId;+uint32_t m_commandId;+uint32_t m_status; -		SequentialThreadFunc	m_userThreadFunc;+SequentialThreadFunc m_userThreadFunc; -		void*	m_userPtr; //for taskDesc etc-		void*	m_lsMemory; //initialized using SequentiallsMemorySetupFunc-	};+void* m_userPtr; //for taskDesc etc+void* m_lsMemory; //initialized using SequentiallsMemorySetupFunc+}; private:-	btAlignedObjectArray<btSpuStatus>	m_activeSpuStatus;-	btAlignedObjectArray<void*>			m_completeHandles;	+btAlignedObjectArray<btSpuStatus> m_activeSpuStatus;+btAlignedObjectArray<void*> m_completeHandles; public:-	struct	SequentialThreadConstructionInfo-	{-		SequentialThreadConstructionInfo (char* uniqueName,-									SequentialThreadFunc userThreadFunc,-									SequentiallsMemorySetupFunc	lsMemoryFunc-									)-									:m_uniqueName(uniqueName),-									m_userThreadFunc(userThreadFunc),-									m_lsMemoryFunc(lsMemoryFunc)-		{+struct SequentialThreadConstructionInfo+{+SequentialThreadConstructionInfo (const char* uniqueName,+SequentialThreadFunc userThreadFunc,+SequentiallsMemorySetupFunc lsMemoryFunc+)+:m_uniqueName(uniqueName),+m_userThreadFunc(userThreadFunc),+m_lsMemoryFunc(lsMemoryFunc)+{ -		}+} -		char*						m_uniqueName;-		SequentialThreadFunc		m_userThreadFunc;-		SequentiallsMemorySetupFunc	m_lsMemoryFunc;-	};+const char* m_uniqueName;+SequentialThreadFunc m_userThreadFunc;+SequentiallsMemorySetupFunc m_lsMemoryFunc;+}; -	SequentialThreadSupport(SequentialThreadConstructionInfo& threadConstructionInfo);-	virtual	~SequentialThreadSupport();-	void	startThreads(SequentialThreadConstructionInfo&	threadInfo);+SequentialThreadSupport(SequentialThreadConstructionInfo& threadConstructionInfo);+virtual ~SequentialThreadSupport();+void startThreads(SequentialThreadConstructionInfo& threadInfo); ///send messages to SPUs-	virtual	void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1);+virtual void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1); ///check for messages from SPUs-	virtual	void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1);+virtual void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1); ///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	virtual	void startSPU();+virtual void startSPU(); ///tell the task scheduler we are done with the SPU tasks-	virtual	void stopSPU();+virtual void stopSPU(); -	virtual void setNumTasks(int numTasks);+virtual void setNumTasks(int numTasks); -	virtual int getNumTasks() const-	{-		return 1;-	}-	virtual btBarrier*	createBarrier();+virtual int getNumTasks() const+{+return 1;+}+virtual btBarrier* createBarrier(); -	virtual btCriticalSection* createCriticalSection();-	+virtual btCriticalSection* createCriticalSection();+  }; 
bullet/BulletMultiThreaded/SpuCollisionObjectWrapper.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,20 +20,20 @@ #include "BulletCollision/CollisionDispatch/btCollisionObject.h"  ATTRIBUTE_ALIGNED16(class) SpuCollisionObjectWrapper-{+{ private: protected:-	int m_shapeType;-	float m_margin;-	ppu_address_t m_collisionObjectPtr;+int m_shapeType;+float m_margin;+ppu_address_t m_collisionObjectPtr;  public:-	SpuCollisionObjectWrapper ();+SpuCollisionObjectWrapper (); -	SpuCollisionObjectWrapper (const btCollisionObject* collisionObject);+SpuCollisionObjectWrapper (const btCollisionObject* collisionObject); -	int           getShapeType () const;-	float         getCollisionMargin () const;-	ppu_address_t getCollisionObjectPtr () const;+int getShapeType () const;+float getCollisionMargin () const;+ppu_address_t getCollisionObjectPtr () const; };  
bullet/BulletMultiThreaded/SpuCollisionTaskProcess.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -43,7 +43,7 @@ #define DEBUG_SpuCollisionTaskProcess 1  -#define CMD_GATHER_AND_PROCESS_PAIRLIST	1+#define CMD_GATHER_AND_PROCESS_PAIRLIST 1  class btCollisionObject; class btPersistentManifold;@@ -53,21 +53,21 @@ /////Task Description for SPU collision detection //struct SpuGatherAndProcessPairsTaskDesc //{-//	uint64_t	inPtr;//m_pairArrayPtr;-//	//mutex variable-//	uint32_t	m_someMutexVariableInMainMemory;+// uint64_t inPtr;//m_pairArrayPtr;+// //mutex variable+// uint32_t m_someMutexVariableInMainMemory; //-//	uint64_t	m_dispatcher;+// uint64_t m_dispatcher; //-//	uint32_t	numOnLastPage;+// uint32_t numOnLastPage; //-//	uint16_t numPages;-//	uint16_t taskId;+// uint16_t numPages;+// uint16_t taskId; //-//	struct	CollisionTask_LocalStoreMemory*	m_lsMemory; +// struct CollisionTask_LocalStoreMemory* m_lsMemory; //} //-//#if  defined(__CELLOS_LV2__) || defined(USE_LIBSPE2)+//#if defined(__CELLOS_LV2__) || defined(USE_LIBSPE2) //__attribute__ ((aligned (16))) //#endif //;@@ -76,9 +76,9 @@ ///MidphaseWorkUnitInput stores individual primitive versus mesh collision detection input, to be processed by the SPU. ATTRIBUTE_ALIGNED16(struct) SpuGatherAndProcessWorkUnitInput {-	uint64_t m_pairArrayPtr;-	int		m_startIndex;-	int		m_endIndex;+uint64_t m_pairArrayPtr;+int m_startIndex;+int m_endIndex; };  @@ -86,60 +86,60 @@  /// SpuCollisionTaskProcess handles SPU processing of collision pairs. /// Maintains a set of task buffers.-/// When the task is full, the task is issued for SPUs to process.  Contact output goes into btPersistentManifold+/// When the task is full, the task is issued for SPUs to process. Contact output goes into btPersistentManifold /// associated with each task. /// When PPU issues a task, it will look for completed task buffers /// PPU will do postprocessing, dependent on workunit output (not likely) class SpuCollisionTaskProcess-{+{ private: -  unsigned char  *m_workUnitTaskBuffers;+unsigned char *m_workUnitTaskBuffers;  -	// track task buffers that are being used, and total busy tasks-	btAlignedObjectArray<bool>	m_taskBusy;-	btAlignedObjectArray<SpuGatherAndProcessPairsTaskDesc>	m_spuGatherTaskDesc;+// track task buffers that are being used, and total busy tasks+btAlignedObjectArray<bool> m_taskBusy;+btAlignedObjectArray<SpuGatherAndProcessPairsTaskDesc> m_spuGatherTaskDesc; -	class	btThreadSupportInterface*	m_threadInterface;+class btThreadSupportInterface* m_threadInterface; -	unsigned int	m_maxNumOutstandingTasks;+unsigned int m_maxNumOutstandingTasks; -	unsigned int   m_numBusyTasks;+unsigned int m_numBusyTasks; -	// the current task and the current entry to insert a new work unit-	unsigned int   m_currentTask;-	unsigned int   m_currentPage;-	unsigned int   m_currentPageEntry;+// the current task and the current entry to insert a new work unit+unsigned int m_currentTask;+unsigned int m_currentPage;+unsigned int m_currentPageEntry; -	bool m_useEpa;+bool m_useEpa;  #ifdef DEBUG_SpuCollisionTaskProcess-	bool m_initialized;+bool m_initialized; #endif-	void issueTask2();-	//void postProcess(unsigned int taskId, int outputSize);+void issueTask2();+//void postProcess(unsigned int taskId, int outputSize);  public:-	SpuCollisionTaskProcess(btThreadSupportInterface*	threadInterface, unsigned int maxNumOutstandingTasks);-	-	~SpuCollisionTaskProcess();-	-	///call initialize in the beginning of the frame, before addCollisionPairToTask-	void initialize2(bool useEpa = false);+SpuCollisionTaskProcess(btThreadSupportInterface* threadInterface, unsigned int maxNumOutstandingTasks); -	///batch up additional work to a current task for SPU processing. When batch is full, it issues the task.-	void addWorkToTask(void* pairArrayPtr,int startIndex,int endIndex);+~SpuCollisionTaskProcess(); -	///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished-	void flush2();+///call initialize in the beginning of the frame, before addCollisionPairToTask+void initialize2(bool useEpa = false); -	/// set the maximum number of SPU tasks allocated-	void	setNumTasks(int maxNumTasks);+///batch up additional work to a current task for SPU processing. When batch is full, it issues the task.+void addWorkToTask(void* pairArrayPtr,int startIndex,int endIndex); -	int		getNumTasks() const-	{-		return m_maxNumOutstandingTasks;-	}+///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished+void flush2();++/// set the maximum number of SPU tasks allocated+void setNumTasks(int maxNumTasks);++int getNumTasks() const+{+return m_maxNumOutstandingTasks;+} };  
bullet/BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,94 +26,94 @@  //#define USE_SEPDISTANCE_UTIL 1 -/// SpuContactManifoldCollisionAlgorithm  provides contact manifold and should be processed on SPU.+/// SpuContactManifoldCollisionAlgorithm provides contact manifold and should be processed on SPU. ATTRIBUTE_ALIGNED16(class) SpuContactManifoldCollisionAlgorithm : public btCollisionAlgorithm-{-	btVector3	m_shapeDimensions0;-	btVector3	m_shapeDimensions1;-	btPersistentManifold*	m_manifoldPtr;-	int		m_shapeType0;-	int		m_shapeType1;-	float	m_collisionMargin0;-	float	m_collisionMargin1;+{ private:+btVector3 m_shapeDimensions0;+btVector3 m_shapeDimensions1;+btPersistentManifold* m_manifoldPtr;+int m_shapeType0;+int m_shapeType1;+float m_collisionMargin0;+float m_collisionMargin1; -	btCollisionObject*	m_collisionObject0;-	btCollisionObject*	m_collisionObject1;-	-	+btCollisionObject* m_collisionObject0;+btCollisionObject* m_collisionObject1; -	+++ public:-	-	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	-	SpuContactManifoldCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+++SpuContactManifoldCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); #ifdef USE_SEPDISTANCE_UTIL-	btConvexSeparatingDistanceUtil	m_sepDistance;+btConvexSeparatingDistanceUtil m_sepDistance; #endif //USE_SEPDISTANCE_UTIL -	virtual ~SpuContactManifoldCollisionAlgorithm();+virtual ~SpuContactManifoldCollisionAlgorithm(); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr)-			manifoldArray.push_back(m_manifoldPtr);-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr)+manifoldArray.push_back(m_manifoldPtr);+} -	btPersistentManifold*	getContactManifoldPtr()-	{-		return m_manifoldPtr;-	}+btPersistentManifold* getContactManifoldPtr()+{+return m_manifoldPtr;+} -	btCollisionObject*	getCollisionObject0()-	{-		return m_collisionObject0;-	}-	-	btCollisionObject*	getCollisionObject1()-	{-		return m_collisionObject1;-	}+btCollisionObject* getCollisionObject0()+{+return m_collisionObject0;+} -	int		getShapeType0() const-	{-		return m_shapeType0;-	}+btCollisionObject* getCollisionObject1()+{+return m_collisionObject1;+} -	int		getShapeType1() const-	{-		return m_shapeType1;-	}-	float	getCollisionMargin0() const-	{-		return m_collisionMargin0;-	}-	float	getCollisionMargin1() const-	{-		return m_collisionMargin1;-	}+int getShapeType0() const+{+return m_shapeType0;+} -	const btVector3&	getShapeDimensions0() const-	{-		return m_shapeDimensions0;-	}+int getShapeType1() const+{+return m_shapeType1;+}+float getCollisionMargin0() const+{+return m_collisionMargin0;+}+float getCollisionMargin1() const+{+return m_collisionMargin1;+} -	const btVector3&	getShapeDimensions1() const-	{-		return m_shapeDimensions1;-	}+const btVector3& getShapeDimensions0() const+{+return m_shapeDimensions0;+} -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(SpuContactManifoldCollisionAlgorithm));-			return new(mem) SpuContactManifoldCollisionAlgorithm(ci,body0,body1);-		}-	};+const btVector3& getShapeDimensions1() const+{+return m_shapeDimensions1;+}++struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(SpuContactManifoldCollisionAlgorithm));+return new(mem) SpuContactManifoldCollisionAlgorithm(ci,body0,body1);+}+};  }; 
bullet/BulletMultiThreaded/SpuDoubleBuffer.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,103 +24,103 @@ ///DoubleBuffer template<class T, int size> class DoubleBuffer-{+{ private: #if defined(__SPU__) || defined(USE_LIBSPE2)-	ATTRIBUTE_ALIGNED128( T m_buffer0[size] ) ;-	ATTRIBUTE_ALIGNED128( T m_buffer1[size] ) ;+ATTRIBUTE_ALIGNED128( T m_buffer0[size] ) ;+ATTRIBUTE_ALIGNED128( T m_buffer1[size] ) ; #else-	T m_buffer0[size];-	T m_buffer1[size];+T m_buffer0[size];+T m_buffer1[size]; #endif-	-	T *m_frontBuffer;-	T *m_backBuffer; -	unsigned int m_dmaTag;-	bool m_dmaPending;+T *m_frontBuffer;+T *m_backBuffer;++unsigned int m_dmaTag;+bool m_dmaPending; public:-	bool	isPending() const { return m_dmaPending;}-	DoubleBuffer();+bool isPending() const { return m_dmaPending;}+DoubleBuffer(); -	void init ();+void init (); -	// dma get and put commands-	void backBufferDmaGet(uint64_t ea, unsigned int numBytes, unsigned int tag);-	void backBufferDmaPut(uint64_t ea, unsigned int numBytes, unsigned int tag);+// dma get and put commands+void backBufferDmaGet(uint64_t ea, unsigned int numBytes, unsigned int tag);+void backBufferDmaPut(uint64_t ea, unsigned int numBytes, unsigned int tag); -	// gets pointer to a buffer-	T *getFront();-	T *getBack();+// gets pointer to a buffer+T *getFront();+T *getBack(); -	// if back buffer dma was started, wait for it to complete-	// then move back to front and vice versa-	T *swapBuffers();+// if back buffer dma was started, wait for it to complete+// then move back to front and vice versa+T *swapBuffers(); };  template<class T, int size> DoubleBuffer<T,size>::DoubleBuffer() {-	init ();+init (); }  template<class T, int size> void DoubleBuffer<T,size>::init() {-	this->m_dmaPending = false;-	this->m_frontBuffer = &this->m_buffer0[0];-	this->m_backBuffer = &this->m_buffer1[0];+this->m_dmaPending = false;+this->m_frontBuffer = &this->m_buffer0[0];+this->m_backBuffer = &this->m_buffer1[0]; }  template<class T, int size> void DoubleBuffer<T,size>::backBufferDmaGet(uint64_t ea, unsigned int numBytes, unsigned int tag) {-	m_dmaPending = true;-	m_dmaTag = tag;-	if (numBytes)-	{-		m_backBuffer = (T*)cellDmaLargeGetReadOnly(m_backBuffer, ea, numBytes, tag, 0, 0);-	}+m_dmaPending = true;+m_dmaTag = tag;+if (numBytes)+{+m_backBuffer = (T*)cellDmaLargeGetReadOnly(m_backBuffer, ea, numBytes, tag, 0, 0); }+}  template<class T, int size> void DoubleBuffer<T,size>::backBufferDmaPut(uint64_t ea, unsigned int numBytes, unsigned int tag) {-	m_dmaPending = true;-	m_dmaTag = tag;-	cellDmaLargePut(m_backBuffer, ea, numBytes, tag, 0, 0);+m_dmaPending = true;+m_dmaTag = tag;+cellDmaLargePut(m_backBuffer, ea, numBytes, tag, 0, 0); }  template<class T, int size> T * DoubleBuffer<T,size>::getFront() {-	return m_frontBuffer;+return m_frontBuffer; }  template<class T, int size> T * DoubleBuffer<T,size>::getBack() {-	return m_backBuffer;+return m_backBuffer; }  template<class T, int size> T * DoubleBuffer<T,size>::swapBuffers() {-	if (m_dmaPending)-	{-		cellDmaWaitTagStatusAll(1<<m_dmaTag);-		m_dmaPending = false;-	}+if (m_dmaPending)+{+cellDmaWaitTagStatusAll(1<<m_dmaTag);+m_dmaPending = false;+} -	T *tmp = m_backBuffer;-	m_backBuffer = m_frontBuffer;-	m_frontBuffer = tmp;+T *tmp = m_backBuffer;+m_backBuffer = m_frontBuffer;+m_frontBuffer = tmp; -	return m_frontBuffer;+return m_frontBuffer; }  #endif
bullet/BulletMultiThreaded/SpuFakeDma.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -35,58 +35,58 @@  #define DMA_TAG(xfer) (xfer + 1) #define DMA_MASK(xfer) (1 << DMA_TAG(xfer))-		-#include <spu_mfcio.h>		-		-#define DEBUG_DMA		++#include <spu_mfcio.h>++#define DEBUG_DMA #ifdef DEBUG_DMA #define dUASSERT(a,b) if (!(a)) { printf(b);} #define uintsize ppu_address_t-		-#define cellDmaLargeGet(ls, ea, size, tag, tid, rid) if (  (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \-															dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \-															dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \-															dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0))  || (size > 16), "Not naturally aligned: "); \-															dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \-															dUASSERT(size < 16384, "size too big: "); \-															dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \-	    													dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\-															printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\-															} \-															mfc_get(ls, ea, size, tag, tid, rid)-#define cellDmaGet(ls, ea, size, tag, tid, rid) if (  (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \-														dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \-														dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \-														dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0))  || (size > 16), "Not naturally aligned: "); \-														dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \-    													dUASSERT(size < 16384, "size too big: "); \-														dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \-    													dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\-    													printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\-														} \-														mfc_get(ls, ea, size, tag, tid, rid)-#define cellDmaLargePut(ls, ea, size, tag, tid, rid) if (  (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \-															dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \-															dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \-															dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0))  || (size > 16), "Not naturally aligned: "); \-															dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \-        													dUASSERT(size < 16384, "size too big: "); \-															dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \-        													dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\-    														printf("PUT %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ls,(unsigned int)ea,(unsigned int)size); \-															} \-															mfc_put(ls, ea, size, tag, tid, rid)-#define cellDmaSmallGet(ls, ea, size, tag, tid, rid) if (  (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \-																dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \-																dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \-																dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0))  || (size > 16), "Not naturally aligned: "); \-    															dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \-    															dUASSERT(size < 16384, "size too big: "); \-    															dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \-    	    													dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\-    															printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\-																} \-																mfc_get(ls, ea, size, tag, tid, rid)++#define cellDmaLargeGet(ls, ea, size, tag, tid, rid) if ( (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \+dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \+dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \+dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0)) || (size > 16), "Not naturally aligned: "); \+dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \+dUASSERT(size < 16384, "size too big: "); \+dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \+dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\+printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\+} \+mfc_get(ls, ea, size, tag, tid, rid)+#define cellDmaGet(ls, ea, size, tag, tid, rid) if ( (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \+dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \+dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \+dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0)) || (size > 16), "Not naturally aligned: "); \+dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \+dUASSERT(size < 16384, "size too big: "); \+dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \+dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\+printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\+} \+mfc_get(ls, ea, size, tag, tid, rid)+#define cellDmaLargePut(ls, ea, size, tag, tid, rid) if ( (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \+dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \+dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \+dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0)) || (size > 16), "Not naturally aligned: "); \+dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \+dUASSERT(size < 16384, "size too big: "); \+dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \+dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\+printf("PUT %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ls,(unsigned int)ea,(unsigned int)size); \+} \+mfc_put(ls, ea, size, tag, tid, rid)+#define cellDmaSmallGet(ls, ea, size, tag, tid, rid) if ( (((uintsize)ls%16) != ((uintsize)ea%16)) || ((((uintsize)ea%16) || ((uintsize)ls%16)) && (( ((uintsize)ls%16) != ((uintsize)size%16) ) || ( ((uintsize)ea%16) != ((uintsize)size%16) ) ) ) || ( ((uintsize)size%16) && ((uintsize)size!=1) && ((uintsize)size!=2) && ((uintsize)size!=4) && ((uintsize)size!=8) ) || (size >= 16384) || !(uintsize)ls || !(uintsize)ea) { \+dUASSERT( (((uintsize)ea % 16) == 0) || (size < 16), "XDR Address not aligned: "); \+dUASSERT( (((uintsize)ls % 16) == 0) || (size < 16), "LS Address not aligned: "); \+dUASSERT( ((((uintsize)ls % size) == 0) && (((uintsize)ea % size) == 0)) || (size > 16), "Not naturally aligned: "); \+dUASSERT((size == 1) || (size == 2) || (size == 4) || (size == 8) || ((size % 16) == 0), "size not a multiple of 16byte: "); \+dUASSERT(size < 16384, "size too big: "); \+dUASSERT( ((uintsize)ea%16)==((uintsize)ls%16), "wrong Quadword alignment of LS and EA: "); \+dUASSERT(ea != 0, "Nullpointer EA: "); dUASSERT(ls != 0, "Nullpointer LS: ");\+printf("GET %s:%d from: 0x%x, to: 0x%x - %d bytes\n", __FILE__, __LINE__, (unsigned int)ea,(unsigned int)ls,(unsigned int)size);\+} \+mfc_get(ls, ea, size, tag, tid, rid) #define cellDmaWaitTagStatusAll(ignore) mfc_write_tag_mask(ignore) ; mfc_read_tag_status_all()  #else@@ -97,13 +97,13 @@ #define cellDmaWaitTagStatusAll(ignore) mfc_write_tag_mask(ignore) ; mfc_read_tag_status_all() #endif // DEBUG_DMA -		-		-		-		-		-		-		+++++++ #endif // USE_LIBSPE2 #else // !__SPU__ //Simulate DMA using memcpy or direct access on non-CELL platforms that don't have DMAs and SPUs (Win32, Mac, Linux etc)@@ -112,24 +112,24 @@ #define DMA_TAG(a) (a) #define DMA_MASK(a) (a) -		/// cellDmaLargeGet Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)-		int	cellDmaLargeGet(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);-		int	cellDmaGet(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);-		/// cellDmaLargePut Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)-		int cellDmaLargePut(const void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);-		/// cellDmaWaitTagStatusAll Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)-		void	cellDmaWaitTagStatusAll(int ignore);+/// cellDmaLargeGet Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)+int cellDmaLargeGet(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+int cellDmaGet(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+/// cellDmaLargePut Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)+int cellDmaLargePut(const void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+/// cellDmaWaitTagStatusAll Win32 replacements for Cell DMA to allow simulating most of the SPU code (just memcpy)+void cellDmaWaitTagStatusAll(int ignore);   #endif //__CELLOS_LV2__  ///stallingUnalignedDmaSmallGet internally uses DMA_TAG(1)-int	stallingUnalignedDmaSmallGet(void *ls, uint64_t ea, uint32_t size);+int stallingUnalignedDmaSmallGet(void *ls, uint64_t ea, uint32_t size);  -void*	cellDmaLargeGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);-void*	cellDmaGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);-void*	cellDmaSmallGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+void* cellDmaLargeGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+void* cellDmaGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);+void* cellDmaSmallGetReadOnly(void *ls, uint64_t ea, uint32_t size, uint32_t tag, uint32_t tid, uint32_t rid);   #endif //BT_FAKE_DMA_H
bullet/BulletMultiThreaded/SpuGatheringCollisionDispatcher.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,7 +18,7 @@ #include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"  -///Tuning value to optimized SPU utilization +///Tuning value to optimized SPU utilization ///Too small value means Task overhead is large compared to computation (too fine granularity) ///Too big value might render some SPUs are idle, while a few other SPUs are doing all work. //#define SPU_BATCHSIZE_BROADPHASE_PAIRS 8@@ -36,32 +36,32 @@ ///SpuGatheringCollisionDispatcher can use SPU to gather and calculate collision detection ///Time of Impact, Closest Points and Penetration Depth. class SpuGatheringCollisionDispatcher : public btCollisionDispatcher-{-	-	SpuCollisionTaskProcess*	m_spuCollisionTaskProcess;-	+{ private:++SpuCollisionTaskProcess* m_spuCollisionTaskProcess;+ protected: -	class	btThreadSupportInterface*	m_threadInterface;+class btThreadSupportInterface* m_threadInterface; -	unsigned int	m_maxNumOutstandingTasks;-	+unsigned int m_maxNumOutstandingTasks; + public: -	//can be used by SPU collision algorithms	-	SpuCollisionTaskProcess*	getSpuCollisionTaskProcess()-	{-			return m_spuCollisionTaskProcess;-	}-	-	SpuGatheringCollisionDispatcher (class	btThreadSupportInterface*	threadInterface, unsigned int	maxNumOutstandingTasks,btCollisionConfiguration* collisionConfiguration);-	-	virtual ~SpuGatheringCollisionDispatcher();+//can be used by SPU collision algorithms+SpuCollisionTaskProcess* getSpuCollisionTaskProcess()+{+return m_spuCollisionTaskProcess;+} -	bool	supportsDispatchPairOnSpu(int proxyType0,int proxyType1);+SpuGatheringCollisionDispatcher (class btThreadSupportInterface* threadInterface, unsigned int maxNumOutstandingTasks,btCollisionConfiguration* collisionConfiguration); -	virtual void	dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher) ;+virtual ~SpuGatheringCollisionDispatcher();++bool supportsDispatchPairOnSpu(int proxyType0,int proxyType1);++virtual void dispatchAllCollisionPairs(btOverlappingPairCache* pairCache,const btDispatcherInfo& dispatchInfo,btDispatcher* dispatcher) ;  }; 
bullet/BulletMultiThreaded/SpuLibspe2Support.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -31,34 +31,34 @@  enum {-	Spu_Mailbox_Event_Nothing = 0,-	Spu_Mailbox_Event_Task = 1,-	Spu_Mailbox_Event_Shutdown = 2,-	-	Spu_Mailbox_Event_ForceDword = 0xFFFFFFFF-	+Spu_Mailbox_Event_Nothing = 0,+Spu_Mailbox_Event_Task = 1,+Spu_Mailbox_Event_Shutdown = 2,++Spu_Mailbox_Event_ForceDword = 0xFFFFFFFF+ };  enum {-	Spu_Status_Free = 0,-	Spu_Status_Occupied = 1,-	Spu_Status_Startup = 2,-	-	Spu_Status_ForceDword = 0xFFFFFFFF-	+Spu_Status_Free = 0,+Spu_Status_Occupied = 1,+Spu_Status_Startup = 2,++Spu_Status_ForceDword = 0xFFFFFFFF+ };   struct btSpuStatus {-	uint32_t	m_taskId;-	uint32_t	m_commandId;-	uint32_t	m_status;+uint32_t m_taskId;+uint32_t m_commandId;+uint32_t m_status; -	addr64 m_taskDesc;-	addr64 m_lsMemory;-	+addr64 m_taskDesc;+addr64 m_lsMemory;+ } __attribute__ ((aligned (128))) ;@@ -75,97 +75,97 @@ #include <pthread.h> #include <sched.h> -#define MAX_SPUS 4 +#define MAX_SPUS 4 -typedef struct ppu_pthread_data +typedef struct ppu_pthread_data {-	spe_context_ptr_t context;-	pthread_t pthread;-	unsigned int entry;-	unsigned int flags;-	addr64 argp;-	addr64 envp;-	spe_stop_info_t stopinfo;+spe_context_ptr_t context;+pthread_t pthread;+unsigned int entry;+unsigned int flags;+addr64 argp;+addr64 envp;+spe_stop_info_t stopinfo; } ppu_pthread_data_t;   static void *ppu_pthread_function(void *arg) {-    ppu_pthread_data_t * datap = (ppu_pthread_data_t *)arg;-    /*-    int rc;-    do -    {*/-        spe_context_run(datap->context, &datap->entry, datap->flags, datap->argp.p, datap->envp.p, &datap->stopinfo);-        if (datap->stopinfo.stop_reason == SPE_EXIT) -        {-           if (datap->stopinfo.result.spe_exit_code != 0) -           {-             perror("FAILED: SPE returned a non-zero exit status: \n");-             exit(1);-           }-         } -        else -         {-           perror("FAILED: SPE abnormally terminated\n");-           exit(1);-         }-        -        -    //} while (rc > 0); // loop until exit or error, and while any stop & signal-    pthread_exit(NULL);+ppu_pthread_data_t * datap = (ppu_pthread_data_t *)arg;+/*+int rc;+do+{*/+spe_context_run(datap->context, &datap->entry, datap->flags, datap->argp.p, datap->envp.p, &datap->stopinfo);+if (datap->stopinfo.stop_reason == SPE_EXIT)+{+if (datap->stopinfo.result.spe_exit_code != 0)+{+perror("FAILED: SPE returned a non-zero exit status: \n");+exit(1); }+}+else+{+perror("FAILED: SPE abnormally terminated\n");+exit(1);+}  +//} while (rc > 0); // loop until exit or error, and while any stop & signal+pthread_exit(NULL);+}    ++ ///SpuLibspe2Support helps to initialize/shutdown libspe2, start/stop SPU tasks and communication class SpuLibspe2Support : public btThreadSupportInterface-{+{ private: -	btAlignedObjectArray<btSpuStatus>	m_activeSpuStatus;-	+btAlignedObjectArray<btSpuStatus> m_activeSpuStatus;+ public:-	//Setup and initialize SPU/CELL/Libspe2-	SpuLibspe2Support(spe_program_handle_t *speprog,int numThreads);-	-	// SPE program handle ptr.-	spe_program_handle_t *program;-	-	// SPE program data-	ppu_pthread_data_t data[MAX_SPUS];-	-	//cleanup/shutdown Libspe2-	~SpuLibspe2Support();+//Setup and initialize SPU/CELL/Libspe2+SpuLibspe2Support(spe_program_handle_t *speprog,int numThreads); -	///send messages to SPUs-	void sendRequest(uint32_t uiCommand, uint32_t uiArgument0, uint32_t uiArgument1=0);+// SPE program handle ptr.+spe_program_handle_t *program; -	//check for messages from SPUs-	void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1);+// SPE program data+ppu_pthread_data_t data[MAX_SPUS]; -	//start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	virtual void startSPU();+//cleanup/shutdown Libspe2+~SpuLibspe2Support(); -	//tell the task scheduler we are done with the SPU tasks-	virtual void stopSPU();+///send messages to SPUs+void sendRequest(uint32_t uiCommand, uint32_t uiArgument0, uint32_t uiArgument1=0); -	virtual void setNumTasks(int numTasks)-	{-		//changing the number of tasks after initialization is not implemented (yet)-	}+//check for messages from SPUs+void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1); +//start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)+virtual void startSPU();++//tell the task scheduler we are done with the SPU tasks+virtual void stopSPU();++virtual void setNumTasks(int numTasks)+{+//changing the number of tasks after initialization is not implemented (yet)+}+ private:-	-	///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	void internal_startSPU(); +///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)+void internal_startSPU(); -	-	-	int numThreads;++++int numThreads;  }; 
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2006, 2008 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2006, 2008 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -37,52 +37,52 @@ //---------------------------------------------------------------------------- ///The Box is an internal class used by the boxBoxDistance calculation. class Box-{+{ private: public:-	vmVector3 mHalf;+vmVector3 mHalf; -	inline Box()-	{}-	inline Box(PE_REF(vmVector3) half_);-	inline Box(float hx, float hy, float hz);+inline Box()+{}+inline Box(PE_REF(vmVector3) half_);+inline Box(float hx, float hy, float hz); -	inline void Set(PE_REF(vmVector3) half_);-	inline void Set(float hx, float hy, float hz);+inline void Set(PE_REF(vmVector3) half_);+inline void Set(float hx, float hy, float hz); -	inline vmVector3 GetAABB(const vmMatrix3& rotation) const;+inline vmVector3 GetAABB(const vmMatrix3& rotation) const; };  inline Box::Box(PE_REF(vmVector3) half_) {-	Set(half_);+Set(half_); }  inline Box::Box(float hx, float hy, float hz) {-	Set(hx, hy, hz);+Set(hx, hy, hz); }  inline void Box::Set(PE_REF(vmVector3) half_) {-	mHalf = half_;+mHalf = half_; }  inline void Box::Set(float hx, float hy, float hz) {-	mHalf = vmVector3(hx, hy, hz);+mHalf = vmVector3(hx, hy, hz); }  inline vmVector3 Box::GetAABB(const vmMatrix3& rotation) const {-	return absPerElem(rotation) * mHalf;+return absPerElem(rotation) * mHalf; }  //-------------------------------------------------------------------------------------------------@@ -91,77 +91,77 @@  ///The BoxPoint class is an internally used class to contain feature information for boxBoxDistance calculation. class BoxPoint-{+{ private: public:-	BoxPoint() : localPoint(0.0f) {}+BoxPoint() : localPoint(0.0f) {} -	vmPoint3      localPoint;-	FeatureType featureType;-	int         featureIdx;+vmPoint3 localPoint;+FeatureType featureType;+int featureIdx; -	inline void setVertexFeature(int plusX, int plusY, int plusZ);-	inline void setEdgeFeature(int dim0, int plus0, int dim1, int plus1);-	inline void setFaceFeature(int dim, int plus);+inline void setVertexFeature(int plusX, int plusY, int plusZ);+inline void setEdgeFeature(int dim0, int plus0, int dim1, int plus1);+inline void setFaceFeature(int dim, int plus); -	inline void getVertexFeature(int & plusX, int & plusY, int & plusZ) const;-	inline void getEdgeFeature(int & dim0, int & plus0, int & dim1, int & plus1) const;-	inline void getFaceFeature(int & dim, int & plus) const;+inline void getVertexFeature(int & plusX, int & plusY, int & plusZ) const;+inline void getEdgeFeature(int & dim0, int & plus0, int & dim1, int & plus1) const;+inline void getFaceFeature(int & dim, int & plus) const; };  inline void BoxPoint::setVertexFeature(int plusX, int plusY, int plusZ) {-	featureType = V;-	featureIdx = plusX << 2 | plusY << 1 | plusZ;+featureType = V;+featureIdx = plusX << 2 | plusY << 1 | plusZ; }  inline void BoxPoint::setEdgeFeature(int dim0, int plus0, int dim1, int plus1) {-	featureType = E;+featureType = E; -	if (dim0 > dim1) {-		featureIdx = plus1 << 5 | dim1 << 3 | plus0 << 2 | dim0;-	} else {-		featureIdx = plus0 << 5 | dim0 << 3 | plus1 << 2 | dim1;-	}+if (dim0 > dim1) {+featureIdx = plus1 << 5 | dim1 << 3 | plus0 << 2 | dim0;+} else {+featureIdx = plus0 << 5 | dim0 << 3 | plus1 << 2 | dim1; }+}  inline void BoxPoint::setFaceFeature(int dim, int plus) {-	featureType = F;-	featureIdx = plus << 2 | dim;+featureType = F;+featureIdx = plus << 2 | dim; }  inline void BoxPoint::getVertexFeature(int & plusX, int & plusY, int & plusZ) const {-	plusX = featureIdx >> 2;-	plusY = featureIdx >> 1 & 1;-	plusZ = featureIdx & 1;+plusX = featureIdx >> 2;+plusY = featureIdx >> 1 & 1;+plusZ = featureIdx & 1; }  inline void BoxPoint::getEdgeFeature(int & dim0, int & plus0, int & dim1, int & plus1) const {-	plus0 = featureIdx >> 5;-	dim0 = featureIdx >> 3 & 3;-	plus1 = featureIdx >> 2 & 1;-	dim1 = featureIdx & 3;+plus0 = featureIdx >> 5;+dim0 = featureIdx >> 3 & 3;+plus1 = featureIdx >> 2 & 1;+dim1 = featureIdx & 3; }  inline void BoxPoint::getFaceFeature(int & dim, int & plus) const {-	plus = featureIdx >> 2;-	dim = featureIdx & 3;+plus = featureIdx >> 2;+dim = featureIdx & 3; }  #endif /* __BOX_H__ */
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -37,47 +37,47 @@ #define MAX_SPU_COMPOUND_SUBSHAPES 16 //@fallback on PPU if compound has more than MAX_SPU_COMPOUND_SUBSHAPES child shapes #define MAX_SHAPE_SIZE 256 //@todo: assert on this -ATTRIBUTE_ALIGNED16(struct)	SpuConvexPolyhedronVertexData+ATTRIBUTE_ALIGNED16(struct) SpuConvexPolyhedronVertexData {-	void*	gSpuConvexShapePtr;-	btVector3* gConvexPoints;-	int gNumConvexPoints;-	int unused;-	ATTRIBUTE_ALIGNED16(btVector3 g_convexPointBuffer[MAX_NUM_SPU_CONVEX_POINTS]);+void* gSpuConvexShapePtr;+btVector3* gConvexPoints;+int gNumConvexPoints;+int unused;+ATTRIBUTE_ALIGNED16(btVector3 g_convexPointBuffer[MAX_NUM_SPU_CONVEX_POINTS]); };    ATTRIBUTE_ALIGNED16(struct) CollisionShape_LocalStoreMemory {-	ATTRIBUTE_ALIGNED16(char collisionShape[MAX_SHAPE_SIZE]);+ATTRIBUTE_ALIGNED16(char collisionShape[MAX_SHAPE_SIZE]); };  ATTRIBUTE_ALIGNED16(struct) CompoundShape_LocalStoreMemory {-	// Compound data+// Compound data -	ATTRIBUTE_ALIGNED16(btCompoundShapeChild gSubshapes[MAX_SPU_COMPOUND_SUBSHAPES]);-	ATTRIBUTE_ALIGNED16(char gSubshapeShape[MAX_SPU_COMPOUND_SUBSHAPES][MAX_SHAPE_SIZE]);+ATTRIBUTE_ALIGNED16(btCompoundShapeChild gSubshapes[MAX_SPU_COMPOUND_SUBSHAPES]);+ATTRIBUTE_ALIGNED16(char gSubshapeShape[MAX_SPU_COMPOUND_SUBSHAPES][MAX_SHAPE_SIZE]); };  ATTRIBUTE_ALIGNED16(struct) bvhMeshShape_LocalStoreMemory {-	//ATTRIBUTE_ALIGNED16(btOptimizedBvh	gOptimizedBvh);-	ATTRIBUTE_ALIGNED16(char gOptimizedBvh[sizeof(btOptimizedBvh)+16]);-	btOptimizedBvh*	getOptimizedBvh()-	{-		return (btOptimizedBvh*) gOptimizedBvh;-	}+//ATTRIBUTE_ALIGNED16(btOptimizedBvh gOptimizedBvh);+ATTRIBUTE_ALIGNED16(char gOptimizedBvh[sizeof(btOptimizedBvh)+16]);+btOptimizedBvh* getOptimizedBvh()+{+return (btOptimizedBvh*) gOptimizedBvh;+} -	ATTRIBUTE_ALIGNED16(btTriangleIndexVertexArray	gTriangleMeshInterfaceStorage);-	btTriangleIndexVertexArray*	gTriangleMeshInterfacePtr;-	///only a single mesh part for now, we can add support for multiple parts, but quantized trees don't support this at the moment -	ATTRIBUTE_ALIGNED16(btIndexedMesh	gIndexMesh);-	#define MAX_SPU_SUBTREE_HEADERS 32-	//1024-	ATTRIBUTE_ALIGNED16(btBvhSubtreeInfo	gSubtreeHeaders[MAX_SPU_SUBTREE_HEADERS]);-	ATTRIBUTE_ALIGNED16(btQuantizedBvhNode	gSubtreeNodes[MAX_SUBTREE_SIZE_IN_BYTES/sizeof(btQuantizedBvhNode)]);+ATTRIBUTE_ALIGNED16(btTriangleIndexVertexArray gTriangleMeshInterfaceStorage);+btTriangleIndexVertexArray* gTriangleMeshInterfacePtr;+///only a single mesh part for now, we can add support for multiple parts, but quantized trees don't support this at the moment+ATTRIBUTE_ALIGNED16(btIndexedMesh gIndexMesh);+#define MAX_SPU_SUBTREE_HEADERS 32+//1024+ATTRIBUTE_ALIGNED16(btBvhSubtreeInfo gSubtreeHeaders[MAX_SPU_SUBTREE_HEADERS]);+ATTRIBUTE_ALIGNED16(btQuantizedBvhNode gSubtreeNodes[MAX_SUBTREE_SIZE_IN_BYTES/sizeof(btQuantizedBvhNode)]); };  @@ -85,9 +85,9 @@ void dmaBvhShapeData (bvhMeshShape_LocalStoreMemory* bvhMeshShape, btBvhTriangleMeshShape* triMeshShape); void dmaBvhIndexedMesh (btIndexedMesh* IndexMesh, IndexedMeshArray& indexArray, int index, uint32_t dmaTag); void dmaBvhSubTreeHeaders (btBvhSubtreeInfo* subTreeHeaders, ppu_address_t subTreePtr, int batchSize, uint32_t dmaTag);-void dmaBvhSubTreeNodes (btQuantizedBvhNode* nodes, const btBvhSubtreeInfo& subtree, QuantizedNodeArray&	nodeArray, int dmaTag);+void dmaBvhSubTreeNodes (btQuantizedBvhNode* nodes, const btBvhSubtreeInfo& subtree, QuantizedNodeArray& nodeArray, int dmaTag); -int  getShapeTypeSize(int shapeType);+int getShapeTypeSize(int shapeType); void dmaConvexVertexData (SpuConvexPolyhedronVertexData* convexVertexData, btConvexHullShape* convexShapeSPU); void dmaCollisionShape (void* collisionShapeLocation, ppu_address_t collisionShapePtr, uint32_t dmaTag, int shapeType); void dmaCompoundShapeInfo (CompoundShape_LocalStoreMemory* compoundShapeLocation, btCompoundShape* spuCompoundShape, uint32_t dmaTag);@@ -97,32 +97,32 @@ #define USE_BRANCHFREE_TEST 1 #ifdef USE_BRANCHFREE_TEST SIMD_FORCE_INLINE unsigned int spuTestQuantizedAabbAgainstQuantizedAabb(unsigned short int* aabbMin1,unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)-{		+{ #if defined(__CELLOS_LV2__) && defined (__SPU__)-	vec_ushort8 vecMin = {aabbMin1[0],aabbMin2[0],aabbMin1[2],aabbMin2[2],aabbMin1[1],aabbMin2[1],0,0};-	vec_ushort8 vecMax = {aabbMax2[0],aabbMax1[0],aabbMax2[2],aabbMax1[2],aabbMax2[1],aabbMax1[1],0,0};-	vec_ushort8 isGt = spu_cmpgt(vecMin,vecMax);-	return spu_extract(spu_gather(isGt),0)==0;+vec_ushort8 vecMin = {aabbMin1[0],aabbMin2[0],aabbMin1[2],aabbMin2[2],aabbMin1[1],aabbMin2[1],0,0};+vec_ushort8 vecMax = {aabbMax2[0],aabbMax1[0],aabbMax2[2],aabbMax1[2],aabbMax2[1],aabbMax1[1],0,0};+vec_ushort8 isGt = spu_cmpgt(vecMin,vecMax);+return spu_extract(spu_gather(isGt),0)==0;  #else-	return btSelect((unsigned)((aabbMin1[0] <= aabbMax2[0]) & (aabbMax1[0] >= aabbMin2[0])-		& (aabbMin1[2] <= aabbMax2[2]) & (aabbMax1[2] >= aabbMin2[2])-		& (aabbMin1[1] <= aabbMax2[1]) & (aabbMax1[1] >= aabbMin2[1])),-		1, 0);+return btSelect((unsigned)((aabbMin1[0] <= aabbMax2[0]) & (aabbMax1[0] >= aabbMin2[0])+& (aabbMin1[2] <= aabbMax2[2]) & (aabbMax1[2] >= aabbMin2[2])+& (aabbMin1[1] <= aabbMax2[1]) & (aabbMax1[1] >= aabbMin2[1])),+1, 0); #endif } #else -SIMD_FORCE_INLINE unsigned int spuTestQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int*  aabbMax2)+SIMD_FORCE_INLINE unsigned int spuTestQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2) {-	unsigned int overlap = 1;-	overlap = (aabbMin1[0] > aabbMax2[0] || aabbMax1[0] < aabbMin2[0]) ? 0 : overlap;-	overlap = (aabbMin1[2] > aabbMax2[2] || aabbMax1[2] < aabbMin2[2]) ? 0 : overlap;-	overlap = (aabbMin1[1] > aabbMax2[1] || aabbMax1[1] < aabbMin2[1]) ? 0 : overlap;-	return overlap;+unsigned int overlap = 1;+overlap = (aabbMin1[0] > aabbMax2[0] || aabbMax1[0] < aabbMin2[0]) ? 0 : overlap;+overlap = (aabbMin1[2] > aabbMax2[2] || aabbMax1[2] < aabbMin2[2]) ? 0 : overlap;+overlap = (aabbMin1[1] > aabbMax2[1] || aabbMax1[1] < aabbMin2[1]) ? 0 : overlap;+return overlap; } #endif -void	spuWalkStacklessQuantizedTree(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax,const btQuantizedBvhNode* rootNode,int startNodeIndex,int endNodeIndex);+void spuWalkStacklessQuantizedTree(btNodeOverlapCallback* nodeCallback,unsigned short int* quantizedQueryAabbMin,unsigned short int* quantizedQueryAabbMax,const btQuantizedBvhNode* rootNode,int startNodeIndex,int endNodeIndex);  #endif
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -37,67 +37,67 @@  struct SpuCollisionPairInput {-	ppu_address_t m_collisionShapes[2];-	btCollisionShape*	m_spuCollisionShapes[2];+ppu_address_t m_collisionShapes[2];+btCollisionShape* m_spuCollisionShapes[2]; -	ppu_address_t m_persistentManifoldPtr;-	btVector3	m_primitiveDimensions0;-	btVector3	m_primitiveDimensions1;-	int		m_shapeType0;-	int		m_shapeType1;	-	float	m_collisionMargin0;-	float	m_collisionMargin1;+ppu_address_t m_persistentManifoldPtr;+btVector3 m_primitiveDimensions0;+btVector3 m_primitiveDimensions1;+int m_shapeType0;+int m_shapeType1;+float m_collisionMargin0;+float m_collisionMargin1; -	btTransform	m_worldTransform0;-	btTransform m_worldTransform1;-	-	bool	m_isSwapped;-	bool    m_useEpa;+btTransform m_worldTransform0;+btTransform m_worldTransform1;++bool m_isSwapped;+bool m_useEpa; };   struct SpuClosestPointInput : public btDiscreteCollisionDetectorInterface::ClosestPointInput {-	struct SpuConvexPolyhedronVertexData* m_convexVertexData[2];+struct SpuConvexPolyhedronVertexData* m_convexVertexData[2]; };  ///SpuContactResult exports the contact points using double-buffered DMA transfers, only when needed ///So when an existing contact point is duplicated, no transfer/refresh is performed. class SpuContactResult : public btDiscreteCollisionDetectorInterface::Result-{-    btTransform		m_rootWorldTransform0;-	btTransform		m_rootWorldTransform1;-	ppu_address_t	m_manifoldAddress;+{ private:+btTransform m_rootWorldTransform0;+btTransform m_rootWorldTransform1;+ppu_address_t m_manifoldAddress; -    btPersistentManifold* m_spuManifold;-	bool m_RequiresWriteBack;-	btScalar	m_combinedFriction;-	btScalar	m_combinedRestitution;-	-	bool m_isSwapped;+btPersistentManifold* m_spuManifold;+bool m_RequiresWriteBack;+btScalar m_combinedFriction;+btScalar m_combinedRestitution; -	DoubleBuffer<btPersistentManifold, 1> g_manifoldDmaExport;+bool m_isSwapped; -	public:-		SpuContactResult();-		virtual ~SpuContactResult();+DoubleBuffer<btPersistentManifold, 1> g_manifoldDmaExport; -		btPersistentManifold*	GetSpuManifold() const-		{-			return m_spuManifold;-		}+public:+SpuContactResult();+virtual ~SpuContactResult(); -		virtual void setShapeIdentifiersA(int partId0,int index0);-		virtual void setShapeIdentifiersB(int partId1,int index1);+btPersistentManifold* GetSpuManifold() const+{+return m_spuManifold;+} -		void	setContactInfo(btPersistentManifold* spuManifold, ppu_address_t	manifoldAddress,const btTransform& worldTrans0,const btTransform& worldTrans1, btScalar restitution0,btScalar restitution1, btScalar friction0,btScalar friction01, bool isSwapped);+virtual void setShapeIdentifiersA(int partId0,int index0);+virtual void setShapeIdentifiersB(int partId1,int index1); +void setContactInfo(btPersistentManifold* spuManifold, ppu_address_t manifoldAddress,const btTransform& worldTrans0,const btTransform& worldTrans1, btScalar restitution0,btScalar restitution1, btScalar friction0,btScalar friction01, bool isSwapped); -        void writeDoubleBufferedManifold(btPersistentManifold* lsManifold, btPersistentManifold* mmManifold); -        virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth);+void writeDoubleBufferedManifold(btPersistentManifold* lsManifold, btPersistentManifold* mmManifold); -		void flush();+virtual void addContactPoint(const btVector3& normalOnBInWorld,const btVector3& pointInWorld,btScalar depth);++void flush(); };  
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h view
@@ -1,12 +1,12 @@  /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,18 +29,18 @@  ///ConvexPenetrationDepthSolver provides an interface for penetration depth calculation. class SpuConvexPenetrationDepthSolver : public btConvexPenetrationDepthSolver-{-public:	-	-	virtual ~SpuConvexPenetrationDepthSolver() {};-	virtual bool calcPenDepth( SpuVoronoiSimplexSolver& simplexSolver,-	        void* convexA,void* convexB,int shapeTypeA, int shapeTypeB, float marginA, float marginB,-            btTransform& transA,const btTransform& transB,-			btVector3& v, btVector3& pa, btVector3& pb,-			class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc,-			struct SpuConvexPolyhedronVertexData* convexVertexDataA,-			struct SpuConvexPolyhedronVertexData* convexVertexDataB-			) const = 0;+{ private:+public:++virtual ~SpuConvexPenetrationDepthSolver() {};+virtual bool calcPenDepth( SpuVoronoiSimplexSolver& simplexSolver,+void* convexA,void* convexB,int shapeTypeA, int shapeTypeB, float marginA, float marginB,+btTransform& transA,const btTransform& transB,+btVector3& v, btVector3& pa, btVector3& pb,+class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc,+struct SpuConvexPolyhedronVertexData* convexVertexDataA,+struct SpuConvexPolyhedronVertexData* convexVertexDataB+) const = 0;   };
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,32 +21,32 @@   ///Task Description for SPU collision detection-struct SpuGatherAndProcessPairsTaskDesc +struct SpuGatherAndProcessPairsTaskDesc {-	ppu_address_t	m_inPairPtr;//m_pairArrayPtr;-	//mutex variable-	uint32_t	m_someMutexVariableInMainMemory;+ppu_address_t m_inPairPtr;//m_pairArrayPtr;+//mutex variable+uint32_t m_someMutexVariableInMainMemory; -	ppu_address_t	m_dispatcher;+ppu_address_t m_dispatcher; -	uint32_t	numOnLastPage;+uint32_t numOnLastPage; -	uint16_t numPages;-	uint16_t taskId;-	bool m_useEpa;+uint16_t numPages;+uint16_t taskId;+bool m_useEpa; -	struct	CollisionTask_LocalStoreMemory*	m_lsMemory; +struct CollisionTask_LocalStoreMemory* m_lsMemory; } -#if  defined(__CELLOS_LV2__) || defined(USE_LIBSPE2)+#if defined(__CELLOS_LV2__) || defined(USE_LIBSPE2) __attribute__ ((aligned (128))) #endif ;  -void	processCollisionTask(void* userPtr, void* lsMemory);+void processCollisionTask(void* userPtr, void* lsMemory); -void*	createCollisionLocalStoreMemory();+void* createCollisionLocalStoreMemory();   #if defined(USE_LIBSPE2) && defined(__SPU__)@@ -61,76 +61,76 @@  int main(unsigned long long speid, addr64 argp, addr64 envp) {-	printf("SPU: hello \n");-	-	ATTRIBUTE_ALIGNED128(btSpuStatus status);-	ATTRIBUTE_ALIGNED16( SpuGatherAndProcessPairsTaskDesc taskDesc ) ;-	unsigned int received_message = Spu_Mailbox_Event_Nothing;-    bool shutdown = false;+printf("SPU: hello \n"); -	cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));+ATTRIBUTE_ALIGNED128(btSpuStatus status);+ATTRIBUTE_ALIGNED16( SpuGatherAndProcessPairsTaskDesc taskDesc ) ;+unsigned int received_message = Spu_Mailbox_Event_Nothing;+bool shutdown = false; -	status.m_status = Spu_Status_Free;-	status.m_lsMemory.p = createCollisionLocalStoreMemory();+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -	cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));-	-	-	while ( btLikely( !shutdown ) )-	{-		-		received_message = spu_read_in_mbox();-		-		if( btLikely( received_message == Spu_Mailbox_Event_Task ))-		{+status.m_status = Spu_Status_Free;+status.m_lsMemory.p = createCollisionLocalStoreMemory();++cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+++while ( btLikely( !shutdown ) )+{++received_message = spu_read_in_mbox();++if( btLikely( received_message == Spu_Mailbox_Event_Task ))+{ #ifdef DEBUG_LIBSPE2_SPU_TASK-			printf("SPU: received Spu_Mailbox_Event_Task\n");+printf("SPU: received Spu_Mailbox_Event_Task\n"); #endif //DEBUG_LIBSPE2_SPU_TASK -			// refresh the status-			cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-		-			btAssert(status.m_status==Spu_Status_Occupied);-			-			cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuGatherAndProcessPairsTaskDesc), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-#ifdef DEBUG_LIBSPE2_SPU_TASK		-			printf("SPU:processCollisionTask\n");	+// refresh the status+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));++btAssert(status.m_status==Spu_Status_Occupied);++cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuGatherAndProcessPairsTaskDesc), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+#ifdef DEBUG_LIBSPE2_SPU_TASK+printf("SPU:processCollisionTask\n"); #endif //DEBUG_LIBSPE2_SPU_TASK-			processCollisionTask((void*)&taskDesc, taskDesc.m_lsMemory);-			+processCollisionTask((void*)&taskDesc, taskDesc.m_lsMemory);+ #ifdef DEBUG_LIBSPE2_SPU_TASK-			printf("SPU:finished processCollisionTask\n");+printf("SPU:finished processCollisionTask\n"); #endif //DEBUG_LIBSPE2_SPU_TASK-		}-		else-		{+}+else+{ #ifdef DEBUG_LIBSPE2_SPU_TASK-			printf("SPU: received ShutDown\n");+printf("SPU: received ShutDown\n"); #endif //DEBUG_LIBSPE2_SPU_TASK-			if( btLikely( received_message == Spu_Mailbox_Event_Shutdown ) )-			{-				shutdown = true;-			}-			else-			{-				//printf("SPU - Sth. recieved\n");-			}-		}+if( btLikely( received_message == Spu_Mailbox_Event_Shutdown ) )+{+shutdown = true;+}+else+{+//printf("SPU - Sth. recieved\n");+}+} -		// set to status free and wait for next task-		status.m_status = Spu_Status_Free;-		cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-		cellDmaWaitTagStatusAll(DMA_MASK(3));		-				-		-  	}+// set to status free and wait for next task+status.m_status = Spu_Status_Free;+cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -	printf("SPU: shutdown\n");-  	return 0;++}++printf("SPU: shutdown\n");+return 0; } #endif // USE_LIBSPE2 
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h view
@@ -1,12 +1,12 @@  /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,17 +28,17 @@ ///MinkowskiPenetrationDepthSolver implements bruteforce penetration depth estimation. ///Implementation is based on sampling the depth using support mapping, and using GJK step to get the witness points. class SpuMinkowskiPenetrationDepthSolver : public btConvexPenetrationDepthSolver-{+{ private: public:-	SpuMinkowskiPenetrationDepthSolver() {}-	virtual ~SpuMinkowskiPenetrationDepthSolver() {};+SpuMinkowskiPenetrationDepthSolver() {}+virtual ~SpuMinkowskiPenetrationDepthSolver() {}; -		virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,-		const btConvexShape* convexA,const btConvexShape* convexB,-					const btTransform& transA,const btTransform& transB,-				btVector3& v, btVector3& pa, btVector3& pb,-				class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc-				);+virtual bool calcPenDepth( btSimplexSolverInterface& simplexSolver,+const btConvexShape* convexA,const btConvexShape* convexB,+const btTransform& transA,const btTransform& transB,+btVector3& v, btVector3& pa, btVector3& pb,+class btIDebugDraw* debugDraw,btStackAlloc* stackAlloc+);   };
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2007 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -19,52 +19,52 @@  #include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h" -int		spuGetNumPreferredPenetrationDirections(int shapeType, void* shape)+int spuGetNumPreferredPenetrationDirections(int shapeType, void* shape) {-	switch (shapeType)-    {-		case TRIANGLE_SHAPE_PROXYTYPE:-		{-			return 2;-			//spu_printf("2\n");-			break;-		}-		default:-			{+switch (shapeType)+{+case TRIANGLE_SHAPE_PROXYTYPE:+{+return 2;+//spu_printf("2\n");+break;+}+default:+{ #if __ASSERT-        spu_printf("spuGetNumPreferredPenetrationDirections() - Unsupported bound type: %d.\n", shapeType);+spu_printf("spuGetNumPreferredPenetrationDirections() - Unsupported bound type: %d.\n", shapeType); #endif // __ASSERT-			}-	}+}+} -	return 0;	-}	+return 0;+} -void	spuGetPreferredPenetrationDirection(int shapeType, void* shape, int index, btVector3& penetrationVector)+void spuGetPreferredPenetrationDirection(int shapeType, void* shape, int index, btVector3& penetrationVector) {  -	switch (shapeType)-    {-		case TRIANGLE_SHAPE_PROXYTYPE:-		{-			btVector3* vertices = (btVector3*)shape;-			///calcNormal-			penetrationVector = (vertices[1]-vertices[0]).cross(vertices[2]-vertices[0]);-			penetrationVector.normalize();-			if (index)-				penetrationVector *= btScalar(-1.);-			break;-		}-		default:-			{-					+switch (shapeType)+{+case TRIANGLE_SHAPE_PROXYTYPE:+{+btVector3* vertices = (btVector3*)shape;+///calcNormal+penetrationVector = (vertices[1]-vertices[0]).cross(vertices[2]-vertices[0]);+penetrationVector.normalize();+if (index)+penetrationVector *= btScalar(-1.);+break;+}+default:+{+ #if __ASSERT-        spu_printf("spuGetNumPreferredPenetrationDirections() - Unsupported bound type: %d.\n", shapeType);+spu_printf("spuGetNumPreferredPenetrationDirections() - Unsupported bound type: %d.\n", shapeType); #endif // __ASSERT-			}-	}-		+}+}+ }  #endif //_SPU_PREFERRED_PENETRATION_DIRECTIONS_H
bullet/BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2006, 2008 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2006, 2008 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,40 +26,40 @@ // boxBoxDistance: // // description:-//    this computes info that can be used for the collision response of two boxes.  when the boxes-//    do not overlap, the points are set to the closest points of the boxes, and a positive-//    distance between them is returned.  if the boxes do overlap, a negative distance is returned-//    and the points are set to two points that would touch after the boxes are translated apart.-//    the contact normal gives the direction to repel or separate the boxes when they touch or-//    overlap (it's being approximated here as one of the 15 "separating axis" directions).+// this computes info that can be used for the collision response of two boxes. when the boxes+// do not overlap, the points are set to the closest points of the boxes, and a positive+// distance between them is returned. if the boxes do overlap, a negative distance is returned+// and the points are set to two points that would touch after the boxes are translated apart.+// the contact normal gives the direction to repel or separate the boxes when they touch or+// overlap (it's being approximated here as one of the 15 "separating axis" directions). // // returns:-//    positive or negative distance between two boxes.+// positive or negative distance between two boxes. // // args:-//    vmVector3& normal: set to a unit contact normal pointing from box A to box B.+// vmVector3& normal: set to a unit contact normal pointing from box A to box B. //-//    BoxPoint& boxPointA, BoxPoint& boxPointB:-//       set to a closest point or point of penetration on each box.+// BoxPoint& boxPointA, BoxPoint& boxPointB:+// set to a closest point or point of penetration on each box. //-//    Box boxA, Box boxB:-//       boxes, represented as 3 half-widths+// Box boxA, Box boxB:+// boxes, represented as 3 half-widths //-//    const vmTransform3& transformA, const vmTransform3& transformB:-//       box transformations, in world coordinates+// const vmTransform3& transformA, const vmTransform3& transformB:+// box transformations, in world coordinates //-//    float distanceThreshold:-//       the algorithm will exit early if it finds that the boxes are more distant than this-//       threshold, and not compute a contact normal or points.  if this distance returned-//       exceeds the threshold, all the other output data may not have been computed.  by-//       default, this is set to MAX_FLOAT so it will have no effect.+// float distanceThreshold:+// the algorithm will exit early if it finds that the boxes are more distant than this+// threshold, and not compute a contact normal or points. if this distance returned+// exceeds the threshold, all the other output data may not have been computed. by+// default, this is set to MAX_FLOAT so it will have no effect. // //---------------------------------------------------------------------------  float boxBoxDistance(vmVector3& normal, BoxPoint& boxPointA, BoxPoint& boxPointB,-			   PE_REF(Box) boxA, const vmTransform3 & transformA, PE_REF(Box) boxB,-			   const vmTransform3 & transformB,-			   float distanceThreshold = FLT_MAX );+PE_REF(Box) boxA, const vmTransform3 & transformA, PE_REF(Box) boxB,+const vmTransform3 & transformB,+float distanceThreshold = FLT_MAX );  #endif /* __BOXBOXDISTANCE_H__ */
bullet/BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h view
@@ -3,8 +3,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,28 +26,28 @@  enum {-	CMD_SAMPLE_INTEGRATE_BODIES = 1,-	CMD_SAMPLE_PREDICT_MOTION_BODIES+CMD_SAMPLE_INTEGRATE_BODIES = 1,+CMD_SAMPLE_PREDICT_MOTION_BODIES };    ATTRIBUTE_ALIGNED16(struct) SpuSampleTaskDesc {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	uint32_t						m_sampleCommand;-	uint32_t						m_taskId;+uint32_t m_sampleCommand;+uint32_t m_taskId; -	uint64_t 	m_mainMemoryPtr;-	int			m_sampleValue;-	+uint64_t m_mainMemoryPtr;+int m_sampleValue; + };  -void	processSampleTask(void* userPtr, void* lsMemory);-void*	createSampleLocalStoreMemory();+void processSampleTask(void* userPtr, void* lsMemory);+void* createSampleLocalStoreMemory();   #endif //SPU_SAMPLE_TASK_H
bullet/BulletMultiThreaded/SpuSampleTaskProcess.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -38,38 +38,38 @@ /// When PPU issues a task, it will look for completed task buffers /// PPU will do postprocessing, dependent on workunit output (not likely) class SpuSampleTaskProcess-{-	// track task buffers that are being used, and total busy tasks-	btAlignedObjectArray<bool>	m_taskBusy;-	btAlignedObjectArray<SpuSampleTaskDesc>m_spuSampleTaskDesc;-	-	int   m_numBusyTasks;+{ private:+// track task buffers that are being used, and total busy tasks+btAlignedObjectArray<bool> m_taskBusy;+btAlignedObjectArray<SpuSampleTaskDesc>m_spuSampleTaskDesc; -	// the current task and the current entry to insert a new work unit-	int   m_currentTask;+int m_numBusyTasks; -	bool m_initialized;+// the current task and the current entry to insert a new work unit+int m_currentTask; -	void postProcess(int taskId, int outputSize);-	-	class	btThreadSupportInterface*	m_threadInterface;+bool m_initialized; -	int	m_maxNumOutstandingTasks;+void postProcess(int taskId, int outputSize); +class btThreadSupportInterface* m_threadInterface; +int m_maxNumOutstandingTasks; ++ public:-	SpuSampleTaskProcess(btThreadSupportInterface*	threadInterface, int maxNumOutstandingTasks);-	-	~SpuSampleTaskProcess();-	-	///call initialize in the beginning of the frame, before addCollisionPairToTask-	void initialize();+SpuSampleTaskProcess(btThreadSupportInterface* threadInterface, int maxNumOutstandingTasks); -	void issueTask(void* sampleMainMemPtr,int sampleValue,int sampleCommand);+~SpuSampleTaskProcess(); -	///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished-	void flush();+///call initialize in the beginning of the frame, before addCollisionPairToTask+void initialize();++void issueTask(void* sampleMainMemPtr,int sampleValue,int sampleCommand);++///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished+void flush(); };  @@ -87,62 +87,62 @@  int main(unsigned long long speid, addr64 argp, addr64 envp) {-	printf("SPU is up \n");-	-	ATTRIBUTE_ALIGNED128(btSpuStatus status);-	ATTRIBUTE_ALIGNED16( SpuSampleTaskDesc taskDesc ) ;-	unsigned int received_message = Spu_Mailbox_Event_Nothing;-        bool shutdown = false;+printf("SPU is up \n"); -	cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));+ATTRIBUTE_ALIGNED128(btSpuStatus status);+ATTRIBUTE_ALIGNED16( SpuSampleTaskDesc taskDesc ) ;+unsigned int received_message = Spu_Mailbox_Event_Nothing;+bool shutdown = false; -	status.m_status = Spu_Status_Free;-	status.m_lsMemory.p = SamplelsMemoryFunc();+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -	cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));-	-	-	while (!shutdown)-	{-		received_message = spu_read_in_mbox();-		+status.m_status = Spu_Status_Free;+status.m_lsMemory.p = SamplelsMemoryFunc(); -		-		switch(received_message)-		{-		case Spu_Mailbox_Event_Shutdown:-			shutdown = true;-			break; -		case Spu_Mailbox_Event_Task:-			// refresh the status+cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+++while (!shutdown)+{+received_message = spu_read_in_mbox();++++switch(received_message)+{+case Spu_Mailbox_Event_Shutdown:+shutdown = true;+break;+case Spu_Mailbox_Event_Task:+// refresh the status #ifdef DEBUG_LIBSPE2_MAINLOOP-			printf("SPU recieved Task \n");+printf("SPU recieved Task \n"); #endif //DEBUG_LIBSPE2_MAINLOOP-			cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-		-			btAssert(status.m_status==Spu_Status_Occupied);-			-			cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuSampleTaskDesc), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-			-			SampleThreadFunc((void*)&taskDesc, reinterpret_cast<void*> (taskDesc.m_mainMemoryPtr) );-			break;-		case Spu_Mailbox_Event_Nothing:-		default:-			break;-		}+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -		// set to status free and wait for next task-		status.m_status = Spu_Status_Free;-		cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-		cellDmaWaitTagStatusAll(DMA_MASK(3));		-				-		-  	}-  	return 0;+btAssert(status.m_status==Spu_Status_Occupied);++cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuSampleTaskDesc), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));++SampleThreadFunc((void*)&taskDesc, reinterpret_cast<void*> (taskDesc.m_mainMemoryPtr) );+break;+case Spu_Mailbox_Event_Nothing:+default:+break;+}++// set to status free and wait for next task+status.m_status = Spu_Status_Free;+cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+++}+return 0; } ////////////////////////////////////////////////////// #endif
bullet/BulletMultiThreaded/SpuSync.h view
@@ -4,8 +4,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,7 +16,7 @@ */  #ifndef BT_SPU_SYNC_H-#define	BT_SPU_SYNC_H+#define BT_SPU_SYNC_H   #include "PlatformDefinitions.h"@@ -33,33 +33,33 @@  ///The btSpinlock is a structure to allow multi-platform synchronization. This allows to port the SPU tasks to other platforms. class btSpinlock-{+{ private: public:-	//typedef volatile LONG SpinVariable;-	typedef CRITICAL_SECTION SpinVariable;+//typedef volatile LONG SpinVariable;+typedef CRITICAL_SECTION SpinVariable; -	btSpinlock (SpinVariable* var)-		: spinVariable (var)-	{}+btSpinlock (SpinVariable* var)+: spinVariable (var)+{} -	void Init ()-	{-		//*spinVariable = 0;-		InitializeCriticalSection(spinVariable);-	}+void Init ()+{+//*spinVariable = 0;+InitializeCriticalSection(spinVariable);+} -	void Lock ()-	{-		EnterCriticalSection(spinVariable);-	}+void Lock ()+{+EnterCriticalSection(spinVariable);+} -	void Unlock ()-	{-		LeaveCriticalSection(spinVariable);-	}+void Unlock ()+{+LeaveCriticalSection(spinVariable);+}  private:-	SpinVariable* spinVariable;+SpinVariable* spinVariable; };  @@ -70,75 +70,75 @@  ///The btSpinlock is a structure to allow multi-platform synchronization. This allows to port the SPU tasks to other platforms. class btSpinlock-{+{ private: public:-	typedef CellSyncMutex SpinVariable;+typedef CellSyncMutex SpinVariable; -	btSpinlock (SpinVariable* var)-		: spinVariable (var)-	{}+btSpinlock (SpinVariable* var)+: spinVariable (var)+{} -	void Init ()-	{+void Init ()+{ #ifndef __SPU__-		//*spinVariable = 1;-		cellSyncMutexInitialize(spinVariable);+//*spinVariable = 1;+cellSyncMutexInitialize(spinVariable); #endif-	}+}   -	void Lock ()-	{+void Lock ()+{ #ifdef __SPU__-		// lock semaphore-		/*while (cellAtomicTestAndDecr32(atomic_buf, (uint64_t)spinVariable) == 0) -		{+// lock semaphore+/*while (cellAtomicTestAndDecr32(atomic_buf, (uint64_t)spinVariable) == 0)+{ -		};*/-		cellSyncMutexLock((uint64_t)spinVariable);+};*/+cellSyncMutexLock((uint64_t)spinVariable); #endif-	}+} -	void Unlock ()-	{+void Unlock ()+{ #ifdef __SPU__-		//cellAtomicIncr32(atomic_buf, (uint64_t)spinVariable);-		cellSyncMutexUnlock((uint64_t)spinVariable);-#endif -	}+//cellAtomicIncr32(atomic_buf, (uint64_t)spinVariable);+cellSyncMutexUnlock((uint64_t)spinVariable);+#endif+}   private:-	SpinVariable*	spinVariable;-	ATTRIBUTE_ALIGNED128(uint32_t		atomic_buf[32]);+SpinVariable* spinVariable;+ATTRIBUTE_ALIGNED128(uint32_t atomic_buf[32]); };  #else //create a dummy implementation (without any locking) useful for serial processing class btSpinlock-{+{ private: public:-	typedef int  SpinVariable;+typedef int SpinVariable; -	btSpinlock (SpinVariable* var)-		: spinVariable (var)-	{}+btSpinlock (SpinVariable* var)+: spinVariable (var)+{} -	void Init ()-	{-	}+void Init ()+{+} -	void Lock ()-	{-	}+void Lock ()+{+} -	void Unlock ()-	{-	}+void Unlock ()+{+}  private:-	SpinVariable* spinVariable;+SpinVariable* spinVariable; };  
bullet/BulletMultiThreaded/TrbDynBody.h view
@@ -1,79 +1,79 @@-/*
-   Copyright (C) 2009 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-*/
-
-#ifndef BT_RB_DYN_BODY_H__
-#define BT_RB_DYN_BODY_H__
-
-#include "vectormath/vmInclude.h"
-using namespace Vectormath::Aos;
-
-#include "TrbStateVec.h"
-
-class CollObject;
-
-class TrbDynBody
-{
-public:
-	TrbDynBody()
-	{
-		fMass   = 0.0f;
-		fCollObject = NULL;
-		fElasticity = 0.2f;
-		fFriction = 0.8f;
-	}
-
-	// Get methods
-	float          getMass() const {return fMass;};
-	float          getElasticity() const {return fElasticity;}
-	float          getFriction() const {return fFriction;}
-	CollObject*    getCollObject() const {return fCollObject;}
-	const Matrix3 &getBodyInertia() const {return fIBody;}
-	const Matrix3 &getBodyInertiaInv() const {return fIBodyInv;}
-	float          getMassInv() const {return fMassInv;}
-
-	// Set methods
-	void           setMass(float mass) {fMass=mass;fMassInv=mass>0.0f?1.0f/mass:0.0f;}
-	void           setBodyInertia(const Matrix3 bodyInertia) {fIBody = bodyInertia;fIBodyInv = inverse(bodyInertia);}
-	void           setElasticity(float elasticity) {fElasticity = elasticity;}
-	void           setFriction(float friction) {fFriction = friction;}
-	void           setCollObject(CollObject *collObj) {fCollObject = collObj;}
-	
-	void           setBodyInertiaInv(const Matrix3 bodyInertiaInv) 
-	{
-		fIBody = inverse(bodyInertiaInv);
-		fIBodyInv = bodyInertiaInv;
-	}
-	void           setMassInv(float invMass) {
-		fMass= invMass>0.0f ? 1.0f/invMass :0.0f;
-		fMassInv=invMass;
-	}
-
-
-private:
-	// Rigid Body constants
-	float          fMass;        // Rigid Body mass
-	float          fMassInv;     // Inverse of mass
-	Matrix3        fIBody;       // Inertia matrix in body's coords
-	Matrix3        fIBodyInv;    // Inertia matrix inverse in body's coords
-	float          fElasticity;  // Coefficient of restitution
-	float          fFriction;    // Coefficient of friction
-
-public:
-	CollObject*    fCollObject;  // Collision object corresponding the RB
-} __attribute__ ((aligned(16)));
-
-#endif //BT_RB_DYN_BODY_H__
-
+/*+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.++*/++#ifndef BT_RB_DYN_BODY_H__+#define BT_RB_DYN_BODY_H__++#include "vectormath/vmInclude.h"+using namespace Vectormath::Aos;++#include "TrbStateVec.h"++class CollObject;++class TrbDynBody+{ private:+public:+TrbDynBody()+{+fMass = 0.0f;+fCollObject = NULL;+fElasticity = 0.2f;+fFriction = 0.8f;+}++// Get methods+float getMass() const {return fMass;};+float getElasticity() const {return fElasticity;}+float getFriction() const {return fFriction;}+CollObject* getCollObject() const {return fCollObject;}+const Matrix3 &getBodyInertia() const {return fIBody;}+const Matrix3 &getBodyInertiaInv() const {return fIBodyInv;}+float getMassInv() const {return fMassInv;}++// Set methods+void setMass(float mass) {fMass=mass;fMassInv=mass>0.0f?1.0f/mass:0.0f;}+void setBodyInertia(const Matrix3 bodyInertia) {fIBody = bodyInertia;fIBodyInv = inverse(bodyInertia);}+void setElasticity(float elasticity) {fElasticity = elasticity;}+void setFriction(float friction) {fFriction = friction;}+void setCollObject(CollObject *collObj) {fCollObject = collObj;}++void setBodyInertiaInv(const Matrix3 bodyInertiaInv)+{+fIBody = inverse(bodyInertiaInv);+fIBodyInv = bodyInertiaInv;+}+void setMassInv(float invMass) {+fMass= invMass>0.0f ? 1.0f/invMass :0.0f;+fMassInv=invMass;+}+++private:+// Rigid Body constants+float fMass; // Rigid Body mass+float fMassInv; // Inverse of mass+Matrix3 fIBody; // Inertia matrix in body's coords+Matrix3 fIBodyInv; // Inertia matrix inverse in body's coords+float fElasticity; // Coefficient of restitution+float fFriction; // Coefficient of friction++public:+CollObject* fCollObject; // Collision object corresponding the RB+} __attribute__ ((aligned(16)));++#endif //BT_RB_DYN_BODY_H__+
bullet/BulletMultiThreaded/TrbStateVec.h view
@@ -1,339 +1,339 @@-/*
-   Copyright (C) 2009 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-*/
-
-#ifndef BT_TRBSTATEVEC_H__
-#define BT_TRBSTATEVEC_H__
-
-#include <stdlib.h>
-#ifdef PFX_USE_FREE_VECTORMATH
-#include "vecmath/vmInclude.h"
-#else
-#include "vectormath/vmInclude.h"
-#endif //PFX_USE_FREE_VECTORMATH
-
-
-#include "PlatformDefinitions.h"
-
-
-static inline vmVector3 read_Vector3(const float* p)
-{
-	vmVector3 v;
-	loadXYZ(v, p);
-	return v;
-}
-
-static inline vmQuat read_Quat(const float* p)
-{
-	vmQuat vq;
-	loadXYZW(vq, p);
-	return vq;
-}
-
-static inline void store_Vector3(const vmVector3 &src, float* p)
-{
-	vmVector3 v = src;
-	storeXYZ(v, p);
-}
-
-static inline void store_Quat(const vmQuat &src, float* p)
-{
-	vmQuat vq = src;
-	storeXYZW(vq, p);
-}
-
-// Motion Type
-enum {
-	PfxMotionTypeFixed = 0,
-	PfxMotionTypeActive,
-	PfxMotionTypeKeyframe,
-	PfxMotionTypeOneWay,
-	PfxMotionTypeTrigger,
-	PfxMotionTypeCount
-};
-
-#define PFX_MOTION_MASK_DYNAMIC 0x0a // Active,OneWay
-#define PFX_MOTION_MASK_STATIC  0x95 // Fixed,Keyframe,Trigger,Sleeping
-#define PFX_MOTION_MASK_SLEEP   0x0e // Can sleep
-#define PFX_MOTION_MASK_TYPE    0x7f
-
-//
-// Rigid Body state
-//
-
-#ifdef __CELLOS_LV2__
-ATTRIBUTE_ALIGNED128(class) TrbState
-#else
-ATTRIBUTE_ALIGNED16(class) TrbState
-#endif
-
-{
-public:
-	TrbState()
-	{
-		setMotionType(PfxMotionTypeActive);
-		contactFilterSelf=contactFilterTarget=0xffffffff;
-		deleted = 0;
-		mSleeping = 0;
-		useSleep = 1;
-		trbBodyIdx=0;
-		mSleepCount=0;
-		useCcd = 0;
-		useContactCallback = 0;
-		useSleepCallback = 0;
-		linearDamping = 1.0f;
-		angularDamping = 0.99f;
-	}
-
-	TrbState(const uint8_t m, const vmVector3& x, const vmQuat& q, const vmVector3& v, const vmVector3& omega );
-	
-	uint16_t	mSleepCount;
-	uint8_t		mMotionType;
-	uint8_t		deleted            : 1;
-	uint8_t		mSleeping           : 1;
-	uint8_t		useSleep           : 1;
-	uint8_t		useCcd		       : 1;
-	uint8_t		useContactCallback : 1;
-	uint8_t		useSleepCallback   : 1;
-
-	uint16_t	trbBodyIdx;
-	uint32_t	contactFilterSelf;
-	uint32_t	contactFilterTarget;
-
-	float		center[3];		// AABB center(World)
-	float		half[3];		// AABB half(World)
-
-	float		linearDamping;
-	float		angularDamping;
-	
-	float		deltaLinearVelocity[3];
-	float		deltaAngularVelocity[3];
-
-	float     fX[3];				// position
-	float     fQ[4];				// orientation
-	float     fV[3];				// velocity
-	float     fOmega[3];			// angular velocity
-
-	inline void setZero();      // Zeroes out the elements
-	inline void setIdentity();  // Sets the rotation to identity and zeroes out the other elements
-
-	bool		isDeleted() const {return deleted==1;}
-
-	uint16_t	getRigidBodyId() const {return trbBodyIdx;}
-	void		setRigidBodyId(uint16_t i) {trbBodyIdx = i;}
-
-
-	uint32_t	getContactFilterSelf() const {return contactFilterSelf;}
-	void		setContactFilterSelf(uint32_t filter) {contactFilterSelf = filter;}
-
-	uint32_t	getContactFilterTarget() const {return contactFilterTarget;}
-	void		setContactFilterTarget(uint32_t filter) {contactFilterTarget = filter;}
-
-	float getLinearDamping() const {return linearDamping;}
-	float getAngularDamping() const {return angularDamping;}
-
-	void setLinearDamping(float damping) {linearDamping=damping;}
-	void setAngularDamping(float damping) {angularDamping=damping;}
-
-
-	uint8_t		getMotionType() const {return mMotionType;}
-	void		setMotionType(uint8_t t) {mMotionType = t;mSleeping=0;mSleepCount=0;}
-
-	uint8_t		getMotionMask() const {return (1<<mMotionType)|(mSleeping<<7);}
-
-	bool		isAsleep() const {return mSleeping==1;}
-	bool		isAwake() const {return mSleeping==0;}
-
-	void		wakeup() {mSleeping=0;mSleepCount=0;}
-	void		sleep() {if(useSleep) {mSleeping=1;mSleepCount=0;}}
-
-	uint8_t		getUseSleep() const {return useSleep;}
-	void		setUseSleep(uint8_t b) {useSleep=b;}
-
-	uint8_t		getUseCcd() const {return useCcd;}
-	void		setUseCcd(uint8_t b) {useCcd=b;}
-
-	uint8_t		getUseContactCallback() const {return useContactCallback;}
-	void		setUseContactCallback(uint8_t b) {useContactCallback=b;}
-
-	uint8_t		getUseSleepCallback() const {return useSleepCallback;}
-	void		setUseSleepCallback(uint8_t b) {useSleepCallback=b;}
-
-	void	 	incrementSleepCount() {mSleepCount++;}
-	void		resetSleepCount() {mSleepCount=0;}
-	uint16_t	getSleepCount() const {return mSleepCount;}
-
-	vmVector3 getPosition() const {return read_Vector3(fX);}
-	vmQuat    getOrientation() const {return read_Quat(fQ);}
-	vmVector3 getLinearVelocity() const {return read_Vector3(fV);}
-	vmVector3 getAngularVelocity() const {return read_Vector3(fOmega);}
-	vmVector3 getDeltaLinearVelocity() const {return read_Vector3(deltaLinearVelocity);}
-	vmVector3 getDeltaAngularVelocity() const {return read_Vector3(deltaAngularVelocity);}
-
-	void setPosition(const vmVector3 &pos) {store_Vector3(pos, fX);}
-	void setLinearVelocity(const vmVector3 &vel) {store_Vector3(vel, fV);}
-	void setAngularVelocity(const vmVector3 &vel) {store_Vector3(vel, fOmega);}
-	void setDeltaLinearVelocity(const vmVector3 &vel) {store_Vector3(vel, deltaLinearVelocity);}
-	void setDeltaAngularVelocity(const vmVector3 &vel) {store_Vector3(vel, deltaAngularVelocity);}
-	void setOrientation(const vmQuat &rot) {store_Quat(rot, fQ);}
-
-	inline void setAuxils(const vmVector3 &centerLocal,const vmVector3 &halfLocal);
-	inline void	setAuxilsCcd(const vmVector3 &centerLocal,const vmVector3 &halfLocal,float timeStep);
-	inline	void reset();
-};
-
-inline
-TrbState::TrbState(const uint8_t m, const vmVector3& x, const vmQuat& q, const vmVector3& v, const vmVector3& omega)
-{
-	setMotionType(m);
-	fX[0] = x[0];
-	fX[1] = x[1];
-	fX[2] = x[2];
-	fQ[0] = q[0];
-	fQ[1] = q[1];
-	fQ[2] = q[2];
-	fQ[3] = q[3];
-	fV[0] = v[0];
-	fV[1] = v[1];
-	fV[2] = v[2];
-	fOmega[0] = omega[0];
-	fOmega[1] = omega[1];
-	fOmega[2] = omega[2];
-	contactFilterSelf=contactFilterTarget=0xffff;
-	trbBodyIdx=0;
-	mSleeping = 0;
-	deleted = 0;
-	useSleep = 1;
-	useCcd = 0;
-	useContactCallback = 0;
-	useSleepCallback = 0;
-	mSleepCount=0;
-	linearDamping = 1.0f;
-	angularDamping = 0.99f;
-}
-
-inline void
-TrbState::setIdentity()
-{
-	fX[0] = 0.0f;
-	fX[1] = 0.0f;
-	fX[2] = 0.0f;
-	fQ[0] = 0.0f;
-	fQ[1] = 0.0f;
-	fQ[2] = 0.0f;
-	fQ[3] = 1.0f;
-	fV[0] = 0.0f;
-	fV[1] = 0.0f;
-	fV[2] = 0.0f;
-	fOmega[0] = 0.0f;
-	fOmega[1] = 0.0f;
-	fOmega[2] = 0.0f;
-}
-
-inline void
-TrbState::setZero()
-{
-	fX[0] = 0.0f;
-	fX[1] = 0.0f;
-	fX[2] = 0.0f;
-	fQ[0] = 0.0f;
-	fQ[1] = 0.0f;
-	fQ[2] = 0.0f;
-	fQ[3] = 0.0f;
-	fV[0] = 0.0f;
-	fV[1] = 0.0f;
-	fV[2] = 0.0f;
-	fOmega[0] = 0.0f;
-	fOmega[1] = 0.0f;
-	fOmega[2] = 0.0f;
-}
-
-inline void
-TrbState::setAuxils(const vmVector3 &centerLocal,const vmVector3 &halfLocal)
-{
-	vmVector3 centerW = getPosition() + rotate(getOrientation(),centerLocal);
-	vmVector3 halfW = absPerElem(vmMatrix3(getOrientation())) * halfLocal;
-	center[0] = centerW[0];
-	center[1] = centerW[1];
-	center[2] = centerW[2];
-	half[0] = halfW[0];
-	half[1] = halfW[1];
-	half[2] = halfW[2];
-}
-
-inline void
-TrbState::setAuxilsCcd(const vmVector3 &centerLocal,const vmVector3 &halfLocal,float timeStep)
-{
-	vmVector3 centerW = getPosition() + rotate(getOrientation(),centerLocal);
-	vmVector3 halfW = absPerElem(vmMatrix3(getOrientation())) * halfLocal;
-
-	vmVector3 diffvec = getLinearVelocity()*timeStep;
-
-	vmVector3 newCenter = centerW + diffvec;
-	vmVector3 aabbMin = minPerElem(newCenter - halfW,centerW - halfW);
-	vmVector3 aabbMax = maxPerElem(newCenter + halfW,centerW + halfW);
-	
-	centerW = 0.5f * (aabbMin + aabbMax);
-	halfW =0.5f * (aabbMax - aabbMin);
-
-	center[0] = centerW[0];
-	center[1] = centerW[1];
-	center[2] = centerW[2];
-
-	half[0] = halfW[0];
-	half[1] = halfW[1];
-	half[2] = halfW[2];
-}
-
-inline
-void TrbState::reset()
-{
-#if 0
-	mSleepCount = 0;
-	mMotionType = PfxMotionTypeActive;
-	mDeleted = 0;
-	mSleeping = 0;
-	mUseSleep = 1;
-	mUseCcd = 0;
-	mUseContactCallback = 0;
-	mUseSleepCallback = 0;
-	mRigidBodyId = 0;
-	mContactFilterSelf = 0xffffffff;
-	mContactFilterTarget = 0xffffffff;
-	mLinearDamping = 1.0f;
-	mAngularDamping = 0.99f;
-	mPosition = vmVector3(0.0f);
-	mOrientation = vmQuat::identity();
-	mLinearVelocity = vmVector3(0.0f);
-	mAngularVelocity = vmVector3(0.0f);
-#endif
-
-	setMotionType(PfxMotionTypeActive);
-	contactFilterSelf=contactFilterTarget=0xffffffff;
-	deleted = 0;
-	mSleeping = 0;
-	useSleep = 1;
-	trbBodyIdx=0;
-	mSleepCount=0;
-	useCcd = 0;
-	useContactCallback = 0;
-	useSleepCallback = 0;
-	linearDamping = 1.0f;
-	angularDamping = 0.99f;
-}
-
-#endif //BT_TRBSTATEVEC_H__
-
-
+/*+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.++*/++#ifndef BT_TRBSTATEVEC_H__+#define BT_TRBSTATEVEC_H__++#include <stdlib.h>+#ifdef PFX_USE_FREE_VECTORMATH+#include "vecmath/vmInclude.h"+#else+#include "vectormath/vmInclude.h"+#endif //PFX_USE_FREE_VECTORMATH+++#include "PlatformDefinitions.h"+++static inline vmVector3 read_Vector3(const float* p)+{+vmVector3 v;+loadXYZ(v, p);+return v;+}++static inline vmQuat read_Quat(const float* p)+{+vmQuat vq;+loadXYZW(vq, p);+return vq;+}++static inline void store_Vector3(const vmVector3 &src, float* p)+{+vmVector3 v = src;+storeXYZ(v, p);+}++static inline void store_Quat(const vmQuat &src, float* p)+{+vmQuat vq = src;+storeXYZW(vq, p);+}++// Motion Type+enum {+PfxMotionTypeFixed = 0,+PfxMotionTypeActive,+PfxMotionTypeKeyframe,+PfxMotionTypeOneWay,+PfxMotionTypeTrigger,+PfxMotionTypeCount+};++#define PFX_MOTION_MASK_DYNAMIC 0x0a // Active,OneWay+#define PFX_MOTION_MASK_STATIC 0x95 // Fixed,Keyframe,Trigger,Sleeping+#define PFX_MOTION_MASK_SLEEP 0x0e // Can sleep+#define PFX_MOTION_MASK_TYPE 0x7f++//+// Rigid Body state+//++#ifdef __CELLOS_LV2__+ATTRIBUTE_ALIGNED128(class) TrbState+#else+ATTRIBUTE_ALIGNED16(class) TrbState+#endif++{+public:+TrbState()+{+setMotionType(PfxMotionTypeActive);+contactFilterSelf=contactFilterTarget=0xffffffff;+deleted = 0;+mSleeping = 0;+useSleep = 1;+trbBodyIdx=0;+mSleepCount=0;+useCcd = 0;+useContactCallback = 0;+useSleepCallback = 0;+linearDamping = 1.0f;+angularDamping = 0.99f;+}++TrbState(const uint8_t m, const vmVector3& x, const vmQuat& q, const vmVector3& v, const vmVector3& omega );++uint16_t mSleepCount;+uint8_t mMotionType;+uint8_t deleted : 1;+uint8_t mSleeping : 1;+uint8_t useSleep : 1;+uint8_t useCcd : 1;+uint8_t useContactCallback : 1;+uint8_t useSleepCallback : 1;++uint16_t trbBodyIdx;+uint32_t contactFilterSelf;+uint32_t contactFilterTarget;++float center[3]; // AABB center(World)+float half[3]; // AABB half(World)++float linearDamping;+float angularDamping;++float deltaLinearVelocity[3];+float deltaAngularVelocity[3];++float fX[3]; // position+float fQ[4]; // orientation+float fV[3]; // velocity+float fOmega[3]; // angular velocity++inline void setZero(); // Zeroes out the elements+inline void setIdentity(); // Sets the rotation to identity and zeroes out the other elements++bool isDeleted() const {return deleted==1;}++uint16_t getRigidBodyId() const {return trbBodyIdx;}+void setRigidBodyId(uint16_t i) {trbBodyIdx = i;}+++uint32_t getContactFilterSelf() const {return contactFilterSelf;}+void setContactFilterSelf(uint32_t filter) {contactFilterSelf = filter;}++uint32_t getContactFilterTarget() const {return contactFilterTarget;}+void setContactFilterTarget(uint32_t filter) {contactFilterTarget = filter;}++float getLinearDamping() const {return linearDamping;}+float getAngularDamping() const {return angularDamping;}++void setLinearDamping(float damping) {linearDamping=damping;}+void setAngularDamping(float damping) {angularDamping=damping;}+++uint8_t getMotionType() const {return mMotionType;}+void setMotionType(uint8_t t) {mMotionType = t;mSleeping=0;mSleepCount=0;}++uint8_t getMotionMask() const {return (1<<mMotionType)|(mSleeping<<7);}++bool isAsleep() const {return mSleeping==1;}+bool isAwake() const {return mSleeping==0;}++void wakeup() {mSleeping=0;mSleepCount=0;}+void sleep() {if(useSleep) {mSleeping=1;mSleepCount=0;}}++uint8_t getUseSleep() const {return useSleep;}+void setUseSleep(uint8_t b) {useSleep=b;}++uint8_t getUseCcd() const {return useCcd;}+void setUseCcd(uint8_t b) {useCcd=b;}++uint8_t getUseContactCallback() const {return useContactCallback;}+void setUseContactCallback(uint8_t b) {useContactCallback=b;}++uint8_t getUseSleepCallback() const {return useSleepCallback;}+void setUseSleepCallback(uint8_t b) {useSleepCallback=b;}++void incrementSleepCount() {mSleepCount++;}+void resetSleepCount() {mSleepCount=0;}+uint16_t getSleepCount() const {return mSleepCount;}++vmVector3 getPosition() const {return read_Vector3(fX);}+vmQuat getOrientation() const {return read_Quat(fQ);}+vmVector3 getLinearVelocity() const {return read_Vector3(fV);}+vmVector3 getAngularVelocity() const {return read_Vector3(fOmega);}+vmVector3 getDeltaLinearVelocity() const {return read_Vector3(deltaLinearVelocity);}+vmVector3 getDeltaAngularVelocity() const {return read_Vector3(deltaAngularVelocity);}++void setPosition(const vmVector3 &pos) {store_Vector3(pos, fX);}+void setLinearVelocity(const vmVector3 &vel) {store_Vector3(vel, fV);}+void setAngularVelocity(const vmVector3 &vel) {store_Vector3(vel, fOmega);}+void setDeltaLinearVelocity(const vmVector3 &vel) {store_Vector3(vel, deltaLinearVelocity);}+void setDeltaAngularVelocity(const vmVector3 &vel) {store_Vector3(vel, deltaAngularVelocity);}+void setOrientation(const vmQuat &rot) {store_Quat(rot, fQ);}++inline void setAuxils(const vmVector3 &centerLocal,const vmVector3 &halfLocal);+inline void setAuxilsCcd(const vmVector3 &centerLocal,const vmVector3 &halfLocal,float timeStep);+inline void reset();+};++inline+TrbState::TrbState(const uint8_t m, const vmVector3& x, const vmQuat& q, const vmVector3& v, const vmVector3& omega)+{+setMotionType(m);+fX[0] = x[0];+fX[1] = x[1];+fX[2] = x[2];+fQ[0] = q[0];+fQ[1] = q[1];+fQ[2] = q[2];+fQ[3] = q[3];+fV[0] = v[0];+fV[1] = v[1];+fV[2] = v[2];+fOmega[0] = omega[0];+fOmega[1] = omega[1];+fOmega[2] = omega[2];+contactFilterSelf=contactFilterTarget=0xffff;+trbBodyIdx=0;+mSleeping = 0;+deleted = 0;+useSleep = 1;+useCcd = 0;+useContactCallback = 0;+useSleepCallback = 0;+mSleepCount=0;+linearDamping = 1.0f;+angularDamping = 0.99f;+}++inline void+TrbState::setIdentity()+{+fX[0] = 0.0f;+fX[1] = 0.0f;+fX[2] = 0.0f;+fQ[0] = 0.0f;+fQ[1] = 0.0f;+fQ[2] = 0.0f;+fQ[3] = 1.0f;+fV[0] = 0.0f;+fV[1] = 0.0f;+fV[2] = 0.0f;+fOmega[0] = 0.0f;+fOmega[1] = 0.0f;+fOmega[2] = 0.0f;+}++inline void+TrbState::setZero()+{+fX[0] = 0.0f;+fX[1] = 0.0f;+fX[2] = 0.0f;+fQ[0] = 0.0f;+fQ[1] = 0.0f;+fQ[2] = 0.0f;+fQ[3] = 0.0f;+fV[0] = 0.0f;+fV[1] = 0.0f;+fV[2] = 0.0f;+fOmega[0] = 0.0f;+fOmega[1] = 0.0f;+fOmega[2] = 0.0f;+}++inline void+TrbState::setAuxils(const vmVector3 &centerLocal,const vmVector3 &halfLocal)+{+vmVector3 centerW = getPosition() + rotate(getOrientation(),centerLocal);+vmVector3 halfW = absPerElem(vmMatrix3(getOrientation())) * halfLocal;+center[0] = centerW[0];+center[1] = centerW[1];+center[2] = centerW[2];+half[0] = halfW[0];+half[1] = halfW[1];+half[2] = halfW[2];+}++inline void+TrbState::setAuxilsCcd(const vmVector3 &centerLocal,const vmVector3 &halfLocal,float timeStep)+{+vmVector3 centerW = getPosition() + rotate(getOrientation(),centerLocal);+vmVector3 halfW = absPerElem(vmMatrix3(getOrientation())) * halfLocal;++vmVector3 diffvec = getLinearVelocity()*timeStep;++vmVector3 newCenter = centerW + diffvec;+vmVector3 aabbMin = minPerElem(newCenter - halfW,centerW - halfW);+vmVector3 aabbMax = maxPerElem(newCenter + halfW,centerW + halfW);++centerW = 0.5f * (aabbMin + aabbMax);+halfW =0.5f * (aabbMax - aabbMin);++center[0] = centerW[0];+center[1] = centerW[1];+center[2] = centerW[2];++half[0] = halfW[0];+half[1] = halfW[1];+half[2] = halfW[2];+}++inline+void TrbState::reset()+{+#if 0+mSleepCount = 0;+mMotionType = PfxMotionTypeActive;+mDeleted = 0;+mSleeping = 0;+mUseSleep = 1;+mUseCcd = 0;+mUseContactCallback = 0;+mUseSleepCallback = 0;+mRigidBodyId = 0;+mContactFilterSelf = 0xffffffff;+mContactFilterTarget = 0xffffffff;+mLinearDamping = 1.0f;+mAngularDamping = 0.99f;+mPosition = vmVector3(0.0f);+mOrientation = vmQuat::identity();+mLinearVelocity = vmVector3(0.0f);+mAngularVelocity = vmVector3(0.0f);+#endif++setMotionType(PfxMotionTypeActive);+contactFilterSelf=contactFilterTarget=0xffffffff;+deleted = 0;+mSleeping = 0;+useSleep = 1;+trbBodyIdx=0;+mSleepCount=0;+useCcd = 0;+useContactCallback = 0;+useSleepCallback = 0;+linearDamping = 1.0f;+angularDamping = 0.99f;+}++#endif //BT_TRBSTATEVEC_H__++
bullet/BulletMultiThreaded/Win32ThreadSupport.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,7 +16,7 @@ #include "LinearMath/btScalar.h" #include "PlatformDefinitions.h" -#ifdef USE_WIN32_THREADING  //platform specific defines are defined in PlatformDefinitions.h+#ifdef USE_WIN32_THREADING //platform specific defines are defined in PlatformDefinitions.h  #ifndef BT_WIN32_THREAD_SUPPORT_H #define BT_WIN32_THREAD_SUPPORT_H@@ -31,105 +31,105 @@   ///Win32ThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication-class Win32ThreadSupport : public btThreadSupportInterface -{+class Win32ThreadSupport : public btThreadSupportInterface+{ private: public:-	///placeholder, until libspe2 support is there-	struct	btSpuStatus-	{-		uint32_t	m_taskId;-		uint32_t	m_commandId;-		uint32_t	m_status;+///placeholder, until libspe2 support is there+struct btSpuStatus+{+uint32_t m_taskId;+uint32_t m_commandId;+uint32_t m_status; -		Win32ThreadFunc	m_userThreadFunc;-		void*	m_userPtr; //for taskDesc etc-		void*	m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc+Win32ThreadFunc m_userThreadFunc;+void* m_userPtr; //for taskDesc etc+void* m_lsMemory; //initialized using Win32LocalStoreMemorySetupFunc -		void*	m_threadHandle; //this one is calling 'Win32ThreadFunc'+void* m_threadHandle; //this one is calling 'Win32ThreadFunc' -		void*	m_eventStartHandle;-		char	m_eventStartHandleName[32];+void* m_eventStartHandle;+char m_eventStartHandleName[32]; -		void*	m_eventCompletetHandle;-		char	m_eventCompletetHandleName[32];-		+void* m_eventCompletetHandle;+char m_eventCompletetHandleName[32]; -	};++}; private: -	btAlignedObjectArray<btSpuStatus>	m_activeSpuStatus;-	btAlignedObjectArray<void*>			m_completeHandles;-	-	int m_maxNumTasks;+btAlignedObjectArray<btSpuStatus> m_activeSpuStatus;+btAlignedObjectArray<void*> m_completeHandles;++int m_maxNumTasks; public:-	///Setup and initialize SPU/CELL/Libspe2+///Setup and initialize SPU/CELL/Libspe2 -	struct	Win32ThreadConstructionInfo-	{-		Win32ThreadConstructionInfo(char* uniqueName,-									Win32ThreadFunc userThreadFunc,-									Win32lsMemorySetupFunc	lsMemoryFunc,-									int numThreads=1,-									int threadStackSize=65535-									)-									:m_uniqueName(uniqueName),-									m_userThreadFunc(userThreadFunc),-									m_lsMemoryFunc(lsMemoryFunc),-									m_numThreads(numThreads),-									m_threadStackSize(threadStackSize)-		{+struct Win32ThreadConstructionInfo+{+Win32ThreadConstructionInfo(const char* uniqueName,+Win32ThreadFunc userThreadFunc,+Win32lsMemorySetupFunc lsMemoryFunc,+int numThreads=1,+int threadStackSize=65535+)+:m_uniqueName(uniqueName),+m_userThreadFunc(userThreadFunc),+m_lsMemoryFunc(lsMemoryFunc),+m_numThreads(numThreads),+m_threadStackSize(threadStackSize)+{ -		}+} -		char*					m_uniqueName;-		Win32ThreadFunc			m_userThreadFunc;-		Win32lsMemorySetupFunc	m_lsMemoryFunc;-		int						m_numThreads;-		int						m_threadStackSize;+const char* m_uniqueName;+Win32ThreadFunc m_userThreadFunc;+Win32lsMemorySetupFunc m_lsMemoryFunc;+int m_numThreads;+int m_threadStackSize; -	};+};   -	Win32ThreadSupport(const Win32ThreadConstructionInfo& threadConstructionInfo);+Win32ThreadSupport(const Win32ThreadConstructionInfo& threadConstructionInfo);  ///cleanup/shutdown Libspe2-	virtual	~Win32ThreadSupport();+virtual ~Win32ThreadSupport(); -	void	startThreads(const Win32ThreadConstructionInfo&	threadInfo);+void startThreads(const Win32ThreadConstructionInfo& threadInfo);   ///send messages to SPUs-	virtual	void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1);+virtual void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1);  ///check for messages from SPUs-	virtual	void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1);+virtual void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1); -	virtual bool isTaskCompleted(unsigned int *puiArgument0, unsigned int *puiArgument1, int timeOutInMilliseconds);+virtual bool isTaskCompleted(unsigned int *puiArgument0, unsigned int *puiArgument1, int timeOutInMilliseconds);  ///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	virtual	void startSPU();+virtual void startSPU();  ///tell the task scheduler we are done with the SPU tasks-	virtual	void stopSPU();+virtual void stopSPU(); -	virtual	void	setNumTasks(int numTasks)-	{-		m_maxNumTasks = numTasks;-	}+virtual void setNumTasks(int numTasks)+{+m_maxNumTasks = numTasks;+} -	virtual int getNumTasks() const-	{-		return m_maxNumTasks;-	}+virtual int getNumTasks() const+{+return m_maxNumTasks;+} -	virtual void*	getThreadLocalMemory(int taskId)-	{-		return m_activeSpuStatus[taskId].m_lsMemory;-	}-	virtual btBarrier*	createBarrier();+virtual void* getThreadLocalMemory(int taskId)+{+return m_activeSpuStatus[taskId].m_lsMemory;+}+virtual btBarrier* createBarrier(); -	virtual btCriticalSection* createCriticalSection();+virtual btCriticalSection* createCriticalSection();  }; 
bullet/BulletMultiThreaded/btGpu3DGridBroadphase.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -29,104 +29,104 @@ ///The btGpu3DGridBroadphase uses GPU-style code compiled for CPU to compute overlapping pairs  class btGpu3DGridBroadphase : public btSimpleBroadphase-{+{ private: protected:-	bool			m_bInitialized;-    unsigned int	m_numBodies;-    unsigned int	m_numCells;-	unsigned int	m_maxPairsPerBody;-	btScalar		m_cellFactorAABB;-    unsigned int	m_maxBodiesPerCell;-	bt3DGridBroadphaseParams m_params;-	btScalar		m_maxRadius;-	// CPU data-    unsigned int*	m_hBodiesHash;-    unsigned int*	m_hCellStart;-	unsigned int*	m_hPairBuffStartCurr;-	bt3DGrid3F1U*		m_hAABB;-	unsigned int*	m_hPairBuff;-	unsigned int*	m_hPairScan;-	unsigned int*	m_hPairOut;+bool m_bInitialized;+unsigned int m_numBodies;+unsigned int m_numCells;+unsigned int m_maxPairsPerBody;+btScalar m_cellFactorAABB;+unsigned int m_maxBodiesPerCell;+bt3DGridBroadphaseParams m_params;+btScalar m_maxRadius;+// CPU data+unsigned int* m_hBodiesHash;+unsigned int* m_hCellStart;+unsigned int* m_hPairBuffStartCurr;+bt3DGrid3F1U* m_hAABB;+unsigned int* m_hPairBuff;+unsigned int* m_hPairScan;+unsigned int* m_hPairOut; // large proxies-	int		m_numLargeHandles;						-	int		m_maxLargeHandles;						-	int		m_LastLargeHandleIndex;							-	btSimpleBroadphaseProxy* m_pLargeHandles;-	void* m_pLargeHandlesRawPtr;-	int		m_firstFreeLargeHandle;-	int allocLargeHandle()-	{-		btAssert(m_numLargeHandles < m_maxLargeHandles);-		int freeLargeHandle = m_firstFreeLargeHandle;-		m_firstFreeLargeHandle = m_pLargeHandles[freeLargeHandle].GetNextFree();-		m_numLargeHandles++;-		if(freeLargeHandle > m_LastLargeHandleIndex)-		{-			m_LastLargeHandleIndex = freeLargeHandle;-		}-		return freeLargeHandle;-	}-	void freeLargeHandle(btSimpleBroadphaseProxy* proxy)-	{-		int handle = int(proxy - m_pLargeHandles);-		btAssert((handle >= 0) && (handle < m_maxHandles));-		if(handle == m_LastLargeHandleIndex)-		{-			m_LastLargeHandleIndex--;-		}-		proxy->SetNextFree(m_firstFreeLargeHandle);-		m_firstFreeLargeHandle = handle;-		proxy->m_clientObject = 0;-		m_numLargeHandles--;-	}-	bool isLargeProxy(const btVector3& aabbMin,  const btVector3& aabbMax);-	bool isLargeProxy(btBroadphaseProxy* proxy);+int m_numLargeHandles;+int m_maxLargeHandles;+int m_LastLargeHandleIndex;+btSimpleBroadphaseProxy* m_pLargeHandles;+void* m_pLargeHandlesRawPtr;+int m_firstFreeLargeHandle;+int allocLargeHandle()+{+btAssert(m_numLargeHandles < m_maxLargeHandles);+int freeLargeHandle = m_firstFreeLargeHandle;+m_firstFreeLargeHandle = m_pLargeHandles[freeLargeHandle].GetNextFree();+m_numLargeHandles++;+if(freeLargeHandle > m_LastLargeHandleIndex)+{+m_LastLargeHandleIndex = freeLargeHandle;+}+return freeLargeHandle;+}+void freeLargeHandle(btSimpleBroadphaseProxy* proxy)+{+int handle = int(proxy - m_pLargeHandles);+btAssert((handle >= 0) && (handle < m_maxHandles));+if(handle == m_LastLargeHandleIndex)+{+m_LastLargeHandleIndex--;+}+proxy->SetNextFree(m_firstFreeLargeHandle);+m_firstFreeLargeHandle = handle;+proxy->m_clientObject = 0;+m_numLargeHandles--;+}+bool isLargeProxy(const btVector3& aabbMin, const btVector3& aabbMax);+bool isLargeProxy(btBroadphaseProxy* proxy); // debug-	unsigned int	m_numPairsAdded;-	unsigned int	m_numPairsRemoved;-	unsigned int	m_numOverflows;-// +unsigned int m_numPairsAdded;+unsigned int m_numPairsRemoved;+unsigned int m_numOverflows;+// public:-	btGpu3DGridBroadphase(const btVector3& worldAabbMin,const btVector3& worldAabbMax, -					   int gridSizeX, int gridSizeY, int gridSizeZ, -					   int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,-					   int maxBodiesPerCell = 8,-					   btScalar cellFactorAABB = btScalar(1.0f));-	btGpu3DGridBroadphase(	btOverlappingPairCache* overlappingPairCache,-						const btVector3& worldAabbMin,const btVector3& worldAabbMax, -						int gridSizeX, int gridSizeY, int gridSizeZ, -						int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,-						int maxBodiesPerCell = 8,-						btScalar cellFactorAABB = btScalar(1.0f));-	virtual ~btGpu3DGridBroadphase();-	virtual void	calculateOverlappingPairs(btDispatcher* dispatcher);+btGpu3DGridBroadphase(const btVector3& worldAabbMin,const btVector3& worldAabbMax,+int gridSizeX, int gridSizeY, int gridSizeZ,+int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,+int maxBodiesPerCell = 8,+btScalar cellFactorAABB = btScalar(1.0f));+btGpu3DGridBroadphase( btOverlappingPairCache* overlappingPairCache,+const btVector3& worldAabbMin,const btVector3& worldAabbMax,+int gridSizeX, int gridSizeY, int gridSizeZ,+int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,+int maxBodiesPerCell = 8,+btScalar cellFactorAABB = btScalar(1.0f));+virtual ~btGpu3DGridBroadphase();+virtual void calculateOverlappingPairs(btDispatcher* dispatcher); -	virtual btBroadphaseProxy*	createProxy(const btVector3& aabbMin,  const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy);-	virtual void	destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);-	virtual void	rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback);-	virtual void	resetPool(btDispatcher* dispatcher);+virtual btBroadphaseProxy* createProxy(const btVector3& aabbMin, const btVector3& aabbMax,int shapeType,void* userPtr ,short int collisionFilterGroup,short int collisionFilterMask, btDispatcher* dispatcher,void* multiSapProxy);+virtual void destroyProxy(btBroadphaseProxy* proxy,btDispatcher* dispatcher);+virtual void rayTest(const btVector3& rayFrom,const btVector3& rayTo, btBroadphaseRayCallback& rayCallback);+virtual void resetPool(btDispatcher* dispatcher);  protected:-	void _initialize(	const btVector3& worldAabbMin,const btVector3& worldAabbMax, -						int gridSizeX, int gridSizeY, int gridSizeZ, -						int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,-						int maxBodiesPerCell = 8,-						btScalar cellFactorAABB = btScalar(1.0f));-	void _finalize();-	void addPairsToCache(btDispatcher* dispatcher);-	void addLarge2LargePairsToCache(btDispatcher* dispatcher);+void _initialize( const btVector3& worldAabbMin,const btVector3& worldAabbMax,+int gridSizeX, int gridSizeY, int gridSizeZ,+int maxSmallProxies, int maxLargeProxies, int maxPairsPerBody,+int maxBodiesPerCell = 8,+btScalar cellFactorAABB = btScalar(1.0f));+void _finalize();+void addPairsToCache(btDispatcher* dispatcher);+void addLarge2LargePairsToCache(btDispatcher* dispatcher);  // overrides for CPU version-	virtual void setParameters(bt3DGridBroadphaseParams* hostParams);-	virtual void prepareAABB();-	virtual void calcHashAABB();-	virtual void sortHash();	-	virtual void findCellStart();-	virtual void findOverlappingPairs();-	virtual void findPairsLarge();-	virtual void computePairCacheChanges();-	virtual void scanOverlappingPairBuff();-	virtual void squeezeOverlappingPairBuff();+virtual void setParameters(bt3DGridBroadphaseParams* hostParams);+virtual void prepareAABB();+virtual void calcHashAABB();+virtual void sortHash();+virtual void findCellStart();+virtual void findOverlappingPairs();+virtual void findPairsLarge();+virtual void computePairCacheChanges();+virtual void scanOverlappingPairBuff();+virtual void squeezeOverlappingPairBuff(); };  //----------------------------------------------------------------------------------------
bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedCode.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -19,7 +19,7 @@ //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------//               K E R N E L    F U N C T I O N S +// K E R N E L F U N C T I O N S //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------@@ -30,11 +30,11 @@ // calculate position in uniform grid BT_GPU___device__ int3 bt3DGrid_calcGridPos(float4 p) {-    int3 gridPos;-    gridPos.x = (int)floor((p.x - BT_GPU_params.m_worldOriginX) / BT_GPU_params.m_cellSizeX);-    gridPos.y = (int)floor((p.y - BT_GPU_params.m_worldOriginY) / BT_GPU_params.m_cellSizeY);-    gridPos.z = (int)floor((p.z - BT_GPU_params.m_worldOriginZ) / BT_GPU_params.m_cellSizeZ);-    return gridPos;+int3 gridPos;+gridPos.x = (int)floor((p.x - BT_GPU_params.m_worldOriginX) / BT_GPU_params.m_cellSizeX);+gridPos.y = (int)floor((p.y - BT_GPU_params.m_worldOriginY) / BT_GPU_params.m_cellSizeY);+gridPos.z = (int)floor((p.z - BT_GPU_params.m_worldOriginZ) / BT_GPU_params.m_cellSizeZ);+return gridPos; } // bt3DGrid_calcGridPos()  //----------------------------------------------------------------------------------------@@ -42,10 +42,10 @@ // calculate address in grid from position (clamping to edges) BT_GPU___device__ uint bt3DGrid_calcGridHash(int3 gridPos) {-    gridPos.x = BT_GPU_max(0, BT_GPU_min(gridPos.x, (int)BT_GPU_params.m_gridSizeX - 1));-    gridPos.y = BT_GPU_max(0, BT_GPU_min(gridPos.y, (int)BT_GPU_params.m_gridSizeY - 1));-    gridPos.z = BT_GPU_max(0, BT_GPU_min(gridPos.z, (int)BT_GPU_params.m_gridSizeZ - 1));-    return BT_GPU___mul24(BT_GPU___mul24(gridPos.z, BT_GPU_params.m_gridSizeY), BT_GPU_params.m_gridSizeX) + BT_GPU___mul24(gridPos.y, BT_GPU_params.m_gridSizeX) + gridPos.x;+gridPos.x = BT_GPU_max(0, BT_GPU_min(gridPos.x, (int)BT_GPU_params.m_gridSizeX - 1));+gridPos.y = BT_GPU_max(0, BT_GPU_min(gridPos.y, (int)BT_GPU_params.m_gridSizeY - 1));+gridPos.z = BT_GPU_max(0, BT_GPU_min(gridPos.z, (int)BT_GPU_params.m_gridSizeZ - 1));+return BT_GPU___mul24(BT_GPU___mul24(gridPos.z, BT_GPU_params.m_gridSizeY), BT_GPU_params.m_gridSizeX) + BT_GPU___mul24(gridPos.y, BT_GPU_params.m_gridSizeX) + gridPos.x; } // bt3DGrid_calcGridHash()  //----------------------------------------------------------------------------------------@@ -53,283 +53,283 @@ // calculate grid hash value for each body using its AABB BT_GPU___global__ void calcHashAABBD(bt3DGrid3F1U* pAABB, uint2* pHash, uint numBodies) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-	bt3DGrid3F1U bbMin = pAABB[index*2];-	bt3DGrid3F1U bbMax = pAABB[index*2 + 1];-	float4 pos;-	pos.x = (bbMin.fx + bbMax.fx) * 0.5f;-	pos.y = (bbMin.fy + bbMax.fy) * 0.5f;-	pos.z = (bbMin.fz + bbMax.fz) * 0.5f;-    // get address in grid-    int3 gridPos = bt3DGrid_calcGridPos(pos);-    uint gridHash = bt3DGrid_calcGridHash(gridPos);-    // store grid hash and body index-    pHash[index] = BT_GPU_make_uint2(gridHash, index);+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+bt3DGrid3F1U bbMin = pAABB[index*2];+bt3DGrid3F1U bbMax = pAABB[index*2 + 1];+float4 pos;+pos.x = (bbMin.fx + bbMax.fx) * 0.5f;+pos.y = (bbMin.fy + bbMax.fy) * 0.5f;+pos.z = (bbMin.fz + bbMax.fz) * 0.5f;+// get address in grid+int3 gridPos = bt3DGrid_calcGridPos(pos);+uint gridHash = bt3DGrid_calcGridHash(gridPos);+// store grid hash and body index+pHash[index] = BT_GPU_make_uint2(gridHash, index); } // calcHashAABBD()  //----------------------------------------------------------------------------------------  BT_GPU___global__ void findCellStartD(uint2* pHash, uint* cellStart, uint numBodies) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-    uint2 sortedData = pHash[index];-	// Load hash data into shared memory so that we can look -	// at neighboring body's hash value without loading-	// two hash values per thread-	BT_GPU___shared__ uint sharedHash[257];-	sharedHash[BT_GPU_threadIdx.x+1] = sortedData.x;-	if((index > 0) && (BT_GPU_threadIdx.x == 0))-	{-		// first thread in block must load neighbor body hash-		volatile uint2 prevData = pHash[index-1];-		sharedHash[0] = prevData.x;-	}-	BT_GPU___syncthreads();-	if((index == 0) || (sortedData.x != sharedHash[BT_GPU_threadIdx.x]))-	{-		cellStart[sortedData.x] = index;-	}+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+uint2 sortedData = pHash[index];+// Load hash data into shared memory so that we can look+// at neighboring body's hash value without loading+// two hash values per thread+BT_GPU___shared__ uint sharedHash[257];+sharedHash[BT_GPU_threadIdx.x+1] = sortedData.x;+if((index > 0) && (BT_GPU_threadIdx.x == 0))+{+// first thread in block must load neighbor body hash+volatile uint2 prevData = pHash[index-1];+sharedHash[0] = prevData.x;+}+BT_GPU___syncthreads();+if((index == 0) || (sortedData.x != sharedHash[BT_GPU_threadIdx.x]))+{+cellStart[sortedData.x] = index;+} } // findCellStartD()  //----------------------------------------------------------------------------------------  BT_GPU___device__ uint cudaTestAABBOverlap(bt3DGrid3F1U min0, bt3DGrid3F1U max0, bt3DGrid3F1U min1, bt3DGrid3F1U max1) {-	return	(min0.fx <= max1.fx)&& (min1.fx <= max0.fx) && -			(min0.fy <= max1.fy)&& (min1.fy <= max0.fy) && -			(min0.fz <= max1.fz)&& (min1.fz <= max0.fz); +return (min0.fx <= max1.fx)&& (min1.fx <= max0.fx) &&+(min0.fy <= max1.fy)&& (min1.fy <= max0.fy) &&+(min0.fz <= max1.fz)&& (min1.fz <= max0.fz); } // cudaTestAABBOverlap()- + //---------------------------------------------------------------------------------------- -BT_GPU___device__ void findPairsInCell(	int3	gridPos,-										uint    index,-										uint2*  pHash,-										uint*   pCellStart,-										bt3DGrid3F1U* pAABB, -										uint*   pPairBuff,-										uint2*	pPairBuffStartCurr,-										uint	numBodies)+BT_GPU___device__ void findPairsInCell( int3 gridPos,+uint index,+uint2* pHash,+uint* pCellStart,+bt3DGrid3F1U* pAABB,+uint* pPairBuff,+uint2* pPairBuffStartCurr,+uint numBodies) {-    if (	(gridPos.x < 0) || (gridPos.x > (int)BT_GPU_params.m_gridSizeX - 1)-		||	(gridPos.y < 0) || (gridPos.y > (int)BT_GPU_params.m_gridSizeY - 1)-		||  (gridPos.z < 0) || (gridPos.z > (int)BT_GPU_params.m_gridSizeZ - 1)) -    {-		return;-	}-    uint gridHash = bt3DGrid_calcGridHash(gridPos);-    // get start of bucket for this cell-    uint bucketStart = pCellStart[gridHash];-    if (bucketStart == 0xffffffff)-	{-        return;   // cell empty-	}-	// iterate over bodies in this cell-    uint2 sortedData = pHash[index];-	uint unsorted_indx = sortedData.y;-    bt3DGrid3F1U min0 = BT_GPU_FETCH(pAABB, unsorted_indx*2); -	bt3DGrid3F1U max0 = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);-	uint handleIndex =  min0.uw;-	uint2 start_curr = pPairBuffStartCurr[handleIndex];-	uint start = start_curr.x;-	uint curr = start_curr.y;-	uint2 start_curr_next = pPairBuffStartCurr[handleIndex+1];-	uint curr_max = start_curr_next.x - start - 1;-	uint bucketEnd = bucketStart + BT_GPU_params.m_maxBodiesPerCell;-	bucketEnd = (bucketEnd > numBodies) ? numBodies : bucketEnd;-	for(uint index2 = bucketStart; index2 < bucketEnd; index2++) -	{-        uint2 cellData = pHash[index2];-        if (cellData.x != gridHash)-        {-			break;   // no longer in same bucket-		}-		uint unsorted_indx2 = cellData.y;-        if (unsorted_indx2 < unsorted_indx) // check not colliding with self-        {   -			bt3DGrid3F1U min1 = BT_GPU_FETCH(pAABB, unsorted_indx2*2);-			bt3DGrid3F1U max1 = BT_GPU_FETCH(pAABB, unsorted_indx2*2 + 1);-			if(cudaTestAABBOverlap(min0, max0, min1, max1))-			{-				uint handleIndex2 = min1.uw;-				uint k;-				for(k = 0; k < curr; k++)-				{-					uint old_pair = pPairBuff[start+k] & (~BT_3DGRID_PAIR_ANY_FLG);-					if(old_pair == handleIndex2)-					{-						pPairBuff[start+k] |= BT_3DGRID_PAIR_FOUND_FLG;-						break;-					}-				}-				if(k == curr)-				{-					if(curr >= curr_max) -					{ // not a good solution, but let's avoid crash-						break;-					}-					pPairBuff[start+curr] = handleIndex2 | BT_3DGRID_PAIR_NEW_FLG;-					curr++;-				}-			}-		}-	}-	pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, curr);-    return;+if ( (gridPos.x < 0) || (gridPos.x > (int)BT_GPU_params.m_gridSizeX - 1)+|| (gridPos.y < 0) || (gridPos.y > (int)BT_GPU_params.m_gridSizeY - 1)+|| (gridPos.z < 0) || (gridPos.z > (int)BT_GPU_params.m_gridSizeZ - 1))+{+return;+}+uint gridHash = bt3DGrid_calcGridHash(gridPos);+// get start of bucket for this cell+uint bucketStart = pCellStart[gridHash];+if (bucketStart == 0xffffffff)+{+return; // cell empty+}+// iterate over bodies in this cell+uint2 sortedData = pHash[index];+uint unsorted_indx = sortedData.y;+bt3DGrid3F1U min0 = BT_GPU_FETCH(pAABB, unsorted_indx*2);+bt3DGrid3F1U max0 = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);+uint handleIndex = min0.uw;+uint2 start_curr = pPairBuffStartCurr[handleIndex];+uint start = start_curr.x;+uint curr = start_curr.y;+uint2 start_curr_next = pPairBuffStartCurr[handleIndex+1];+uint curr_max = start_curr_next.x - start - 1;+uint bucketEnd = bucketStart + BT_GPU_params.m_maxBodiesPerCell;+bucketEnd = (bucketEnd > numBodies) ? numBodies : bucketEnd;+for(uint index2 = bucketStart; index2 < bucketEnd; index2++)+{+uint2 cellData = pHash[index2];+if (cellData.x != gridHash)+{+break; // no longer in same bucket+}+uint unsorted_indx2 = cellData.y;+if (unsorted_indx2 < unsorted_indx) // check not colliding with self+{+bt3DGrid3F1U min1 = BT_GPU_FETCH(pAABB, unsorted_indx2*2);+bt3DGrid3F1U max1 = BT_GPU_FETCH(pAABB, unsorted_indx2*2 + 1);+if(cudaTestAABBOverlap(min0, max0, min1, max1))+{+uint handleIndex2 = min1.uw;+uint k;+for(k = 0; k < curr; k++)+{+uint old_pair = pPairBuff[start+k] & (~BT_3DGRID_PAIR_ANY_FLG);+if(old_pair == handleIndex2)+{+pPairBuff[start+k] |= BT_3DGRID_PAIR_FOUND_FLG;+break;+}+}+if(k == curr)+{+if(curr >= curr_max)+{ // not a good solution, but let's avoid crash+break;+}+pPairBuff[start+curr] = handleIndex2 | BT_3DGRID_PAIR_NEW_FLG;+curr++;+}+}+}+}+pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, curr);+return; } // findPairsInCell()  //---------------------------------------------------------------------------------------- -BT_GPU___global__ void findOverlappingPairsD(	bt3DGrid3F1U*	pAABB, uint2* pHash, uint* pCellStart, -												uint* pPairBuff, uint2* pPairBuffStartCurr, uint numBodies)+BT_GPU___global__ void findOverlappingPairsD( bt3DGrid3F1U* pAABB, uint2* pHash, uint* pCellStart,+uint* pPairBuff, uint2* pPairBuffStartCurr, uint numBodies) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-    uint2 sortedData = pHash[index];-	uint unsorted_indx = sortedData.y;-	bt3DGrid3F1U bbMin = BT_GPU_FETCH(pAABB, unsorted_indx*2);-	bt3DGrid3F1U bbMax = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);-	float4 pos;-	pos.x = (bbMin.fx + bbMax.fx) * 0.5f;-	pos.y = (bbMin.fy + bbMax.fy) * 0.5f;-	pos.z = (bbMin.fz + bbMax.fz) * 0.5f;-    // get address in grid-    int3 gridPos = bt3DGrid_calcGridPos(pos);-    // examine only neighbouring cells-    for(int z=-1; z<=1; z++) {-        for(int y=-1; y<=1; y++) {-            for(int x=-1; x<=1; x++) {-                findPairsInCell(gridPos + BT_GPU_make_int3(x, y, z), index, pHash, pCellStart, pAABB, pPairBuff, pPairBuffStartCurr, numBodies);-            }-        }-    }+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+uint2 sortedData = pHash[index];+uint unsorted_indx = sortedData.y;+bt3DGrid3F1U bbMin = BT_GPU_FETCH(pAABB, unsorted_indx*2);+bt3DGrid3F1U bbMax = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);+float4 pos;+pos.x = (bbMin.fx + bbMax.fx) * 0.5f;+pos.y = (bbMin.fy + bbMax.fy) * 0.5f;+pos.z = (bbMin.fz + bbMax.fz) * 0.5f;+// get address in grid+int3 gridPos = bt3DGrid_calcGridPos(pos);+// examine only neighbouring cells+for(int z=-1; z<=1; z++) {+for(int y=-1; y<=1; y++) {+for(int x=-1; x<=1; x++) {+findPairsInCell(gridPos + BT_GPU_make_int3(x, y, z), index, pHash, pCellStart, pAABB, pPairBuff, pPairBuffStartCurr, numBodies);+}+}+} } // findOverlappingPairsD()  //---------------------------------------------------------------------------------------- -BT_GPU___global__ void findPairsLargeD(	bt3DGrid3F1U* pAABB, uint2* pHash, uint* pCellStart, uint* pPairBuff, -										uint2* pPairBuffStartCurr, uint numBodies, uint numLarge)+BT_GPU___global__ void findPairsLargeD( bt3DGrid3F1U* pAABB, uint2* pHash, uint* pCellStart, uint* pPairBuff,+uint2* pPairBuffStartCurr, uint numBodies, uint numLarge) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-    uint2 sortedData = pHash[index];-	uint unsorted_indx = sortedData.y;-	bt3DGrid3F1U min0 = BT_GPU_FETCH(pAABB, unsorted_indx*2);-	bt3DGrid3F1U max0 = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);-	uint handleIndex =  min0.uw;-	uint2 start_curr = pPairBuffStartCurr[handleIndex];-	uint start = start_curr.x;-	uint curr = start_curr.y;-	uint2 start_curr_next = pPairBuffStartCurr[handleIndex+1];-	uint curr_max = start_curr_next.x - start - 1;-    for(uint i = 0; i < numLarge; i++)-    {-		uint indx2 = numBodies + i;-		bt3DGrid3F1U min1 = BT_GPU_FETCH(pAABB, indx2*2);-		bt3DGrid3F1U max1 = BT_GPU_FETCH(pAABB, indx2*2 + 1);-		if(cudaTestAABBOverlap(min0, max0, min1, max1))-		{-			uint k;-			uint handleIndex2 =  min1.uw;-			for(k = 0; k < curr; k++)-			{-				uint old_pair = pPairBuff[start+k] & (~BT_3DGRID_PAIR_ANY_FLG);-				if(old_pair == handleIndex2)-				{-					pPairBuff[start+k] |= BT_3DGRID_PAIR_FOUND_FLG;-					break;-				}-			}-			if(k == curr)-			{-				pPairBuff[start+curr] = handleIndex2 | BT_3DGRID_PAIR_NEW_FLG;-				if(curr >= curr_max) -				{ // not a good solution, but let's avoid crash-					break;-				}-				curr++;-			}-		}-    }-	pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, curr);-    return;+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+uint2 sortedData = pHash[index];+uint unsorted_indx = sortedData.y;+bt3DGrid3F1U min0 = BT_GPU_FETCH(pAABB, unsorted_indx*2);+bt3DGrid3F1U max0 = BT_GPU_FETCH(pAABB, unsorted_indx*2 + 1);+uint handleIndex = min0.uw;+uint2 start_curr = pPairBuffStartCurr[handleIndex];+uint start = start_curr.x;+uint curr = start_curr.y;+uint2 start_curr_next = pPairBuffStartCurr[handleIndex+1];+uint curr_max = start_curr_next.x - start - 1;+for(uint i = 0; i < numLarge; i++)+{+uint indx2 = numBodies + i;+bt3DGrid3F1U min1 = BT_GPU_FETCH(pAABB, indx2*2);+bt3DGrid3F1U max1 = BT_GPU_FETCH(pAABB, indx2*2 + 1);+if(cudaTestAABBOverlap(min0, max0, min1, max1))+{+uint k;+uint handleIndex2 = min1.uw;+for(k = 0; k < curr; k++)+{+uint old_pair = pPairBuff[start+k] & (~BT_3DGRID_PAIR_ANY_FLG);+if(old_pair == handleIndex2)+{+pPairBuff[start+k] |= BT_3DGRID_PAIR_FOUND_FLG;+break;+}+}+if(k == curr)+{+pPairBuff[start+curr] = handleIndex2 | BT_3DGRID_PAIR_NEW_FLG;+if(curr >= curr_max)+{ // not a good solution, but let's avoid crash+break;+}+curr++;+}+}+}+pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, curr);+return; } // findPairsLargeD()  //---------------------------------------------------------------------------------------- -BT_GPU___global__ void computePairCacheChangesD(uint* pPairBuff, uint2* pPairBuffStartCurr, -												uint* pPairScan, bt3DGrid3F1U* pAABB, uint numBodies)+BT_GPU___global__ void computePairCacheChangesD(uint* pPairBuff, uint2* pPairBuffStartCurr,+uint* pPairScan, bt3DGrid3F1U* pAABB, uint numBodies) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-	bt3DGrid3F1U bbMin = pAABB[index * 2];-	uint handleIndex = bbMin.uw;-	uint2 start_curr = pPairBuffStartCurr[handleIndex];-	uint start = start_curr.x;-	uint curr = start_curr.y;-	uint *pInp = pPairBuff + start;-	uint num_changes = 0;-	for(uint k = 0; k < curr; k++, pInp++)-	{-		if(!((*pInp) & BT_3DGRID_PAIR_FOUND_FLG))-		{-			num_changes++;-		}-	}-	pPairScan[index+1] = num_changes;+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+bt3DGrid3F1U bbMin = pAABB[index * 2];+uint handleIndex = bbMin.uw;+uint2 start_curr = pPairBuffStartCurr[handleIndex];+uint start = start_curr.x;+uint curr = start_curr.y;+uint *pInp = pPairBuff + start;+uint num_changes = 0;+for(uint k = 0; k < curr; k++, pInp++)+{+if(!((*pInp) & BT_3DGRID_PAIR_FOUND_FLG))+{+num_changes++;+}+}+pPairScan[index+1] = num_changes; } // computePairCacheChangesD()  //----------------------------------------------------------------------------------------  BT_GPU___global__ void squeezeOverlappingPairBuffD(uint* pPairBuff, uint2* pPairBuffStartCurr, uint* pPairScan,-												   uint* pPairOut, bt3DGrid3F1U* pAABB, uint numBodies)+uint* pPairOut, bt3DGrid3F1U* pAABB, uint numBodies) {-    int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;-    if(index >= (int)numBodies)-	{-		return;-	}-	bt3DGrid3F1U bbMin = pAABB[index * 2];-	uint handleIndex = bbMin.uw;-	uint2 start_curr = pPairBuffStartCurr[handleIndex];-	uint start = start_curr.x;-	uint curr = start_curr.y;-	uint* pInp = pPairBuff + start;-	uint* pOut = pPairOut + pPairScan[index];-	uint* pOut2 = pInp;-	uint num = 0; -	for(uint k = 0; k < curr; k++, pInp++)-	{-		if(!((*pInp) & BT_3DGRID_PAIR_FOUND_FLG))-		{-			*pOut = *pInp;-			pOut++;-		}-		if((*pInp) & BT_3DGRID_PAIR_ANY_FLG)-		{-			*pOut2 = (*pInp) & (~BT_3DGRID_PAIR_ANY_FLG);-			pOut2++;-			num++;-		}-	}-	pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, num);+int index = BT_GPU___mul24(BT_GPU_blockIdx.x, BT_GPU_blockDim.x) + BT_GPU_threadIdx.x;+if(index >= (int)numBodies)+{+return;+}+bt3DGrid3F1U bbMin = pAABB[index * 2];+uint handleIndex = bbMin.uw;+uint2 start_curr = pPairBuffStartCurr[handleIndex];+uint start = start_curr.x;+uint curr = start_curr.y;+uint* pInp = pPairBuff + start;+uint* pOut = pPairOut + pPairScan[index];+uint* pOut2 = pInp;+uint num = 0;+for(uint k = 0; k < curr; k++, pInp++)+{+if(!((*pInp) & BT_3DGRID_PAIR_FOUND_FLG))+{+*pOut = *pInp;+pOut++;+}+if((*pInp) & BT_3DGRID_PAIR_ANY_FLG)+{+*pOut2 = (*pInp) & (~BT_3DGRID_PAIR_ANY_FLG);+pOut2++;+num++;+}+}+pPairBuffStartCurr[handleIndex] = BT_GPU_make_uint2(start, num); } // squeezeOverlappingPairBuffD()  @@ -337,7 +337,7 @@ //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------//               E N D   O F    K E R N E L    F U N C T I O N S +// E N D O F K E R N E L F U N C T I O N S //---------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------@@ -348,40 +348,40 @@  //---------------------------------------------------------------------------------------- -void BT_GPU_PREF(calcHashAABB)(bt3DGrid3F1U* pAABB, unsigned int* hash,	unsigned int numBodies)+void BT_GPU_PREF(calcHashAABB)(bt3DGrid3F1U* pAABB, unsigned int* hash, unsigned int numBodies) {-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);-    // execute the kernel-    BT_GPU_EXECKERNEL(numBlocks, numThreads, calcHashAABBD, (pAABB, (uint2*)hash, numBodies));-    // check if kernel invocation generated an error-    BT_GPU_CHECK_ERROR("calcHashAABBD kernel execution failed");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);+// execute the kernel+BT_GPU_EXECKERNEL(numBlocks, numThreads, calcHashAABBD, (pAABB, (uint2*)hash, numBodies));+// check if kernel invocation generated an error+BT_GPU_CHECK_ERROR("calcHashAABBD kernel execution failed"); } // calcHashAABB()  //----------------------------------------------------------------------------------------  void BT_GPU_PREF(findCellStart(unsigned int* hash, unsigned int* cellStart, unsigned int numBodies, unsigned int numCells)) {-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);-	BT_GPU_SAFE_CALL(BT_GPU_Memset(cellStart, 0xffffffff, numCells*sizeof(uint)));-	BT_GPU_EXECKERNEL(numBlocks, numThreads, findCellStartD, ((uint2*)hash, (uint*)cellStart, numBodies));-    BT_GPU_CHECK_ERROR("Kernel execution failed: findCellStartD");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);+BT_GPU_SAFE_CALL(BT_GPU_Memset(cellStart, 0xffffffff, numCells*sizeof(uint)));+BT_GPU_EXECKERNEL(numBlocks, numThreads, findCellStartD, ((uint2*)hash, (uint*)cellStart, numBodies));+BT_GPU_CHECK_ERROR("Kernel execution failed: findCellStartD"); } // findCellStart()  //---------------------------------------------------------------------------------------- -void BT_GPU_PREF(findOverlappingPairs(bt3DGrid3F1U* pAABB, unsigned int* pHash,	unsigned int* pCellStart, unsigned int*	pPairBuff, unsigned int*	pPairBuffStartCurr, unsigned int	numBodies))+void BT_GPU_PREF(findOverlappingPairs(bt3DGrid3F1U* pAABB, unsigned int* pHash, unsigned int* pCellStart, unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int numBodies)) { #if B_CUDA_USE_TEX-    BT_GPU_SAFE_CALL(cudaBindTexture(0, pAABBTex, pAABB, numBodies * 2 * sizeof(bt3DGrid3F1U)));+BT_GPU_SAFE_CALL(cudaBindTexture(0, pAABBTex, pAABB, numBodies * 2 * sizeof(bt3DGrid3F1U))); #endif-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 64, numBlocks, numThreads);-    BT_GPU_EXECKERNEL(numBlocks, numThreads, findOverlappingPairsD, (pAABB,(uint2*)pHash,(uint*)pCellStart,(uint*)pPairBuff,(uint2*)pPairBuffStartCurr,numBodies));-    BT_GPU_CHECK_ERROR("Kernel execution failed: bt_CudaFindOverlappingPairsD");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 64, numBlocks, numThreads);+BT_GPU_EXECKERNEL(numBlocks, numThreads, findOverlappingPairsD, (pAABB,(uint2*)pHash,(uint*)pCellStart,(uint*)pPairBuff,(uint2*)pPairBuffStartCurr,numBodies));+BT_GPU_CHECK_ERROR("Kernel execution failed: bt_CudaFindOverlappingPairsD"); #if B_CUDA_USE_TEX-    BT_GPU_SAFE_CALL(cudaUnbindTexture(pAABBTex));+BT_GPU_SAFE_CALL(cudaUnbindTexture(pAABBTex)); #endif } // findOverlappingPairs() @@ -390,14 +390,14 @@ void BT_GPU_PREF(findPairsLarge(bt3DGrid3F1U* pAABB, unsigned int* pHash, unsigned int* pCellStart, unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int numBodies, unsigned int numLarge)) { #if B_CUDA_USE_TEX-    BT_GPU_SAFE_CALL(cudaBindTexture(0, pAABBTex, pAABB, (numBodies+numLarge) * 2 * sizeof(bt3DGrid3F1U)));+BT_GPU_SAFE_CALL(cudaBindTexture(0, pAABBTex, pAABB, (numBodies+numLarge) * 2 * sizeof(bt3DGrid3F1U))); #endif-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 64, numBlocks, numThreads);-    BT_GPU_EXECKERNEL(numBlocks, numThreads, findPairsLargeD, (pAABB,(uint2*)pHash,(uint*)pCellStart,(uint*)pPairBuff,(uint2*)pPairBuffStartCurr,numBodies,numLarge));-    BT_GPU_CHECK_ERROR("Kernel execution failed: btCuda_findPairsLargeD");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 64, numBlocks, numThreads);+BT_GPU_EXECKERNEL(numBlocks, numThreads, findPairsLargeD, (pAABB,(uint2*)pHash,(uint*)pCellStart,(uint*)pPairBuff,(uint2*)pPairBuffStartCurr,numBodies,numLarge));+BT_GPU_CHECK_ERROR("Kernel execution failed: btCuda_findPairsLargeD"); #if B_CUDA_USE_TEX-    BT_GPU_SAFE_CALL(cudaUnbindTexture(pAABBTex));+BT_GPU_SAFE_CALL(cudaUnbindTexture(pAABBTex)); #endif } // findPairsLarge() @@ -405,20 +405,20 @@  void BT_GPU_PREF(computePairCacheChanges(unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int* pPairScan, bt3DGrid3F1U* pAABB, unsigned int numBodies)) {-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);-    BT_GPU_EXECKERNEL(numBlocks, numThreads, computePairCacheChangesD, ((uint*)pPairBuff,(uint2*)pPairBuffStartCurr,(uint*)pPairScan,pAABB,numBodies));-    BT_GPU_CHECK_ERROR("Kernel execution failed: btCudaComputePairCacheChangesD");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);+BT_GPU_EXECKERNEL(numBlocks, numThreads, computePairCacheChangesD, ((uint*)pPairBuff,(uint2*)pPairBuffStartCurr,(uint*)pPairScan,pAABB,numBodies));+BT_GPU_CHECK_ERROR("Kernel execution failed: btCudaComputePairCacheChangesD"); } // computePairCacheChanges()  //----------------------------------------------------------------------------------------  void BT_GPU_PREF(squeezeOverlappingPairBuff(unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int* pPairScan, unsigned int* pPairOut, bt3DGrid3F1U* pAABB, unsigned int numBodies)) {-    int numThreads, numBlocks;-    BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);-    BT_GPU_EXECKERNEL(numBlocks, numThreads, squeezeOverlappingPairBuffD, ((uint*)pPairBuff,(uint2*)pPairBuffStartCurr,(uint*)pPairScan,(uint*)pPairOut,pAABB,numBodies));-    BT_GPU_CHECK_ERROR("Kernel execution failed: btCudaSqueezeOverlappingPairBuffD");+int numThreads, numBlocks;+BT_GPU_PREF(computeGridSize)(numBodies, 256, numBlocks, numThreads);+BT_GPU_EXECKERNEL(numBlocks, numThreads, squeezeOverlappingPairBuffD, ((uint*)pPairBuff,(uint2*)pPairBuffStartCurr,(uint*)pPairScan,(uint*)pPairOut,pAABB,numBodies));+BT_GPU_CHECK_ERROR("Kernel execution failed: btCudaSqueezeOverlappingPairBuffD"); } // btCuda_squeezeOverlappingPairBuff()  //------------------------------------------------------------------------------------------------
bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedDefs.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,8 +18,8 @@ // Shared definitions for GPU-based 3D Grid collision detection broadphase  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-//  Keep this file free from Bullet headers-//  it is included into both CUDA and CPU code+// Keep this file free from Bullet headers+// it is included into both CUDA and CPU code //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  //----------------------------------------------------------------------------------------@@ -38,11 +38,11 @@  //---------------------------------------------------------------------------------------- -void BT_GPU_PREF(calcHashAABB)(bt3DGrid3F1U* pAABB, unsigned int* hash,	unsigned int numBodies);+void BT_GPU_PREF(calcHashAABB)(bt3DGrid3F1U* pAABB, unsigned int* hash, unsigned int numBodies);  void BT_GPU_PREF(findCellStart)(unsigned int* hash, unsigned int* cellStart, unsigned int numBodies, unsigned int numCells); -void BT_GPU_PREF(findOverlappingPairs)(bt3DGrid3F1U* pAABB, unsigned int* pHash,	unsigned int* pCellStart, unsigned int*	pPairBuff, unsigned int*	pPairBuffStartCurr, unsigned int	numBodies);+void BT_GPU_PREF(findOverlappingPairs)(bt3DGrid3F1U* pAABB, unsigned int* pHash, unsigned int* pCellStart, unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int numBodies);  void BT_GPU_PREF(findPairsLarge)(bt3DGrid3F1U* pAABB, unsigned int* pHash, unsigned int* pCellStart, unsigned int* pPairBuff, unsigned int* pPairBuffStartCurr, unsigned int numBodies, unsigned int numLarge); 
bullet/BulletMultiThreaded/btGpu3DGridBroadphaseSharedTypes.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,8 +18,8 @@ // Shared definitions for GPU-based 3D Grid collision detection broadphase  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-//  Keep this file free from Bullet headers-//  it is included into both CUDA and CPU code+// Keep this file free from Bullet headers+// it is included into both CUDA and CPU code //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  //----------------------------------------------------------------------------------------@@ -30,35 +30,35 @@ //----------------------------------------------------------------------------------------  #define BT_3DGRID_PAIR_FOUND_FLG (0x40000000)-#define BT_3DGRID_PAIR_NEW_FLG   (0x20000000)-#define BT_3DGRID_PAIR_ANY_FLG   (BT_3DGRID_PAIR_FOUND_FLG | BT_3DGRID_PAIR_NEW_FLG)+#define BT_3DGRID_PAIR_NEW_FLG (0x20000000)+#define BT_3DGRID_PAIR_ANY_FLG (BT_3DGRID_PAIR_FOUND_FLG | BT_3DGRID_PAIR_NEW_FLG)  //---------------------------------------------------------------------------------------- -struct bt3DGridBroadphaseParams +struct bt3DGridBroadphaseParams {-	unsigned int	m_gridSizeX;-	unsigned int	m_gridSizeY;-	unsigned int	m_gridSizeZ;-	unsigned int	m_numCells;-	float			m_worldOriginX;-	float			m_worldOriginY;-	float			m_worldOriginZ;-	float			m_cellSizeX;-	float			m_cellSizeY;-	float			m_cellSizeZ;-	unsigned int	m_numBodies;-	unsigned int	m_maxBodiesPerCell;+unsigned int m_gridSizeX;+unsigned int m_gridSizeY;+unsigned int m_gridSizeZ;+unsigned int m_numCells;+float m_worldOriginX;+float m_worldOriginY;+float m_worldOriginZ;+float m_cellSizeX;+float m_cellSizeY;+float m_cellSizeZ;+unsigned int m_numBodies;+unsigned int m_maxBodiesPerCell; };  //----------------------------------------------------------------------------------------  struct bt3DGrid3F1U {-	float			fx;-	float			fy;-	float			fz;-	unsigned int	uw;+float fx;+float fy;+float fz;+unsigned int uw; };  //----------------------------------------------------------------------------------------
bullet/BulletMultiThreaded/btGpuDefines.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,32 +25,32 @@  struct int2 {-	int x, y;+int x, y; };  struct uint2 {-	unsigned int x, y;+unsigned int x, y; };  struct int3 {-	int x, y, z;+int x, y, z; };  struct uint3 {-	unsigned int x, y, z;+unsigned int x, y, z; };  struct float4 {-	float x, y, z, w;+float x, y, z, w; };  struct float3 {-	float x, y, z;+float x, y, z; };  @@ -68,125 +68,125 @@  static inline uint2 bt3dGrid_make_uint2(unsigned int x, unsigned int y) {-  uint2 t; t.x = x; t.y = y; return t;+uint2 t; t.x = x; t.y = y; return t; } #define BT_GPU_make_uint2(x, y) bt3dGrid_make_uint2(x, y)  static inline int3 bt3dGrid_make_int3(int x, int y, int z) {-  int3 t; t.x = x; t.y = y; t.z = z; return t;+int3 t; t.x = x; t.y = y; t.z = z; return t; } #define BT_GPU_make_int3(x, y, z) bt3dGrid_make_int3(x, y, z)  static inline float3 bt3dGrid_make_float3(float x, float y, float z) {-  float3 t; t.x = x; t.y = y; t.z = z; return t;+float3 t; t.x = x; t.y = y; t.z = z; return t; } #define BT_GPU_make_float3(x, y, z) bt3dGrid_make_float3(x, y, z)  static inline float3 bt3dGrid_make_float34(float4 f) {-  float3 t; t.x = f.x; t.y = f.y; t.z = f.z; return t;+float3 t; t.x = f.x; t.y = f.y; t.z = f.z; return t; } #define BT_GPU_make_float34(f) bt3dGrid_make_float34(f)  static inline float3 bt3dGrid_make_float31(float f) {-  float3 t; t.x = t.y = t.z = f; return t;+float3 t; t.x = t.y = t.z = f; return t; } #define BT_GPU_make_float31(x) bt3dGrid_make_float31(x)  static inline float4 bt3dGrid_make_float42(float3 v, float f) {-  float4 t; t.x = v.x; t.y = v.y; t.z = v.z; t.w = f; return t;+float4 t; t.x = v.x; t.y = v.y; t.z = v.z; t.w = f; return t; }-#define BT_GPU_make_float42(a, b) bt3dGrid_make_float42(a, b) +#define BT_GPU_make_float42(a, b) bt3dGrid_make_float42(a, b)  static inline float4 bt3dGrid_make_float44(float a, float b, float c, float d) {-  float4 t; t.x = a; t.y = b; t.z = c; t.w = d; return t;+float4 t; t.x = a; t.y = b; t.z = c; t.w = d; return t; }-#define BT_GPU_make_float44(a, b, c, d) bt3dGrid_make_float44(a, b, c, d) +#define BT_GPU_make_float44(a, b, c, d) bt3dGrid_make_float44(a, b, c, d)  inline int3 operator+(int3 a, int3 b) {-    return bt3dGrid_make_int3(a.x + b.x, a.y + b.y, a.z + b.z);+return bt3dGrid_make_int3(a.x + b.x, a.y + b.y, a.z + b.z); }  inline float4 operator+(const float4& a, const float4& b) {-	float4 r; r.x = a.x+b.x; r.y = a.y+b.y; r.z = a.z+b.z; r.w = a.w+b.w; return r;+float4 r; r.x = a.x+b.x; r.y = a.y+b.y; r.z = a.z+b.z; r.w = a.w+b.w; return r; } inline float4 operator*(const float4& a, float fact) {-	float4 r; r.x = a.x*fact; r.y = a.y*fact; r.z = a.z*fact; r.w = a.w*fact; return r;+float4 r; r.x = a.x*fact; r.y = a.y*fact; r.z = a.z*fact; r.w = a.w*fact; return r; } inline float4 operator*(float fact, float4& a) {-	return (a * fact);+return (a * fact); } inline float4& operator*=(float4& a, float fact) {-	a = fact * a;-	return a;+a = fact * a;+return a; } inline float4& operator+=(float4& a, const float4& b) {-	a = a + b;-	return a;+a = a + b;+return a; }  inline float3 operator+(const float3& a, const float3& b) {-	float3 r; r.x = a.x+b.x; r.y = a.y+b.y; r.z = a.z+b.z; return r;+float3 r; r.x = a.x+b.x; r.y = a.y+b.y; r.z = a.z+b.z; return r; } inline float3 operator-(const float3& a, const float3& b) {-	float3 r; r.x = a.x-b.x; r.y = a.y-b.y; r.z = a.z-b.z; return r;+float3 r; r.x = a.x-b.x; r.y = a.y-b.y; r.z = a.z-b.z; return r; } static inline float bt3dGrid_dot(float3& a, float3& b) {-	return a.x*b.x+a.y*b.y+a.z*b.z;+return a.x*b.x+a.y*b.y+a.z*b.z; } #define BT_GPU_dot(a,b) bt3dGrid_dot(a,b)  static inline float bt3dGrid_dot4(float4& a, float4& b) {-	return a.x*b.x+a.y*b.y+a.z*b.z+a.w*b.w;+return a.x*b.x+a.y*b.y+a.z*b.z+a.w*b.w; } #define BT_GPU_dot4(a,b) bt3dGrid_dot4(a,b)  static inline float3 bt3dGrid_cross(const float3& a, const float3& b) {-	float3 r; r.x = a.y*b.z-a.z*b.y; r.y = -a.x*b.z+a.z*b.x; r.z = a.x*b.y-a.y*b.x;	return r;+float3 r; r.x = a.y*b.z-a.z*b.y; r.y = -a.x*b.z+a.z*b.x; r.z = a.x*b.y-a.y*b.x; return r; } #define BT_GPU_cross(a,b) bt3dGrid_cross(a,b)   inline float3 operator*(const float3& a, float fact) {-	float3 r; r.x = a.x*fact; r.y = a.y*fact; r.z = a.z*fact; return r;+float3 r; r.x = a.x*fact; r.y = a.y*fact; r.z = a.z*fact; return r; }   inline float3& operator+=(float3& a, const float3& b) {-	a = a + b;-	return a;+a = a + b;+return a; } inline float3& operator-=(float3& a, const float3& b) {-	a = a - b;-	return a;+a = a - b;+return a; } inline float3& operator*=(float3& a, float fact) {-	a = a * fact;-	return a;+a = a * fact;+return a; } inline float3 operator-(const float3& v) {-	float3 r; r.x = -v.x; r.y = -v.y; r.z = -v.z; return r;+float3 r; r.x = -v.x; r.y = -v.y; r.z = -v.z; return r; }  
bullet/BulletMultiThreaded/btGpuUtilsSharedCode.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2009 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2009 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -18,9 +18,9 @@ // Shared code for GPU-based utilities  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-//  Keep this file free from Bullet headers-//  will be compiled by both CPU and CUDA compilers-//	file with definitions of BT_GPU_xxx should be included first+// Keep this file free from Bullet headers+// will be compiled by both CPU and CUDA compilers+// file with definitions of BT_GPU_xxx should be included first //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  //----------------------------------------------------------------------------------------@@ -37,7 +37,7 @@ //Round a / b to nearest higher integer value int BT_GPU_PREF(iDivUp)(int a, int b) {-    return (a % b != 0) ? (a / b + 1) : (a / b);+return (a % b != 0) ? (a / b + 1) : (a / b); } // iDivUp()  //----------------------------------------------------------------------------------------@@ -45,8 +45,8 @@ // compute grid and thread block size for a given number of elements void BT_GPU_PREF(computeGridSize)(int n, int blockSize, int &numBlocks, int &numThreads) {-    numThreads = BT_GPU_min(blockSize, n);-    numBlocks = BT_GPU_PREF(iDivUp)(n, numThreads);+numThreads = BT_GPU_min(blockSize, n);+numBlocks = BT_GPU_PREF(iDivUp)(n, numThreads); } // computeGridSize()  //----------------------------------------------------------------------------------------
bullet/BulletMultiThreaded/btGpuUtilsSharedDefs.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library, http://bulletphysics.org-Copyright (C) 2006, 2007 Sony Computer Entertainment Inc. +Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -16,9 +16,9 @@ // Shared definitions for GPU-based utilities  //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-//  Keep this file free from Bullet headers-//  it is included into both CUDA and CPU code-//	file with definitions of BT_GPU_xxx should be included first+// Keep this file free from Bullet headers+// it is included into both CUDA and CPU code+// file with definitions of BT_GPU_xxx should be included first //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
bullet/BulletMultiThreaded/btParallelConstraintSolver.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2010 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2010 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,15 +28,15 @@  #define PFX_MAX_SOLVER_PHASES 64 #define PFX_MAX_SOLVER_BATCHES 16-#define PFX_MAX_SOLVER_PAIRS  128-#define PFX_MIN_SOLVER_PAIRS  16+#define PFX_MAX_SOLVER_PAIRS 128+#define PFX_MIN_SOLVER_PAIRS 16  #ifdef __CELLOS_LV2__ ATTRIBUTE_ALIGNED128(struct) PfxParallelBatch { #else ATTRIBUTE_ALIGNED16(struct) PfxParallelBatch { #endif-	uint16_t pairIndices[PFX_MAX_SOLVER_PAIRS];+uint16_t pairIndices[PFX_MAX_SOLVER_PAIRS]; };  #ifdef __CELLOS_LV2__@@ -44,68 +44,68 @@ #else ATTRIBUTE_ALIGNED16(struct) PfxParallelGroup { #endif-	uint16_t numPhases;-	uint16_t numBatches[PFX_MAX_SOLVER_PHASES];-	uint16_t numPairs[PFX_MAX_SOLVER_PHASES*PFX_MAX_SOLVER_BATCHES];+uint16_t numPhases;+uint16_t numBatches[PFX_MAX_SOLVER_PHASES];+uint16_t numPairs[PFX_MAX_SOLVER_PHASES*PFX_MAX_SOLVER_BATCHES]; };    ATTRIBUTE_ALIGNED16(struct) PfxSortData16 {-	union {-		uint8_t   i8data[16];-		uint16_t  i16data[8];-		uint32_t  i32data[4];+union {+uint8_t i8data[16];+uint16_t i16data[8];+uint32_t i32data[4]; #ifdef __SPU__-		vec_uint4 vdata;+vec_uint4 vdata; #endif-	};+};  #ifdef __SPU__-	void set8(int elem,uint8_t data)   {vdata=(vec_uint4)spu_insert(data,(vec_uchar16)vdata,elem);}-	void set16(int elem,uint16_t data) {vdata=(vec_uint4)spu_insert(data,(vec_ushort8)vdata,elem);}-	void set32(int elem,uint32_t data) {vdata=(vec_uint4)spu_insert(data,(vec_uint4)vdata,elem);}-	uint8_t get8(int elem)   const {return spu_extract((vec_uchar16)vdata,elem);}-	uint16_t get16(int elem) const {return spu_extract((vec_ushort8)vdata,elem);}-	uint32_t get32(int elem) const {return spu_extract((vec_uint4)vdata,elem);}+void set8(int elem,uint8_t data) {vdata=(vec_uint4)spu_insert(data,(vec_uchar16)vdata,elem);}+void set16(int elem,uint16_t data) {vdata=(vec_uint4)spu_insert(data,(vec_ushort8)vdata,elem);}+void set32(int elem,uint32_t data) {vdata=(vec_uint4)spu_insert(data,(vec_uint4)vdata,elem);}+uint8_t get8(int elem) const {return spu_extract((vec_uchar16)vdata,elem);}+uint16_t get16(int elem) const {return spu_extract((vec_ushort8)vdata,elem);}+uint32_t get32(int elem) const {return spu_extract((vec_uint4)vdata,elem);} #else-	void set8(int elem,uint8_t data)   {i8data[elem] = data;}-	void set16(int elem,uint16_t data) {i16data[elem] = data;}-	void set32(int elem,uint32_t data) {i32data[elem] = data;}-	uint8_t get8(int elem)   const {return i8data[elem];}-	uint16_t get16(int elem) const {return i16data[elem];}-	uint32_t get32(int elem) const {return i32data[elem];}+void set8(int elem,uint8_t data) {i8data[elem] = data;}+void set16(int elem,uint16_t data) {i16data[elem] = data;}+void set32(int elem,uint32_t data) {i32data[elem] = data;}+uint8_t get8(int elem) const {return i8data[elem];}+uint16_t get16(int elem) const {return i16data[elem];}+uint32_t get32(int elem) const {return i32data[elem];} #endif };  typedef PfxSortData16 PfxConstraintPair;  -//J	PfxBroadphasePair‚Æ‹¤’Ê+//J PfxBroadphasePair‚Æ‹¤’Ê -SIMD_FORCE_INLINE void pfxSetConstraintId(PfxConstraintPair &pair,uint32_t i)	{pair.set32(2,i);}-SIMD_FORCE_INLINE void pfxSetNumConstraints(PfxConstraintPair &pair,uint8_t n)	{pair.set8(7,n);}+SIMD_FORCE_INLINE void pfxSetConstraintId(PfxConstraintPair &pair,uint32_t i) {pair.set32(2,i);}+SIMD_FORCE_INLINE void pfxSetNumConstraints(PfxConstraintPair &pair,uint8_t n) {pair.set8(7,n);} -SIMD_FORCE_INLINE uint32_t pfxGetConstraintId1(const PfxConstraintPair &pair)	{return pair.get32(2);}-SIMD_FORCE_INLINE uint8_t  pfxGetNumConstraints(const PfxConstraintPair &pair)	{return pair.get8(7);}+SIMD_FORCE_INLINE uint32_t pfxGetConstraintId1(const PfxConstraintPair &pair) {return pair.get32(2);}+SIMD_FORCE_INLINE uint8_t pfxGetNumConstraints(const PfxConstraintPair &pair) {return pair.get8(7);}  typedef PfxSortData16 PfxBroadphasePair; -SIMD_FORCE_INLINE void pfxSetRigidBodyIdA(PfxBroadphasePair &pair,uint16_t i)	{pair.set16(0,i);}-SIMD_FORCE_INLINE void pfxSetRigidBodyIdB(PfxBroadphasePair &pair,uint16_t i)	{pair.set16(1,i);}-SIMD_FORCE_INLINE void pfxSetMotionMaskA(PfxBroadphasePair &pair,uint8_t i)		{pair.set8(4,i);}-SIMD_FORCE_INLINE void pfxSetMotionMaskB(PfxBroadphasePair &pair,uint8_t i)		{pair.set8(5,i);}-SIMD_FORCE_INLINE void pfxSetBroadphaseFlag(PfxBroadphasePair &pair,uint8_t f)	{pair.set8(6,(pair.get8(6)&0xf0)|(f&0x0f));}-SIMD_FORCE_INLINE void pfxSetActive(PfxBroadphasePair &pair,bool b)			{pair.set8(6,(pair.get8(6)&0x0f)|((b?1:0)<<4));}-SIMD_FORCE_INLINE void pfxSetContactId(PfxBroadphasePair &pair,uint32_t i)		{pair.set32(2,i);}+SIMD_FORCE_INLINE void pfxSetRigidBodyIdA(PfxBroadphasePair &pair,uint16_t i) {pair.set16(0,i);}+SIMD_FORCE_INLINE void pfxSetRigidBodyIdB(PfxBroadphasePair &pair,uint16_t i) {pair.set16(1,i);}+SIMD_FORCE_INLINE void pfxSetMotionMaskA(PfxBroadphasePair &pair,uint8_t i) {pair.set8(4,i);}+SIMD_FORCE_INLINE void pfxSetMotionMaskB(PfxBroadphasePair &pair,uint8_t i) {pair.set8(5,i);}+SIMD_FORCE_INLINE void pfxSetBroadphaseFlag(PfxBroadphasePair &pair,uint8_t f) {pair.set8(6,(pair.get8(6)&0xf0)|(f&0x0f));}+SIMD_FORCE_INLINE void pfxSetActive(PfxBroadphasePair &pair,bool b) {pair.set8(6,(pair.get8(6)&0x0f)|((b?1:0)<<4));}+SIMD_FORCE_INLINE void pfxSetContactId(PfxBroadphasePair &pair,uint32_t i) {pair.set32(2,i);} -SIMD_FORCE_INLINE uint16_t pfxGetRigidBodyIdA(const PfxBroadphasePair &pair)	{return pair.get16(0);}-SIMD_FORCE_INLINE uint16_t pfxGetRigidBodyIdB(const PfxBroadphasePair &pair)	{return pair.get16(1);}-SIMD_FORCE_INLINE uint8_t  pfxGetMotionMaskA(const PfxBroadphasePair &pair)		{return pair.get8(4);}-SIMD_FORCE_INLINE uint8_t  pfxGetMotionMaskB(const PfxBroadphasePair &pair)		{return pair.get8(5);}-SIMD_FORCE_INLINE uint8_t  pfxGetBroadphaseFlag(const PfxBroadphasePair &pair)	{return pair.get8(6)&0x0f;}-SIMD_FORCE_INLINE bool     pfxGetActive(const PfxBroadphasePair &pair)			{return (pair.get8(6)>>4)!=0;}-SIMD_FORCE_INLINE uint32_t pfxGetContactId1(const PfxBroadphasePair &pair)		{return pair.get32(2);}+SIMD_FORCE_INLINE uint16_t pfxGetRigidBodyIdA(const PfxBroadphasePair &pair) {return pair.get16(0);}+SIMD_FORCE_INLINE uint16_t pfxGetRigidBodyIdB(const PfxBroadphasePair &pair) {return pair.get16(1);}+SIMD_FORCE_INLINE uint8_t pfxGetMotionMaskA(const PfxBroadphasePair &pair) {return pair.get8(4);}+SIMD_FORCE_INLINE uint8_t pfxGetMotionMaskB(const PfxBroadphasePair &pair) {return pair.get8(5);}+SIMD_FORCE_INLINE uint8_t pfxGetBroadphaseFlag(const PfxBroadphasePair &pair) {return pair.get8(6)&0x0f;}+SIMD_FORCE_INLINE bool pfxGetActive(const PfxBroadphasePair &pair) {return (pair.get8(6)>>4)!=0;}+SIMD_FORCE_INLINE uint32_t pfxGetContactId1(const PfxBroadphasePair &pair) {return pair.get32(2);}   @@ -114,18 +114,18 @@ #else ATTRIBUTE_ALIGNED16(struct) PfxSolverBody { #endif-	vmVector3 mDeltaLinearVelocity;-	vmVector3 mDeltaAngularVelocity;-	vmMatrix3 mInertiaInv;-	vmQuat    mOrientation;-	float   mMassInv;-	float   friction;-	float   restitution;-	float   unused;-	float   unused2;-	float   unused3;-	float   unused4;-	float   unused5;+vmVector3 mDeltaLinearVelocity;+vmVector3 mDeltaAngularVelocity;+vmMatrix3 mInertiaInv;+vmQuat mOrientation;+float mMassInv;+float friction;+float restitution;+float unused;+float unused2;+float unused3;+float unused4;+float unused5; };  @@ -135,49 +135,49 @@  static SIMD_FORCE_INLINE vmVector3 btReadVector3(const double* p) {-	float tmp[3] = {float(p[0]),float(p[1]),float(p[2])};-	vmVector3 v;-	loadXYZ(v, tmp);-	return v;+float tmp[3] = {float(p[0]),float(p[1]),float(p[2])};+vmVector3 v;+loadXYZ(v, tmp);+return v; }  static SIMD_FORCE_INLINE vmQuat btReadQuat(const double* p) {-	float tmp[4] = {float(p[0]),float(p[1]),float(p[2]),float(p[4])};-	vmQuat vq;-	loadXYZW(vq, tmp);-	return vq;+float tmp[4] = {float(p[0]),float(p[1]),float(p[2]),float(p[4])};+vmQuat vq;+loadXYZW(vq, tmp);+return vq; }  static SIMD_FORCE_INLINE void btStoreVector3(const vmVector3 &src, double* p) {-	float tmp[3];-	vmVector3 v = src;-	storeXYZ(v, tmp);-	p[0] = tmp[0];-	p[1] = tmp[1];-	p[2] = tmp[2];+float tmp[3];+vmVector3 v = src;+storeXYZ(v, tmp);+p[0] = tmp[0];+p[1] = tmp[1];+p[2] = tmp[2]; }   static SIMD_FORCE_INLINE vmVector3 btReadVector3(const float* p) {-	vmVector3 v;-	loadXYZ(v, p);-	return v;+vmVector3 v;+loadXYZ(v, p);+return v; }  static SIMD_FORCE_INLINE vmQuat btReadQuat(const float* p) {-	vmQuat vq;-	loadXYZW(vq, p);-	return vq;+vmQuat vq;+loadXYZW(vq, p);+return vq; }  static SIMD_FORCE_INLINE void btStoreVector3(const vmVector3 &src, float* p) {-	vmVector3 v = src;-	storeXYZ(v, p);+vmVector3 v = src;+storeXYZ(v, p); }  @@ -186,97 +186,97 @@ class btPersistentManifold;  enum {-	PFX_CONSTRAINT_SOLVER_CMD_SETUP_SOLVER_BODIES,-	PFX_CONSTRAINT_SOLVER_CMD_SETUP_CONTACT_CONSTRAINTS,-	PFX_CONSTRAINT_SOLVER_CMD_SETUP_JOINT_CONSTRAINTS,-	PFX_CONSTRAINT_SOLVER_CMD_SOLVE_CONSTRAINTS,-	PFX_CONSTRAINT_SOLVER_CMD_POST_SOLVER+PFX_CONSTRAINT_SOLVER_CMD_SETUP_SOLVER_BODIES,+PFX_CONSTRAINT_SOLVER_CMD_SETUP_CONTACT_CONSTRAINTS,+PFX_CONSTRAINT_SOLVER_CMD_SETUP_JOINT_CONSTRAINTS,+PFX_CONSTRAINT_SOLVER_CMD_SOLVE_CONSTRAINTS,+PFX_CONSTRAINT_SOLVER_CMD_POST_SOLVER };   struct PfxSetupContactConstraintsIO {-	PfxConstraintPair *offsetContactPairs;-	uint32_t numContactPairs1;-	btPersistentManifold*	offsetContactManifolds;-	class TrbState *offsetRigStates;-	struct PfxSolverBody *offsetSolverBodies;-	uint32_t numRigidBodies;-	float separateBias;-	float timeStep;-	class btCriticalSection* criticalSection;+PfxConstraintPair *offsetContactPairs;+uint32_t numContactPairs1;+btPersistentManifold* offsetContactManifolds;+class TrbState *offsetRigStates;+struct PfxSolverBody *offsetSolverBodies;+uint32_t numRigidBodies;+float separateBias;+float timeStep;+class btCriticalSection* criticalSection; };    struct PfxSolveConstraintsIO {-	PfxParallelGroup *contactParallelGroup;-	PfxParallelBatch *contactParallelBatches;-	PfxConstraintPair *contactPairs;-	uint32_t numContactPairs;-	btPersistentManifold *offsetContactManifolds;-	PfxParallelGroup *jointParallelGroup;-	PfxParallelBatch *jointParallelBatches;-	PfxConstraintPair *jointPairs;-	uint32_t numJointPairs;-	struct btSolverConstraint* offsetSolverConstraints;-	TrbState *offsetRigStates1;-	PfxSolverBody *offsetSolverBodies;-	uint32_t numRigidBodies;-	uint32_t iteration;+PfxParallelGroup *contactParallelGroup;+PfxParallelBatch *contactParallelBatches;+PfxConstraintPair *contactPairs;+uint32_t numContactPairs;+btPersistentManifold *offsetContactManifolds;+PfxParallelGroup *jointParallelGroup;+PfxParallelBatch *jointParallelBatches;+PfxConstraintPair *jointPairs;+uint32_t numJointPairs;+struct btSolverConstraint* offsetSolverConstraints;+TrbState *offsetRigStates1;+PfxSolverBody *offsetSolverBodies;+uint32_t numRigidBodies;+uint32_t iteration; -	uint32_t	taskId;-	-	class btBarrier* barrier;+uint32_t taskId; +class btBarrier* barrier;+ };  struct PfxPostSolverIO {-	TrbState *states;-	PfxSolverBody *solverBodies;-	uint32_t numRigidBodies;+TrbState *states;+PfxSolverBody *solverBodies;+uint32_t numRigidBodies; };  ATTRIBUTE_ALIGNED16(struct) btConstraintSolverIO {-	uint8_t cmd;-	union {-		PfxSetupContactConstraintsIO setupContactConstraints;-		PfxSolveConstraintsIO solveConstraints;-		PfxPostSolverIO postSolver;-	};-	-	//SPU only-	uint32_t barrierAddr2;-	uint32_t criticalsectionAddr2;-	uint32_t maxTasks1;+uint8_t cmd;+union {+PfxSetupContactConstraintsIO setupContactConstraints;+PfxSolveConstraintsIO solveConstraints;+PfxPostSolverIO postSolver; }; +//SPU only+uint32_t barrierAddr2;+uint32_t criticalsectionAddr2;+uint32_t maxTasks1;+};   -void	SolverThreadFunc(void* userPtr,void* lsMemory);-void*	SolverlsMemoryFunc();++void SolverThreadFunc(void* userPtr,void* lsMemory);+void* SolverlsMemoryFunc(); ///The btParallelConstraintSolver performs computations on constraint rows in parallel ///Using the cross-platform threading it supports Windows, Linux, Mac OSX and PlayStation 3 Cell SPUs class btParallelConstraintSolver : public btSequentialImpulseConstraintSolver-{-	+{ private:+ protected:-	struct btParallelSolverMemoryCache*	m_memoryCache;+struct btParallelSolverMemoryCache* m_memoryCache; -	class btThreadSupportInterface*	m_solverThreadSupport;+class btThreadSupportInterface* m_solverThreadSupport; -	struct btConstraintSolverIO* m_solverIO;-	class btBarrier*			m_barrier;-	class btCriticalSection*	m_criticalSection;+struct btConstraintSolverIO* m_solverIO;+class btBarrier* m_barrier;+class btCriticalSection* m_criticalSection;   public: -	btParallelConstraintSolver(class btThreadSupportInterface* solverThreadSupport);-	-	virtual ~btParallelConstraintSolver();+btParallelConstraintSolver(class btThreadSupportInterface* solverThreadSupport); -	virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& info, btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher);+virtual ~btParallelConstraintSolver();++virtual btScalar solveGroup(btCollisionObject** bodies,int numBodies,btPersistentManifold** manifold,int numManifolds,btTypedConstraint** constraints,int numConstraints,const btContactSolverInfo& info, btIDebugDraw* debugDrawer, btStackAlloc* stackAlloc,btDispatcher* dispatcher);  }; 
bullet/BulletMultiThreaded/btThreadSupportInterface.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,61 +23,61 @@  class btBarrier { public:-	btBarrier() {}-	virtual ~btBarrier() {}+btBarrier() {}+virtual ~btBarrier() {} -	virtual void sync() = 0;-	virtual void setMaxCount(int n) = 0;-	virtual int  getMaxCount() = 0;+virtual void sync() = 0;+virtual void setMaxCount(int n) = 0;+virtual int getMaxCount() = 0; };  class btCriticalSection { public:-	btCriticalSection() {}-	virtual ~btCriticalSection() {}+btCriticalSection() {}+virtual ~btCriticalSection() {} -	ATTRIBUTE_ALIGNED16(unsigned int mCommonBuff[32]);+ATTRIBUTE_ALIGNED16(unsigned int mCommonBuff[32]); -	virtual unsigned int getSharedParam(int i) = 0;-	virtual void setSharedParam(int i,unsigned int p) = 0;+virtual unsigned int getSharedParam(int i) = 0;+virtual void setSharedParam(int i,unsigned int p) = 0; -	virtual void lock() = 0;-	virtual void unlock() = 0;+virtual void lock() = 0;+virtual void unlock() = 0; };   class btThreadSupportInterface-{+{ private: public: -	virtual ~btThreadSupportInterface();+virtual ~btThreadSupportInterface();  ///send messages to SPUs-	virtual void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1) =0;+virtual void sendRequest(uint32_t uiCommand, ppu_address_t uiArgument0, uint32_t uiArgument1) =0;  ///check for messages from SPUs-	virtual	void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1) =0;+virtual void waitForResponse(unsigned int *puiArgument0, unsigned int *puiArgument1) =0;  -	///non-blocking test if a task is completed. First implement all versions, and then enable this API-	///virtual bool isTaskCompleted(unsigned int *puiArgument0, unsigned int *puiArgument1, int timeOutInMilliseconds)=0;+///non-blocking test if a task is completed. First implement all versions, and then enable this API+///virtual bool isTaskCompleted(unsigned int *puiArgument0, unsigned int *puiArgument1, int timeOutInMilliseconds)=0;  ///start the spus (can be called at the beginning of each frame, to make sure that the right SPU program is loaded)-	virtual	void startSPU() =0;+virtual void startSPU() =0;  ///tell the task scheduler we are done with the SPU tasks-	virtual	void stopSPU()=0;+virtual void stopSPU()=0; -	///tell the task scheduler to use no more than numTasks tasks-	virtual void	setNumTasks(int numTasks)=0;+///tell the task scheduler to use no more than numTasks tasks+virtual void setNumTasks(int numTasks)=0; -	virtual int		getNumTasks() const = 0;+virtual int getNumTasks() const = 0; -	virtual btBarrier*	createBarrier() = 0;+virtual btBarrier* createBarrier() = 0; -	virtual btCriticalSection* createCriticalSection() = 0;-	-	virtual void*	getThreadLocalMemory(int taskId) { return 0; }+virtual btCriticalSection* createCriticalSection() = 0;++virtual void* getThreadLocalMemory(int taskId) { return 0; }  }; 
bullet/BulletMultiThreaded/vectormath2bullet.h view
@@ -1,30 +1,30 @@ /*-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved. -   Redistribution and use in source and binary forms,-   with or without modification, are permitted provided that the-   following conditions are met:-    * Redistributions of source code must retain the above copyright-      notice, this list of conditions and the following disclaimer.-    * Redistributions in binary form must reproduce the above copyright-      notice, this list of conditions and the following disclaimer in the-      documentation and/or other materials provided with the distribution.-    * Neither the name of the Sony Computer Entertainment Inc nor the names-      of its contributors may be used to endorse or promote products derived-      from this software without specific prior written permission.+Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission. -   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE-   POSSIBILITY OF SUCH DAMAGE.+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE. */  #ifndef BT_AOS_VECTORMATH_BULLET_CONVERT_H@@ -35,38 +35,38 @@ #include "LinearMath/btQuaternion.h" #include "LinearMath/btMatrix3x3.h" -inline Vectormath::Aos::Vector3	getVmVector3(const btVector3& bulletVec)+inline Vectormath::Aos::Vector3 getVmVector3(const btVector3& bulletVec) {-	return Vectormath::Aos::Vector3(bulletVec.getX(),bulletVec.getY(),bulletVec.getZ());+return Vectormath::Aos::Vector3(bulletVec.getX(),bulletVec.getY(),bulletVec.getZ()); }  inline btVector3 getBtVector3(const Vectormath::Aos::Vector3& vmVec) {-	return btVector3(vmVec.getX(),vmVec.getY(),vmVec.getZ());+return btVector3(vmVec.getX(),vmVec.getY(),vmVec.getZ()); } inline btVector3 getBtVector3(const Vectormath::Aos::Point3& vmVec) {-	return btVector3(vmVec.getX(),vmVec.getY(),vmVec.getZ());+return btVector3(vmVec.getX(),vmVec.getY(),vmVec.getZ()); } -inline Vectormath::Aos::Quat	getVmQuat(const btQuaternion& bulletQuat)+inline Vectormath::Aos::Quat getVmQuat(const btQuaternion& bulletQuat) {-	Vectormath::Aos::Quat vmQuat(bulletQuat.getX(),bulletQuat.getY(),bulletQuat.getZ(),bulletQuat.getW());-	return vmQuat;+Vectormath::Aos::Quat vmQuat(bulletQuat.getX(),bulletQuat.getY(),bulletQuat.getZ(),bulletQuat.getW());+return vmQuat; } -inline btQuaternion	getBtQuat(const Vectormath::Aos::Quat& vmQuat)+inline btQuaternion getBtQuat(const Vectormath::Aos::Quat& vmQuat) {-	return btQuaternion (vmQuat.getX(),vmQuat.getY(),vmQuat.getZ(),vmQuat.getW());+return btQuaternion (vmQuat.getX(),vmQuat.getY(),vmQuat.getZ(),vmQuat.getW()); } -inline Vectormath::Aos::Matrix3	getVmMatrix3(const btMatrix3x3& btMat)+inline Vectormath::Aos::Matrix3 getVmMatrix3(const btMatrix3x3& btMat) {-	Vectormath::Aos::Matrix3 mat(-		getVmVector3(btMat.getColumn(0)),-		getVmVector3(btMat.getColumn(1)),-		getVmVector3(btMat.getColumn(2)));-		return mat;+Vectormath::Aos::Matrix3 mat(+getVmVector3(btMat.getColumn(0)),+getVmVector3(btMat.getColumn(1)),+getVmVector3(btMat.getColumn(2)));+return mat; }  
bullet/BulletSoftBody/btDefaultSoftBodySolver.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,41 +22,41 @@   class btDefaultSoftBodySolver : public btSoftBodySolver-{-protected:		-	/** Variable to define whether we need to update solver constants on the next iteration */-	bool m_updateSolverConstants;+{ private:+protected:+/** Variable to define whether we need to update solver constants on the next iteration */+bool m_updateSolverConstants; -	btAlignedObjectArray< btSoftBody * > m_softBodySet;+btAlignedObjectArray< btSoftBody * > m_softBodySet;   public:-	btDefaultSoftBodySolver();-	-	virtual ~btDefaultSoftBodySolver();-	-	virtual SolverTypes getSolverType() const-	{-		return DEFAULT_SOLVER;-	}+btDefaultSoftBodySolver(); -	virtual bool checkInitialized();+virtual ~btDefaultSoftBodySolver(); -	virtual void updateSoftBodies( );+virtual SolverTypes getSolverType() const+{+return DEFAULT_SOLVER;+} -	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies,bool forceUpdate=false );+virtual bool checkInitialized(); -	virtual void copyBackToSoftBodies();+virtual void updateSoftBodies( ); -	virtual void solveConstraints( float solverdt );+virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies,bool forceUpdate=false ); -	virtual void predictMotion( float solverdt );+virtual void copyBackToSoftBodies(); -	virtual void copySoftBodyToVertexBuffer( const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer );+virtual void solveConstraints( float solverdt ); -	virtual void processCollision( btSoftBody *, btCollisionObject* );+virtual void predictMotion( float solverdt ); -	virtual void processCollision( btSoftBody*, btSoftBody* );+virtual void copySoftBodyToVertexBuffer( const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer );++virtual void processCollision( btSoftBody *, btCollisionObject* );++virtual void processCollision( btSoftBody*, btSoftBody* );  }; 
bullet/BulletSoftBody/btSoftBody.h view
@@ -1,973 +1,976 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose,-including commercial applications, and to alter it and redistribute it freely,-subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/-///btSoftBody implementation by Nathanael Presson--#ifndef _BT_SOFT_BODY_H-#define _BT_SOFT_BODY_H--#include "LinearMath/btAlignedObjectArray.h"-#include "LinearMath/btTransform.h"-#include "LinearMath/btIDebugDraw.h"-#include "BulletDynamics/Dynamics/btRigidBody.h"--#include "BulletCollision/CollisionShapes/btConcaveShape.h"-#include "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h"-#include "btSparseSDF.h"-#include "BulletCollision/BroadphaseCollision/btDbvt.h"--//#ifdef BT_USE_DOUBLE_PRECISION-//#define btRigidBodyData	btRigidBodyDoubleData-//#define btRigidBodyDataName	"btRigidBodyDoubleData"-//#else-#define btSoftBodyData	btSoftBodyFloatData-#define btSoftBodyDataName	"btSoftBodyFloatData"-//#endif //BT_USE_DOUBLE_PRECISION--class btBroadphaseInterface;-class btDispatcher;-class btSoftBodySolver;--/* btSoftBodyWorldInfo	*/ -struct	btSoftBodyWorldInfo-{-	btScalar				air_density;-	btScalar				water_density;-	btScalar				water_offset;-	btVector3				water_normal;-	btBroadphaseInterface*	m_broadphase;-	btDispatcher*	m_dispatcher;-	btVector3				m_gravity;-	btSparseSdf<3>			m_sparsesdf;--	btSoftBodyWorldInfo()-		:air_density((btScalar)1.2),-		water_density(0),-		water_offset(0),-		water_normal(0,0,0),-		m_broadphase(0),-		m_dispatcher(0),-		m_gravity(0,-10,0)-	{-	}-};	---///The btSoftBody is an class to simulate cloth and volumetric soft bodies. -///There is two-way interaction between btSoftBody and btRigidBody/btCollisionObject.-class	btSoftBody : public btCollisionObject-{-public:-	btAlignedObjectArray<class btCollisionObject*> m_collisionDisabledObjects;--	// The solver object that handles this soft body-	btSoftBodySolver *m_softBodySolver;--	//-	// Enumerations-	//--	///eAeroModel -	struct eAeroModel { enum _ {-		V_Point,	///Vertex normals are oriented toward velocity-		V_TwoSided,	///Vertex normals are fliped to match velocity	-		V_OneSided,	///Vertex normals are taken as it is	-		F_TwoSided,	///Face normals are fliped to match velocity-		F_OneSided,	///Face normals are taken as it is-		END-	};};--	///eVSolver : velocities solvers-	struct	eVSolver { enum _ {-		Linear,		///Linear solver-		END-	};};--	///ePSolver : positions solvers-	struct	ePSolver { enum _ {-		Linear,		///Linear solver-		Anchors,	///Anchor solver-		RContacts,	///Rigid contacts solver-		SContacts,	///Soft contacts solver-		END-	};};--	///eSolverPresets-	struct	eSolverPresets { enum _ {-		Positions,-		Velocities,-		Default	=	Positions,-		END-	};};--	///eFeature-	struct	eFeature { enum _ {-		None,-		Node,-		Link,-		Face,-		END-	};};--	typedef btAlignedObjectArray<eVSolver::_>	tVSolverArray;-	typedef btAlignedObjectArray<ePSolver::_>	tPSolverArray;--	//-	// Flags-	//--	///fCollision-	struct fCollision { enum _ {-		RVSmask	=	0x000f,	///Rigid versus soft mask-		SDF_RS	=	0x0001,	///SDF based rigid vs soft-		CL_RS	=	0x0002, ///Cluster vs convex rigid vs soft--		SVSmask	=	0x0030,	///Rigid versus soft mask		-		VF_SS	=	0x0010,	///Vertex vs face soft vs soft handling-		CL_SS	=	0x0020, ///Cluster vs cluster soft vs soft handling-		CL_SELF =	0x0040, ///Cluster soft body self collision-		/* presets	*/ -		Default	=	SDF_RS,-		END-	};};--	///fMaterial-	struct fMaterial { enum _ {-		DebugDraw	=	0x0001,	/// Enable debug draw-		/* presets	*/ -		Default		=	DebugDraw,-		END-	};};--	//-	// API Types-	//--	/* sRayCast		*/ -	struct sRayCast-	{-		btSoftBody*	body;		/// soft body-		eFeature::_	feature;	/// feature type-		int			index;		/// feature index-		btScalar	fraction;		/// time of impact fraction (rayorg+(rayto-rayfrom)*fraction)-	};--	/* ImplicitFn	*/ -	struct	ImplicitFn-	{-		virtual btScalar	Eval(const btVector3& x)=0;-	};--	//-	// Internal types-	//--	typedef btAlignedObjectArray<btScalar>	tScalarArray;-	typedef btAlignedObjectArray<btVector3>	tVector3Array;--	/* sCti is Softbody contact info	*/ -	struct	sCti-	{-		btCollisionObject*	m_colObj;		/* Rigid body			*/ -		btVector3		m_normal;	/* Outward normal		*/ -		btScalar		m_offset;	/* Offset from origin	*/ -	};	--	/* sMedium		*/ -	struct	sMedium-	{-		btVector3		m_velocity;	/* Velocity				*/ -		btScalar		m_pressure;	/* Pressure				*/ -		btScalar		m_density;	/* Density				*/ -	};--	/* Base type	*/ -	struct	Element-	{-		void*			m_tag;			// User data-		Element() : m_tag(0) {}-	};-	/* Material		*/ -	struct	Material : Element-	{-		btScalar				m_kLST;			// Linear stiffness coefficient [0,1]-		btScalar				m_kAST;			// Area/Angular stiffness coefficient [0,1]-		btScalar				m_kVST;			// Volume stiffness coefficient [0,1]-		int						m_flags;		// Flags-	};--	/* Feature		*/ -	struct	Feature : Element-	{-		Material*				m_material;		// Material-	};-	/* Node			*/ -	struct	Node : Feature-	{-		btVector3				m_x;			// Position-		btVector3				m_q;			// Previous step position-		btVector3				m_v;			// Velocity-		btVector3				m_f;			// Force accumulator-		btVector3				m_n;			// Normal-		btScalar				m_im;			// 1/mass-		btScalar				m_area;			// Area-		btDbvtNode*				m_leaf;			// Leaf data-		int						m_battach:1;	// Attached-	};-	/* Link			*/ -	struct	Link : Feature-	{-		Node*					m_n[2];			// Node pointers-		btScalar				m_rl;			// Rest length		-		int						m_bbending:1;	// Bending link-		btScalar				m_c0;			// (ima+imb)*kLST-		btScalar				m_c1;			// rl^2-		btScalar				m_c2;			// |gradient|^2/c0-		btVector3				m_c3;			// gradient-	};-	/* Face			*/ -	struct	Face : Feature-	{-		Node*					m_n[3];			// Node pointers-		btVector3				m_normal;		// Normal-		btScalar				m_ra;			// Rest area-		btDbvtNode*				m_leaf;			// Leaf data-	};-	/* Tetra		*/ -	struct	Tetra : Feature-	{-		Node*					m_n[4];			// Node pointers		-		btScalar				m_rv;			// Rest volume-		btDbvtNode*				m_leaf;			// Leaf data-		btVector3				m_c0[4];		// gradients-		btScalar				m_c1;			// (4*kVST)/(im0+im1+im2+im3)-		btScalar				m_c2;			// m_c1/sum(|g0..3|^2)-	};-	/* RContact		*/ -	struct	RContact-	{-		sCti		m_cti;			// Contact infos-		Node*					m_node;			// Owner node-		btMatrix3x3				m_c0;			// Impulse matrix-		btVector3				m_c1;			// Relative anchor-		btScalar				m_c2;			// ima*dt-		btScalar				m_c3;			// Friction-		btScalar				m_c4;			// Hardness-	};-	/* SContact		*/ -	struct	SContact-	{-		Node*					m_node;			// Node-		Face*					m_face;			// Face-		btVector3				m_weights;		// Weigths-		btVector3				m_normal;		// Normal-		btScalar				m_margin;		// Margin-		btScalar				m_friction;		// Friction-		btScalar				m_cfm[2];		// Constraint force mixing-	};-	/* Anchor		*/ -	struct	Anchor-	{-		Node*					m_node;			// Node pointer-		btVector3				m_local;		// Anchor position in body space-		btRigidBody*			m_body;			// Body-		btScalar				m_influence;-		btMatrix3x3				m_c0;			// Impulse matrix-		btVector3				m_c1;			// Relative anchor-		btScalar				m_c2;			// ima*dt-	};-	/* Note			*/ -	struct	Note : Element-	{-		const char*				m_text;			// Text-		btVector3				m_offset;		// Offset-		int						m_rank;			// Rank-		Node*					m_nodes[4];		// Nodes-		btScalar				m_coords[4];	// Coordinates-	};	-	/* Pose			*/ -	struct	Pose-	{-		bool					m_bvolume;		// Is valid-		bool					m_bframe;		// Is frame-		btScalar				m_volume;		// Rest volume-		tVector3Array			m_pos;			// Reference positions-		tScalarArray			m_wgh;			// Weights-		btVector3				m_com;			// COM-		btMatrix3x3				m_rot;			// Rotation-		btMatrix3x3				m_scl;			// Scale-		btMatrix3x3				m_aqq;			// Base scaling-	};-	/* Cluster		*/ -	struct	Cluster-	{-		tScalarArray				m_masses;-		btAlignedObjectArray<Node*>	m_nodes;		-		tVector3Array				m_framerefs;-		btTransform					m_framexform;-		btScalar					m_idmass;-		btScalar					m_imass;-		btMatrix3x3					m_locii;-		btMatrix3x3					m_invwi;-		btVector3					m_com;-		btVector3					m_vimpulses[2];-		btVector3					m_dimpulses[2];-		int							m_nvimpulses;-		int							m_ndimpulses;-		btVector3					m_lv;-		btVector3					m_av;-		btDbvtNode*					m_leaf;-		btScalar					m_ndamping;	/* Node damping		*/ -		btScalar					m_ldamping;	/* Linear damping	*/ -		btScalar					m_adamping;	/* Angular damping	*/ -		btScalar					m_matching;-		btScalar					m_maxSelfCollisionImpulse;-		btScalar					m_selfCollisionImpulseFactor;-		bool						m_containsAnchor;-		bool						m_collide;-		int							m_clusterIndex;-		Cluster() : m_leaf(0),m_ndamping(0),m_ldamping(0),m_adamping(0),m_matching(0) -		,m_maxSelfCollisionImpulse(100.f),-		m_selfCollisionImpulseFactor(0.01f),-		m_containsAnchor(false)-		{}-	};-	/* Impulse		*/ -	struct	Impulse-	{-		btVector3					m_velocity;-		btVector3					m_drift;-		int							m_asVelocity:1;-		int							m_asDrift:1;-		Impulse() : m_velocity(0,0,0),m_drift(0,0,0),m_asVelocity(0),m_asDrift(0)	{}-		Impulse						operator -() const-		{-			Impulse i=*this;-			i.m_velocity=-i.m_velocity;-			i.m_drift=-i.m_drift;-			return(i);-		}-		Impulse						operator*(btScalar x) const-		{-			Impulse i=*this;-			i.m_velocity*=x;-			i.m_drift*=x;-			return(i);-		}-	};-	/* Body			*/ -	struct	Body-	{-		Cluster*			m_soft;-		btRigidBody*		m_rigid;-		btCollisionObject*	m_collisionObject;--		Body() : m_soft(0),m_rigid(0),m_collisionObject(0)				{}-		Body(Cluster* p) : m_soft(p),m_rigid(0),m_collisionObject(0)	{}-		Body(btCollisionObject* colObj) : m_soft(0),m_collisionObject(colObj)-		{-			m_rigid = btRigidBody::upcast(m_collisionObject);-		}--		void						activate() const-		{-			if(m_rigid) -				m_rigid->activate();-			if (m_collisionObject)-				m_collisionObject->activate();--		}-		const btMatrix3x3&			invWorldInertia() const-		{-			static const btMatrix3x3	iwi(0,0,0,0,0,0,0,0,0);-			if(m_rigid) return(m_rigid->getInvInertiaTensorWorld());-			if(m_soft)	return(m_soft->m_invwi);-			return(iwi);-		}-		btScalar					invMass() const-		{-			if(m_rigid) return(m_rigid->getInvMass());-			if(m_soft)	return(m_soft->m_imass);-			return(0);-		}-		const btTransform&			xform() const-		{-			static const btTransform	identity=btTransform::getIdentity();		-			if(m_collisionObject) return(m_collisionObject->getWorldTransform());-			if(m_soft)	return(m_soft->m_framexform);-			return(identity);-		}-		btVector3					linearVelocity() const-		{-			if(m_rigid) return(m_rigid->getLinearVelocity());-			if(m_soft)	return(m_soft->m_lv);-			return(btVector3(0,0,0));-		}-		btVector3					angularVelocity(const btVector3& rpos) const-		{			-			if(m_rigid) return(btCross(m_rigid->getAngularVelocity(),rpos));-			if(m_soft)	return(btCross(m_soft->m_av,rpos));-			return(btVector3(0,0,0));-		}-		btVector3					angularVelocity() const-		{			-			if(m_rigid) return(m_rigid->getAngularVelocity());-			if(m_soft)	return(m_soft->m_av);-			return(btVector3(0,0,0));-		}-		btVector3					velocity(const btVector3& rpos) const-		{-			return(linearVelocity()+angularVelocity(rpos));-		}-		void						applyVImpulse(const btVector3& impulse,const btVector3& rpos) const-		{-			if(m_rigid)	m_rigid->applyImpulse(impulse,rpos);-			if(m_soft)	btSoftBody::clusterVImpulse(m_soft,rpos,impulse);-		}-		void						applyDImpulse(const btVector3& impulse,const btVector3& rpos) const-		{-			if(m_rigid)	m_rigid->applyImpulse(impulse,rpos);-			if(m_soft)	btSoftBody::clusterDImpulse(m_soft,rpos,impulse);-		}		-		void						applyImpulse(const Impulse& impulse,const btVector3& rpos) const-		{-			if(impulse.m_asVelocity)	-			{-//				printf("impulse.m_velocity = %f,%f,%f\n",impulse.m_velocity.getX(),impulse.m_velocity.getY(),impulse.m_velocity.getZ());-				applyVImpulse(impulse.m_velocity,rpos);-			}-			if(impulse.m_asDrift)		-			{-//				printf("impulse.m_drift = %f,%f,%f\n",impulse.m_drift.getX(),impulse.m_drift.getY(),impulse.m_drift.getZ());-				applyDImpulse(impulse.m_drift,rpos);-			}-		}-		void						applyVAImpulse(const btVector3& impulse) const-		{-			if(m_rigid)	m_rigid->applyTorqueImpulse(impulse);-			if(m_soft)	btSoftBody::clusterVAImpulse(m_soft,impulse);-		}-		void						applyDAImpulse(const btVector3& impulse) const-		{-			if(m_rigid)	m_rigid->applyTorqueImpulse(impulse);-			if(m_soft)	btSoftBody::clusterDAImpulse(m_soft,impulse);-		}-		void						applyAImpulse(const Impulse& impulse) const-		{-			if(impulse.m_asVelocity)	applyVAImpulse(impulse.m_velocity);-			if(impulse.m_asDrift)		applyDAImpulse(impulse.m_drift);-		}-		void						applyDCImpulse(const btVector3& impulse) const-		{-			if(m_rigid)	m_rigid->applyCentralImpulse(impulse);-			if(m_soft)	btSoftBody::clusterDCImpulse(m_soft,impulse);-		}-	};-	/* Joint		*/ -	struct	Joint-	{-		struct eType { enum _ {-			Linear=0,-			Angular,-			Contact-		};};-		struct Specs-		{-			Specs() : erp(1),cfm(1),split(1) {}-			btScalar	erp;-			btScalar	cfm;-			btScalar	split;-		};-		Body						m_bodies[2];-		btVector3					m_refs[2];-		btScalar					m_cfm;-		btScalar					m_erp;-		btScalar					m_split;-		btVector3					m_drift;-		btVector3					m_sdrift;-		btMatrix3x3					m_massmatrix;-		bool						m_delete;-		virtual						~Joint() {}-		Joint() : m_delete(false) {}-		virtual void				Prepare(btScalar dt,int iterations);-		virtual void				Solve(btScalar dt,btScalar sor)=0;-		virtual void				Terminate(btScalar dt)=0;-		virtual eType::_			Type() const=0;-	};-	/* LJoint		*/ -	struct	LJoint : Joint-	{-		struct Specs : Joint::Specs-		{-			btVector3	position;-		};		-		btVector3					m_rpos[2];-		void						Prepare(btScalar dt,int iterations);-		void						Solve(btScalar dt,btScalar sor);-		void						Terminate(btScalar dt);-		eType::_					Type() const { return(eType::Linear); }-	};-	/* AJoint		*/ -	struct	AJoint : Joint-	{-		struct IControl-		{-			virtual void			Prepare(AJoint*)				{}-			virtual btScalar		Speed(AJoint*,btScalar current) { return(current); }-			static IControl*		Default()						{ static IControl def;return(&def); }-		};-		struct Specs : Joint::Specs-		{-			Specs() : icontrol(IControl::Default()) {}-			btVector3	axis;-			IControl*	icontrol;-		};		-		btVector3					m_axis[2];-		IControl*					m_icontrol;-		void						Prepare(btScalar dt,int iterations);-		void						Solve(btScalar dt,btScalar sor);-		void						Terminate(btScalar dt);-		eType::_					Type() const { return(eType::Angular); }-	};-	/* CJoint		*/ -	struct	CJoint : Joint-	{		-		int							m_life;-		int							m_maxlife;-		btVector3					m_rpos[2];-		btVector3					m_normal;-		btScalar					m_friction;-		void						Prepare(btScalar dt,int iterations);-		void						Solve(btScalar dt,btScalar sor);-		void						Terminate(btScalar dt);-		eType::_					Type() const { return(eType::Contact); }-	};-	/* Config		*/ -	struct	Config-	{-		eAeroModel::_			aeromodel;		// Aerodynamic model (default: V_Point)-		btScalar				kVCF;			// Velocities correction factor (Baumgarte)-		btScalar				kDP;			// Damping coefficient [0,1]-		btScalar				kDG;			// Drag coefficient [0,+inf]-		btScalar				kLF;			// Lift coefficient [0,+inf]-		btScalar				kPR;			// Pressure coefficient [-inf,+inf]-		btScalar				kVC;			// Volume conversation coefficient [0,+inf]-		btScalar				kDF;			// Dynamic friction coefficient [0,1]-		btScalar				kMT;			// Pose matching coefficient [0,1]		-		btScalar				kCHR;			// Rigid contacts hardness [0,1]-		btScalar				kKHR;			// Kinetic contacts hardness [0,1]-		btScalar				kSHR;			// Soft contacts hardness [0,1]-		btScalar				kAHR;			// Anchors hardness [0,1]-		btScalar				kSRHR_CL;		// Soft vs rigid hardness [0,1] (cluster only)-		btScalar				kSKHR_CL;		// Soft vs kinetic hardness [0,1] (cluster only)-		btScalar				kSSHR_CL;		// Soft vs soft hardness [0,1] (cluster only)-		btScalar				kSR_SPLT_CL;	// Soft vs rigid impulse split [0,1] (cluster only)-		btScalar				kSK_SPLT_CL;	// Soft vs rigid impulse split [0,1] (cluster only)-		btScalar				kSS_SPLT_CL;	// Soft vs rigid impulse split [0,1] (cluster only)-		btScalar				maxvolume;		// Maximum volume ratio for pose-		btScalar				timescale;		// Time scale-		int						viterations;	// Velocities solver iterations-		int						piterations;	// Positions solver iterations-		int						diterations;	// Drift solver iterations-		int						citerations;	// Cluster solver iterations-		int						collisions;		// Collisions flags-		tVSolverArray			m_vsequence;	// Velocity solvers sequence-		tPSolverArray			m_psequence;	// Position solvers sequence-		tPSolverArray			m_dsequence;	// Drift solvers sequence-	};-	/* SolverState	*/ -	struct	SolverState-	{-		btScalar				sdt;			// dt*timescale-		btScalar				isdt;			// 1/sdt-		btScalar				velmrg;			// velocity margin-		btScalar				radmrg;			// radial margin-		btScalar				updmrg;			// Update margin-	};	-	/// RayFromToCaster takes a ray from, ray to (instead of direction!)-	struct	RayFromToCaster : btDbvt::ICollide-	{-		btVector3			m_rayFrom;-		btVector3			m_rayTo;-		btVector3			m_rayNormalizedDirection;-		btScalar			m_mint;-		Face*				m_face;-		int					m_tests;-		RayFromToCaster(const btVector3& rayFrom,const btVector3& rayTo,btScalar mxt);-		void					Process(const btDbvtNode* leaf);--		static inline btScalar	rayFromToTriangle(const btVector3& rayFrom,-			const btVector3& rayTo,-			const btVector3& rayNormalizedDirection,-			const btVector3& a,-			const btVector3& b,-			const btVector3& c,-			btScalar maxt=SIMD_INFINITY);-	};--	//-	// Typedefs-	//--	typedef void								(*psolver_t)(btSoftBody*,btScalar,btScalar);-	typedef void								(*vsolver_t)(btSoftBody*,btScalar);-	typedef btAlignedObjectArray<Cluster*>		tClusterArray;-	typedef btAlignedObjectArray<Note>			tNoteArray;-	typedef btAlignedObjectArray<Node>			tNodeArray;-	typedef btAlignedObjectArray<btDbvtNode*>	tLeafArray;-	typedef btAlignedObjectArray<Link>			tLinkArray;-	typedef btAlignedObjectArray<Face>			tFaceArray;-	typedef btAlignedObjectArray<Tetra>			tTetraArray;-	typedef btAlignedObjectArray<Anchor>		tAnchorArray;-	typedef btAlignedObjectArray<RContact>		tRContactArray;-	typedef btAlignedObjectArray<SContact>		tSContactArray;-	typedef btAlignedObjectArray<Material*>		tMaterialArray;-	typedef btAlignedObjectArray<Joint*>		tJointArray;-	typedef btAlignedObjectArray<btSoftBody*>	tSoftBodyArray;	--	//-	// Fields-	//--	Config					m_cfg;			// Configuration-	SolverState				m_sst;			// Solver state-	Pose					m_pose;			// Pose-	void*					m_tag;			// User data-	btSoftBodyWorldInfo*	m_worldInfo;	// World info-	tNoteArray				m_notes;		// Notes-	tNodeArray				m_nodes;		// Nodes-	tLinkArray				m_links;		// Links-	tFaceArray				m_faces;		// Faces-	tTetraArray				m_tetras;		// Tetras-	tAnchorArray			m_anchors;		// Anchors-	tRContactArray			m_rcontacts;	// Rigid contacts-	tSContactArray			m_scontacts;	// Soft contacts-	tJointArray				m_joints;		// Joints-	tMaterialArray			m_materials;	// Materials-	btScalar				m_timeacc;		// Time accumulator-	btVector3				m_bounds[2];	// Spatial bounds	-	bool					m_bUpdateRtCst;	// Update runtime constants-	btDbvt					m_ndbvt;		// Nodes tree-	btDbvt					m_fdbvt;		// Faces tree-	btDbvt					m_cdbvt;		// Clusters tree-	tClusterArray			m_clusters;		// Clusters--	btAlignedObjectArray<bool>m_clusterConnectivity;//cluster connectivity, for self-collision--	btTransform			m_initialWorldTransform;--	btVector3			m_windVelocity;-	//-	// Api-	//--	/* ctor																	*/ -	btSoftBody(	btSoftBodyWorldInfo* worldInfo,int node_count,		const btVector3* x,		const btScalar* m);--	/* ctor																	*/ -	btSoftBody(	btSoftBodyWorldInfo* worldInfo);--	void	initDefaults();--	/* dtor																	*/ -	virtual ~btSoftBody();-	/* Check for existing link												*/ --	btAlignedObjectArray<int>	m_userIndexMapping;--	btSoftBodyWorldInfo*	getWorldInfo()-	{-		return m_worldInfo;-	}--	///@todo: avoid internal softbody shape hack and move collision code to collision library-	virtual void	setCollisionShape(btCollisionShape* collisionShape)-	{-		-	}--	bool				checkLink(	int node0,-		int node1) const;-	bool				checkLink(	const Node* node0,-		const Node* node1) const;-	/* Check for existring face												*/ -	bool				checkFace(	int node0,-		int node1,-		int node2) const;-	/* Append material														*/ -	Material*			appendMaterial();-	/* Append note															*/ -	void				appendNote(	const char* text,-		const btVector3& o,-		const btVector4& c=btVector4(1,0,0,0),-		Node* n0=0,-		Node* n1=0,-		Node* n2=0,-		Node* n3=0);-	void				appendNote(	const char* text,-		const btVector3& o,-		Node* feature);-	void				appendNote(	const char* text,-		const btVector3& o,-		Link* feature);-	void				appendNote(	const char* text,-		const btVector3& o,-		Face* feature);-	/* Append node															*/ -	void				appendNode(	const btVector3& x,btScalar m);-	/* Append link															*/ -	void				appendLink(int model=-1,Material* mat=0);-	void				appendLink(	int node0,-		int node1,-		Material* mat=0,-		bool bcheckexist=false);-	void				appendLink(	Node* node0,-		Node* node1,-		Material* mat=0,-		bool bcheckexist=false);-	/* Append face															*/ -	void				appendFace(int model=-1,Material* mat=0);-	void				appendFace(	int node0,-		int node1,-		int node2,-		Material* mat=0);-	void			appendTetra(int model,Material* mat);-	//-	void			appendTetra(int node0,-										int node1,-										int node2,-										int node3,-										Material* mat=0);---	/* Append anchor														*/ -	void				appendAnchor(	int node,-		btRigidBody* body, bool disableCollisionBetweenLinkedBodies=false,btScalar influence = 1);-	void			appendAnchor(int node,btRigidBody* body, const btVector3& localPivot,bool disableCollisionBetweenLinkedBodies=false,btScalar influence = 1);-	/* Append linear joint													*/ -	void				appendLinearJoint(const LJoint::Specs& specs,Cluster* body0,Body body1);-	void				appendLinearJoint(const LJoint::Specs& specs,Body body=Body());-	void				appendLinearJoint(const LJoint::Specs& specs,btSoftBody* body);-	/* Append linear joint													*/ -	void				appendAngularJoint(const AJoint::Specs& specs,Cluster* body0,Body body1);-	void				appendAngularJoint(const AJoint::Specs& specs,Body body=Body());-	void				appendAngularJoint(const AJoint::Specs& specs,btSoftBody* body);-	/* Add force (or gravity) to the entire body							*/ -	void				addForce(		const btVector3& force);-	/* Add force (or gravity) to a node of the body							*/ -	void				addForce(		const btVector3& force,-		int node);-	/* Add velocity to the entire body										*/ -	void				addVelocity(	const btVector3& velocity);--	/* Set velocity for the entire body										*/ -	void				setVelocity(	const btVector3& velocity);--	/* Add velocity to a node of the body									*/ -	void				addVelocity(	const btVector3& velocity,-		int node);-	/* Set mass																*/ -	void				setMass(		int node,-		btScalar mass);-	/* Get mass																*/ -	btScalar			getMass(		int node) const;-	/* Get total mass														*/ -	btScalar			getTotalMass() const;-	/* Set total mass (weighted by previous masses)							*/ -	void				setTotalMass(	btScalar mass,-		bool fromfaces=false);-	/* Set total density													*/ -	void				setTotalDensity(btScalar density);-	/* Set volume mass (using tetrahedrons)									*/-	void				setVolumeMass(		btScalar mass);-	/* Set volume density (using tetrahedrons)								*/-	void				setVolumeDensity(	btScalar density);-	/* Transform															*/ -	void				transform(		const btTransform& trs);-	/* Translate															*/ -	void				translate(		const btVector3& trs);-	/* Rotate															*/ -	void				rotate(	const btQuaternion& rot);-	/* Scale																*/ -	void				scale(	const btVector3& scl);-	/* Set current state as pose											*/ -	void				setPose(		bool bvolume,-		bool bframe);-	/* Return the volume													*/ -	btScalar			getVolume() const;-	/* Cluster count														*/ -	int					clusterCount() const;-	/* Cluster center of mass												*/ -	static btVector3	clusterCom(const Cluster* cluster);-	btVector3			clusterCom(int cluster) const;-	/* Cluster velocity at rpos												*/ -	static btVector3	clusterVelocity(const Cluster* cluster,const btVector3& rpos);-	/* Cluster impulse														*/ -	static void			clusterVImpulse(Cluster* cluster,const btVector3& rpos,const btVector3& impulse);-	static void			clusterDImpulse(Cluster* cluster,const btVector3& rpos,const btVector3& impulse);-	static void			clusterImpulse(Cluster* cluster,const btVector3& rpos,const Impulse& impulse);-	static void			clusterVAImpulse(Cluster* cluster,const btVector3& impulse);-	static void			clusterDAImpulse(Cluster* cluster,const btVector3& impulse);-	static void			clusterAImpulse(Cluster* cluster,const Impulse& impulse);-	static void			clusterDCImpulse(Cluster* cluster,const btVector3& impulse);-	/* Generate bending constraints based on distance in the adjency graph	*/ -	int					generateBendingConstraints(	int distance,-		Material* mat=0);-	/* Randomize constraints to reduce solver bias							*/ -	void				randomizeConstraints();-	/* Release clusters														*/ -	void				releaseCluster(int index);-	void				releaseClusters();-	/* Generate clusters (K-mean)											*/ -	///generateClusters with k=0 will create a convex cluster for each tetrahedron or triangle-	///otherwise an approximation will be used (better performance)-	int					generateClusters(int k,int maxiterations=8192);-	/* Refine																*/ -	void				refine(ImplicitFn* ifn,btScalar accurary,bool cut);-	/* CutLink																*/ -	bool				cutLink(int node0,int node1,btScalar position);-	bool				cutLink(const Node* node0,const Node* node1,btScalar position);--	///Ray casting using rayFrom and rayTo in worldspace, (not direction!)-	bool				rayTest(const btVector3& rayFrom,-		const btVector3& rayTo,-		sRayCast& results);-	/* Solver presets														*/ -	void				setSolver(eSolverPresets::_ preset);-	/* predictMotion														*/ -	void				predictMotion(btScalar dt);-	/* solveConstraints														*/ -	void				solveConstraints();-	/* staticSolve															*/ -	void				staticSolve(int iterations);-	/* solveCommonConstraints												*/ -	static void			solveCommonConstraints(btSoftBody** bodies,int count,int iterations);-	/* solveClusters														*/ -	static void			solveClusters(const btAlignedObjectArray<btSoftBody*>& bodies);-	/* integrateMotion														*/ -	void				integrateMotion();-	/* defaultCollisionHandlers												*/ -	void				defaultCollisionHandler(btCollisionObject* pco);-	void				defaultCollisionHandler(btSoftBody* psb);----	//-	// Functionality to deal with new accelerated solvers.-	//--	/**-	 * Set a wind velocity for interaction with the air.-	 */-	void setWindVelocity( const btVector3 &velocity );---	/**-	 * Return the wind velocity for interaction with the air.-	 */-	const btVector3& getWindVelocity();--	//-	// Set the solver that handles this soft body-	// Should not be allowed to get out of sync with reality-	// Currently called internally on addition to the world-	void setSoftBodySolver( btSoftBodySolver *softBodySolver )-	{-		m_softBodySolver = softBodySolver;-	}--	//-	// Return the solver that handles this soft body-	// -	btSoftBodySolver *getSoftBodySolver()-	{-		return m_softBodySolver;-	}--	//-	// Return the solver that handles this soft body-	// -	btSoftBodySolver *getSoftBodySolver() const-	{-		return m_softBodySolver;-	}---	//-	// Cast-	//--	static const btSoftBody*	upcast(const btCollisionObject* colObj)-	{-		if (colObj->getInternalType()==CO_SOFT_BODY)-			return (const btSoftBody*)colObj;-		return 0;-	}-	static btSoftBody*			upcast(btCollisionObject* colObj)-	{-		if (colObj->getInternalType()==CO_SOFT_BODY)-			return (btSoftBody*)colObj;-		return 0;-	}--	//-	// ::btCollisionObject-	//--	virtual void getAabb(btVector3& aabbMin,btVector3& aabbMax) const-	{-		aabbMin = m_bounds[0];-		aabbMax = m_bounds[1];-	}-	//-	// Private-	//-	void				pointersToIndices();-	void				indicesToPointers(const int* map=0);--	int					rayTest(const btVector3& rayFrom,const btVector3& rayTo,-		btScalar& mint,eFeature::_& feature,int& index,bool bcountonly) const;-	void				initializeFaceTree();-	btVector3			evaluateCom() const;-	bool				checkContact(btCollisionObject* colObj,const btVector3& x,btScalar margin,btSoftBody::sCti& cti) const;-	void				updateNormals();-	void				updateBounds();-	void				updatePose();-	void				updateConstants();-	void				initializeClusters();-	void				updateClusters();-	void				cleanupClusters();-	void				prepareClusters(int iterations);-	void				solveClusters(btScalar sor);-	void				applyClusters(bool drift);-	void				dampClusters();-	void				applyForces();	-	static void			PSolve_Anchors(btSoftBody* psb,btScalar kst,btScalar ti);-	static void			PSolve_RContacts(btSoftBody* psb,btScalar kst,btScalar ti);-	static void			PSolve_SContacts(btSoftBody* psb,btScalar,btScalar ti);-	static void			PSolve_Links(btSoftBody* psb,btScalar kst,btScalar ti);-	static void			VSolve_Links(btSoftBody* psb,btScalar kst);-	static psolver_t	getSolver(ePSolver::_ solver);-	static vsolver_t	getSolver(eVSolver::_ solver);---	virtual	int	calculateSerializeBufferSize()	const;--	///fills the dataBuffer and returns the struct name (and 0 on failure)-	virtual	const char*	serialize(void* dataBuffer,  class btSerializer* serializer) const;--	//virtual void serializeSingleObject(class btSerializer* serializer) const;+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+///btSoftBody implementation by Nathanael Presson++#ifndef _BT_SOFT_BODY_H+#define _BT_SOFT_BODY_H++#include "LinearMath/btAlignedObjectArray.h"+#include "LinearMath/btTransform.h"+#include "LinearMath/btIDebugDraw.h"+#include "BulletDynamics/Dynamics/btRigidBody.h"++#include "BulletCollision/CollisionShapes/btConcaveShape.h"+#include "BulletCollision/CollisionDispatch/btCollisionCreateFunc.h"+#include "btSparseSDF.h"+#include "BulletCollision/BroadphaseCollision/btDbvt.h"++//#ifdef BT_USE_DOUBLE_PRECISION+//#define btRigidBodyData btRigidBodyDoubleData+//#define btRigidBodyDataName "btRigidBodyDoubleData"+//#else+#define btSoftBodyData btSoftBodyFloatData+#define btSoftBodyDataName "btSoftBodyFloatData"+//#endif //BT_USE_DOUBLE_PRECISION++class btBroadphaseInterface;+class btDispatcher;+class btSoftBodySolver;++/* btSoftBodyWorldInfo */+struct btSoftBodyWorldInfo+{+btScalar air_density;+btScalar water_density;+btScalar water_offset;+btVector3 water_normal;+btBroadphaseInterface* m_broadphase;+btDispatcher* m_dispatcher;+btVector3 m_gravity;+btSparseSdf<3> m_sparsesdf;++btSoftBodyWorldInfo()+:air_density((btScalar)1.2),+water_density(0),+water_offset(0),+water_normal(0,0,0),+m_broadphase(0),+m_dispatcher(0),+m_gravity(0,-10,0)+{+}+};+++///The btSoftBody is an class to simulate cloth and volumetric soft bodies.+///There is two-way interaction between btSoftBody and btRigidBody/btCollisionObject.+class btSoftBody : public btCollisionObject+{ private:+public:+btAlignedObjectArray<class btCollisionObject*> m_collisionDisabledObjects;++// The solver object that handles this soft body+btSoftBodySolver *m_softBodySolver;++//+// Enumerations+//++///eAeroModel+struct eAeroModel { enum _ {+V_Point, ///Vertex normals are oriented toward velocity+V_TwoSided, ///Vertex normals are flipped to match velocity+V_TwoSidedLiftDrag, ///Vertex normals are flipped to match velocity and lift and drag forces are applied+V_OneSided, ///Vertex normals are taken as it is+F_TwoSided, ///Face normals are flipped to match velocity+F_TwoSidedLiftDrag, ///Face normals are flipped to match velocity and lift and drag forces are applied+F_OneSided, ///Face normals are taken as it is+END+};};++///eVSolver : velocities solvers+struct eVSolver { enum _ {+Linear, ///Linear solver+END+};};++///ePSolver : positions solvers+struct ePSolver { enum _ {+Linear, ///Linear solver+Anchors, ///Anchor solver+RContacts, ///Rigid contacts solver+SContacts, ///Soft contacts solver+END+};};++///eSolverPresets+struct eSolverPresets { enum _ {+Positions,+Velocities,+Default = Positions,+END+};};++///eFeature+struct eFeature { enum _ {+None,+Node,+Link,+Face,+Tetra,+END+};};++typedef btAlignedObjectArray<eVSolver::_> tVSolverArray;+typedef btAlignedObjectArray<ePSolver::_> tPSolverArray;++//+// Flags+//++///fCollision+struct fCollision { enum _ {+RVSmask = 0x000f, ///Rigid versus soft mask+SDF_RS = 0x0001, ///SDF based rigid vs soft+CL_RS = 0x0002, ///Cluster vs convex rigid vs soft++SVSmask = 0x0030, ///Rigid versus soft mask+VF_SS = 0x0010, ///Vertex vs face soft vs soft handling+CL_SS = 0x0020, ///Cluster vs cluster soft vs soft handling+CL_SELF = 0x0040, ///Cluster soft body self collision+/* presets */+Default = SDF_RS,+END+};};++///fMaterial+struct fMaterial { enum _ {+DebugDraw = 0x0001, /// Enable debug draw+/* presets */+Default = DebugDraw,+END+};};++//+// API Types+//++/* sRayCast */+struct sRayCast+{+btSoftBody* body; /// soft body+eFeature::_ feature; /// feature type+int index; /// feature index+btScalar fraction; /// time of impact fraction (rayorg+(rayto-rayfrom)*fraction)+};++/* ImplicitFn */+struct ImplicitFn+{+virtual btScalar Eval(const btVector3& x)=0;+};++//+// Internal types+//++typedef btAlignedObjectArray<btScalar> tScalarArray;+typedef btAlignedObjectArray<btVector3> tVector3Array;++/* sCti is Softbody contact info */+struct sCti+{+btCollisionObject* m_colObj; /* Rigid body */+btVector3 m_normal; /* Outward normal */+btScalar m_offset; /* Offset from origin */+};++/* sMedium */+struct sMedium+{+btVector3 m_velocity; /* Velocity */+btScalar m_pressure; /* Pressure */+btScalar m_density; /* Density */+};++/* Base type */+struct Element+{+void* m_tag; // User data+Element() : m_tag(0) {}+};+/* Material */+struct Material : Element+{+btScalar m_kLST; // Linear stiffness coefficient [0,1]+btScalar m_kAST; // Area/Angular stiffness coefficient [0,1]+btScalar m_kVST; // Volume stiffness coefficient [0,1]+int m_flags; // Flags+};++/* Feature */+struct Feature : Element+{+Material* m_material; // Material+};+/* Node */+struct Node : Feature+{+btVector3 m_x; // Position+btVector3 m_q; // Previous step position+btVector3 m_v; // Velocity+btVector3 m_f; // Force accumulator+btVector3 m_n; // Normal+btScalar m_im; // 1/mass+btScalar m_area; // Area+btDbvtNode* m_leaf; // Leaf data+int m_battach:1; // Attached+};+/* Link */+struct Link : Feature+{+Node* m_n[2]; // Node pointers+btScalar m_rl; // Rest length+int m_bbending:1; // Bending link+btScalar m_c0; // (ima+imb)*kLST+btScalar m_c1; // rl^2+btScalar m_c2; // |gradient|^2/c0+btVector3 m_c3; // gradient+};+/* Face */+struct Face : Feature+{+Node* m_n[3]; // Node pointers+btVector3 m_normal; // Normal+btScalar m_ra; // Rest area+btDbvtNode* m_leaf; // Leaf data+};+/* Tetra */+struct Tetra : Feature+{+Node* m_n[4]; // Node pointers+btScalar m_rv; // Rest volume+btDbvtNode* m_leaf; // Leaf data+btVector3 m_c0[4]; // gradients+btScalar m_c1; // (4*kVST)/(im0+im1+im2+im3)+btScalar m_c2; // m_c1/sum(|g0..3|^2)+};+/* RContact */+struct RContact+{+sCti m_cti; // Contact infos+Node* m_node; // Owner node+btMatrix3x3 m_c0; // Impulse matrix+btVector3 m_c1; // Relative anchor+btScalar m_c2; // ima*dt+btScalar m_c3; // Friction+btScalar m_c4; // Hardness+};+/* SContact */+struct SContact+{+Node* m_node; // Node+Face* m_face; // Face+btVector3 m_weights; // Weigths+btVector3 m_normal; // Normal+btScalar m_margin; // Margin+btScalar m_friction; // Friction+btScalar m_cfm[2]; // Constraint force mixing+};+/* Anchor */+struct Anchor+{+Node* m_node; // Node pointer+btVector3 m_local; // Anchor position in body space+btRigidBody* m_body; // Body+btScalar m_influence;+btMatrix3x3 m_c0; // Impulse matrix+btVector3 m_c1; // Relative anchor+btScalar m_c2; // ima*dt+};+/* Note */+struct Note : Element+{+const char* m_text; // Text+btVector3 m_offset; // Offset+int m_rank; // Rank+Node* m_nodes[4]; // Nodes+btScalar m_coords[4]; // Coordinates+};+/* Pose */+struct Pose+{+bool m_bvolume; // Is valid+bool m_bframe; // Is frame+btScalar m_volume; // Rest volume+tVector3Array m_pos; // Reference positions+tScalarArray m_wgh; // Weights+btVector3 m_com; // COM+btMatrix3x3 m_rot; // Rotation+btMatrix3x3 m_scl; // Scale+btMatrix3x3 m_aqq; // Base scaling+};+/* Cluster */+struct Cluster+{+tScalarArray m_masses;+btAlignedObjectArray<Node*> m_nodes;+tVector3Array m_framerefs;+btTransform m_framexform;+btScalar m_idmass;+btScalar m_imass;+btMatrix3x3 m_locii;+btMatrix3x3 m_invwi;+btVector3 m_com;+btVector3 m_vimpulses[2];+btVector3 m_dimpulses[2];+int m_nvimpulses;+int m_ndimpulses;+btVector3 m_lv;+btVector3 m_av;+btDbvtNode* m_leaf;+btScalar m_ndamping; /* Node damping */+btScalar m_ldamping; /* Linear damping */+btScalar m_adamping; /* Angular damping */+btScalar m_matching;+btScalar m_maxSelfCollisionImpulse;+btScalar m_selfCollisionImpulseFactor;+bool m_containsAnchor;+bool m_collide;+int m_clusterIndex;+Cluster() : m_leaf(0),m_ndamping(0),m_ldamping(0),m_adamping(0),m_matching(0)+,m_maxSelfCollisionImpulse(100.f),+m_selfCollisionImpulseFactor(0.01f),+m_containsAnchor(false)+{}+};+/* Impulse */+struct Impulse+{+btVector3 m_velocity;+btVector3 m_drift;+int m_asVelocity:1;+int m_asDrift:1;+Impulse() : m_velocity(0,0,0),m_drift(0,0,0),m_asVelocity(0),m_asDrift(0) {}+Impulse operator -() const+{+Impulse i=*this;+i.m_velocity=-i.m_velocity;+i.m_drift=-i.m_drift;+return(i);+}+Impulse operator*(btScalar x) const+{+Impulse i=*this;+i.m_velocity*=x;+i.m_drift*=x;+return(i);+}+};+/* Body */+struct Body+{+Cluster* m_soft;+btRigidBody* m_rigid;+btCollisionObject* m_collisionObject;++Body() : m_soft(0),m_rigid(0),m_collisionObject(0) {}+Body(Cluster* p) : m_soft(p),m_rigid(0),m_collisionObject(0) {}+Body(btCollisionObject* colObj) : m_soft(0),m_collisionObject(colObj)+{+m_rigid = btRigidBody::upcast(m_collisionObject);+}++void activate() const+{+if(m_rigid)+m_rigid->activate();+if (m_collisionObject)+m_collisionObject->activate();++}+const btMatrix3x3& invWorldInertia() const+{+static const btMatrix3x3 iwi(0,0,0,0,0,0,0,0,0);+if(m_rigid) return(m_rigid->getInvInertiaTensorWorld());+if(m_soft) return(m_soft->m_invwi);+return(iwi);+}+btScalar invMass() const+{+if(m_rigid) return(m_rigid->getInvMass());+if(m_soft) return(m_soft->m_imass);+return(0);+}+const btTransform& xform() const+{+static const btTransform identity=btTransform::getIdentity();+if(m_collisionObject) return(m_collisionObject->getWorldTransform());+if(m_soft) return(m_soft->m_framexform);+return(identity);+}+btVector3 linearVelocity() const+{+if(m_rigid) return(m_rigid->getLinearVelocity());+if(m_soft) return(m_soft->m_lv);+return(btVector3(0,0,0));+}+btVector3 angularVelocity(const btVector3& rpos) const+{+if(m_rigid) return(btCross(m_rigid->getAngularVelocity(),rpos));+if(m_soft) return(btCross(m_soft->m_av,rpos));+return(btVector3(0,0,0));+}+btVector3 angularVelocity() const+{+if(m_rigid) return(m_rigid->getAngularVelocity());+if(m_soft) return(m_soft->m_av);+return(btVector3(0,0,0));+}+btVector3 velocity(const btVector3& rpos) const+{+return(linearVelocity()+angularVelocity(rpos));+}+void applyVImpulse(const btVector3& impulse,const btVector3& rpos) const+{+if(m_rigid) m_rigid->applyImpulse(impulse,rpos);+if(m_soft) btSoftBody::clusterVImpulse(m_soft,rpos,impulse);+}+void applyDImpulse(const btVector3& impulse,const btVector3& rpos) const+{+if(m_rigid) m_rigid->applyImpulse(impulse,rpos);+if(m_soft) btSoftBody::clusterDImpulse(m_soft,rpos,impulse);+}+void applyImpulse(const Impulse& impulse,const btVector3& rpos) const+{+if(impulse.m_asVelocity)+{+// printf("impulse.m_velocity = %f,%f,%f\n",impulse.m_velocity.getX(),impulse.m_velocity.getY(),impulse.m_velocity.getZ());+applyVImpulse(impulse.m_velocity,rpos);+}+if(impulse.m_asDrift)+{+// printf("impulse.m_drift = %f,%f,%f\n",impulse.m_drift.getX(),impulse.m_drift.getY(),impulse.m_drift.getZ());+applyDImpulse(impulse.m_drift,rpos);+}+}+void applyVAImpulse(const btVector3& impulse) const+{+if(m_rigid) m_rigid->applyTorqueImpulse(impulse);+if(m_soft) btSoftBody::clusterVAImpulse(m_soft,impulse);+}+void applyDAImpulse(const btVector3& impulse) const+{+if(m_rigid) m_rigid->applyTorqueImpulse(impulse);+if(m_soft) btSoftBody::clusterDAImpulse(m_soft,impulse);+}+void applyAImpulse(const Impulse& impulse) const+{+if(impulse.m_asVelocity) applyVAImpulse(impulse.m_velocity);+if(impulse.m_asDrift) applyDAImpulse(impulse.m_drift);+}+void applyDCImpulse(const btVector3& impulse) const+{+if(m_rigid) m_rigid->applyCentralImpulse(impulse);+if(m_soft) btSoftBody::clusterDCImpulse(m_soft,impulse);+}+};+/* Joint */+struct Joint+{+struct eType { enum _ {+Linear=0,+Angular,+Contact+};};+struct Specs+{+Specs() : erp(1),cfm(1),split(1) {}+btScalar erp;+btScalar cfm;+btScalar split;+};+Body m_bodies[2];+btVector3 m_refs[2];+btScalar m_cfm;+btScalar m_erp;+btScalar m_split;+btVector3 m_drift;+btVector3 m_sdrift;+btMatrix3x3 m_massmatrix;+bool m_delete;+virtual ~Joint() {}+Joint() : m_delete(false) {}+virtual void Prepare(btScalar dt,int iterations);+virtual void Solve(btScalar dt,btScalar sor)=0;+virtual void Terminate(btScalar dt)=0;+virtual eType::_ Type() const=0;+};+/* LJoint */+struct LJoint : Joint+{+struct Specs : Joint::Specs+{+btVector3 position;+};+btVector3 m_rpos[2];+void Prepare(btScalar dt,int iterations);+void Solve(btScalar dt,btScalar sor);+void Terminate(btScalar dt);+eType::_ Type() const { return(eType::Linear); }+};+/* AJoint */+struct AJoint : Joint+{+struct IControl+{+virtual void Prepare(AJoint*) {}+virtual btScalar Speed(AJoint*,btScalar current) { return(current); }+static IControl* Default() { static IControl def;return(&def); }+};+struct Specs : Joint::Specs+{+Specs() : icontrol(IControl::Default()) {}+btVector3 axis;+IControl* icontrol;+};+btVector3 m_axis[2];+IControl* m_icontrol;+void Prepare(btScalar dt,int iterations);+void Solve(btScalar dt,btScalar sor);+void Terminate(btScalar dt);+eType::_ Type() const { return(eType::Angular); }+};+/* CJoint */+struct CJoint : Joint+{+int m_life;+int m_maxlife;+btVector3 m_rpos[2];+btVector3 m_normal;+btScalar m_friction;+void Prepare(btScalar dt,int iterations);+void Solve(btScalar dt,btScalar sor);+void Terminate(btScalar dt);+eType::_ Type() const { return(eType::Contact); }+};+/* Config */+struct Config+{+eAeroModel::_ aeromodel; // Aerodynamic model (default: V_Point)+btScalar kVCF; // Velocities correction factor (Baumgarte)+btScalar kDP; // Damping coefficient [0,1]+btScalar kDG; // Drag coefficient [0,+inf]+btScalar kLF; // Lift coefficient [0,+inf]+btScalar kPR; // Pressure coefficient [-inf,+inf]+btScalar kVC; // Volume conversation coefficient [0,+inf]+btScalar kDF; // Dynamic friction coefficient [0,1]+btScalar kMT; // Pose matching coefficient [0,1]+btScalar kCHR; // Rigid contacts hardness [0,1]+btScalar kKHR; // Kinetic contacts hardness [0,1]+btScalar kSHR; // Soft contacts hardness [0,1]+btScalar kAHR; // Anchors hardness [0,1]+btScalar kSRHR_CL; // Soft vs rigid hardness [0,1] (cluster only)+btScalar kSKHR_CL; // Soft vs kinetic hardness [0,1] (cluster only)+btScalar kSSHR_CL; // Soft vs soft hardness [0,1] (cluster only)+btScalar kSR_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only)+btScalar kSK_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only)+btScalar kSS_SPLT_CL; // Soft vs rigid impulse split [0,1] (cluster only)+btScalar maxvolume; // Maximum volume ratio for pose+btScalar timescale; // Time scale+int viterations; // Velocities solver iterations+int piterations; // Positions solver iterations+int diterations; // Drift solver iterations+int citerations; // Cluster solver iterations+int collisions; // Collisions flags+tVSolverArray m_vsequence; // Velocity solvers sequence+tPSolverArray m_psequence; // Position solvers sequence+tPSolverArray m_dsequence; // Drift solvers sequence+};+/* SolverState */+struct SolverState+{+btScalar sdt; // dt*timescale+btScalar isdt; // 1/sdt+btScalar velmrg; // velocity margin+btScalar radmrg; // radial margin+btScalar updmrg; // Update margin+};+/// RayFromToCaster takes a ray from, ray to (instead of direction!)+struct RayFromToCaster : btDbvt::ICollide+{+btVector3 m_rayFrom;+btVector3 m_rayTo;+btVector3 m_rayNormalizedDirection;+btScalar m_mint;+Face* m_face;+int m_tests;+RayFromToCaster(const btVector3& rayFrom,const btVector3& rayTo,btScalar mxt);+void Process(const btDbvtNode* leaf);++static inline btScalar rayFromToTriangle(const btVector3& rayFrom,+const btVector3& rayTo,+const btVector3& rayNormalizedDirection,+const btVector3& a,+const btVector3& b,+const btVector3& c,+btScalar maxt=SIMD_INFINITY);+};++//+// Typedefs+//++typedef void (*psolver_t)(btSoftBody*,btScalar,btScalar);+typedef void (*vsolver_t)(btSoftBody*,btScalar);+typedef btAlignedObjectArray<Cluster*> tClusterArray;+typedef btAlignedObjectArray<Note> tNoteArray;+typedef btAlignedObjectArray<Node> tNodeArray;+typedef btAlignedObjectArray<btDbvtNode*> tLeafArray;+typedef btAlignedObjectArray<Link> tLinkArray;+typedef btAlignedObjectArray<Face> tFaceArray;+typedef btAlignedObjectArray<Tetra> tTetraArray;+typedef btAlignedObjectArray<Anchor> tAnchorArray;+typedef btAlignedObjectArray<RContact> tRContactArray;+typedef btAlignedObjectArray<SContact> tSContactArray;+typedef btAlignedObjectArray<Material*> tMaterialArray;+typedef btAlignedObjectArray<Joint*> tJointArray;+typedef btAlignedObjectArray<btSoftBody*> tSoftBodyArray;++//+// Fields+//++Config m_cfg; // Configuration+SolverState m_sst; // Solver state+Pose m_pose; // Pose+void* m_tag; // User data+btSoftBodyWorldInfo* m_worldInfo; // World info+tNoteArray m_notes; // Notes+tNodeArray m_nodes; // Nodes+tLinkArray m_links; // Links+tFaceArray m_faces; // Faces+tTetraArray m_tetras; // Tetras+tAnchorArray m_anchors; // Anchors+tRContactArray m_rcontacts; // Rigid contacts+tSContactArray m_scontacts; // Soft contacts+tJointArray m_joints; // Joints+tMaterialArray m_materials; // Materials+btScalar m_timeacc; // Time accumulator+btVector3 m_bounds[2]; // Spatial bounds+bool m_bUpdateRtCst; // Update runtime constants+btDbvt m_ndbvt; // Nodes tree+btDbvt m_fdbvt; // Faces tree+btDbvt m_cdbvt; // Clusters tree+tClusterArray m_clusters; // Clusters++btAlignedObjectArray<bool>m_clusterConnectivity;//cluster connectivity, for self-collision++btTransform m_initialWorldTransform;++btVector3 m_windVelocity;+//+// Api+//++/* ctor */+btSoftBody( btSoftBodyWorldInfo* worldInfo,int node_count, const btVector3* x, const btScalar* m);++/* ctor */+btSoftBody( btSoftBodyWorldInfo* worldInfo);++void initDefaults();++/* dtor */+virtual ~btSoftBody();+/* Check for existing link */++btAlignedObjectArray<int> m_userIndexMapping;++btSoftBodyWorldInfo* getWorldInfo()+{+return m_worldInfo;+}++///@todo: avoid internal softbody shape hack and move collision code to collision library+virtual void setCollisionShape(btCollisionShape* collisionShape)+{++}++bool checkLink( int node0,+int node1) const;+bool checkLink( const Node* node0,+const Node* node1) const;+/* Check for existring face */+bool checkFace( int node0,+int node1,+int node2) const;+/* Append material */+Material* appendMaterial();+/* Append note */+void appendNote( const char* text,+const btVector3& o,+const btVector4& c=btVector4(1,0,0,0),+Node* n0=0,+Node* n1=0,+Node* n2=0,+Node* n3=0);+void appendNote( const char* text,+const btVector3& o,+Node* feature);+void appendNote( const char* text,+const btVector3& o,+Link* feature);+void appendNote( const char* text,+const btVector3& o,+Face* feature);+/* Append node */+void appendNode( const btVector3& x,btScalar m);+/* Append link */+void appendLink(int model=-1,Material* mat=0);+void appendLink( int node0,+int node1,+Material* mat=0,+bool bcheckexist=false);+void appendLink( Node* node0,+Node* node1,+Material* mat=0,+bool bcheckexist=false);+/* Append face */+void appendFace(int model=-1,Material* mat=0);+void appendFace( int node0,+int node1,+int node2,+Material* mat=0);+void appendTetra(int model,Material* mat);+//+void appendTetra(int node0,+int node1,+int node2,+int node3,+Material* mat=0);+++/* Append anchor */+void appendAnchor( int node,+btRigidBody* body, bool disableCollisionBetweenLinkedBodies=false,btScalar influence = 1);+void appendAnchor(int node,btRigidBody* body, const btVector3& localPivot,bool disableCollisionBetweenLinkedBodies=false,btScalar influence = 1);+/* Append linear joint */+void appendLinearJoint(const LJoint::Specs& specs,Cluster* body0,Body body1);+void appendLinearJoint(const LJoint::Specs& specs,Body body=Body());+void appendLinearJoint(const LJoint::Specs& specs,btSoftBody* body);+/* Append linear joint */+void appendAngularJoint(const AJoint::Specs& specs,Cluster* body0,Body body1);+void appendAngularJoint(const AJoint::Specs& specs,Body body=Body());+void appendAngularJoint(const AJoint::Specs& specs,btSoftBody* body);+/* Add force (or gravity) to the entire body */+void addForce( const btVector3& force);+/* Add force (or gravity) to a node of the body */+void addForce( const btVector3& force,+int node);+/* Add velocity to the entire body */+void addVelocity( const btVector3& velocity);++/* Set velocity for the entire body */+void setVelocity( const btVector3& velocity);++/* Add velocity to a node of the body */+void addVelocity( const btVector3& velocity,+int node);+/* Set mass */+void setMass( int node,+btScalar mass);+/* Get mass */+btScalar getMass( int node) const;+/* Get total mass */+btScalar getTotalMass() const;+/* Set total mass (weighted by previous masses) */+void setTotalMass( btScalar mass,+bool fromfaces=false);+/* Set total density */+void setTotalDensity(btScalar density);+/* Set volume mass (using tetrahedrons) */+void setVolumeMass( btScalar mass);+/* Set volume density (using tetrahedrons) */+void setVolumeDensity( btScalar density);+/* Transform */+void transform( const btTransform& trs);+/* Translate */+void translate( const btVector3& trs);+/* Rotate */+void rotate( const btQuaternion& rot);+/* Scale */+void scale( const btVector3& scl);+/* Set current state as pose */+void setPose( bool bvolume,+bool bframe);+/* Return the volume */+btScalar getVolume() const;+/* Cluster count */+int clusterCount() const;+/* Cluster center of mass */+static btVector3 clusterCom(const Cluster* cluster);+btVector3 clusterCom(int cluster) const;+/* Cluster velocity at rpos */+static btVector3 clusterVelocity(const Cluster* cluster,const btVector3& rpos);+/* Cluster impulse */+static void clusterVImpulse(Cluster* cluster,const btVector3& rpos,const btVector3& impulse);+static void clusterDImpulse(Cluster* cluster,const btVector3& rpos,const btVector3& impulse);+static void clusterImpulse(Cluster* cluster,const btVector3& rpos,const Impulse& impulse);+static void clusterVAImpulse(Cluster* cluster,const btVector3& impulse);+static void clusterDAImpulse(Cluster* cluster,const btVector3& impulse);+static void clusterAImpulse(Cluster* cluster,const Impulse& impulse);+static void clusterDCImpulse(Cluster* cluster,const btVector3& impulse);+/* Generate bending constraints based on distance in the adjency graph */+int generateBendingConstraints( int distance,+Material* mat=0);+/* Randomize constraints to reduce solver bias */+void randomizeConstraints();+/* Release clusters */+void releaseCluster(int index);+void releaseClusters();+/* Generate clusters (K-mean) */+///generateClusters with k=0 will create a convex cluster for each tetrahedron or triangle+///otherwise an approximation will be used (better performance)+int generateClusters(int k,int maxiterations=8192);+/* Refine */+void refine(ImplicitFn* ifn,btScalar accurary,bool cut);+/* CutLink */+bool cutLink(int node0,int node1,btScalar position);+bool cutLink(const Node* node0,const Node* node1,btScalar position);++///Ray casting using rayFrom and rayTo in worldspace, (not direction!)+bool rayTest(const btVector3& rayFrom,+const btVector3& rayTo,+sRayCast& results);+/* Solver presets */+void setSolver(eSolverPresets::_ preset);+/* predictMotion */+void predictMotion(btScalar dt);+/* solveConstraints */+void solveConstraints();+/* staticSolve */+void staticSolve(int iterations);+/* solveCommonConstraints */+static void solveCommonConstraints(btSoftBody** bodies,int count,int iterations);+/* solveClusters */+static void solveClusters(const btAlignedObjectArray<btSoftBody*>& bodies);+/* integrateMotion */+void integrateMotion();+/* defaultCollisionHandlers */+void defaultCollisionHandler(btCollisionObject* pco);+void defaultCollisionHandler(btSoftBody* psb);++++//+// Functionality to deal with new accelerated solvers.+//++/**+* Set a wind velocity for interaction with the air.+*/+void setWindVelocity( const btVector3 &velocity );+++/**+* Return the wind velocity for interaction with the air.+*/+const btVector3& getWindVelocity();++//+// Set the solver that handles this soft body+// Should not be allowed to get out of sync with reality+// Currently called internally on addition to the world+void setSoftBodySolver( btSoftBodySolver *softBodySolver )+{+m_softBodySolver = softBodySolver;+}++//+// Return the solver that handles this soft body+//+btSoftBodySolver *getSoftBodySolver()+{+return m_softBodySolver;+}++//+// Return the solver that handles this soft body+//+btSoftBodySolver *getSoftBodySolver() const+{+return m_softBodySolver;+}+++//+// Cast+//++static const btSoftBody* upcast(const btCollisionObject* colObj)+{+if (colObj->getInternalType()==CO_SOFT_BODY)+return (const btSoftBody*)colObj;+return 0;+}+static btSoftBody* upcast(btCollisionObject* colObj)+{+if (colObj->getInternalType()==CO_SOFT_BODY)+return (btSoftBody*)colObj;+return 0;+}++//+// ::btCollisionObject+//++virtual void getAabb(btVector3& aabbMin,btVector3& aabbMax) const+{+aabbMin = m_bounds[0];+aabbMax = m_bounds[1];+}+//+// Private+//+void pointersToIndices();+void indicesToPointers(const int* map=0);++int rayTest(const btVector3& rayFrom,const btVector3& rayTo,+btScalar& mint,eFeature::_& feature,int& index,bool bcountonly) const;+void initializeFaceTree();+btVector3 evaluateCom() const;+bool checkContact(btCollisionObject* colObj,const btVector3& x,btScalar margin,btSoftBody::sCti& cti) const;+void updateNormals();+void updateBounds();+void updatePose();+void updateConstants();+void initializeClusters();+void updateClusters();+void cleanupClusters();+void prepareClusters(int iterations);+void solveClusters(btScalar sor);+void applyClusters(bool drift);+void dampClusters();+void applyForces();+static void PSolve_Anchors(btSoftBody* psb,btScalar kst,btScalar ti);+static void PSolve_RContacts(btSoftBody* psb,btScalar kst,btScalar ti);+static void PSolve_SContacts(btSoftBody* psb,btScalar,btScalar ti);+static void PSolve_Links(btSoftBody* psb,btScalar kst,btScalar ti);+static void VSolve_Links(btSoftBody* psb,btScalar kst);+static psolver_t getSolver(ePSolver::_ solver);+static vsolver_t getSolver(eVSolver::_ solver);+++virtual int calculateSerializeBufferSize() const;++///fills the dataBuffer and returns the struct name (and 0 on failure)+virtual const char* serialize(void* dataBuffer, class btSerializer* serializer) const;++//virtual void serializeSingleObject(class btSerializer* serializer) const;   };
bullet/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -33,120 +33,120 @@  struct btTriIndex {-	int m_PartIdTriangleIndex;-	class btCollisionShape*	m_childShape;+int m_PartIdTriangleIndex;+class btCollisionShape* m_childShape; -	btTriIndex(int partId,int triangleIndex,btCollisionShape* shape)-	{-		m_PartIdTriangleIndex = (partId<<(31-MAX_NUM_PARTS_IN_BITS)) | triangleIndex;-		m_childShape = shape;-	}+btTriIndex(int partId,int triangleIndex,btCollisionShape* shape)+{+m_PartIdTriangleIndex = (partId<<(31-MAX_NUM_PARTS_IN_BITS)) | triangleIndex;+m_childShape = shape;+} -	int	getTriangleIndex() const-	{-		// Get only the lower bits where the triangle index is stored-		return (m_PartIdTriangleIndex&~((~0)<<(31-MAX_NUM_PARTS_IN_BITS)));-	}-	int	getPartId() const-	{-		// Get only the highest bits where the part index is stored-		return (m_PartIdTriangleIndex>>(31-MAX_NUM_PARTS_IN_BITS));-	}-	int	getUid() const-	{-		return m_PartIdTriangleIndex;-	}+int getTriangleIndex() const+{+// Get only the lower bits where the triangle index is stored+return (m_PartIdTriangleIndex&~((~0)<<(31-MAX_NUM_PARTS_IN_BITS)));+}+int getPartId() const+{+// Get only the highest bits where the part index is stored+return (m_PartIdTriangleIndex>>(31-MAX_NUM_PARTS_IN_BITS));+}+int getUid() const+{+return m_PartIdTriangleIndex;+} };   ///For each triangle in the concave mesh that overlaps with the AABB of a soft body (m_softBody), processTriangle is called. class btSoftBodyTriangleCallback : public btTriangleCallback-{-	btSoftBody* m_softBody;-	btCollisionObject* m_triBody;+{ private:+btSoftBody* m_softBody;+btCollisionObject* m_triBody; -	btVector3	m_aabbMin;-	btVector3	m_aabbMax ;+btVector3 m_aabbMin;+btVector3 m_aabbMax ; -	btManifoldResult* m_resultOut;+btManifoldResult* m_resultOut; -	btDispatcher*	m_dispatcher;-	const btDispatcherInfo* m_dispatchInfoPtr;-	btScalar m_collisionMarginTriangle;+btDispatcher* m_dispatcher;+const btDispatcherInfo* m_dispatchInfoPtr;+btScalar m_collisionMarginTriangle; -	btHashMap<btHashKey<btTriIndex>,btTriIndex> m_shapeCache;+btHashMap<btHashKey<btTriIndex>,btTriIndex> m_shapeCache;  public:-	int	m_triangleCount;+int m_triangleCount; -	//	btPersistentManifold*	m_manifoldPtr;+// btPersistentManifold* m_manifoldPtr; -	btSoftBodyTriangleCallback(btDispatcher* dispatcher,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped);+btSoftBodyTriangleCallback(btDispatcher* dispatcher,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped); -	void	setTimeStepAndCounters(btScalar collisionMarginTriangle,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+void setTimeStepAndCounters(btScalar collisionMarginTriangle,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual ~btSoftBodyTriangleCallback();+virtual ~btSoftBodyTriangleCallback(); -	virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex);+virtual void processTriangle(btVector3* triangle, int partId, int triangleIndex); -	void clearCache();+void clearCache(); -	SIMD_FORCE_INLINE const btVector3& getAabbMin() const-	{-		return m_aabbMin;-	}-	SIMD_FORCE_INLINE const btVector3& getAabbMax() const-	{-		return m_aabbMax;-	}+SIMD_FORCE_INLINE const btVector3& getAabbMin() const+{+return m_aabbMin;+}+SIMD_FORCE_INLINE const btVector3& getAabbMax() const+{+return m_aabbMax;+}  };    -/// btSoftBodyConcaveCollisionAlgorithm  supports collision between soft body shapes and (concave) trianges meshes.-class btSoftBodyConcaveCollisionAlgorithm  : public btCollisionAlgorithm-{+/// btSoftBodyConcaveCollisionAlgorithm supports collision between soft body shapes and (concave) trianges meshes.+class btSoftBodyConcaveCollisionAlgorithm : public btCollisionAlgorithm+{ private: -	bool	m_isSwapped;+bool m_isSwapped; -	btSoftBodyTriangleCallback m_btSoftBodyTriangleCallback;+btSoftBodyTriangleCallback m_btSoftBodyTriangleCallback;  public: -	btSoftBodyConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped);+btSoftBodyConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1,bool isSwapped); -	virtual ~btSoftBodyConcaveCollisionAlgorithm();+virtual ~btSoftBodyConcaveCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	btScalar	calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		//we don't add any manifolds-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+//we don't add any manifolds+} -	void	clearCache();+void clearCache(); -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftBodyConcaveCollisionAlgorithm));-			return new(mem) btSoftBodyConcaveCollisionAlgorithm(ci,body0,body1,false);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftBodyConcaveCollisionAlgorithm));+return new(mem) btSoftBodyConcaveCollisionAlgorithm(ci,body0,body1,false);+}+}; -	struct SwappedCreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftBodyConcaveCollisionAlgorithm));-			return new(mem) btSoftBodyConcaveCollisionAlgorithm(ci,body0,body1,true);-		}-	};+struct SwappedCreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftBodyConcaveCollisionAlgorithm));+return new(mem) btSoftBodyConcaveCollisionAlgorithm(ci,body0,body1,true);+}+};  }; 
bullet/BulletSoftBody/btSoftBodyData.h view
@@ -1,217 +1,217 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it freely,
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFTBODY_FLOAT_DATA
-#define BT_SOFTBODY_FLOAT_DATA
-
-#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
-
-
-
-struct	SoftBodyMaterialData
-{
-	float	m_linearStiffness;
-	float	m_angularStiffness;
-	float	m_volumeStiffness;
-	int		m_flags;
-};
-
-struct	SoftBodyNodeData
-{
-	SoftBodyMaterialData		*m_material;
-	btVector3FloatData			m_position;
-	btVector3FloatData			m_previousPosition;
-	btVector3FloatData			m_velocity;
-	btVector3FloatData			m_accumulatedForce;
-	btVector3FloatData			m_normal;
-	float						m_inverseMass;
-	float						m_area;
-	int							m_attach;
-	int							m_pad;
-};
-
-struct	SoftBodyLinkData
-{
-	SoftBodyMaterialData	*m_material;
-	int						m_nodeIndices[2];			// Node pointers
-	float					m_restLength;			// Rest length		
-	int						m_bbending;		// Bending link
-};
-
-struct	SoftBodyFaceData
-{
-	btVector3FloatData		m_normal;		// Normal
-	SoftBodyMaterialData	*m_material;
-	int						m_nodeIndices[3];			// Node pointers
-	float					m_restArea;			// Rest area
-};	
-
-struct	SoftBodyTetraData
-{
-	btVector3FloatData		m_c0[4];		// gradients
-	SoftBodyMaterialData	*m_material;
-	int						m_nodeIndices[4];			// Node pointers		
-	float					m_restVolume;			// Rest volume
-	float					m_c1;			// (4*kVST)/(im0+im1+im2+im3)
-	float					m_c2;			// m_c1/sum(|g0..3|^2)
-	int						m_pad;
-};
-
-struct	SoftRigidAnchorData
-{
-	btMatrix3x3FloatData	m_c0;			// Impulse matrix
-	btVector3FloatData		m_c1;			// Relative anchor
-	btVector3FloatData		m_localFrame;		// Anchor position in body space
-	btRigidBodyData			*m_rigidBody;
-	int						m_nodeIndex;			// Node pointer
-	float					m_c2;			// ima*dt
-};
-
-
-
-struct	SoftBodyConfigData
-{
-	int					m_aeroModel;		// Aerodynamic model (default: V_Point)
-	float				m_baumgarte;			// Velocities correction factor (Baumgarte)
-	float				m_damping;			// Damping coefficient [0,1]
-	float				m_drag;			// Drag coefficient [0,+inf]
-	float				m_lift;			// Lift coefficient [0,+inf]
-	float				m_pressure;			// Pressure coefficient [-inf,+inf]
-	float				m_volume;			// Volume conversation coefficient [0,+inf]
-	float				m_dynamicFriction;			// Dynamic friction coefficient [0,1]
-	float				m_poseMatch;			// Pose matching coefficient [0,1]		
-	float				m_rigidContactHardness;			// Rigid contacts hardness [0,1]
-	float				m_kineticContactHardness;			// Kinetic contacts hardness [0,1]
-	float				m_softContactHardness;			// Soft contacts hardness [0,1]
-	float				m_anchorHardness;			// Anchors hardness [0,1]
-	float				m_softRigidClusterHardness;		// Soft vs rigid hardness [0,1] (cluster only)
-	float				m_softKineticClusterHardness;		// Soft vs kinetic hardness [0,1] (cluster only)
-	float				m_softSoftClusterHardness;		// Soft vs soft hardness [0,1] (cluster only)
-	float				m_softRigidClusterImpulseSplit;	// Soft vs rigid impulse split [0,1] (cluster only)
-	float				m_softKineticClusterImpulseSplit;	// Soft vs rigid impulse split [0,1] (cluster only)
-	float				m_softSoftClusterImpulseSplit;	// Soft vs rigid impulse split [0,1] (cluster only)
-	float				m_maxVolume;		// Maximum volume ratio for pose
-	float				m_timeScale;		// Time scale
-	int					m_velocityIterations;	// Velocities solver iterations
-	int					m_positionIterations;	// Positions solver iterations
-	int					m_driftIterations;	// Drift solver iterations
-	int					m_clusterIterations;	// Cluster solver iterations
-	int					m_collisionFlags;	// Collisions flags
-};
-
-struct	SoftBodyPoseData
-{
-	btMatrix3x3FloatData	m_rot;			// Rotation
-	btMatrix3x3FloatData	m_scale;			// Scale
-	btMatrix3x3FloatData	m_aqq;			// Base scaling
-	btVector3FloatData		m_com;			// COM
-
-	btVector3FloatData		*m_positions;			// Reference positions
-	float					*m_weights;	// Weights
-	int						m_numPositions;
-	int						m_numWeigts;
-
-	int						m_bvolume;		// Is valid
-	int						m_bframe;		// Is frame
-	float					m_restVolume;		// Rest volume
-	int						m_pad;
-};
-
-struct	SoftBodyClusterData
-{
-		btTransformFloatData		m_framexform;
-		btMatrix3x3FloatData		m_locii;
-		btMatrix3x3FloatData		m_invwi;
-		btVector3FloatData			m_com;
-		btVector3FloatData			m_vimpulses[2];
-		btVector3FloatData			m_dimpulses[2];
-		btVector3FloatData			m_lv;
-		btVector3FloatData			m_av;
-		
-		btVector3FloatData			*m_framerefs;
-		int							*m_nodeIndices;
-		float						*m_masses;
-
-		int							m_numFrameRefs;
-		int							m_numNodes;
-		int							m_numMasses;
-
-		float						m_idmass;
-		float						m_imass;
-		int							m_nvimpulses;
-		int							m_ndimpulses;
-		float						m_ndamping;
-		float						m_ldamping;
-		float						m_adamping;
-		float						m_matching;
-		float						m_maxSelfCollisionImpulse;
-		float						m_selfCollisionImpulseFactor;
-		int							m_containsAnchor;
-		int							m_collide;
-		int							m_clusterIndex;
-};
-
-
-enum	btSoftJointBodyType
-{
-	BT_JOINT_SOFT_BODY_CLUSTER=1,
-	BT_JOINT_RIGID_BODY,
-	BT_JOINT_COLLISION_OBJECT
-};
-
-struct	btSoftBodyJointData
-{
-	void						*m_bodyA;
-	void						*m_bodyB;
-	btVector3FloatData			m_refs[2];
-	float						m_cfm;
-	float						m_erp;
-	float						m_split;
-	int							m_delete;
-	btVector3FloatData			m_relPosition[2];//linear
-	int							m_bodyAtype;
-	int							m_bodyBtype;
-	int							m_jointType;
-	int							m_pad;
-};
-
-///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
-struct	btSoftBodyFloatData
-{
-	btCollisionObjectFloatData	m_collisionObjectData;
-
-	SoftBodyPoseData		*m_pose;
-	SoftBodyMaterialData	**m_materials;
-	SoftBodyNodeData		*m_nodes;
-	SoftBodyLinkData		*m_links;
-	SoftBodyFaceData		*m_faces;
-	SoftBodyTetraData		*m_tetrahedra;
-	SoftRigidAnchorData		*m_anchors;
-	SoftBodyClusterData		*m_clusters;
-	btSoftBodyJointData		*m_joints;
-
-	int						m_numMaterials;
-	int						m_numNodes;
-	int						m_numLinks;
-	int						m_numFaces;
-	int						m_numTetrahedra;
-	int						m_numAnchors;
-	int						m_numClusters;
-	int						m_numJoints;
-	SoftBodyConfigData		m_config;
-};
-
-#endif //BT_SOFTBODY_FLOAT_DATA
-
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFTBODY_FLOAT_DATA+#define BT_SOFTBODY_FLOAT_DATA++#include "BulletCollision/CollisionDispatch/btCollisionObject.h"++++struct SoftBodyMaterialData+{+float m_linearStiffness;+float m_angularStiffness;+float m_volumeStiffness;+int m_flags;+};++struct SoftBodyNodeData+{+SoftBodyMaterialData *m_material;+btVector3FloatData m_position;+btVector3FloatData m_previousPosition;+btVector3FloatData m_velocity;+btVector3FloatData m_accumulatedForce;+btVector3FloatData m_normal;+float m_inverseMass;+float m_area;+int m_attach;+int m_pad;+};++struct SoftBodyLinkData+{+SoftBodyMaterialData *m_material;+int m_nodeIndices[2]; // Node pointers+float m_restLength; // Rest length+int m_bbending; // Bending link+};++struct SoftBodyFaceData+{+btVector3FloatData m_normal; // Normal+SoftBodyMaterialData *m_material;+int m_nodeIndices[3]; // Node pointers+float m_restArea; // Rest area+};++struct SoftBodyTetraData+{+btVector3FloatData m_c0[4]; // gradients+SoftBodyMaterialData *m_material;+int m_nodeIndices[4]; // Node pointers+float m_restVolume; // Rest volume+float m_c1; // (4*kVST)/(im0+im1+im2+im3)+float m_c2; // m_c1/sum(|g0..3|^2)+int m_pad;+};++struct SoftRigidAnchorData+{+btMatrix3x3FloatData m_c0; // Impulse matrix+btVector3FloatData m_c1; // Relative anchor+btVector3FloatData m_localFrame; // Anchor position in body space+btRigidBodyData *m_rigidBody;+int m_nodeIndex; // Node pointer+float m_c2; // ima*dt+};++++struct SoftBodyConfigData+{+int m_aeroModel; // Aerodynamic model (default: V_Point)+float m_baumgarte; // Velocities correction factor (Baumgarte)+float m_damping; // Damping coefficient [0,1]+float m_drag; // Drag coefficient [0,+inf]+float m_lift; // Lift coefficient [0,+inf]+float m_pressure; // Pressure coefficient [-inf,+inf]+float m_volume; // Volume conversation coefficient [0,+inf]+float m_dynamicFriction; // Dynamic friction coefficient [0,1]+float m_poseMatch; // Pose matching coefficient [0,1]+float m_rigidContactHardness; // Rigid contacts hardness [0,1]+float m_kineticContactHardness; // Kinetic contacts hardness [0,1]+float m_softContactHardness; // Soft contacts hardness [0,1]+float m_anchorHardness; // Anchors hardness [0,1]+float m_softRigidClusterHardness; // Soft vs rigid hardness [0,1] (cluster only)+float m_softKineticClusterHardness; // Soft vs kinetic hardness [0,1] (cluster only)+float m_softSoftClusterHardness; // Soft vs soft hardness [0,1] (cluster only)+float m_softRigidClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)+float m_softKineticClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)+float m_softSoftClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)+float m_maxVolume; // Maximum volume ratio for pose+float m_timeScale; // Time scale+int m_velocityIterations; // Velocities solver iterations+int m_positionIterations; // Positions solver iterations+int m_driftIterations; // Drift solver iterations+int m_clusterIterations; // Cluster solver iterations+int m_collisionFlags; // Collisions flags+};++struct SoftBodyPoseData+{+btMatrix3x3FloatData m_rot; // Rotation+btMatrix3x3FloatData m_scale; // Scale+btMatrix3x3FloatData m_aqq; // Base scaling+btVector3FloatData m_com; // COM++btVector3FloatData *m_positions; // Reference positions+float *m_weights; // Weights+int m_numPositions;+int m_numWeigts;++int m_bvolume; // Is valid+int m_bframe; // Is frame+float m_restVolume; // Rest volume+int m_pad;+};++struct SoftBodyClusterData+{+btTransformFloatData m_framexform;+btMatrix3x3FloatData m_locii;+btMatrix3x3FloatData m_invwi;+btVector3FloatData m_com;+btVector3FloatData m_vimpulses[2];+btVector3FloatData m_dimpulses[2];+btVector3FloatData m_lv;+btVector3FloatData m_av;++btVector3FloatData *m_framerefs;+int *m_nodeIndices;+float *m_masses;++int m_numFrameRefs;+int m_numNodes;+int m_numMasses;++float m_idmass;+float m_imass;+int m_nvimpulses;+int m_ndimpulses;+float m_ndamping;+float m_ldamping;+float m_adamping;+float m_matching;+float m_maxSelfCollisionImpulse;+float m_selfCollisionImpulseFactor;+int m_containsAnchor;+int m_collide;+int m_clusterIndex;+};+++enum btSoftJointBodyType+{+BT_JOINT_SOFT_BODY_CLUSTER=1,+BT_JOINT_RIGID_BODY,+BT_JOINT_COLLISION_OBJECT+};++struct btSoftBodyJointData+{+void *m_bodyA;+void *m_bodyB;+btVector3FloatData m_refs[2];+float m_cfm;+float m_erp;+float m_split;+int m_delete;+btVector3FloatData m_relPosition[2];//linear+int m_bodyAtype;+int m_bodyBtype;+int m_jointType;+int m_pad;+};++///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64+struct btSoftBodyFloatData+{+btCollisionObjectFloatData m_collisionObjectData;++SoftBodyPoseData *m_pose;+SoftBodyMaterialData **m_materials;+SoftBodyNodeData *m_nodes;+SoftBodyLinkData *m_links;+SoftBodyFaceData *m_faces;+SoftBodyTetraData *m_tetrahedra;+SoftRigidAnchorData *m_anchors;+SoftBodyClusterData *m_clusters;+btSoftBodyJointData *m_joints;++int m_numMaterials;+int m_numNodes;+int m_numLinks;+int m_numFaces;+int m_numTetrahedra;+int m_numAnchors;+int m_numClusters;+int m_numJoints;+SoftBodyConfigData m_config;+};++#endif //BT_SOFTBODY_FLOAT_DATA+
bullet/BulletSoftBody/btSoftBodyHelpers.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2008 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2008 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,122 +22,122 @@ // Helpers // -/* fDrawFlags															*/ -struct	fDrawFlags { enum _ {-	Nodes		=	0x0001,-	Links		=	0x0002,-	Faces		=	0x0004,-	Tetras		=	0x0008,-	Normals		=	0x0010,-	Contacts	=	0x0020,-	Anchors		=	0x0040,-	Notes		=	0x0080,-	Clusters	=	0x0100,-	NodeTree	=	0x0200,-	FaceTree	=	0x0400,-	ClusterTree	=	0x0800,-	Joints		=	0x1000,-	/* presets	*/ -	Std			=	Links+Faces+Tetras+Anchors+Notes+Joints,-	StdTetra	=	Std-Faces+Tetras+/* fDrawFlags */+struct fDrawFlags { enum _ {+Nodes = 0x0001,+Links = 0x0002,+Faces = 0x0004,+Tetras = 0x0008,+Normals = 0x0010,+Contacts = 0x0020,+Anchors = 0x0040,+Notes = 0x0080,+Clusters = 0x0100,+NodeTree = 0x0200,+FaceTree = 0x0400,+ClusterTree = 0x0800,+Joints = 0x1000,+/* presets */+Std = Links+Faces+Tetras+Anchors+Notes+Joints,+StdTetra = Std-Faces+Tetras };}; -struct	btSoftBodyHelpers+struct btSoftBodyHelpers {-	/* Draw body															*/ -	static void				Draw(		btSoftBody* psb,-		btIDebugDraw* idraw,-		int drawflags=fDrawFlags::Std);-	/* Draw body infos														*/ -	static	void			DrawInfos(	btSoftBody* psb,-		btIDebugDraw* idraw,-		bool masses,-		bool areas,-		bool stress);-	/* Draw node tree														*/ -	static void				DrawNodeTree(	btSoftBody* psb,-		btIDebugDraw* idraw,-		int mindepth=0,-		int maxdepth=-1);-	/* Draw face tree														*/ -	static void				DrawFaceTree(	btSoftBody* psb,-		btIDebugDraw* idraw,-		int mindepth=0,-		int maxdepth=-1);-	/* Draw cluster tree													*/ -	static void				DrawClusterTree(btSoftBody* psb,-		btIDebugDraw* idraw,-		int mindepth=0,-		int maxdepth=-1);-	/* Draw rigid frame														*/ -	static	void			DrawFrame(		btSoftBody* psb,-		btIDebugDraw* idraw);-	/* Create a rope														*/ -	static	btSoftBody*		CreateRope( btSoftBodyWorldInfo& worldInfo,-		const btVector3& from,-		const btVector3& to,-		int res,-		int fixeds);-	/* Create a patch														*/ -	static	btSoftBody*		CreatePatch(btSoftBodyWorldInfo& worldInfo,-		const btVector3& corner00,-		const btVector3& corner10,-		const btVector3& corner01,-		const btVector3& corner11,-		int resx,-		int resy,-		int fixeds,-		bool gendiags);-	/* Create a patch with UV Texture Coordinates	*/ -	static	btSoftBody*		CreatePatchUV(btSoftBodyWorldInfo& worldInfo,-		const btVector3& corner00,-		const btVector3& corner10,-		const btVector3& corner01,-		const btVector3& corner11,-		int resx,-		int resy,-		int fixeds,-		bool gendiags,-		float* tex_coords=0);-	static	float	CalculateUV(int resx,int resy,int ix,int iy,int id);-	/* Create an ellipsoid													*/ -	static	btSoftBody*		CreateEllipsoid(btSoftBodyWorldInfo& worldInfo,-		const btVector3& center,-		const btVector3& radius,-		int res);	-	/* Create from trimesh													*/ -	static	btSoftBody*		CreateFromTriMesh(	btSoftBodyWorldInfo& worldInfo,-		const btScalar*	vertices,-		const int* triangles,-		int ntriangles,-		bool randomizeConstraints = true);-	/* Create from convex-hull												*/ -	static	btSoftBody*		CreateFromConvexHull(	btSoftBodyWorldInfo& worldInfo,-		const btVector3* vertices,-		int nvertices,-		bool randomizeConstraints = true);+/* Draw body */+static void Draw( btSoftBody* psb,+btIDebugDraw* idraw,+int drawflags=fDrawFlags::Std);+/* Draw body infos */+static void DrawInfos( btSoftBody* psb,+btIDebugDraw* idraw,+bool masses,+bool areas,+bool stress);+/* Draw node tree */+static void DrawNodeTree( btSoftBody* psb,+btIDebugDraw* idraw,+int mindepth=0,+int maxdepth=-1);+/* Draw face tree */+static void DrawFaceTree( btSoftBody* psb,+btIDebugDraw* idraw,+int mindepth=0,+int maxdepth=-1);+/* Draw cluster tree */+static void DrawClusterTree(btSoftBody* psb,+btIDebugDraw* idraw,+int mindepth=0,+int maxdepth=-1);+/* Draw rigid frame */+static void DrawFrame( btSoftBody* psb,+btIDebugDraw* idraw);+/* Create a rope */+static btSoftBody* CreateRope( btSoftBodyWorldInfo& worldInfo,+const btVector3& from,+const btVector3& to,+int res,+int fixeds);+/* Create a patch */+static btSoftBody* CreatePatch(btSoftBodyWorldInfo& worldInfo,+const btVector3& corner00,+const btVector3& corner10,+const btVector3& corner01,+const btVector3& corner11,+int resx,+int resy,+int fixeds,+bool gendiags);+/* Create a patch with UV Texture Coordinates */+static btSoftBody* CreatePatchUV(btSoftBodyWorldInfo& worldInfo,+const btVector3& corner00,+const btVector3& corner10,+const btVector3& corner01,+const btVector3& corner11,+int resx,+int resy,+int fixeds,+bool gendiags,+float* tex_coords=0);+static float CalculateUV(int resx,int resy,int ix,int iy,int id);+/* Create an ellipsoid */+static btSoftBody* CreateEllipsoid(btSoftBodyWorldInfo& worldInfo,+const btVector3& center,+const btVector3& radius,+int res);+/* Create from trimesh */+static btSoftBody* CreateFromTriMesh( btSoftBodyWorldInfo& worldInfo,+const btScalar* vertices,+const int* triangles,+int ntriangles,+bool randomizeConstraints = true);+/* Create from convex-hull */+static btSoftBody* CreateFromConvexHull( btSoftBodyWorldInfo& worldInfo,+const btVector3* vertices,+int nvertices,+bool randomizeConstraints = true);  -	/* Export TetGen compatible .smesh file									*/ -//	static void				ExportAsSMeshFile(	btSoftBody* psb,-//												const char* filename);	-	/* Create from TetGen .ele, .face, .node files							*/ -//	static btSoftBody*		CreateFromTetGenFile(	btSoftBodyWorldInfo& worldInfo,-//													const char* ele,-//													const char* face,-//													const char* node,-//													bool bfacelinks,-//													bool btetralinks,-//													bool bfacesfromtetras);-	/* Create from TetGen .ele, .face, .node data							*/ -	static btSoftBody*		CreateFromTetGenData(	btSoftBodyWorldInfo& worldInfo,-													const char* ele,-													const char* face,-													const char* node,-													bool bfacelinks,-													bool btetralinks,-													bool bfacesfromtetras);-	+/* Export TetGen compatible .smesh file */+// static void ExportAsSMeshFile( btSoftBody* psb,+// const char* filename);+/* Create from TetGen .ele, .face, .node files */+// static btSoftBody* CreateFromTetGenFile( btSoftBodyWorldInfo& worldInfo,+// const char* ele,+// const char* face,+// const char* node,+// bool bfacelinks,+// bool btetralinks,+// bool bfacesfromtetras);+/* Create from TetGen .ele, .face, .node data */+static btSoftBody* CreateFromTetGenData( btSoftBodyWorldInfo& worldInfo,+const char* ele,+const char* face,+const char* node,+bool bfacelinks,+bool btetralinks,+bool bfacesfromtetras);+ };  #endif //BT_SOFT_BODY_HELPERS_H
bullet/BulletSoftBody/btSoftBodyInternals.h view
@@ -1,916 +1,930 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose,-including commercial applications, and to alter it and redistribute it freely,-subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/-///btSoftBody implementation by Nathanael Presson--#ifndef _BT_SOFT_BODY_INTERNALS_H-#define _BT_SOFT_BODY_INTERNALS_H--#include "btSoftBody.h"---#include "LinearMath/btQuickprof.h"-#include "BulletCollision/BroadphaseCollision/btBroadphaseInterface.h"-#include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"-#include "BulletCollision/CollisionShapes/btConvexInternalShape.h"-#include "BulletCollision/NarrowPhaseCollision/btGjkEpa2.h"-#include <string.h> //for memset-//-// btSymMatrix-//-template <typename T>-struct btSymMatrix-{-	btSymMatrix() : dim(0)					{}-	btSymMatrix(int n,const T& init=T())	{ resize(n,init); }-	void					resize(int n,const T& init=T())			{ dim=n;store.resize((n*(n+1))/2,init); }-	int						index(int c,int r) const				{ if(c>r) btSwap(c,r);btAssert(r<dim);return((r*(r+1))/2+c); }-	T&						operator()(int c,int r)					{ return(store[index(c,r)]); }-	const T&				operator()(int c,int r) const			{ return(store[index(c,r)]); }-	btAlignedObjectArray<T>	store;-	int						dim;-};	--//-// btSoftBodyCollisionShape-//-class btSoftBodyCollisionShape : public btConcaveShape-{-public:-	btSoftBody*						m_body;--	btSoftBodyCollisionShape(btSoftBody* backptr)-	{-		m_shapeType = SOFTBODY_SHAPE_PROXYTYPE;-		m_body=backptr;-	}--	virtual ~btSoftBodyCollisionShape()-	{--	}--	void	processAllTriangles(btTriangleCallback* /*callback*/,const btVector3& /*aabbMin*/,const btVector3& /*aabbMax*/) const-	{-		//not yet-		btAssert(0);-	}--	///getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.-	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-	{-		/* t should be identity */ -		aabbMin=m_body->m_bounds[0];-		aabbMax=m_body->m_bounds[1];-	}---	virtual void	setLocalScaling(const btVector3& /*scaling*/)-	{		-		///na-	}-	virtual const btVector3& getLocalScaling() const-	{-		static const btVector3 dummy(1,1,1);-		return dummy;-	}-	virtual void	calculateLocalInertia(btScalar /*mass*/,btVector3& /*inertia*/) const-	{-		///not yet-		btAssert(0);-	}-	virtual const char*	getName()const-	{-		return "SoftBody";-	}--};--//-// btSoftClusterCollisionShape-//-class btSoftClusterCollisionShape : public btConvexInternalShape-{-public:-	const btSoftBody::Cluster*	m_cluster;--	btSoftClusterCollisionShape (const btSoftBody::Cluster* cluster) : m_cluster(cluster) { setMargin(0); }---	virtual btVector3	localGetSupportingVertex(const btVector3& vec) const-	{-		btSoftBody::Node* const *						n=&m_cluster->m_nodes[0];-		btScalar										d=btDot(vec,n[0]->m_x);-		int												j=0;-		for(int i=1,ni=m_cluster->m_nodes.size();i<ni;++i)-		{-			const btScalar	k=btDot(vec,n[i]->m_x);-			if(k>d) { d=k;j=i; }-		}-		return(n[j]->m_x);-	}-	virtual btVector3	localGetSupportingVertexWithoutMargin(const btVector3& vec)const-	{-		return(localGetSupportingVertex(vec));-	}-	//notice that the vectors should be unit length-	virtual void	batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const-	{}---	virtual void	calculateLocalInertia(btScalar mass,btVector3& inertia) const-	{}--	virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const-	{}--	virtual int	getShapeType() const { return SOFTBODY_SHAPE_PROXYTYPE; }--	//debugging-	virtual const char*	getName()const {return "SOFTCLUSTER";}--	virtual void	setMargin(btScalar margin)-	{-		btConvexInternalShape::setMargin(margin);-	}-	virtual btScalar	getMargin() const-	{-		return getMargin();-	}-};--//-// Inline's-//--//-template <typename T>-static inline void			ZeroInitialize(T& value)-{-	memset(&value,0,sizeof(T));-}-//-template <typename T>-static inline bool			CompLess(const T& a,const T& b)-{ return(a<b); }-//-template <typename T>-static inline bool			CompGreater(const T& a,const T& b)-{ return(a>b); }-//-template <typename T>-static inline T				Lerp(const T& a,const T& b,btScalar t)-{ return(a+(b-a)*t); }-//-template <typename T>-static inline T				InvLerp(const T& a,const T& b,btScalar t)-{ return((b+a*t-b*t)/(a*b)); }-//-static inline btMatrix3x3	Lerp(	const btMatrix3x3& a,-								 const btMatrix3x3& b,-								 btScalar t)-{-	btMatrix3x3	r;-	r[0]=Lerp(a[0],b[0],t);-	r[1]=Lerp(a[1],b[1],t);-	r[2]=Lerp(a[2],b[2],t);-	return(r);-}-//-static inline btVector3		Clamp(const btVector3& v,btScalar maxlength)-{-	const btScalar sql=v.length2();-	if(sql>(maxlength*maxlength))-		return((v*maxlength)/btSqrt(sql));-	else-		return(v);-}-//-template <typename T>-static inline T				Clamp(const T& x,const T& l,const T& h)-{ return(x<l?l:x>h?h:x); }-//-template <typename T>-static inline T				Sq(const T& x)-{ return(x*x); }-//-template <typename T>-static inline T				Cube(const T& x)-{ return(x*x*x); }-//-template <typename T>-static inline T				Sign(const T& x)-{ return((T)(x<0?-1:+1)); }-//-template <typename T>-static inline bool			SameSign(const T& x,const T& y)-{ return((x*y)>0); }-//-static inline btScalar		ClusterMetric(const btVector3& x,const btVector3& y)-{-	const btVector3	d=x-y;-	return(btFabs(d[0])+btFabs(d[1])+btFabs(d[2]));-}-//-static inline btMatrix3x3	ScaleAlongAxis(const btVector3& a,btScalar s)-{-	const btScalar	xx=a.x()*a.x();-	const btScalar	yy=a.y()*a.y();-	const btScalar	zz=a.z()*a.z();-	const btScalar	xy=a.x()*a.y();-	const btScalar	yz=a.y()*a.z();-	const btScalar	zx=a.z()*a.x();-	btMatrix3x3		m;-	m[0]=btVector3(1-xx+xx*s,xy*s-xy,zx*s-zx);-	m[1]=btVector3(xy*s-xy,1-yy+yy*s,yz*s-yz);-	m[2]=btVector3(zx*s-zx,yz*s-yz,1-zz+zz*s);-	return(m);-}-//-static inline btMatrix3x3	Cross(const btVector3& v)-{-	btMatrix3x3	m;-	m[0]=btVector3(0,-v.z(),+v.y());-	m[1]=btVector3(+v.z(),0,-v.x());-	m[2]=btVector3(-v.y(),+v.x(),0);-	return(m);-}-//-static inline btMatrix3x3	Diagonal(btScalar x)-{-	btMatrix3x3	m;-	m[0]=btVector3(x,0,0);-	m[1]=btVector3(0,x,0);-	m[2]=btVector3(0,0,x);-	return(m);-}-//-static inline btMatrix3x3	Add(const btMatrix3x3& a,-								const btMatrix3x3& b)-{-	btMatrix3x3	r;-	for(int i=0;i<3;++i) r[i]=a[i]+b[i];-	return(r);-}-//-static inline btMatrix3x3	Sub(const btMatrix3x3& a,-								const btMatrix3x3& b)-{-	btMatrix3x3	r;-	for(int i=0;i<3;++i) r[i]=a[i]-b[i];-	return(r);-}-//-static inline btMatrix3x3	Mul(const btMatrix3x3& a,-								btScalar b)-{-	btMatrix3x3	r;-	for(int i=0;i<3;++i) r[i]=a[i]*b;-	return(r);-}-//-static inline void			Orthogonalize(btMatrix3x3& m)-{-	m[2]=btCross(m[0],m[1]).normalized();-	m[1]=btCross(m[2],m[0]).normalized();-	m[0]=btCross(m[1],m[2]).normalized();-}-//-static inline btMatrix3x3	MassMatrix(btScalar im,const btMatrix3x3& iwi,const btVector3& r)-{-	const btMatrix3x3	cr=Cross(r);-	return(Sub(Diagonal(im),cr*iwi*cr));-}--//-static inline btMatrix3x3	ImpulseMatrix(	btScalar dt,-										  btScalar ima,-										  btScalar imb,-										  const btMatrix3x3& iwi,-										  const btVector3& r)-{-	return(Diagonal(1/dt)*Add(Diagonal(ima),MassMatrix(imb,iwi,r)).inverse());-}--//-static inline btMatrix3x3	ImpulseMatrix(	btScalar ima,const btMatrix3x3& iia,const btVector3& ra,-										  btScalar imb,const btMatrix3x3& iib,const btVector3& rb)	-{-	return(Add(MassMatrix(ima,iia,ra),MassMatrix(imb,iib,rb)).inverse());-}--//-static inline btMatrix3x3	AngularImpulseMatrix(	const btMatrix3x3& iia,-												 const btMatrix3x3& iib)-{-	return(Add(iia,iib).inverse());-}--//-static inline btVector3		ProjectOnAxis(	const btVector3& v,-										  const btVector3& a)-{-	return(a*btDot(v,a));-}-//-static inline btVector3		ProjectOnPlane(	const btVector3& v,-										   const btVector3& a)-{-	return(v-ProjectOnAxis(v,a));-}--//-static inline void			ProjectOrigin(	const btVector3& a,-										  const btVector3& b,-										  btVector3& prj,-										  btScalar& sqd)-{-	const btVector3	d=b-a;-	const btScalar	m2=d.length2();-	if(m2>SIMD_EPSILON)-	{	-		const btScalar	t=Clamp<btScalar>(-btDot(a,d)/m2,0,1);-		const btVector3	p=a+d*t;-		const btScalar	l2=p.length2();-		if(l2<sqd)-		{-			prj=p;-			sqd=l2;-		}-	}-}-//-static inline void			ProjectOrigin(	const btVector3& a,-										  const btVector3& b,-										  const btVector3& c,-										  btVector3& prj,-										  btScalar& sqd)-{-	const btVector3&	q=btCross(b-a,c-a);-	const btScalar		m2=q.length2();-	if(m2>SIMD_EPSILON)-	{-		const btVector3	n=q/btSqrt(m2);-		const btScalar	k=btDot(a,n);-		const btScalar	k2=k*k;-		if(k2<sqd)-		{-			const btVector3	p=n*k;-			if(	(btDot(btCross(a-p,b-p),q)>0)&&-				(btDot(btCross(b-p,c-p),q)>0)&&-				(btDot(btCross(c-p,a-p),q)>0))-			{			-				prj=p;-				sqd=k2;-			}-			else-			{-				ProjectOrigin(a,b,prj,sqd);-				ProjectOrigin(b,c,prj,sqd);-				ProjectOrigin(c,a,prj,sqd);-			}-		}-	}-}--//-template <typename T>-static inline T				BaryEval(		const T& a,-									 const T& b,-									 const T& c,-									 const btVector3& coord)-{-	return(a*coord.x()+b*coord.y()+c*coord.z());-}-//-static inline btVector3		BaryCoord(	const btVector3& a,-									  const btVector3& b,-									  const btVector3& c,-									  const btVector3& p)-{-	const btScalar	w[]={	btCross(a-p,b-p).length(),-		btCross(b-p,c-p).length(),-		btCross(c-p,a-p).length()};-	const btScalar	isum=1/(w[0]+w[1]+w[2]);-	return(btVector3(w[1]*isum,w[2]*isum,w[0]*isum));-}--//-static btScalar				ImplicitSolve(	btSoftBody::ImplicitFn* fn,-										  const btVector3& a,-										  const btVector3& b,-										  const btScalar accuracy,-										  const int maxiterations=256)-{-	btScalar	span[2]={0,1};-	btScalar	values[2]={fn->Eval(a),fn->Eval(b)};-	if(values[0]>values[1])-	{-		btSwap(span[0],span[1]);-		btSwap(values[0],values[1]);-	}-	if(values[0]>-accuracy) return(-1);-	if(values[1]<+accuracy) return(-1);-	for(int i=0;i<maxiterations;++i)-	{-		const btScalar	t=Lerp(span[0],span[1],values[0]/(values[0]-values[1]));-		const btScalar	v=fn->Eval(Lerp(a,b,t));-		if((t<=0)||(t>=1))		break;-		if(btFabs(v)<accuracy)	return(t);-		if(v<0)-		{ span[0]=t;values[0]=v; }-		else-		{ span[1]=t;values[1]=v; }-	}-	return(-1);-}--//-static inline btVector3		NormalizeAny(const btVector3& v)-{-	const btScalar l=v.length();-	if(l>SIMD_EPSILON)-		return(v/l);-	else-		return(btVector3(0,0,0));-}--//-static inline btDbvtVolume	VolumeOf(	const btSoftBody::Face& f,-									 btScalar margin)-{-	const btVector3*	pts[]={	&f.m_n[0]->m_x,-		&f.m_n[1]->m_x,-		&f.m_n[2]->m_x};-	btDbvtVolume		vol=btDbvtVolume::FromPoints(pts,3);-	vol.Expand(btVector3(margin,margin,margin));-	return(vol);-}--//-static inline btVector3			CenterOf(	const btSoftBody::Face& f)-{-	return((f.m_n[0]->m_x+f.m_n[1]->m_x+f.m_n[2]->m_x)/3);-}--//-static inline btScalar			AreaOf(		const btVector3& x0,-									   const btVector3& x1,-									   const btVector3& x2)-{-	const btVector3	a=x1-x0;-	const btVector3	b=x2-x0;-	const btVector3	cr=btCross(a,b);-	const btScalar	area=cr.length();-	return(area);-}--//-static inline btScalar		VolumeOf(	const btVector3& x0,-									 const btVector3& x1,-									 const btVector3& x2,-									 const btVector3& x3)-{-	const btVector3	a=x1-x0;-	const btVector3	b=x2-x0;-	const btVector3	c=x3-x0;-	return(btDot(a,btCross(b,c)));-}--//-static void					EvaluateMedium(	const btSoftBodyWorldInfo* wfi,-										   const btVector3& x,-										   btSoftBody::sMedium& medium)-{-	medium.m_velocity	=	btVector3(0,0,0);-	medium.m_pressure	=	0;-	medium.m_density	=	wfi->air_density;-	if(wfi->water_density>0)-	{-		const btScalar	depth=-(btDot(x,wfi->water_normal)+wfi->water_offset);-		if(depth>0)-		{-			medium.m_density	=	wfi->water_density;-			medium.m_pressure	=	depth*wfi->water_density*wfi->m_gravity.length();-		}-	}-}--//-static inline void			ApplyClampedForce(	btSoftBody::Node& n,-											  const btVector3& f,-											  btScalar dt)-{-	const btScalar	dtim=dt*n.m_im;-	if((f*dtim).length2()>n.m_v.length2())-	{/* Clamp	*/ -		n.m_f-=ProjectOnAxis(n.m_v,f.normalized())/dtim;						-	}-	else-	{/* Apply	*/ -		n.m_f+=f;-	}-}--//-static inline int		MatchEdge(	const btSoftBody::Node* a,-								  const btSoftBody::Node* b,-								  const btSoftBody::Node* ma,-								  const btSoftBody::Node* mb)-{-	if((a==ma)&&(b==mb)) return(0);-	if((a==mb)&&(b==ma)) return(1);-	return(-1);-}--//-// btEigen : Extract eigen system,-// straitforward implementation of http://math.fullerton.edu/mathews/n2003/JacobiMethodMod.html-// outputs are NOT sorted.-//-struct	btEigen-{-	static int			system(btMatrix3x3& a,btMatrix3x3* vectors,btVector3* values=0)-	{-		static const int		maxiterations=16;-		static const btScalar	accuracy=(btScalar)0.0001;-		btMatrix3x3&			v=*vectors;-		int						iterations=0;-		vectors->setIdentity();-		do	{-			int				p=0,q=1;-			if(btFabs(a[p][q])<btFabs(a[0][2])) { p=0;q=2; }-			if(btFabs(a[p][q])<btFabs(a[1][2])) { p=1;q=2; }-			if(btFabs(a[p][q])>accuracy)-			{-				const btScalar	w=(a[q][q]-a[p][p])/(2*a[p][q]);-				const btScalar	z=btFabs(w);-				const btScalar	t=w/(z*(btSqrt(1+w*w)+z));-				if(t==t)/* [WARNING] let hope that one does not get thrown aways by some compilers... */ -				{-					const btScalar	c=1/btSqrt(t*t+1);-					const btScalar	s=c*t;-					mulPQ(a,c,s,p,q);-					mulTPQ(a,c,s,p,q);-					mulPQ(v,c,s,p,q);-				} else break;-			} else break;-		} while((++iterations)<maxiterations);-		if(values)-		{-			*values=btVector3(a[0][0],a[1][1],a[2][2]);-		}-		return(iterations);-	}-private:-	static inline void	mulTPQ(btMatrix3x3& a,btScalar c,btScalar s,int p,int q)-	{-		const btScalar	m[2][3]={	{a[p][0],a[p][1],a[p][2]},-		{a[q][0],a[q][1],a[q][2]}};-		int i;--		for(i=0;i<3;++i) a[p][i]=c*m[0][i]-s*m[1][i];-		for(i=0;i<3;++i) a[q][i]=c*m[1][i]+s*m[0][i];-	}-	static inline void	mulPQ(btMatrix3x3& a,btScalar c,btScalar s,int p,int q)-	{-		const btScalar	m[2][3]={	{a[0][p],a[1][p],a[2][p]},-		{a[0][q],a[1][q],a[2][q]}};-		int i;--		for(i=0;i<3;++i) a[i][p]=c*m[0][i]-s*m[1][i];-		for(i=0;i<3;++i) a[i][q]=c*m[1][i]+s*m[0][i];-	}-};--//-// Polar decomposition,-// "Computing the Polar Decomposition with Applications", Nicholas J. Higham, 1986.-//-static inline int			PolarDecompose(	const btMatrix3x3& m,btMatrix3x3& q,btMatrix3x3& s)-{-	static const btScalar	half=(btScalar)0.5;-	static const btScalar	accuracy=(btScalar)0.0001;-	static const int		maxiterations=16;-	int						i=0;-	btScalar				det=0;-	q	=	Mul(m,1/btVector3(m[0][0],m[1][1],m[2][2]).length());-	det	=	q.determinant();-	if(!btFuzzyZero(det))-	{-		for(;i<maxiterations;++i)-		{-			q=Mul(Add(q,Mul(q.adjoint(),1/det).transpose()),half);-			const btScalar	ndet=q.determinant();-			if(Sq(ndet-det)>accuracy) det=ndet; else break;-		}-		/* Final orthogonalization	*/ -		Orthogonalize(q);-		/* Compute 'S'				*/ -		s=q.transpose()*m;-	}-	else-	{-		q.setIdentity();-		s.setIdentity();-	}-	return(i);-}--//-// btSoftColliders-//-struct btSoftColliders-{-	//-	// ClusterBase-	//-	struct	ClusterBase : btDbvt::ICollide-	{-		btScalar			erp;-		btScalar			idt;-		btScalar			m_margin;-		btScalar			friction;-		btScalar			threshold;-		ClusterBase()-		{-			erp			=(btScalar)1;-			idt			=0;-			m_margin		=0;-			friction	=0;-			threshold	=(btScalar)0;-		}-		bool				SolveContact(	const btGjkEpaSolver2::sResults& res,-			btSoftBody::Body ba,btSoftBody::Body bb,-			btSoftBody::CJoint& joint)-		{-			if(res.distance<m_margin)-			{-				btVector3 norm = res.normal;-				norm.normalize();//is it necessary?--				const btVector3		ra=res.witnesses[0]-ba.xform().getOrigin();-				const btVector3		rb=res.witnesses[1]-bb.xform().getOrigin();-				const btVector3		va=ba.velocity(ra);-				const btVector3		vb=bb.velocity(rb);-				const btVector3		vrel=va-vb;-				const btScalar		rvac=btDot(vrel,norm);-				 btScalar		depth=res.distance-m_margin;-				-//				printf("depth=%f\n",depth);-				const btVector3		iv=norm*rvac;-				const btVector3		fv=vrel-iv;-				joint.m_bodies[0]	=	ba;-				joint.m_bodies[1]	=	bb;-				joint.m_refs[0]		=	ra*ba.xform().getBasis();-				joint.m_refs[1]		=	rb*bb.xform().getBasis();-				joint.m_rpos[0]		=	ra;-				joint.m_rpos[1]		=	rb;-				joint.m_cfm			=	1;-				joint.m_erp			=	1;-				joint.m_life		=	0;-				joint.m_maxlife		=	0;-				joint.m_split		=	1;-				-				joint.m_drift		=	depth*norm;--				joint.m_normal		=	norm;-//				printf("normal=%f,%f,%f\n",res.normal.getX(),res.normal.getY(),res.normal.getZ());-				joint.m_delete		=	false;-				joint.m_friction	=	fv.length2()<(-rvac*friction)?1:friction;-				joint.m_massmatrix	=	ImpulseMatrix(	ba.invMass(),ba.invWorldInertia(),joint.m_rpos[0],-					bb.invMass(),bb.invWorldInertia(),joint.m_rpos[1]);--				return(true);-			}-			return(false);-		}-	};-	//-	// CollideCL_RS-	//-	struct	CollideCL_RS : ClusterBase-	{-		btSoftBody*		psb;-		-		btCollisionObject*	m_colObj;-		void		Process(const btDbvtNode* leaf)-		{-			btSoftBody::Cluster*		cluster=(btSoftBody::Cluster*)leaf->data;-			btSoftClusterCollisionShape	cshape(cluster);-			-			const btConvexShape*		rshape=(const btConvexShape*)m_colObj->getCollisionShape();--			///don't collide an anchored cluster with a static/kinematic object-			if(m_colObj->isStaticOrKinematicObject() && cluster->m_containsAnchor)-				return;--			btGjkEpaSolver2::sResults	res;		-			if(btGjkEpaSolver2::SignedDistance(	&cshape,btTransform::getIdentity(),-				rshape,m_colObj->getWorldTransform(),-				btVector3(1,0,0),res))-			{-				btSoftBody::CJoint	joint;-				if(SolveContact(res,cluster,m_colObj,joint))//prb,joint))-				{-					btSoftBody::CJoint*	pj=new(btAlignedAlloc(sizeof(btSoftBody::CJoint),16)) btSoftBody::CJoint();-					*pj=joint;psb->m_joints.push_back(pj);-					if(m_colObj->isStaticOrKinematicObject())-					{-						pj->m_erp	*=	psb->m_cfg.kSKHR_CL;-						pj->m_split	*=	psb->m_cfg.kSK_SPLT_CL;-					}-					else-					{-						pj->m_erp	*=	psb->m_cfg.kSRHR_CL;-						pj->m_split	*=	psb->m_cfg.kSR_SPLT_CL;-					}-				}-			}-		}-		void		Process(btSoftBody* ps,btCollisionObject* colOb)-		{-			psb			=	ps;-			m_colObj			=	colOb;-			idt			=	ps->m_sst.isdt;-			m_margin		=	m_colObj->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin();-			///Bullet rigid body uses multiply instead of minimum to determine combined friction. Some customization would be useful.-			friction	=	btMin(psb->m_cfg.kDF,m_colObj->getFriction());-			btVector3			mins;-			btVector3			maxs;--			ATTRIBUTE_ALIGNED16(btDbvtVolume)		volume;-			colOb->getCollisionShape()->getAabb(colOb->getWorldTransform(),mins,maxs);-			volume=btDbvtVolume::FromMM(mins,maxs);-			volume.Expand(btVector3(1,1,1)*m_margin);-			ps->m_cdbvt.collideTV(ps->m_cdbvt.m_root,volume,*this);-		}	-	};-	//-	// CollideCL_SS-	//-	struct	CollideCL_SS : ClusterBase-	{-		btSoftBody*	bodies[2];-		void		Process(const btDbvtNode* la,const btDbvtNode* lb)-		{-			btSoftBody::Cluster*		cla=(btSoftBody::Cluster*)la->data;-			btSoftBody::Cluster*		clb=(btSoftBody::Cluster*)lb->data;---			bool connected=false;-			if ((bodies[0]==bodies[1])&&(bodies[0]->m_clusterConnectivity.size()))-			{-				connected = bodies[0]->m_clusterConnectivity[cla->m_clusterIndex+bodies[0]->m_clusters.size()*clb->m_clusterIndex];-			}--			if (!connected)-			{-				btSoftClusterCollisionShape	csa(cla);-				btSoftClusterCollisionShape	csb(clb);-				btGjkEpaSolver2::sResults	res;		-				if(btGjkEpaSolver2::SignedDistance(	&csa,btTransform::getIdentity(),-					&csb,btTransform::getIdentity(),-					cla->m_com-clb->m_com,res))-				{-					btSoftBody::CJoint	joint;-					if(SolveContact(res,cla,clb,joint))-					{-						btSoftBody::CJoint*	pj=new(btAlignedAlloc(sizeof(btSoftBody::CJoint),16)) btSoftBody::CJoint();-						*pj=joint;bodies[0]->m_joints.push_back(pj);-						pj->m_erp	*=	btMax(bodies[0]->m_cfg.kSSHR_CL,bodies[1]->m_cfg.kSSHR_CL);-						pj->m_split	*=	(bodies[0]->m_cfg.kSS_SPLT_CL+bodies[1]->m_cfg.kSS_SPLT_CL)/2;-					}-				}-			} else-			{-				static int count=0;-				count++;-				//printf("count=%d\n",count);-				-			}-		}-		void		Process(btSoftBody* psa,btSoftBody* psb)-		{-			idt			=	psa->m_sst.isdt;-			//m_margin		=	(psa->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin())/2;-			m_margin		=	(psa->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin());-			friction	=	btMin(psa->m_cfg.kDF,psb->m_cfg.kDF);-			bodies[0]	=	psa;-			bodies[1]	=	psb;-			psa->m_cdbvt.collideTT(psa->m_cdbvt.m_root,psb->m_cdbvt.m_root,*this);-		}	-	};-	//-	// CollideSDF_RS-	//-	struct	CollideSDF_RS : btDbvt::ICollide-	{-		void		Process(const btDbvtNode* leaf)-		{-			btSoftBody::Node*	node=(btSoftBody::Node*)leaf->data;-			DoNode(*node);-		}-		void		DoNode(btSoftBody::Node& n) const-		{-			const btScalar			m=n.m_im>0?dynmargin:stamargin;-			btSoftBody::RContact	c;-			if(	(!n.m_battach)&&-				psb->checkContact(m_colObj1,n.m_x,m,c.m_cti))-			{-				const btScalar	ima=n.m_im;-				const btScalar	imb= m_rigidBody? m_rigidBody->getInvMass() : 0.f;-				const btScalar	ms=ima+imb;-				if(ms>0)-				{-					const btTransform&	wtr=m_rigidBody?m_rigidBody->getWorldTransform() : m_colObj1->getWorldTransform();-					static const btMatrix3x3	iwiStatic(0,0,0,0,0,0,0,0,0);-					const btMatrix3x3&	iwi=m_rigidBody?m_rigidBody->getInvInertiaTensorWorld() : iwiStatic;-					const btVector3		ra=n.m_x-wtr.getOrigin();-					const btVector3		va=m_rigidBody ? m_rigidBody->getVelocityInLocalPoint(ra)*psb->m_sst.sdt : btVector3(0,0,0);-					const btVector3		vb=n.m_x-n.m_q;	-					const btVector3		vr=vb-va;-					const btScalar		dn=btDot(vr,c.m_cti.m_normal);-					const btVector3		fv=vr-c.m_cti.m_normal*dn;-					const btScalar		fc=psb->m_cfg.kDF*m_colObj1->getFriction();-					c.m_node	=	&n;-					c.m_c0		=	ImpulseMatrix(psb->m_sst.sdt,ima,imb,iwi,ra);-					c.m_c1		=	ra;-					c.m_c2		=	ima*psb->m_sst.sdt;-					c.m_c3		=	fv.length2()<(btFabs(dn)*fc)?0:1-fc;-					c.m_c4		=	m_colObj1->isStaticOrKinematicObject()?psb->m_cfg.kKHR:psb->m_cfg.kCHR;-					psb->m_rcontacts.push_back(c);-					if (m_rigidBody)-						m_rigidBody->activate();-				}-			}-		}-		btSoftBody*		psb;-		btCollisionObject*	m_colObj1;-		btRigidBody*	m_rigidBody;-		btScalar		dynmargin;-		btScalar		stamargin;-	};-	//-	// CollideVF_SS-	//-	struct	CollideVF_SS : btDbvt::ICollide-	{-		void		Process(const btDbvtNode* lnode,-			const btDbvtNode* lface)-		{-			btSoftBody::Node*	node=(btSoftBody::Node*)lnode->data;-			btSoftBody::Face*	face=(btSoftBody::Face*)lface->data;-			btVector3			o=node->m_x;-			btVector3			p;-			btScalar			d=SIMD_INFINITY;-			ProjectOrigin(	face->m_n[0]->m_x-o,-				face->m_n[1]->m_x-o,-				face->m_n[2]->m_x-o,-				p,d);-			const btScalar	m=mrg+(o-node->m_q).length()*2;-			if(d<(m*m))-			{-				const btSoftBody::Node*	n[]={face->m_n[0],face->m_n[1],face->m_n[2]};-				const btVector3			w=BaryCoord(n[0]->m_x,n[1]->m_x,n[2]->m_x,p+o);-				const btScalar			ma=node->m_im;-				btScalar				mb=BaryEval(n[0]->m_im,n[1]->m_im,n[2]->m_im,w);-				if(	(n[0]->m_im<=0)||-					(n[1]->m_im<=0)||-					(n[2]->m_im<=0))-				{-					mb=0;-				}-				const btScalar	ms=ma+mb;-				if(ms>0)-				{-					btSoftBody::SContact	c;-					c.m_normal		=	p/-btSqrt(d);-					c.m_margin		=	m;-					c.m_node		=	node;-					c.m_face		=	face;-					c.m_weights		=	w;-					c.m_friction	=	btMax(psb[0]->m_cfg.kDF,psb[1]->m_cfg.kDF);-					c.m_cfm[0]		=	ma/ms*psb[0]->m_cfg.kSHR;-					c.m_cfm[1]		=	mb/ms*psb[1]->m_cfg.kSHR;-					psb[0]->m_scontacts.push_back(c);-				}-			}	-		}-		btSoftBody*		psb[2];-		btScalar		mrg;-	};+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+///btSoftBody implementation by Nathanael Presson++#ifndef _BT_SOFT_BODY_INTERNALS_H+#define _BT_SOFT_BODY_INTERNALS_H++#include "btSoftBody.h"+++#include "LinearMath/btQuickprof.h"+#include "BulletCollision/BroadphaseCollision/btBroadphaseInterface.h"+#include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"+#include "BulletCollision/CollisionShapes/btConvexInternalShape.h"+#include "BulletCollision/NarrowPhaseCollision/btGjkEpa2.h"+#include <string.h> //for memset+//+// btSymMatrix+//+template <typename T>+struct btSymMatrix+{+btSymMatrix() : dim(0) {}+btSymMatrix(int n,const T& init=T()) { resize(n,init); }+void resize(int n,const T& init=T()) { dim=n;store.resize((n*(n+1))/2,init); }+int index(int c,int r) const { if(c>r) btSwap(c,r);btAssert(r<dim);return((r*(r+1))/2+c); }+T& operator()(int c,int r) { return(store[index(c,r)]); }+const T& operator()(int c,int r) const { return(store[index(c,r)]); }+btAlignedObjectArray<T> store;+int dim;+};++//+// btSoftBodyCollisionShape+//+class btSoftBodyCollisionShape : public btConcaveShape+{ private:+public:+btSoftBody* m_body;++btSoftBodyCollisionShape(btSoftBody* backptr)+{+m_shapeType = SOFTBODY_SHAPE_PROXYTYPE;+m_body=backptr;+}++virtual ~btSoftBodyCollisionShape()+{++}++void processAllTriangles(btTriangleCallback* /*callback*/,const btVector3& /*aabbMin*/,const btVector3& /*aabbMax*/) const+{+//not yet+btAssert(0);+}++///getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.+virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{+/* t is usually identity, except when colliding against btCompoundShape. See Issue 512 */+const btVector3 mins=m_body->m_bounds[0];+const btVector3 maxs=m_body->m_bounds[1];+const btVector3 crns[]={t*btVector3(mins.x(),mins.y(),mins.z()),+t*btVector3(maxs.x(),mins.y(),mins.z()),+t*btVector3(maxs.x(),maxs.y(),mins.z()),+t*btVector3(mins.x(),maxs.y(),mins.z()),+t*btVector3(mins.x(),mins.y(),maxs.z()),+t*btVector3(maxs.x(),mins.y(),maxs.z()),+t*btVector3(maxs.x(),maxs.y(),maxs.z()),+t*btVector3(mins.x(),maxs.y(),maxs.z())};+aabbMin=aabbMax=crns[0];+for(int i=1;i<8;++i)+{+aabbMin.setMin(crns[i]);+aabbMax.setMax(crns[i]);+}+}+++virtual void setLocalScaling(const btVector3& /*scaling*/)+{+///na+}+virtual const btVector3& getLocalScaling() const+{+static const btVector3 dummy(1,1,1);+return dummy;+}+virtual void calculateLocalInertia(btScalar /*mass*/,btVector3& /*inertia*/) const+{+///not yet+btAssert(0);+}+virtual const char* getName()const+{+return "SoftBody";+}++};++//+// btSoftClusterCollisionShape+//+class btSoftClusterCollisionShape : public btConvexInternalShape+{ private:+public:+const btSoftBody::Cluster* m_cluster;++btSoftClusterCollisionShape (const btSoftBody::Cluster* cluster) : m_cluster(cluster) { setMargin(0); }+++virtual btVector3 localGetSupportingVertex(const btVector3& vec) const+{+btSoftBody::Node* const * n=&m_cluster->m_nodes[0];+btScalar d=btDot(vec,n[0]->m_x);+int j=0;+for(int i=1,ni=m_cluster->m_nodes.size();i<ni;++i)+{+const btScalar k=btDot(vec,n[i]->m_x);+if(k>d) { d=k;j=i; }+}+return(n[j]->m_x);+}+virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3& vec)const+{+return(localGetSupportingVertex(vec));+}+//notice that the vectors should be unit length+virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3* vectors,btVector3* supportVerticesOut,int numVectors) const+{}+++virtual void calculateLocalInertia(btScalar mass,btVector3& inertia) const+{}++virtual void getAabb(const btTransform& t,btVector3& aabbMin,btVector3& aabbMax) const+{}++virtual int getShapeType() const { return SOFTBODY_SHAPE_PROXYTYPE; }++//debugging+virtual const char* getName()const {return "SOFTCLUSTER";}++virtual void setMargin(btScalar margin)+{+btConvexInternalShape::setMargin(margin);+}+virtual btScalar getMargin() const+{+return getMargin();+}+};++//+// Inline's+//++//+template <typename T>+static inline void ZeroInitialize(T& value)+{+memset(&value,0,sizeof(T));+}+//+template <typename T>+static inline bool CompLess(const T& a,const T& b)+{ return(a<b); }+//+template <typename T>+static inline bool CompGreater(const T& a,const T& b)+{ return(a>b); }+//+template <typename T>+static inline T Lerp(const T& a,const T& b,btScalar t)+{ return(a+(b-a)*t); }+//+template <typename T>+static inline T InvLerp(const T& a,const T& b,btScalar t)+{ return((b+a*t-b*t)/(a*b)); }+//+static inline btMatrix3x3 Lerp( const btMatrix3x3& a,+const btMatrix3x3& b,+btScalar t)+{+btMatrix3x3 r;+r[0]=Lerp(a[0],b[0],t);+r[1]=Lerp(a[1],b[1],t);+r[2]=Lerp(a[2],b[2],t);+return(r);+}+//+static inline btVector3 Clamp(const btVector3& v,btScalar maxlength)+{+const btScalar sql=v.length2();+if(sql>(maxlength*maxlength))+return((v*maxlength)/btSqrt(sql));+else+return(v);+}+//+template <typename T>+static inline T Clamp(const T& x,const T& l,const T& h)+{ return(x<l?l:x>h?h:x); }+//+template <typename T>+static inline T Sq(const T& x)+{ return(x*x); }+//+template <typename T>+static inline T Cube(const T& x)+{ return(x*x*x); }+//+template <typename T>+static inline T Sign(const T& x)+{ return((T)(x<0?-1:+1)); }+//+template <typename T>+static inline bool SameSign(const T& x,const T& y)+{ return((x*y)>0); }+//+static inline btScalar ClusterMetric(const btVector3& x,const btVector3& y)+{+const btVector3 d=x-y;+return(btFabs(d[0])+btFabs(d[1])+btFabs(d[2]));+}+//+static inline btMatrix3x3 ScaleAlongAxis(const btVector3& a,btScalar s)+{+const btScalar xx=a.x()*a.x();+const btScalar yy=a.y()*a.y();+const btScalar zz=a.z()*a.z();+const btScalar xy=a.x()*a.y();+const btScalar yz=a.y()*a.z();+const btScalar zx=a.z()*a.x();+btMatrix3x3 m;+m[0]=btVector3(1-xx+xx*s,xy*s-xy,zx*s-zx);+m[1]=btVector3(xy*s-xy,1-yy+yy*s,yz*s-yz);+m[2]=btVector3(zx*s-zx,yz*s-yz,1-zz+zz*s);+return(m);+}+//+static inline btMatrix3x3 Cross(const btVector3& v)+{+btMatrix3x3 m;+m[0]=btVector3(0,-v.z(),+v.y());+m[1]=btVector3(+v.z(),0,-v.x());+m[2]=btVector3(-v.y(),+v.x(),0);+return(m);+}+//+static inline btMatrix3x3 Diagonal(btScalar x)+{+btMatrix3x3 m;+m[0]=btVector3(x,0,0);+m[1]=btVector3(0,x,0);+m[2]=btVector3(0,0,x);+return(m);+}+//+static inline btMatrix3x3 Add(const btMatrix3x3& a,+const btMatrix3x3& b)+{+btMatrix3x3 r;+for(int i=0;i<3;++i) r[i]=a[i]+b[i];+return(r);+}+//+static inline btMatrix3x3 Sub(const btMatrix3x3& a,+const btMatrix3x3& b)+{+btMatrix3x3 r;+for(int i=0;i<3;++i) r[i]=a[i]-b[i];+return(r);+}+//+static inline btMatrix3x3 Mul(const btMatrix3x3& a,+btScalar b)+{+btMatrix3x3 r;+for(int i=0;i<3;++i) r[i]=a[i]*b;+return(r);+}+//+static inline void Orthogonalize(btMatrix3x3& m)+{+m[2]=btCross(m[0],m[1]).normalized();+m[1]=btCross(m[2],m[0]).normalized();+m[0]=btCross(m[1],m[2]).normalized();+}+//+static inline btMatrix3x3 MassMatrix(btScalar im,const btMatrix3x3& iwi,const btVector3& r)+{+const btMatrix3x3 cr=Cross(r);+return(Sub(Diagonal(im),cr*iwi*cr));+}++//+static inline btMatrix3x3 ImpulseMatrix( btScalar dt,+btScalar ima,+btScalar imb,+const btMatrix3x3& iwi,+const btVector3& r)+{+return(Diagonal(1/dt)*Add(Diagonal(ima),MassMatrix(imb,iwi,r)).inverse());+}++//+static inline btMatrix3x3 ImpulseMatrix( btScalar ima,const btMatrix3x3& iia,const btVector3& ra,+btScalar imb,const btMatrix3x3& iib,const btVector3& rb)+{+return(Add(MassMatrix(ima,iia,ra),MassMatrix(imb,iib,rb)).inverse());+}++//+static inline btMatrix3x3 AngularImpulseMatrix( const btMatrix3x3& iia,+const btMatrix3x3& iib)+{+return(Add(iia,iib).inverse());+}++//+static inline btVector3 ProjectOnAxis( const btVector3& v,+const btVector3& a)+{+return(a*btDot(v,a));+}+//+static inline btVector3 ProjectOnPlane( const btVector3& v,+const btVector3& a)+{+return(v-ProjectOnAxis(v,a));+}++//+static inline void ProjectOrigin( const btVector3& a,+const btVector3& b,+btVector3& prj,+btScalar& sqd)+{+const btVector3 d=b-a;+const btScalar m2=d.length2();+if(m2>SIMD_EPSILON)+{+const btScalar t=Clamp<btScalar>(-btDot(a,d)/m2,0,1);+const btVector3 p=a+d*t;+const btScalar l2=p.length2();+if(l2<sqd)+{+prj=p;+sqd=l2;+}+}+}+//+static inline void ProjectOrigin( const btVector3& a,+const btVector3& b,+const btVector3& c,+btVector3& prj,+btScalar& sqd)+{+const btVector3& q=btCross(b-a,c-a);+const btScalar m2=q.length2();+if(m2>SIMD_EPSILON)+{+const btVector3 n=q/btSqrt(m2);+const btScalar k=btDot(a,n);+const btScalar k2=k*k;+if(k2<sqd)+{+const btVector3 p=n*k;+if( (btDot(btCross(a-p,b-p),q)>0)&&+(btDot(btCross(b-p,c-p),q)>0)&&+(btDot(btCross(c-p,a-p),q)>0))+{+prj=p;+sqd=k2;+}+else+{+ProjectOrigin(a,b,prj,sqd);+ProjectOrigin(b,c,prj,sqd);+ProjectOrigin(c,a,prj,sqd);+}+}+}+}++//+template <typename T>+static inline T BaryEval( const T& a,+const T& b,+const T& c,+const btVector3& coord)+{+return(a*coord.x()+b*coord.y()+c*coord.z());+}+//+static inline btVector3 BaryCoord( const btVector3& a,+const btVector3& b,+const btVector3& c,+const btVector3& p)+{+const btScalar w[]={ btCross(a-p,b-p).length(),+btCross(b-p,c-p).length(),+btCross(c-p,a-p).length()};+const btScalar isum=1/(w[0]+w[1]+w[2]);+return(btVector3(w[1]*isum,w[2]*isum,w[0]*isum));+}++//+static btScalar ImplicitSolve( btSoftBody::ImplicitFn* fn,+const btVector3& a,+const btVector3& b,+const btScalar accuracy,+const int maxiterations=256)+{+btScalar span[2]={0,1};+btScalar values[2]={fn->Eval(a),fn->Eval(b)};+if(values[0]>values[1])+{+btSwap(span[0],span[1]);+btSwap(values[0],values[1]);+}+if(values[0]>-accuracy) return(-1);+if(values[1]<+accuracy) return(-1);+for(int i=0;i<maxiterations;++i)+{+const btScalar t=Lerp(span[0],span[1],values[0]/(values[0]-values[1]));+const btScalar v=fn->Eval(Lerp(a,b,t));+if((t<=0)||(t>=1)) break;+if(btFabs(v)<accuracy) return(t);+if(v<0)+{ span[0]=t;values[0]=v; }+else+{ span[1]=t;values[1]=v; }+}+return(-1);+}++//+static inline btVector3 NormalizeAny(const btVector3& v)+{+const btScalar l=v.length();+if(l>SIMD_EPSILON)+return(v/l);+else+return(btVector3(0,0,0));+}++//+static inline btDbvtVolume VolumeOf( const btSoftBody::Face& f,+btScalar margin)+{+const btVector3* pts[]={ &f.m_n[0]->m_x,+&f.m_n[1]->m_x,+&f.m_n[2]->m_x};+btDbvtVolume vol=btDbvtVolume::FromPoints(pts,3);+vol.Expand(btVector3(margin,margin,margin));+return(vol);+}++//+static inline btVector3 CenterOf( const btSoftBody::Face& f)+{+return((f.m_n[0]->m_x+f.m_n[1]->m_x+f.m_n[2]->m_x)/3);+}++//+static inline btScalar AreaOf( const btVector3& x0,+const btVector3& x1,+const btVector3& x2)+{+const btVector3 a=x1-x0;+const btVector3 b=x2-x0;+const btVector3 cr=btCross(a,b);+const btScalar area=cr.length();+return(area);+}++//+static inline btScalar VolumeOf( const btVector3& x0,+const btVector3& x1,+const btVector3& x2,+const btVector3& x3)+{+const btVector3 a=x1-x0;+const btVector3 b=x2-x0;+const btVector3 c=x3-x0;+return(btDot(a,btCross(b,c)));+}++//+static void EvaluateMedium( const btSoftBodyWorldInfo* wfi,+const btVector3& x,+btSoftBody::sMedium& medium)+{+medium.m_velocity = btVector3(0,0,0);+medium.m_pressure = 0;+medium.m_density = wfi->air_density;+if(wfi->water_density>0)+{+const btScalar depth=-(btDot(x,wfi->water_normal)+wfi->water_offset);+if(depth>0)+{+medium.m_density = wfi->water_density;+medium.m_pressure = depth*wfi->water_density*wfi->m_gravity.length();+}+}+}++//+static inline void ApplyClampedForce( btSoftBody::Node& n,+const btVector3& f,+btScalar dt)+{+const btScalar dtim=dt*n.m_im;+if((f*dtim).length2()>n.m_v.length2())+{/* Clamp */+n.m_f-=ProjectOnAxis(n.m_v,f.normalized())/dtim;+}+else+{/* Apply */+n.m_f+=f;+}+}++//+static inline int MatchEdge( const btSoftBody::Node* a,+const btSoftBody::Node* b,+const btSoftBody::Node* ma,+const btSoftBody::Node* mb)+{+if((a==ma)&&(b==mb)) return(0);+if((a==mb)&&(b==ma)) return(1);+return(-1);+}++//+// btEigen : Extract eigen system,+// straitforward implementation of http://math.fullerton.edu/mathews/n2003/JacobiMethodMod.html+// outputs are NOT sorted.+//+struct btEigen+{+static int system(btMatrix3x3& a,btMatrix3x3* vectors,btVector3* values=0)+{+static const int maxiterations=16;+static const btScalar accuracy=(btScalar)0.0001;+btMatrix3x3& v=*vectors;+int iterations=0;+vectors->setIdentity();+do {+int p=0,q=1;+if(btFabs(a[p][q])<btFabs(a[0][2])) { p=0;q=2; }+if(btFabs(a[p][q])<btFabs(a[1][2])) { p=1;q=2; }+if(btFabs(a[p][q])>accuracy)+{+const btScalar w=(a[q][q]-a[p][p])/(2*a[p][q]);+const btScalar z=btFabs(w);+const btScalar t=w/(z*(btSqrt(1+w*w)+z));+if(t==t)/* [WARNING] let hope that one does not get thrown aways by some compilers... */+{+const btScalar c=1/btSqrt(t*t+1);+const btScalar s=c*t;+mulPQ(a,c,s,p,q);+mulTPQ(a,c,s,p,q);+mulPQ(v,c,s,p,q);+} else break;+} else break;+} while((++iterations)<maxiterations);+if(values)+{+*values=btVector3(a[0][0],a[1][1],a[2][2]);+}+return(iterations);+}+private:+static inline void mulTPQ(btMatrix3x3& a,btScalar c,btScalar s,int p,int q)+{+const btScalar m[2][3]={ {a[p][0],a[p][1],a[p][2]},+{a[q][0],a[q][1],a[q][2]}};+int i;++for(i=0;i<3;++i) a[p][i]=c*m[0][i]-s*m[1][i];+for(i=0;i<3;++i) a[q][i]=c*m[1][i]+s*m[0][i];+}+static inline void mulPQ(btMatrix3x3& a,btScalar c,btScalar s,int p,int q)+{+const btScalar m[2][3]={ {a[0][p],a[1][p],a[2][p]},+{a[0][q],a[1][q],a[2][q]}};+int i;++for(i=0;i<3;++i) a[i][p]=c*m[0][i]-s*m[1][i];+for(i=0;i<3;++i) a[i][q]=c*m[1][i]+s*m[0][i];+}+};++//+// Polar decomposition,+// "Computing the Polar Decomposition with Applications", Nicholas J. Higham, 1986.+//+static inline int PolarDecompose( const btMatrix3x3& m,btMatrix3x3& q,btMatrix3x3& s)+{+static const btScalar half=(btScalar)0.5;+static const btScalar accuracy=(btScalar)0.0001;+static const int maxiterations=16;+int i=0;+btScalar det=0;+q = Mul(m,1/btVector3(m[0][0],m[1][1],m[2][2]).length());+det = q.determinant();+if(!btFuzzyZero(det))+{+for(;i<maxiterations;++i)+{+q=Mul(Add(q,Mul(q.adjoint(),1/det).transpose()),half);+const btScalar ndet=q.determinant();+if(Sq(ndet-det)>accuracy) det=ndet; else break;+}+/* Final orthogonalization */+Orthogonalize(q);+/* Compute 'S' */+s=q.transpose()*m;+}+else+{+q.setIdentity();+s.setIdentity();+}+return(i);+}++//+// btSoftColliders+//+struct btSoftColliders+{+//+// ClusterBase+//+struct ClusterBase : btDbvt::ICollide+{+btScalar erp;+btScalar idt;+btScalar m_margin;+btScalar friction;+btScalar threshold;+ClusterBase()+{+erp =(btScalar)1;+idt =0;+m_margin =0;+friction =0;+threshold =(btScalar)0;+}+bool SolveContact( const btGjkEpaSolver2::sResults& res,+btSoftBody::Body ba,btSoftBody::Body bb,+btSoftBody::CJoint& joint)+{+if(res.distance<m_margin)+{+btVector3 norm = res.normal;+norm.normalize();//is it necessary?++const btVector3 ra=res.witnesses[0]-ba.xform().getOrigin();+const btVector3 rb=res.witnesses[1]-bb.xform().getOrigin();+const btVector3 va=ba.velocity(ra);+const btVector3 vb=bb.velocity(rb);+const btVector3 vrel=va-vb;+const btScalar rvac=btDot(vrel,norm);+btScalar depth=res.distance-m_margin;++// printf("depth=%f\n",depth);+const btVector3 iv=norm*rvac;+const btVector3 fv=vrel-iv;+joint.m_bodies[0] = ba;+joint.m_bodies[1] = bb;+joint.m_refs[0] = ra*ba.xform().getBasis();+joint.m_refs[1] = rb*bb.xform().getBasis();+joint.m_rpos[0] = ra;+joint.m_rpos[1] = rb;+joint.m_cfm = 1;+joint.m_erp = 1;+joint.m_life = 0;+joint.m_maxlife = 0;+joint.m_split = 1;++joint.m_drift = depth*norm;++joint.m_normal = norm;+// printf("normal=%f,%f,%f\n",res.normal.getX(),res.normal.getY(),res.normal.getZ());+joint.m_delete = false;+joint.m_friction = fv.length2()<(-rvac*friction)?1:friction;+joint.m_massmatrix = ImpulseMatrix( ba.invMass(),ba.invWorldInertia(),joint.m_rpos[0],+bb.invMass(),bb.invWorldInertia(),joint.m_rpos[1]);++return(true);+}+return(false);+}+};+//+// CollideCL_RS+//+struct CollideCL_RS : ClusterBase+{+btSoftBody* psb;++btCollisionObject* m_colObj;+void Process(const btDbvtNode* leaf)+{+btSoftBody::Cluster* cluster=(btSoftBody::Cluster*)leaf->data;+btSoftClusterCollisionShape cshape(cluster);++const btConvexShape* rshape=(const btConvexShape*)m_colObj->getCollisionShape();++///don't collide an anchored cluster with a static/kinematic object+if(m_colObj->isStaticOrKinematicObject() && cluster->m_containsAnchor)+return;++btGjkEpaSolver2::sResults res;+if(btGjkEpaSolver2::SignedDistance( &cshape,btTransform::getIdentity(),+rshape,m_colObj->getWorldTransform(),+btVector3(1,0,0),res))+{+btSoftBody::CJoint joint;+if(SolveContact(res,cluster,m_colObj,joint))//prb,joint))+{+btSoftBody::CJoint* pj=new(btAlignedAlloc(sizeof(btSoftBody::CJoint),16)) btSoftBody::CJoint();+*pj=joint;psb->m_joints.push_back(pj);+if(m_colObj->isStaticOrKinematicObject())+{+pj->m_erp *= psb->m_cfg.kSKHR_CL;+pj->m_split *= psb->m_cfg.kSK_SPLT_CL;+}+else+{+pj->m_erp *= psb->m_cfg.kSRHR_CL;+pj->m_split *= psb->m_cfg.kSR_SPLT_CL;+}+}+}+}+void Process(btSoftBody* ps,btCollisionObject* colOb)+{+psb = ps;+m_colObj = colOb;+idt = ps->m_sst.isdt;+m_margin = m_colObj->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin();+///Bullet rigid body uses multiply instead of minimum to determine combined friction. Some customization would be useful.+friction = btMin(psb->m_cfg.kDF,m_colObj->getFriction());+btVector3 mins;+btVector3 maxs;++ATTRIBUTE_ALIGNED16(btDbvtVolume) volume;+colOb->getCollisionShape()->getAabb(colOb->getWorldTransform(),mins,maxs);+volume=btDbvtVolume::FromMM(mins,maxs);+volume.Expand(btVector3(1,1,1)*m_margin);+ps->m_cdbvt.collideTV(ps->m_cdbvt.m_root,volume,*this);+}+};+//+// CollideCL_SS+//+struct CollideCL_SS : ClusterBase+{+btSoftBody* bodies[2];+void Process(const btDbvtNode* la,const btDbvtNode* lb)+{+btSoftBody::Cluster* cla=(btSoftBody::Cluster*)la->data;+btSoftBody::Cluster* clb=(btSoftBody::Cluster*)lb->data;+++bool connected=false;+if ((bodies[0]==bodies[1])&&(bodies[0]->m_clusterConnectivity.size()))+{+connected = bodies[0]->m_clusterConnectivity[cla->m_clusterIndex+bodies[0]->m_clusters.size()*clb->m_clusterIndex];+}++if (!connected)+{+btSoftClusterCollisionShape csa(cla);+btSoftClusterCollisionShape csb(clb);+btGjkEpaSolver2::sResults res;+if(btGjkEpaSolver2::SignedDistance( &csa,btTransform::getIdentity(),+&csb,btTransform::getIdentity(),+cla->m_com-clb->m_com,res))+{+btSoftBody::CJoint joint;+if(SolveContact(res,cla,clb,joint))+{+btSoftBody::CJoint* pj=new(btAlignedAlloc(sizeof(btSoftBody::CJoint),16)) btSoftBody::CJoint();+*pj=joint;bodies[0]->m_joints.push_back(pj);+pj->m_erp *= btMax(bodies[0]->m_cfg.kSSHR_CL,bodies[1]->m_cfg.kSSHR_CL);+pj->m_split *= (bodies[0]->m_cfg.kSS_SPLT_CL+bodies[1]->m_cfg.kSS_SPLT_CL)/2;+}+}+} else+{+static int count=0;+count++;+//printf("count=%d\n",count);++}+}+void Process(btSoftBody* psa,btSoftBody* psb)+{+idt = psa->m_sst.isdt;+//m_margin = (psa->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin())/2;+m_margin = (psa->getCollisionShape()->getMargin()+psb->getCollisionShape()->getMargin());+friction = btMin(psa->m_cfg.kDF,psb->m_cfg.kDF);+bodies[0] = psa;+bodies[1] = psb;+psa->m_cdbvt.collideTT(psa->m_cdbvt.m_root,psb->m_cdbvt.m_root,*this);+}+};+//+// CollideSDF_RS+//+struct CollideSDF_RS : btDbvt::ICollide+{+void Process(const btDbvtNode* leaf)+{+btSoftBody::Node* node=(btSoftBody::Node*)leaf->data;+DoNode(*node);+}+void DoNode(btSoftBody::Node& n) const+{+const btScalar m=n.m_im>0?dynmargin:stamargin;+btSoftBody::RContact c;+if( (!n.m_battach)&&+psb->checkContact(m_colObj1,n.m_x,m,c.m_cti))+{+const btScalar ima=n.m_im;+const btScalar imb= m_rigidBody? m_rigidBody->getInvMass() : 0.f;+const btScalar ms=ima+imb;+if(ms>0)+{+const btTransform& wtr=m_rigidBody?m_rigidBody->getWorldTransform() : m_colObj1->getWorldTransform();+static const btMatrix3x3 iwiStatic(0,0,0,0,0,0,0,0,0);+const btMatrix3x3& iwi=m_rigidBody?m_rigidBody->getInvInertiaTensorWorld() : iwiStatic;+const btVector3 ra=n.m_x-wtr.getOrigin();+const btVector3 va=m_rigidBody ? m_rigidBody->getVelocityInLocalPoint(ra)*psb->m_sst.sdt : btVector3(0,0,0);+const btVector3 vb=n.m_x-n.m_q;+const btVector3 vr=vb-va;+const btScalar dn=btDot(vr,c.m_cti.m_normal);+const btVector3 fv=vr-c.m_cti.m_normal*dn;+const btScalar fc=psb->m_cfg.kDF*m_colObj1->getFriction();+c.m_node = &n;+c.m_c0 = ImpulseMatrix(psb->m_sst.sdt,ima,imb,iwi,ra);+c.m_c1 = ra;+c.m_c2 = ima*psb->m_sst.sdt;+c.m_c3 = fv.length2()<(btFabs(dn)*fc)?0:1-fc;+c.m_c4 = m_colObj1->isStaticOrKinematicObject()?psb->m_cfg.kKHR:psb->m_cfg.kCHR;+psb->m_rcontacts.push_back(c);+if (m_rigidBody)+m_rigidBody->activate();+}+}+}+btSoftBody* psb;+btCollisionObject* m_colObj1;+btRigidBody* m_rigidBody;+btScalar dynmargin;+btScalar stamargin;+};+//+// CollideVF_SS+//+struct CollideVF_SS : btDbvt::ICollide+{+void Process(const btDbvtNode* lnode,+const btDbvtNode* lface)+{+btSoftBody::Node* node=(btSoftBody::Node*)lnode->data;+btSoftBody::Face* face=(btSoftBody::Face*)lface->data;+btVector3 o=node->m_x;+btVector3 p;+btScalar d=SIMD_INFINITY;+ProjectOrigin( face->m_n[0]->m_x-o,+face->m_n[1]->m_x-o,+face->m_n[2]->m_x-o,+p,d);+const btScalar m=mrg+(o-node->m_q).length()*2;+if(d<(m*m))+{+const btSoftBody::Node* n[]={face->m_n[0],face->m_n[1],face->m_n[2]};+const btVector3 w=BaryCoord(n[0]->m_x,n[1]->m_x,n[2]->m_x,p+o);+const btScalar ma=node->m_im;+btScalar mb=BaryEval(n[0]->m_im,n[1]->m_im,n[2]->m_im,w);+if( (n[0]->m_im<=0)||+(n[1]->m_im<=0)||+(n[2]->m_im<=0))+{+mb=0;+}+const btScalar ms=ma+mb;+if(ms>0)+{+btSoftBody::SContact c;+c.m_normal = p/-btSqrt(d);+c.m_margin = m;+c.m_node = node;+c.m_face = face;+c.m_weights = w;+c.m_friction = btMax(psb[0]->m_cfg.kDF,psb[1]->m_cfg.kDF);+c.m_cfm[0] = ma/ms*psb[0]->m_cfg.kSHR;+c.m_cfm[1] = mb/ms*psb[1]->m_cfg.kSHR;+psb[0]->m_scontacts.push_back(c);+}+}+}+btSoftBody* psb[2];+btScalar mrg;+}; };  #endif //_BT_SOFT_BODY_INTERNALS_H
bullet/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,24 +23,24 @@   ///btSoftBodyRigidBodyCollisionConfiguration add softbody interaction on top of btDefaultCollisionConfiguration-class	btSoftBodyRigidBodyCollisionConfiguration : public btDefaultCollisionConfiguration-{+class btSoftBodyRigidBodyCollisionConfiguration : public btDefaultCollisionConfiguration+{ private: -	//default CreationFunctions, filling the m_doubleDispatch table-	btCollisionAlgorithmCreateFunc*	m_softSoftCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_softRigidConvexCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_swappedSoftRigidConvexCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_softRigidConcaveCreateFunc;-	btCollisionAlgorithmCreateFunc*	m_swappedSoftRigidConcaveCreateFunc;+//default CreationFunctions, filling the m_doubleDispatch table+btCollisionAlgorithmCreateFunc* m_softSoftCreateFunc;+btCollisionAlgorithmCreateFunc* m_softRigidConvexCreateFunc;+btCollisionAlgorithmCreateFunc* m_swappedSoftRigidConvexCreateFunc;+btCollisionAlgorithmCreateFunc* m_softRigidConcaveCreateFunc;+btCollisionAlgorithmCreateFunc* m_swappedSoftRigidConcaveCreateFunc;  public: -	btSoftBodyRigidBodyCollisionConfiguration(const btDefaultCollisionConstructionInfo& constructionInfo = btDefaultCollisionConstructionInfo());+btSoftBodyRigidBodyCollisionConfiguration(const btDefaultCollisionConstructionInfo& constructionInfo = btDefaultCollisionConstructionInfo()); -	virtual ~btSoftBodyRigidBodyCollisionConfiguration();+virtual ~btSoftBodyRigidBodyCollisionConfiguration(); -	///creation of soft-soft and soft-rigid, and otherwise fallback to base class implementation-	virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1);+///creation of soft-soft and soft-rigid, and otherwise fallback to base class implementation+virtual btCollisionAlgorithmCreateFunc* getCollisionAlgorithmCreateFunc(int proxyType0,int proxyType1);  }; 
bullet/BulletSoftBody/btSoftBodySolverVertexBuffer.h view
@@ -1,165 +1,165 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H
-#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H
-
-
-class btVertexBufferDescriptor
-{
-public:
-	enum BufferTypes
-	{
-		CPU_BUFFER,
-		DX11_BUFFER,
-		OPENGL_BUFFER
-	};
-
-protected:	
-
-	bool m_hasVertexPositions;
-	bool m_hasNormals;
-
-	int m_vertexOffset;
-	int m_vertexStride;
-
-	int m_normalOffset;
-	int m_normalStride;
-
-public:
-	btVertexBufferDescriptor()
-	{
-		m_hasVertexPositions = false;
-		m_hasNormals = false;
-		m_vertexOffset = 0;
-		m_vertexStride = 0;
-		m_normalOffset = 0;
-		m_normalStride = 0;
-	}
-
-	virtual ~btVertexBufferDescriptor()
-	{
-
-	}
-
-	virtual bool hasVertexPositions() const
-	{
-		return m_hasVertexPositions;
-	}
-
-	virtual bool hasNormals() const
-	{
-		return m_hasNormals;
-	}
-
-	/**
-	 * Return the type of the vertex buffer descriptor.
-	 */
-	virtual BufferTypes getBufferType() const = 0;
-
-	/**
-	 * Return the vertex offset in floats from the base pointer.
-	 */
-	virtual int getVertexOffset() const
-	{
-		return m_vertexOffset;
-	}
-
-	/**
-	 * Return the vertex stride in number of floats between vertices.
-	 */
-	virtual int getVertexStride() const
-	{
-		return m_vertexStride;
-	}
-
-	/**
-	 * Return the vertex offset in floats from the base pointer.
-	 */
-	virtual int getNormalOffset() const
-	{
-		return m_normalOffset;
-	}
-
-	/**
-	 * Return the vertex stride in number of floats between vertices.
-	 */
-	virtual int getNormalStride() const
-	{
-		return m_normalStride;
-	}
-};
-
-
-class btCPUVertexBufferDescriptor : public btVertexBufferDescriptor
-{
-protected:
-	float *m_basePointer;
-
-public:
-	/**
-	 * vertexBasePointer is pointer to beginning of the buffer.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 */
-	btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride )
-	{
-		m_basePointer = basePointer;
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-		m_hasVertexPositions = true;
-	}
-
-	/**
-	 * vertexBasePointer is pointer to beginning of the buffer.
-	 * vertexOffset is the offset in floats to the first vertex.
-	 * vertexStride is the stride in floats between vertices.
-	 */
-	btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride, int normalOffset, int normalStride )
-	{
-		m_basePointer = basePointer;
-
-		m_vertexOffset = vertexOffset;
-		m_vertexStride = vertexStride;
-		m_hasVertexPositions = true;
-
-		m_normalOffset = normalOffset;
-		m_normalStride = normalStride;
-		m_hasNormals = true;
-	}
-
-	virtual ~btCPUVertexBufferDescriptor()
-	{
-
-	}
-
-	/**
-	 * Return the type of the vertex buffer descriptor.
-	 */
-	virtual BufferTypes getBufferType() const
-	{
-		return CPU_BUFFER;
-	}
-
-	/**
-	 * Return the base pointer in memory to the first vertex.
-	 */
-	virtual float *getBasePointer() const
-	{
-		return m_basePointer;
-	}
-};
-
-#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H+#define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H+++class btVertexBufferDescriptor+{ private:+public:+enum BufferTypes+{+CPU_BUFFER,+DX11_BUFFER,+OPENGL_BUFFER+};++protected:++bool m_hasVertexPositions;+bool m_hasNormals;++int m_vertexOffset;+int m_vertexStride;++int m_normalOffset;+int m_normalStride;++public:+btVertexBufferDescriptor()+{+m_hasVertexPositions = false;+m_hasNormals = false;+m_vertexOffset = 0;+m_vertexStride = 0;+m_normalOffset = 0;+m_normalStride = 0;+}++virtual ~btVertexBufferDescriptor()+{++}++virtual bool hasVertexPositions() const+{+return m_hasVertexPositions;+}++virtual bool hasNormals() const+{+return m_hasNormals;+}++/**+* Return the type of the vertex buffer descriptor.+*/+virtual BufferTypes getBufferType() const = 0;++/**+* Return the vertex offset in floats from the base pointer.+*/+virtual int getVertexOffset() const+{+return m_vertexOffset;+}++/**+* Return the vertex stride in number of floats between vertices.+*/+virtual int getVertexStride() const+{+return m_vertexStride;+}++/**+* Return the vertex offset in floats from the base pointer.+*/+virtual int getNormalOffset() const+{+return m_normalOffset;+}++/**+* Return the vertex stride in number of floats between vertices.+*/+virtual int getNormalStride() const+{+return m_normalStride;+}+};+++class btCPUVertexBufferDescriptor : public btVertexBufferDescriptor+{ private:+protected:+float *m_basePointer;++public:+/**+* vertexBasePointer is pointer to beginning of the buffer.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+*/+btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride )+{+m_basePointer = basePointer;+m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;+m_hasVertexPositions = true;+}++/**+* vertexBasePointer is pointer to beginning of the buffer.+* vertexOffset is the offset in floats to the first vertex.+* vertexStride is the stride in floats between vertices.+*/+btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride, int normalOffset, int normalStride )+{+m_basePointer = basePointer;++m_vertexOffset = vertexOffset;+m_vertexStride = vertexStride;+m_hasVertexPositions = true;++m_normalOffset = normalOffset;+m_normalStride = normalStride;+m_hasNormals = true;+}++virtual ~btCPUVertexBufferDescriptor()+{++}++/**+* Return the type of the vertex buffer descriptor.+*/+virtual BufferTypes getBufferType() const+{+return CPU_BUFFER;+}++/**+* Return the base pointer in memory to the first vertex.+*/+virtual float *getBasePointer() const+{+return m_basePointer;+}+};++#endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H
bullet/BulletSoftBody/btSoftBodySolvers.h view
@@ -1,154 +1,154 @@-/*
-Bullet Continuous Collision Detection and Physics Library
-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_SOFT_BODY_SOLVERS_H
-#define BT_SOFT_BODY_SOLVERS_H
-
-#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h"
-
-
-class btSoftBodyTriangleData;
-class btSoftBodyLinkData;
-class btSoftBodyVertexData;
-class btVertexBufferDescriptor;
-class btCollisionObject;
-class btSoftBody;
-
-
-class btSoftBodySolver
-{
-public:
-	enum SolverTypes
-	{
-		DEFAULT_SOLVER,
-		CPU_SOLVER,
-		CL_SOLVER,
-		CL_SIMD_SOLVER,
-		DX_SOLVER,
-		DX_SIMD_SOLVER
-	};
-
-
-protected:
-	int m_numberOfPositionIterations;
-	int m_numberOfVelocityIterations;
-	// Simulation timescale
-	float m_timeScale;
-	
-public:
-	btSoftBodySolver() :
-		m_numberOfPositionIterations( 10 ),
-		m_timeScale( 1 )
-	{
-		m_numberOfVelocityIterations = 0;
-		m_numberOfPositionIterations = 5;
-	}
-
-	virtual ~btSoftBodySolver()
-	{
-	}
-	
-	/**
-	 * Return the type of the solver.
-	 */
-	virtual SolverTypes getSolverType() const = 0;
-
-
-	/** Ensure that this solver is initialized. */
-	virtual bool checkInitialized() = 0;
-
-	/** Optimize soft bodies in this solver. */
-	virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false) = 0;
-
-	/** Copy necessary data back to the original soft body source objects. */
-	virtual void copyBackToSoftBodies() = 0;
-
-	/** Predict motion of soft bodies into next timestep */
-	virtual void predictMotion( float solverdt ) = 0;
-
-	/** Solve constraints for a set of soft bodies */
-	virtual void solveConstraints( float solverdt ) = 0;
-
-	/** Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes */
-	virtual void updateSoftBodies() = 0;
-
-	/** Process a collision between one of the world's soft bodies and another collision object */
-	virtual void processCollision( btSoftBody *, btCollisionObject* ) = 0;
-
-	/** Process a collision between two soft bodies */
-	virtual void processCollision( btSoftBody*, btSoftBody* ) = 0;
-
-	/** Set the number of velocity constraint solver iterations this solver uses. */
-	virtual void setNumberOfPositionIterations( int iterations )
-	{
-		m_numberOfPositionIterations = iterations;
-	}
-
-	/** Get the number of velocity constraint solver iterations this solver uses. */
-	virtual int getNumberOfPositionIterations()
-	{
-		return m_numberOfPositionIterations;
-	}
-
-	/** Set the number of velocity constraint solver iterations this solver uses. */
-	virtual void setNumberOfVelocityIterations( int iterations )
-	{
-		m_numberOfVelocityIterations = iterations;
-	}
-
-	/** Get the number of velocity constraint solver iterations this solver uses. */
-	virtual int getNumberOfVelocityIterations()
-	{
-		return m_numberOfVelocityIterations;
-	}
-
-	/** Return the timescale that the simulation is using */
-	float getTimeScale()
-	{
-		return m_timeScale;
-	}
-
-#if 0
-	/**
-	 * Add a collision object to be used by the indicated softbody.
-	 */
-	virtual void addCollisionObjectForSoftBody( int clothIdentifier, btCollisionObject *collisionObject ) = 0;
-#endif
-};
-
-/** 
- * Class to manage movement of data from a solver to a given target.
- * This version is abstract. Subclasses will have custom pairings for different combinations.
- */
-class btSoftBodySolverOutput
-{
-protected:
-
-public:
-	btSoftBodySolverOutput()
-	{
-	}
-
-	virtual ~btSoftBodySolverOutput()
-	{
-	}
-
-
-	/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */
-	virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer ) = 0;
-};
-
-
-#endif // #ifndef BT_SOFT_BODY_SOLVERS_H
+/*+Bullet Continuous Collision Detection and Physics Library+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_SOFT_BODY_SOLVERS_H+#define BT_SOFT_BODY_SOLVERS_H++#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h"+++class btSoftBodyTriangleData;+class btSoftBodyLinkData;+class btSoftBodyVertexData;+class btVertexBufferDescriptor;+class btCollisionObject;+class btSoftBody;+++class btSoftBodySolver+{ private:+public:+enum SolverTypes+{+DEFAULT_SOLVER,+CPU_SOLVER,+CL_SOLVER,+CL_SIMD_SOLVER,+DX_SOLVER,+DX_SIMD_SOLVER+};+++protected:+int m_numberOfPositionIterations;+int m_numberOfVelocityIterations;+// Simulation timescale+float m_timeScale;++public:+btSoftBodySolver() :+m_numberOfPositionIterations( 10 ),+m_timeScale( 1 )+{+m_numberOfVelocityIterations = 0;+m_numberOfPositionIterations = 5;+}++virtual ~btSoftBodySolver()+{+}++/**+* Return the type of the solver.+*/+virtual SolverTypes getSolverType() const = 0;+++/** Ensure that this solver is initialized. */+virtual bool checkInitialized() = 0;++/** Optimize soft bodies in this solver. */+virtual void optimize( btAlignedObjectArray< btSoftBody * > &softBodies , bool forceUpdate=false) = 0;++/** Copy necessary data back to the original soft body source objects. */+virtual void copyBackToSoftBodies() = 0;++/** Predict motion of soft bodies into next timestep */+virtual void predictMotion( float solverdt ) = 0;++/** Solve constraints for a set of soft bodies */+virtual void solveConstraints( float solverdt ) = 0;++/** Perform necessary per-step updates of soft bodies such as recomputing normals and bounding boxes */+virtual void updateSoftBodies() = 0;++/** Process a collision between one of the world's soft bodies and another collision object */+virtual void processCollision( btSoftBody *, btCollisionObject* ) = 0;++/** Process a collision between two soft bodies */+virtual void processCollision( btSoftBody*, btSoftBody* ) = 0;++/** Set the number of velocity constraint solver iterations this solver uses. */+virtual void setNumberOfPositionIterations( int iterations )+{+m_numberOfPositionIterations = iterations;+}++/** Get the number of velocity constraint solver iterations this solver uses. */+virtual int getNumberOfPositionIterations()+{+return m_numberOfPositionIterations;+}++/** Set the number of velocity constraint solver iterations this solver uses. */+virtual void setNumberOfVelocityIterations( int iterations )+{+m_numberOfVelocityIterations = iterations;+}++/** Get the number of velocity constraint solver iterations this solver uses. */+virtual int getNumberOfVelocityIterations()+{+return m_numberOfVelocityIterations;+}++/** Return the timescale that the simulation is using */+float getTimeScale()+{+return m_timeScale;+}++#if 0+/**+* Add a collision object to be used by the indicated softbody.+*/+virtual void addCollisionObjectForSoftBody( int clothIdentifier, btCollisionObject *collisionObject ) = 0;+#endif+};++/**+* Class to manage movement of data from a solver to a given target.+* This version is abstract. Subclasses will have custom pairings for different combinations.+*/+class btSoftBodySolverOutput+{ private:+protected:++public:+btSoftBodySolverOutput()+{+}++virtual ~btSoftBodySolverOutput()+{+}+++/** Output current computed vertex data to the vertex buffers for all cloths in the solver. */+virtual void copySoftBodyToVertexBuffer( const btSoftBody * const softBody, btVertexBufferDescriptor *vertexBuffer ) = 0;+};+++#endif // #ifndef BT_SOFT_BODY_SOLVERS_H
bullet/BulletSoftBody/btSoftRigidCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,48 +25,48 @@ #include "LinearMath/btVector3.h" class btSoftBody; -/// btSoftRigidCollisionAlgorithm  provides collision detection between btSoftBody and btRigidBody+/// btSoftRigidCollisionAlgorithm provides collision detection between btSoftBody and btRigidBody class btSoftRigidCollisionAlgorithm : public btCollisionAlgorithm-{-	//	bool	m_ownManifold;-	//	btPersistentManifold*	m_manifoldPtr;+{ private:+// bool m_ownManifold;+// btPersistentManifold* m_manifoldPtr; -	btSoftBody*				m_softBody;-	btCollisionObject*		m_rigidCollisionObject;+btSoftBody* m_softBody;+btCollisionObject* m_rigidCollisionObject; -	///for rigid versus soft (instead of soft versus rigid), we use this swapped boolean-	bool	m_isSwapped;+///for rigid versus soft (instead of soft versus rigid), we use this swapped boolean+bool m_isSwapped;  public: -	btSoftRigidCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped);+btSoftRigidCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* col0,btCollisionObject* col1, bool isSwapped); -	virtual ~btSoftRigidCollisionAlgorithm();+virtual ~btSoftRigidCollisionAlgorithm(); -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		//we don't add any manifolds-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+//we don't add any manifolds+}  -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftRigidCollisionAlgorithm));-			if (!m_swapped)-			{-				return new(mem) btSoftRigidCollisionAlgorithm(0,ci,body0,body1,false);-			} else-			{-				return new(mem) btSoftRigidCollisionAlgorithm(0,ci,body0,body1,true);-			}-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+void* mem = ci.m_dispatcher1->allocateCollisionAlgorithm(sizeof(btSoftRigidCollisionAlgorithm));+if (!m_swapped)+{+return new(mem) btSoftRigidCollisionAlgorithm(0,ci,body0,body1,false);+} else+{+return new(mem) btSoftRigidCollisionAlgorithm(0,ci,body0,body1,true);+}+}+};  }; 
bullet/BulletSoftBody/btSoftRigidDynamicsWorld.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -19,88 +19,88 @@ #include "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h" #include "btSoftBody.h" -typedef	btAlignedObjectArray<btSoftBody*> btSoftBodyArray;+typedef btAlignedObjectArray<btSoftBody*> btSoftBodyArray;  class btSoftBodySolver;  class btSoftRigidDynamicsWorld : public btDiscreteDynamicsWorld-{+{ private: -	btSoftBodyArray	m_softBodies;-	int				m_drawFlags;-	bool			m_drawNodeTree;-	bool			m_drawFaceTree;-	bool			m_drawClusterTree;-	btSoftBodyWorldInfo m_sbi;-	///Solver classes that encapsulate multiple soft bodies for solving-	btSoftBodySolver *m_softBodySolver;-	bool			m_ownsSolver;+btSoftBodyArray m_softBodies;+int m_drawFlags;+bool m_drawNodeTree;+bool m_drawFaceTree;+bool m_drawClusterTree;+btSoftBodyWorldInfo m_sbi;+///Solver classes that encapsulate multiple soft bodies for solving+btSoftBodySolver *m_softBodySolver;+bool m_ownsSolver;  protected: -	virtual void	predictUnconstraintMotion(btScalar timeStep);+virtual void predictUnconstraintMotion(btScalar timeStep); -	virtual void	internalSingleStepSimulation( btScalar timeStep);+virtual void internalSingleStepSimulation( btScalar timeStep); -	void	solveSoftBodiesConstraints( btScalar timeStep );+void solveSoftBodiesConstraints( btScalar timeStep ); -	void	serializeSoftBodies(btSerializer* serializer);+void serializeSoftBodies(btSerializer* serializer);  public: -	btSoftRigidDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver, btCollisionConfiguration* collisionConfiguration, btSoftBodySolver *softBodySolver = 0 );+btSoftRigidDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver, btCollisionConfiguration* collisionConfiguration, btSoftBodySolver *softBodySolver = 0 ); -	virtual ~btSoftRigidDynamicsWorld();+virtual ~btSoftRigidDynamicsWorld(); -	virtual void	debugDrawWorld();+virtual void debugDrawWorld(); -	void	addSoftBody(btSoftBody* body,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter);+void addSoftBody(btSoftBody* body,short int collisionFilterGroup=btBroadphaseProxy::DefaultFilter,short int collisionFilterMask=btBroadphaseProxy::AllFilter); -	void	removeSoftBody(btSoftBody* body);+void removeSoftBody(btSoftBody* body); -	///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btDiscreteDynamicsWorld::removeCollisionObject-	virtual void	removeCollisionObject(btCollisionObject* collisionObject);+///removeCollisionObject will first check if it is a rigid body, if so call removeRigidBody otherwise call btDiscreteDynamicsWorld::removeCollisionObject+virtual void removeCollisionObject(btCollisionObject* collisionObject); -	int		getDrawFlags() const { return(m_drawFlags); }-	void	setDrawFlags(int f)	{ m_drawFlags=f; }+int getDrawFlags() const { return(m_drawFlags); }+void setDrawFlags(int f) { m_drawFlags=f; } -	btSoftBodyWorldInfo&	getWorldInfo()-	{-		return m_sbi;-	}-	const btSoftBodyWorldInfo&	getWorldInfo() const-	{-		return m_sbi;-	}+btSoftBodyWorldInfo& getWorldInfo()+{+return m_sbi;+}+const btSoftBodyWorldInfo& getWorldInfo() const+{+return m_sbi;+} -	virtual btDynamicsWorldType	getWorldType() const-	{-		return	BT_SOFT_RIGID_DYNAMICS_WORLD;-	}+virtual btDynamicsWorldType getWorldType() const+{+return BT_SOFT_RIGID_DYNAMICS_WORLD;+} -	btSoftBodyArray& getSoftBodyArray()-	{-		return m_softBodies;-	}+btSoftBodyArray& getSoftBodyArray()+{+return m_softBodies;+} -	const btSoftBodyArray& getSoftBodyArray() const-	{-		return m_softBodies;-	}+const btSoftBodyArray& getSoftBodyArray() const+{+return m_softBodies;+}  -	virtual void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const; +virtual void rayTest(const btVector3& rayFromWorld, const btVector3& rayToWorld, RayResultCallback& resultCallback) const; -	/// rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest.-	/// In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape.-	/// This allows more customization.-	static void	rayTestSingle(const btTransform& rayFromTrans,const btTransform& rayToTrans,-					  btCollisionObject* collisionObject,-					  const btCollisionShape* collisionShape,-					  const btTransform& colObjWorldTransform,-					  RayResultCallback& resultCallback);+/// rayTestSingle performs a raycast call and calls the resultCallback. It is used internally by rayTest.+/// In a future implementation, we consider moving the ray test as a virtual method in btCollisionShape.+/// This allows more customization.+static void rayTestSingle(const btTransform& rayFromTrans,const btTransform& rayToTrans,+btCollisionObject* collisionObject,+const btCollisionShape* collisionShape,+const btTransform& colObjWorldTransform,+RayResultCallback& resultCallback); -	virtual	void	serialize(btSerializer* serializer);+virtual void serialize(btSerializer* serializer);  }; 
bullet/BulletSoftBody/btSoftSoftCollisionAlgorithm.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,41 +26,41 @@  ///collision detection between two btSoftBody shapes class btSoftSoftCollisionAlgorithm : public btCollisionAlgorithm-{-	bool	m_ownManifold;-	btPersistentManifold*	m_manifoldPtr;+{ private:+bool m_ownManifold;+btPersistentManifold* m_manifoldPtr; -	btSoftBody*	m_softBody0;-	btSoftBody*	m_softBody1;+btSoftBody* m_softBody0;+btSoftBody* m_softBody1;   public:-	btSoftSoftCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)-		: btCollisionAlgorithm(ci) {}+btSoftSoftCollisionAlgorithm(const btCollisionAlgorithmConstructionInfo& ci)+: btCollisionAlgorithm(ci) {} -	virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual void processCollision (btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);+virtual btScalar calculateTimeOfImpact(btCollisionObject* body0,btCollisionObject* body1,const btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut); -	virtual	void	getAllContactManifolds(btManifoldArray&	manifoldArray)-	{-		if (m_manifoldPtr && m_ownManifold)-			manifoldArray.push_back(m_manifoldPtr);-	}+virtual void getAllContactManifolds(btManifoldArray& manifoldArray)+{+if (m_manifoldPtr && m_ownManifold)+manifoldArray.push_back(m_manifoldPtr);+} -	btSoftSoftCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1);+btSoftSoftCollisionAlgorithm(btPersistentManifold* mf,const btCollisionAlgorithmConstructionInfo& ci,btCollisionObject* body0,btCollisionObject* body1); -	virtual ~btSoftSoftCollisionAlgorithm();+virtual ~btSoftSoftCollisionAlgorithm(); -	struct CreateFunc :public 	btCollisionAlgorithmCreateFunc-	{-		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)-		{-			int bbsize = sizeof(btSoftSoftCollisionAlgorithm);-			void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);-			return new(ptr) btSoftSoftCollisionAlgorithm(0,ci,body0,body1);-		}-	};+struct CreateFunc :public btCollisionAlgorithmCreateFunc+{+virtual btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1)+{+int bbsize = sizeof(btSoftSoftCollisionAlgorithm);+void* ptr = ci.m_dispatcher1->allocateCollisionAlgorithm(bbsize);+return new(ptr) btSoftSoftCollisionAlgorithm(0,ci,body0,body1);+}+};  }; 
bullet/BulletSoftBody/btSparseSDF.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -24,282 +24,282 @@ template <const int DWORDLEN> unsigned int HsiehHash(const void* pdata) {-	const unsigned short*	data=(const unsigned short*)pdata;-	unsigned				hash=DWORDLEN<<2,tmp;-	for(int i=0;i<DWORDLEN;++i)-	{-		hash	+=	data[0];-		tmp		=	(data[1]<<11)^hash;-		hash	=	(hash<<16)^tmp;-		data	+=	2;-		hash	+=	hash>>11;-	}-	hash^=hash<<3;hash+=hash>>5;-	hash^=hash<<4;hash+=hash>>17;-	hash^=hash<<25;hash+=hash>>6;-	return(hash);+const unsigned short* data=(const unsigned short*)pdata;+unsigned hash=DWORDLEN<<2,tmp;+for(int i=0;i<DWORDLEN;++i)+{+hash += data[0];+tmp = (data[1]<<11)^hash;+hash = (hash<<16)^tmp;+data += 2;+hash += hash>>11; }+hash^=hash<<3;hash+=hash>>5;+hash^=hash<<4;hash+=hash>>17;+hash^=hash<<25;hash+=hash>>6;+return(hash);+}  template <const int CELLSIZE>-struct	btSparseSdf+struct btSparseSdf {-	//-	// Inner types-	//-	struct IntFrac-	{-		int					b;-		int					i;-		btScalar			f;-	};-	struct	Cell-	{-		btScalar			d[CELLSIZE+1][CELLSIZE+1][CELLSIZE+1];-		int					c[3];-		int					puid;-		unsigned			hash;-		btCollisionShape*	pclient;-		Cell*				next;-	};-	//-	// Fields-	//+//+// Inner types+//+struct IntFrac+{+int b;+int i;+btScalar f;+};+struct Cell+{+btScalar d[CELLSIZE+1][CELLSIZE+1][CELLSIZE+1];+int c[3];+int puid;+unsigned hash;+btCollisionShape* pclient;+Cell* next;+};+//+// Fields+// -	btAlignedObjectArray<Cell*>		cells;	-	btScalar						voxelsz;-	int								puid;-	int								ncells;-	int								nprobes;-	int								nqueries;	+btAlignedObjectArray<Cell*> cells;+btScalar voxelsz;+int puid;+int ncells;+int nprobes;+int nqueries; -	//-	// Methods-	//+//+// Methods+// -	//-	void					Initialize(int hashsize=2383)-	{-		cells.resize(hashsize,0);-		Reset();		-	}-	//-	void					Reset()-	{-		for(int i=0,ni=cells.size();i<ni;++i)-		{-			Cell*	pc=cells[i];-			cells[i]=0;-			while(pc)-			{-				Cell*	pn=pc->next;-				delete pc;-				pc=pn;-			}-		}-		voxelsz		=0.25;-		puid		=0;-		ncells		=0;-		nprobes		=1;-		nqueries	=1;-	}-	//-	void					GarbageCollect(int lifetime=256)-	{-		const int life=puid-lifetime;-		for(int i=0;i<cells.size();++i)-		{-			Cell*&	root=cells[i];-			Cell*	pp=0;-			Cell*	pc=root;-			while(pc)-			{-				Cell*	pn=pc->next;-				if(pc->puid<life)-				{-					if(pp) pp->next=pn; else root=pn;-					delete pc;pc=pp;--ncells;-				}-				pp=pc;pc=pn;-			}-		}-		//printf("GC[%d]: %d cells, PpQ: %f\r\n",puid,ncells,nprobes/(btScalar)nqueries);-		nqueries=1;-		nprobes=1;-		++puid;	///@todo: Reset puid's when int range limit is reached	*/ -		/* else setup a priority list...						*/ -	}-	//-	int						RemoveReferences(btCollisionShape* pcs)-	{-		int	refcount=0;-		for(int i=0;i<cells.size();++i)-		{-			Cell*&	root=cells[i];-			Cell*	pp=0;-			Cell*	pc=root;-			while(pc)-			{-				Cell*	pn=pc->next;-				if(pc->pclient==pcs)-				{-					if(pp) pp->next=pn; else root=pn;-					delete pc;pc=pp;++refcount;-				}-				pp=pc;pc=pn;-			}-		}-		return(refcount);-	}-	//-	btScalar				Evaluate(	const btVector3& x,-		btCollisionShape* shape,-		btVector3& normal,-		btScalar margin)-	{-		/* Lookup cell			*/ -		const btVector3	scx=x/voxelsz;-		const IntFrac	ix=Decompose(scx.x());-		const IntFrac	iy=Decompose(scx.y());-		const IntFrac	iz=Decompose(scx.z());-		const unsigned	h=Hash(ix.b,iy.b,iz.b,shape);-		Cell*&			root=cells[static_cast<int>(h%cells.size())];-		Cell*			c=root;-		++nqueries;-		while(c)-		{-			++nprobes;-			if(	(c->hash==h)	&&-				(c->c[0]==ix.b)	&&-				(c->c[1]==iy.b)	&&-				(c->c[2]==iz.b)	&&-				(c->pclient==shape))-			{ break; }-			else-			{ c=c->next; }-		}-		if(!c)-		{-			++nprobes;		-			++ncells;-			c=new Cell();-			c->next=root;root=c;-			c->pclient=shape;-			c->hash=h;-			c->c[0]=ix.b;c->c[1]=iy.b;c->c[2]=iz.b;-			BuildCell(*c);-		}-		c->puid=puid;-		/* Extract infos		*/ -		const int		o[]={	ix.i,iy.i,iz.i};-		const btScalar	d[]={	c->d[o[0]+0][o[1]+0][o[2]+0],-			c->d[o[0]+1][o[1]+0][o[2]+0],-			c->d[o[0]+1][o[1]+1][o[2]+0],-			c->d[o[0]+0][o[1]+1][o[2]+0],-			c->d[o[0]+0][o[1]+0][o[2]+1],-			c->d[o[0]+1][o[1]+0][o[2]+1],-			c->d[o[0]+1][o[1]+1][o[2]+1],-			c->d[o[0]+0][o[1]+1][o[2]+1]};-		/* Normal	*/ +//+void Initialize(int hashsize=2383)+{+cells.resize(hashsize,0);+Reset();+}+//+void Reset()+{+for(int i=0,ni=cells.size();i<ni;++i)+{+Cell* pc=cells[i];+cells[i]=0;+while(pc)+{+Cell* pn=pc->next;+delete pc;+pc=pn;+}+}+voxelsz =0.25;+puid =0;+ncells =0;+nprobes =1;+nqueries =1;+}+//+void GarbageCollect(int lifetime=256)+{+const int life=puid-lifetime;+for(int i=0;i<cells.size();++i)+{+Cell*& root=cells[i];+Cell* pp=0;+Cell* pc=root;+while(pc)+{+Cell* pn=pc->next;+if(pc->puid<life)+{+if(pp) pp->next=pn; else root=pn;+delete pc;pc=pp;--ncells;+}+pp=pc;pc=pn;+}+}+//printf("GC[%d]: %d cells, PpQ: %f\r\n",puid,ncells,nprobes/(btScalar)nqueries);+nqueries=1;+nprobes=1;+++puid; ///@todo: Reset puid's when int range limit is reached */+/* else setup a priority list... */+}+//+int RemoveReferences(btCollisionShape* pcs)+{+int refcount=0;+for(int i=0;i<cells.size();++i)+{+Cell*& root=cells[i];+Cell* pp=0;+Cell* pc=root;+while(pc)+{+Cell* pn=pc->next;+if(pc->pclient==pcs)+{+if(pp) pp->next=pn; else root=pn;+delete pc;pc=pp;++refcount;+}+pp=pc;pc=pn;+}+}+return(refcount);+}+//+btScalar Evaluate( const btVector3& x,+btCollisionShape* shape,+btVector3& normal,+btScalar margin)+{+/* Lookup cell */+const btVector3 scx=x/voxelsz;+const IntFrac ix=Decompose(scx.x());+const IntFrac iy=Decompose(scx.y());+const IntFrac iz=Decompose(scx.z());+const unsigned h=Hash(ix.b,iy.b,iz.b,shape);+Cell*& root=cells[static_cast<int>(h%cells.size())];+Cell* c=root;+++nqueries;+while(c)+{+++nprobes;+if( (c->hash==h) &&+(c->c[0]==ix.b) &&+(c->c[1]==iy.b) &&+(c->c[2]==iz.b) &&+(c->pclient==shape))+{ break; }+else+{ c=c->next; }+}+if(!c)+{+++nprobes;+++ncells;+c=new Cell();+c->next=root;root=c;+c->pclient=shape;+c->hash=h;+c->c[0]=ix.b;c->c[1]=iy.b;c->c[2]=iz.b;+BuildCell(*c);+}+c->puid=puid;+/* Extract infos */+const int o[]={ ix.i,iy.i,iz.i};+const btScalar d[]={ c->d[o[0]+0][o[1]+0][o[2]+0],+c->d[o[0]+1][o[1]+0][o[2]+0],+c->d[o[0]+1][o[1]+1][o[2]+0],+c->d[o[0]+0][o[1]+1][o[2]+0],+c->d[o[0]+0][o[1]+0][o[2]+1],+c->d[o[0]+1][o[1]+0][o[2]+1],+c->d[o[0]+1][o[1]+1][o[2]+1],+c->d[o[0]+0][o[1]+1][o[2]+1]};+/* Normal */ #if 1-		const btScalar	gx[]={	d[1]-d[0],d[2]-d[3],-			d[5]-d[4],d[6]-d[7]};-		const btScalar	gy[]={	d[3]-d[0],d[2]-d[1],-			d[7]-d[4],d[6]-d[5]};-		const btScalar	gz[]={	d[4]-d[0],d[5]-d[1],-			d[7]-d[3],d[6]-d[2]};-		normal.setX(Lerp(	Lerp(gx[0],gx[1],iy.f),-			Lerp(gx[2],gx[3],iy.f),iz.f));-		normal.setY(Lerp(	Lerp(gy[0],gy[1],ix.f),-			Lerp(gy[2],gy[3],ix.f),iz.f));-		normal.setZ(Lerp(	Lerp(gz[0],gz[1],ix.f),-			Lerp(gz[2],gz[3],ix.f),iy.f));-		normal		=	normal.normalized();+const btScalar gx[]={ d[1]-d[0],d[2]-d[3],+d[5]-d[4],d[6]-d[7]};+const btScalar gy[]={ d[3]-d[0],d[2]-d[1],+d[7]-d[4],d[6]-d[5]};+const btScalar gz[]={ d[4]-d[0],d[5]-d[1],+d[7]-d[3],d[6]-d[2]};+normal.setX(Lerp( Lerp(gx[0],gx[1],iy.f),+Lerp(gx[2],gx[3],iy.f),iz.f));+normal.setY(Lerp( Lerp(gy[0],gy[1],ix.f),+Lerp(gy[2],gy[3],ix.f),iz.f));+normal.setZ(Lerp( Lerp(gz[0],gz[1],ix.f),+Lerp(gz[2],gz[3],ix.f),iy.f));+normal = normal.normalized(); #else-		normal		=	btVector3(d[1]-d[0],d[3]-d[0],d[4]-d[0]).normalized();+normal = btVector3(d[1]-d[0],d[3]-d[0],d[4]-d[0]).normalized(); #endif-		/* Distance	*/ -		const btScalar	d0=Lerp(Lerp(d[0],d[1],ix.f),-			Lerp(d[3],d[2],ix.f),iy.f);-		const btScalar	d1=Lerp(Lerp(d[4],d[5],ix.f),-			Lerp(d[7],d[6],ix.f),iy.f);-		return(Lerp(d0,d1,iz.f)-margin);-	}-	//-	void					BuildCell(Cell& c)-	{-		const btVector3	org=btVector3(	(btScalar)c.c[0],-			(btScalar)c.c[1],-			(btScalar)c.c[2])	*-			CELLSIZE*voxelsz;-		for(int k=0;k<=CELLSIZE;++k)-		{-			const btScalar	z=voxelsz*k+org.z();-			for(int j=0;j<=CELLSIZE;++j)-			{-				const btScalar	y=voxelsz*j+org.y();-				for(int i=0;i<=CELLSIZE;++i)-				{-					const btScalar	x=voxelsz*i+org.x();-					c.d[i][j][k]=DistanceToShape(	btVector3(x,y,z),-						c.pclient);-				}-			}-		}-	}-	//-	static inline btScalar	DistanceToShape(const btVector3& x,-		btCollisionShape* shape)-	{-		btTransform	unit;-		unit.setIdentity();-		if(shape->isConvex())-		{-			btGjkEpaSolver2::sResults	res;-			btConvexShape*				csh=static_cast<btConvexShape*>(shape);-			return(btGjkEpaSolver2::SignedDistance(x,0,csh,unit,res));-		}-		return(0);-	}-	//-	static inline IntFrac	Decompose(btScalar x)-	{-		/* That one need a lot of improvements...	*/-		/* Remove test, faster floor...				*/ -		IntFrac			r;-		x/=CELLSIZE;-		const int		o=x<0?(int)(-x+1):0;-		x+=o;r.b=(int)x;-		const btScalar	k=(x-r.b)*CELLSIZE;-		r.i=(int)k;r.f=k-r.i;r.b-=o;-		return(r);-	}-	//-	static inline btScalar	Lerp(btScalar a,btScalar b,btScalar t)-	{-		return(a+(b-a)*t);-	}+/* Distance */+const btScalar d0=Lerp(Lerp(d[0],d[1],ix.f),+Lerp(d[3],d[2],ix.f),iy.f);+const btScalar d1=Lerp(Lerp(d[4],d[5],ix.f),+Lerp(d[7],d[6],ix.f),iy.f);+return(Lerp(d0,d1,iz.f)-margin);+}+//+void BuildCell(Cell& c)+{+const btVector3 org=btVector3( (btScalar)c.c[0],+(btScalar)c.c[1],+(btScalar)c.c[2]) *+CELLSIZE*voxelsz;+for(int k=0;k<=CELLSIZE;++k)+{+const btScalar z=voxelsz*k+org.z();+for(int j=0;j<=CELLSIZE;++j)+{+const btScalar y=voxelsz*j+org.y();+for(int i=0;i<=CELLSIZE;++i)+{+const btScalar x=voxelsz*i+org.x();+c.d[i][j][k]=DistanceToShape( btVector3(x,y,z),+c.pclient);+}+}+}+}+//+static inline btScalar DistanceToShape(const btVector3& x,+btCollisionShape* shape)+{+btTransform unit;+unit.setIdentity();+if(shape->isConvex())+{+btGjkEpaSolver2::sResults res;+btConvexShape* csh=static_cast<btConvexShape*>(shape);+return(btGjkEpaSolver2::SignedDistance(x,0,csh,unit,res));+}+return(0);+}+//+static inline IntFrac Decompose(btScalar x)+{+/* That one need a lot of improvements... */+/* Remove test, faster floor... */+IntFrac r;+x/=CELLSIZE;+const int o=x<0?(int)(-x+1):0;+x+=o;r.b=(int)x;+const btScalar k=(x-r.b)*CELLSIZE;+r.i=(int)k;r.f=k-r.i;r.b-=o;+return(r);+}+//+static inline btScalar Lerp(btScalar a,btScalar b,btScalar t)+{+return(a+(b-a)*t);+}   -	//-	static inline unsigned int	Hash(int x,int y,int z,btCollisionShape* shape)-	{-		struct btS-		{ -			int x,y,z;-			void* p;-		};+//+static inline unsigned int Hash(int x,int y,int z,btCollisionShape* shape)+{+struct btS+{+int x,y,z;+void* p;+}; -		btS myset;+btS myset; -		myset.x=x;myset.y=y;myset.z=z;myset.p=shape;-		const void* ptr = &myset;+myset.x=x;myset.y=y;myset.z=z;myset.p=shape;+const void* ptr = &myset; -		unsigned int result = HsiehHash<sizeof(btS)/4> (ptr);+unsigned int result = HsiehHash<sizeof(btS)/4> (ptr);  -		return result;-	}+return result;+} };  
bullet/LinearMath/btAabbUtil2.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,211 +24,211 @@   SIMD_FORCE_INLINE void AabbExpand (btVector3& aabbMin,-								   btVector3& aabbMax,-								   const btVector3& expansionMin,-								   const btVector3& expansionMax)+btVector3& aabbMax,+const btVector3& expansionMin,+const btVector3& expansionMax) {-	aabbMin = aabbMin + expansionMin;-	aabbMax = aabbMax + expansionMax;+aabbMin = aabbMin + expansionMin;+aabbMax = aabbMax + expansionMax; }  /// conservative test for overlap between two aabbs SIMD_FORCE_INLINE bool TestPointAgainstAabb2(const btVector3 &aabbMin1, const btVector3 &aabbMax1,-								const btVector3 &point)+const btVector3 &point) {-	bool overlap = true;-	overlap = (aabbMin1.getX() > point.getX() || aabbMax1.getX() < point.getX()) ? false : overlap;-	overlap = (aabbMin1.getZ() > point.getZ() || aabbMax1.getZ() < point.getZ()) ? false : overlap;-	overlap = (aabbMin1.getY() > point.getY() || aabbMax1.getY() < point.getY()) ? false : overlap;-	return overlap;+bool overlap = true;+overlap = (aabbMin1.getX() > point.getX() || aabbMax1.getX() < point.getX()) ? false : overlap;+overlap = (aabbMin1.getZ() > point.getZ() || aabbMax1.getZ() < point.getZ()) ? false : overlap;+overlap = (aabbMin1.getY() > point.getY() || aabbMax1.getY() < point.getY()) ? false : overlap;+return overlap; }   /// conservative test for overlap between two aabbs SIMD_FORCE_INLINE bool TestAabbAgainstAabb2(const btVector3 &aabbMin1, const btVector3 &aabbMax1,-								const btVector3 &aabbMin2, const btVector3 &aabbMax2)+const btVector3 &aabbMin2, const btVector3 &aabbMax2) {-	bool overlap = true;-	overlap = (aabbMin1.getX() > aabbMax2.getX() || aabbMax1.getX() < aabbMin2.getX()) ? false : overlap;-	overlap = (aabbMin1.getZ() > aabbMax2.getZ() || aabbMax1.getZ() < aabbMin2.getZ()) ? false : overlap;-	overlap = (aabbMin1.getY() > aabbMax2.getY() || aabbMax1.getY() < aabbMin2.getY()) ? false : overlap;-	return overlap;+bool overlap = true;+overlap = (aabbMin1.getX() > aabbMax2.getX() || aabbMax1.getX() < aabbMin2.getX()) ? false : overlap;+overlap = (aabbMin1.getZ() > aabbMax2.getZ() || aabbMax1.getZ() < aabbMin2.getZ()) ? false : overlap;+overlap = (aabbMin1.getY() > aabbMax2.getY() || aabbMax1.getY() < aabbMin2.getY()) ? false : overlap;+return overlap; }  /// conservative test for overlap between triangle and aabb SIMD_FORCE_INLINE bool TestTriangleAgainstAabb2(const btVector3 *vertices,-									const btVector3 &aabbMin, const btVector3 &aabbMax)+const btVector3 &aabbMin, const btVector3 &aabbMax) {-	const btVector3 &p1 = vertices[0];-	const btVector3 &p2 = vertices[1];-	const btVector3 &p3 = vertices[2];+const btVector3 &p1 = vertices[0];+const btVector3 &p2 = vertices[1];+const btVector3 &p3 = vertices[2]; -	if (btMin(btMin(p1[0], p2[0]), p3[0]) > aabbMax[0]) return false;-	if (btMax(btMax(p1[0], p2[0]), p3[0]) < aabbMin[0]) return false;+if (btMin(btMin(p1[0], p2[0]), p3[0]) > aabbMax[0]) return false;+if (btMax(btMax(p1[0], p2[0]), p3[0]) < aabbMin[0]) return false; -	if (btMin(btMin(p1[2], p2[2]), p3[2]) > aabbMax[2]) return false;-	if (btMax(btMax(p1[2], p2[2]), p3[2]) < aabbMin[2]) return false;-  -	if (btMin(btMin(p1[1], p2[1]), p3[1]) > aabbMax[1]) return false;-	if (btMax(btMax(p1[1], p2[1]), p3[1]) < aabbMin[1]) return false;-	return true;+if (btMin(btMin(p1[2], p2[2]), p3[2]) > aabbMax[2]) return false;+if (btMax(btMax(p1[2], p2[2]), p3[2]) < aabbMin[2]) return false;++if (btMin(btMin(p1[1], p2[1]), p3[1]) > aabbMax[1]) return false;+if (btMax(btMax(p1[1], p2[1]), p3[1]) < aabbMin[1]) return false;+return true; }  -SIMD_FORCE_INLINE int	btOutcode(const btVector3& p,const btVector3& halfExtent) +SIMD_FORCE_INLINE int btOutcode(const btVector3& p,const btVector3& halfExtent) {-	return (p.getX()  < -halfExtent.getX() ? 0x01 : 0x0) |    -		   (p.getX() >  halfExtent.getX() ? 0x08 : 0x0) |-		   (p.getY() < -halfExtent.getY() ? 0x02 : 0x0) |    -		   (p.getY() >  halfExtent.getY() ? 0x10 : 0x0) |-		   (p.getZ() < -halfExtent.getZ() ? 0x4 : 0x0) |    -		   (p.getZ() >  halfExtent.getZ() ? 0x20 : 0x0);+return (p.getX() < -halfExtent.getX() ? 0x01 : 0x0) |+(p.getX() > halfExtent.getX() ? 0x08 : 0x0) |+(p.getY() < -halfExtent.getY() ? 0x02 : 0x0) |+(p.getY() > halfExtent.getY() ? 0x10 : 0x0) |+(p.getZ() < -halfExtent.getZ() ? 0x4 : 0x0) |+(p.getZ() > halfExtent.getZ() ? 0x20 : 0x0); }    SIMD_FORCE_INLINE bool btRayAabb2(const btVector3& rayFrom,-								  const btVector3& rayInvDirection,-								  const unsigned int raySign[3],-								  const btVector3 bounds[2],-								  btScalar& tmin,-								  btScalar lambda_min,-								  btScalar lambda_max)+const btVector3& rayInvDirection,+const unsigned int raySign[3],+const btVector3 bounds[2],+btScalar& tmin,+btScalar lambda_min,+btScalar lambda_max) {-	btScalar tmax, tymin, tymax, tzmin, tzmax;-	tmin = (bounds[raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();-	tmax = (bounds[1-raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();-	tymin = (bounds[raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY();-	tymax = (bounds[1-raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY();+btScalar tmax, tymin, tymax, tzmin, tzmax;+tmin = (bounds[raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();+tmax = (bounds[1-raySign[0]].getX() - rayFrom.getX()) * rayInvDirection.getX();+tymin = (bounds[raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY();+tymax = (bounds[1-raySign[1]].getY() - rayFrom.getY()) * rayInvDirection.getY(); -	if ( (tmin > tymax) || (tymin > tmax) )-		return false;+if ( (tmin > tymax) || (tymin > tmax) )+return false; -	if (tymin > tmin)-		tmin = tymin;+if (tymin > tmin)+tmin = tymin; -	if (tymax < tmax)-		tmax = tymax;+if (tymax < tmax)+tmax = tymax; -	tzmin = (bounds[raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ();-	tzmax = (bounds[1-raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ();+tzmin = (bounds[raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ();+tzmax = (bounds[1-raySign[2]].getZ() - rayFrom.getZ()) * rayInvDirection.getZ(); -	if ( (tmin > tzmax) || (tzmin > tmax) )-		return false;-	if (tzmin > tmin)-		tmin = tzmin;-	if (tzmax < tmax)-		tmax = tzmax;-	return ( (tmin < lambda_max) && (tmax > lambda_min) );+if ( (tmin > tzmax) || (tzmin > tmax) )+return false;+if (tzmin > tmin)+tmin = tzmin;+if (tzmax < tmax)+tmax = tzmax;+return ( (tmin < lambda_max) && (tmax > lambda_min) ); } -SIMD_FORCE_INLINE bool btRayAabb(const btVector3& rayFrom, -								 const btVector3& rayTo, -								 const btVector3& aabbMin, -								 const btVector3& aabbMax,-					  btScalar& param, btVector3& normal) +SIMD_FORCE_INLINE bool btRayAabb(const btVector3& rayFrom,+const btVector3& rayTo,+const btVector3& aabbMin,+const btVector3& aabbMax,+btScalar& param, btVector3& normal) {-	btVector3 aabbHalfExtent = (aabbMax-aabbMin)* btScalar(0.5);-	btVector3 aabbCenter = (aabbMax+aabbMin)* btScalar(0.5);-	btVector3	source = rayFrom - aabbCenter;-	btVector3	target = rayTo - aabbCenter;-	int	sourceOutcode = btOutcode(source,aabbHalfExtent);-	int targetOutcode = btOutcode(target,aabbHalfExtent);-	if ((sourceOutcode & targetOutcode) == 0x0)-	{-		btScalar lambda_enter = btScalar(0.0);-		btScalar lambda_exit  = param;-		btVector3 r = target - source;-		int i;-		btScalar	normSign = 1;-		btVector3	hitNormal(0,0,0);-		int bit=1;+btVector3 aabbHalfExtent = (aabbMax-aabbMin)* btScalar(0.5);+btVector3 aabbCenter = (aabbMax+aabbMin)* btScalar(0.5);+btVector3 source = rayFrom - aabbCenter;+btVector3 target = rayTo - aabbCenter;+int sourceOutcode = btOutcode(source,aabbHalfExtent);+int targetOutcode = btOutcode(target,aabbHalfExtent);+if ((sourceOutcode & targetOutcode) == 0x0)+{+btScalar lambda_enter = btScalar(0.0);+btScalar lambda_exit = param;+btVector3 r = target - source;+int i;+btScalar normSign = 1;+btVector3 hitNormal(0,0,0);+int bit=1; -		for (int j=0;j<2;j++)-		{-			for (i = 0; i != 3; ++i)-			{-				if (sourceOutcode & bit)-				{-					btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];-					if (lambda_enter <= lambda)-					{-						lambda_enter = lambda;-						hitNormal.setValue(0,0,0);-						hitNormal[i] = normSign;-					}-				}-				else if (targetOutcode & bit) -				{-					btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];-					btSetMin(lambda_exit, lambda);-				}-				bit<<=1;-			}-			normSign = btScalar(-1.);-		}-		if (lambda_enter <= lambda_exit)-		{-			param = lambda_enter;-			normal = hitNormal;-			return true;-		}-	}-	return false;+for (int j=0;j<2;j++)+{+for (i = 0; i != 3; ++i)+{+if (sourceOutcode & bit)+{+btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];+if (lambda_enter <= lambda)+{+lambda_enter = lambda;+hitNormal.setValue(0,0,0);+hitNormal[i] = normSign; }+}+else if (targetOutcode & bit)+{+btScalar lambda = (-source[i] - aabbHalfExtent[i]*normSign) / r[i];+btSetMin(lambda_exit, lambda);+}+bit<<=1;+}+normSign = btScalar(-1.);+}+if (lambda_enter <= lambda_exit)+{+param = lambda_enter;+normal = hitNormal;+return true;+}+}+return false;+}   -SIMD_FORCE_INLINE	void btTransformAabb(const btVector3& halfExtents, btScalar margin,const btTransform& t,btVector3& aabbMinOut,btVector3& aabbMaxOut)+SIMD_FORCE_INLINE void btTransformAabb(const btVector3& halfExtents, btScalar margin,const btTransform& t,btVector3& aabbMinOut,btVector3& aabbMaxOut) {-	btVector3 halfExtentsWithMargin = halfExtents+btVector3(margin,margin,margin);-	btMatrix3x3 abs_b = t.getBasis().absolute();  -	btVector3 center = t.getOrigin();-	btVector3 extent = btVector3(abs_b[0].dot(halfExtentsWithMargin),-		   abs_b[1].dot(halfExtentsWithMargin),-		  abs_b[2].dot(halfExtentsWithMargin));-	aabbMinOut = center - extent;-	aabbMaxOut = center + extent;+btVector3 halfExtentsWithMargin = halfExtents+btVector3(margin,margin,margin);+btMatrix3x3 abs_b = t.getBasis().absolute();+btVector3 center = t.getOrigin();+btVector3 extent = btVector3(abs_b[0].dot(halfExtentsWithMargin),+abs_b[1].dot(halfExtentsWithMargin),+abs_b[2].dot(halfExtentsWithMargin));+aabbMinOut = center - extent;+aabbMaxOut = center + extent; }  -SIMD_FORCE_INLINE	void btTransformAabb(const btVector3& localAabbMin,const btVector3& localAabbMax, btScalar margin,const btTransform& trans,btVector3& aabbMinOut,btVector3& aabbMaxOut)+SIMD_FORCE_INLINE void btTransformAabb(const btVector3& localAabbMin,const btVector3& localAabbMax, btScalar margin,const btTransform& trans,btVector3& aabbMinOut,btVector3& aabbMaxOut) {-		btAssert(localAabbMin.getX() <= localAabbMax.getX());-		btAssert(localAabbMin.getY() <= localAabbMax.getY());-		btAssert(localAabbMin.getZ() <= localAabbMax.getZ());-		btVector3 localHalfExtents = btScalar(0.5)*(localAabbMax-localAabbMin);-		localHalfExtents+=btVector3(margin,margin,margin);+btAssert(localAabbMin.getX() <= localAabbMax.getX());+btAssert(localAabbMin.getY() <= localAabbMax.getY());+btAssert(localAabbMin.getZ() <= localAabbMax.getZ());+btVector3 localHalfExtents = btScalar(0.5)*(localAabbMax-localAabbMin);+localHalfExtents+=btVector3(margin,margin,margin); -		btVector3 localCenter = btScalar(0.5)*(localAabbMax+localAabbMin);-		btMatrix3x3 abs_b = trans.getBasis().absolute();  -		btVector3 center = trans(localCenter);-		btVector3 extent = btVector3(abs_b[0].dot(localHalfExtents),-			   abs_b[1].dot(localHalfExtents),-			  abs_b[2].dot(localHalfExtents));-		aabbMinOut = center-extent;-		aabbMaxOut = center+extent;+btVector3 localCenter = btScalar(0.5)*(localAabbMax+localAabbMin);+btMatrix3x3 abs_b = trans.getBasis().absolute();+btVector3 center = trans(localCenter);+btVector3 extent = btVector3(abs_b[0].dot(localHalfExtents),+abs_b[1].dot(localHalfExtents),+abs_b[2].dot(localHalfExtents));+aabbMinOut = center-extent;+aabbMaxOut = center+extent; }  #define USE_BANCHLESS 1 #ifdef USE_BANCHLESS-	//This block replaces the block below and uses no branches, and replaces the 8 bit return with a 32 bit return for improved performance (~3x on XBox 360)-	SIMD_FORCE_INLINE unsigned testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)-	{		-		return static_cast<unsigned int>(btSelect((unsigned)((aabbMin1[0] <= aabbMax2[0]) & (aabbMax1[0] >= aabbMin2[0])-			& (aabbMin1[2] <= aabbMax2[2]) & (aabbMax1[2] >= aabbMin2[2])-			& (aabbMin1[1] <= aabbMax2[1]) & (aabbMax1[1] >= aabbMin2[1])),-			1, 0));-	}+//This block replaces the block below and uses no branches, and replaces the 8 bit return with a 32 bit return for improved performance (~3x on XBox 360)+SIMD_FORCE_INLINE unsigned testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)+{+return static_cast<unsigned int>(btSelect((unsigned)((aabbMin1[0] <= aabbMax2[0]) & (aabbMax1[0] >= aabbMin2[0])+& (aabbMin1[2] <= aabbMax2[2]) & (aabbMax1[2] >= aabbMin2[2])+& (aabbMin1[1] <= aabbMax2[1]) & (aabbMax1[1] >= aabbMin2[1])),+1, 0));+} #else-	SIMD_FORCE_INLINE bool testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)-	{-		bool overlap = true;-		overlap = (aabbMin1[0] > aabbMax2[0] || aabbMax1[0] < aabbMin2[0]) ? false : overlap;-		overlap = (aabbMin1[2] > aabbMax2[2] || aabbMax1[2] < aabbMin2[2]) ? false : overlap;-		overlap = (aabbMin1[1] > aabbMax2[1] || aabbMax1[1] < aabbMin2[1]) ? false : overlap;-		return overlap;-	}+SIMD_FORCE_INLINE bool testQuantizedAabbAgainstQuantizedAabb(const unsigned short int* aabbMin1,const unsigned short int* aabbMax1,const unsigned short int* aabbMin2,const unsigned short int* aabbMax2)+{+bool overlap = true;+overlap = (aabbMin1[0] > aabbMax2[0] || aabbMax1[0] < aabbMin2[0]) ? false : overlap;+overlap = (aabbMin1[2] > aabbMax2[2] || aabbMax1[2] < aabbMin2[2]) ? false : overlap;+overlap = (aabbMin1[1] > aabbMax2[1] || aabbMax1[1] < aabbMin2[1]) ? false : overlap;+return overlap;+} #endif //USE_BANCHLESS  #endif //BT_AABB_UTIL2
bullet/LinearMath/btAlignedAllocator.h view
@@ -1,6 +1,6 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.@@ -25,24 +25,24 @@ #ifdef BT_DEBUG_MEMORY_ALLOCATIONS  #define btAlignedAlloc(a,b) \-		btAlignedAllocInternal(a,b,__LINE__,__FILE__)+btAlignedAllocInternal(a,b,__LINE__,__FILE__)  #define btAlignedFree(ptr) \-		btAlignedFreeInternal(ptr,__LINE__,__FILE__)+btAlignedFreeInternal(ptr,__LINE__,__FILE__) -void*	btAlignedAllocInternal	(size_t size, int alignment,int line,char* filename);+void* btAlignedAllocInternal (size_t size, int alignment,int line,char* filename); -void	btAlignedFreeInternal	(void* ptr,int line,char* filename);+void btAlignedFreeInternal (void* ptr,int line,char* filename);  #else-	void*	btAlignedAllocInternal	(size_t size, int alignment);-	void	btAlignedFreeInternal	(void* ptr);+void* btAlignedAllocInternal (size_t size, int alignment);+void btAlignedFreeInternal (void* ptr); -	#define btAlignedAlloc(size,alignment) btAlignedAllocInternal(size,alignment)-	#define btAlignedFree(ptr) btAlignedFreeInternal(ptr)+#define btAlignedAlloc(size,alignment) btAlignedAllocInternal(size,alignment)+#define btAlignedFree(ptr) btAlignedFreeInternal(ptr)  #endif-typedef int	size_type;+typedef int size_type;  typedef void *(btAlignedAllocFunc)(size_t size, int alignment); typedef void (btAlignedFreeFunc)(void *memblock);@@ -59,46 +59,46 @@ ///Default implementations for unaligned and aligned allocations can be overridden by a custom allocator using btAlignedAllocSetCustom and btAlignedAllocSetCustomAligned. template < typename T , unsigned Alignment > class btAlignedAllocator {-	-	typedef btAlignedAllocator< T , Alignment > self_type;-	++typedef btAlignedAllocator< T , Alignment > self_type;+ public: -	//just going down a list:-	btAlignedAllocator() {}-	/*-	btAlignedAllocator( const self_type & ) {}-	*/+//just going down a list:+btAlignedAllocator() {}+/*+btAlignedAllocator( const self_type & ) {}+*/ -	template < typename Other >-	btAlignedAllocator( const btAlignedAllocator< Other , Alignment > & ) {}+template < typename Other >+btAlignedAllocator( const btAlignedAllocator< Other , Alignment > & ) {} -	typedef const T*         const_pointer;-	typedef const T&         const_reference;-	typedef T*               pointer;-	typedef T&               reference;-	typedef T                value_type;+typedef const T* const_pointer;+typedef const T& const_reference;+typedef T* pointer;+typedef T& reference;+typedef T value_type; -	pointer       address   ( reference        ref ) const                           { return &ref; }-	const_pointer address   ( const_reference  ref ) const                           { return &ref; }-	pointer       allocate  ( size_type        n   , const_pointer *      hint = 0 ) {-		(void)hint;-		return reinterpret_cast< pointer >(btAlignedAlloc( sizeof(value_type) * n , Alignment ));-	}-	void          construct ( pointer          ptr , const value_type &   value    ) { new (ptr) value_type( value ); }-	void          deallocate( pointer          ptr ) {-		btAlignedFree( reinterpret_cast< void * >( ptr ) );-	}-	void          destroy   ( pointer          ptr )                                 { ptr->~value_type(); }-	+pointer address ( reference ref ) const { return &ref; }+const_pointer address ( const_reference ref ) const { return &ref; }+pointer allocate ( size_type n , const_pointer * hint = 0 ) {+(void)hint;+return reinterpret_cast< pointer >(btAlignedAlloc( sizeof(value_type) * n , Alignment ));+}+void construct ( pointer ptr , const value_type & value ) { new (ptr) value_type( value ); }+void deallocate( pointer ptr ) {+btAlignedFree( reinterpret_cast< void * >( ptr ) );+}+void destroy ( pointer ptr ) { ptr->~value_type(); } -	template < typename O > struct rebind {-		typedef btAlignedAllocator< O , Alignment > other;-	};-	template < typename O >-	self_type & operator=( const btAlignedAllocator< O , Alignment > & ) { return *this; } -	friend bool operator==( const self_type & , const self_type & ) { return true; }+template < typename O > struct rebind {+typedef btAlignedAllocator< O , Alignment > other;+};+template < typename O >+self_type & operator=( const btAlignedAllocator< O , Alignment > & ) { return *this; }++friend bool operator==( const self_type & , const self_type & ) { return true; } };  
bullet/LinearMath/btAlignedObjectArray.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -41,430 +41,439 @@  ///The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods ///It is developed to replace stl::vector to avoid portability issues, including STL alignment issues to add SIMD/SSE data-template <typename T> -//template <class T> +template <typename T>+//template <class T> class btAlignedObjectArray-{-	btAlignedAllocator<T , 16>	m_allocator;+{ private:+btAlignedAllocator<T , 16> m_allocator; -	int					m_size;-	int					m_capacity;-	T*					m_data;-	//PCK: added this line-	bool				m_ownsMemory;+int m_size;+int m_capacity;+T* m_data;+//PCK: added this line+bool m_ownsMemory; -	protected:-		SIMD_FORCE_INLINE	int	allocSize(int size)-		{-			return (size ? size*2 : 1);-		}-		SIMD_FORCE_INLINE	void	copy(int start,int end, T* dest) const-		{-			int i;-			for (i=start;i<end;++i)+protected:+SIMD_FORCE_INLINE int allocSize(int size)+{+return (size ? size*2 : 1);+}+SIMD_FORCE_INLINE void copy(int start,int end, T* dest) const+{+int i;+for (i=start;i<end;++i) #ifdef BT_USE_PLACEMENT_NEW-				new (&dest[i]) T(m_data[i]);+new (&dest[i]) T(m_data[i]); #else-				dest[i] = m_data[i];+dest[i] = m_data[i]; #endif //BT_USE_PLACEMENT_NEW-		}+} -		SIMD_FORCE_INLINE	void	init()-		{-			//PCK: added this line-			m_ownsMemory = true;-			m_data = 0;-			m_size = 0;-			m_capacity = 0;-		}-		SIMD_FORCE_INLINE	void	destroy(int first,int last)-		{-			int i;-			for (i=first; i<last;i++)-			{-				m_data[i].~T();-			}-		}+SIMD_FORCE_INLINE void init()+{+//PCK: added this line+m_ownsMemory = true;+m_data = 0;+m_size = 0;+m_capacity = 0;+}+SIMD_FORCE_INLINE void destroy(int first,int last)+{+int i;+for (i=first; i<last;i++)+{+m_data[i].~T();+}+} -		SIMD_FORCE_INLINE	void* allocate(int size)-		{-			if (size)-				return m_allocator.allocate(size);-			return 0;-		}+SIMD_FORCE_INLINE void* allocate(int size)+{+if (size)+return m_allocator.allocate(size);+return 0;+} -		SIMD_FORCE_INLINE	void	deallocate()-		{-			if(m_data)	{-				//PCK: enclosed the deallocation in this block-				if (m_ownsMemory)-				{-					m_allocator.deallocate(m_data);-				}-				m_data = 0;-			}-		}+SIMD_FORCE_INLINE void deallocate()+{+if(m_data) {+//PCK: enclosed the deallocation in this block+if (m_ownsMemory)+{+m_allocator.deallocate(m_data);+}+m_data = 0;+}+} -	  -	public:-		-		btAlignedObjectArray()-		{-			init();-		} -		~btAlignedObjectArray()-		{-			clear();-		}+public: -		///Generally it is best to avoid using the copy constructor of an btAlignedObjectArray, and use a (const) reference to the array instead.-		btAlignedObjectArray(const btAlignedObjectArray& otherArray)-		{-			init();+btAlignedObjectArray()+{+init();+} -			int otherSize = otherArray.size();-			resize (otherSize);-			otherArray.copy(0, otherSize, m_data);-		}+~btAlignedObjectArray()+{+clear();+} -		-		-		/// return the number of elements in the array-		SIMD_FORCE_INLINE	int size() const-		{	-			return m_size;-		}-		-		SIMD_FORCE_INLINE const T& at(int n) const-		{-			return m_data[n];-		}+///Generally it is best to avoid using the copy constructor of an btAlignedObjectArray, and use a (const) reference to the array instead.+btAlignedObjectArray(const btAlignedObjectArray& otherArray)+{+init(); -		SIMD_FORCE_INLINE T& at(int n)-		{-			return m_data[n];-		}+int otherSize = otherArray.size();+resize (otherSize);+otherArray.copy(0, otherSize, m_data);+} -		SIMD_FORCE_INLINE const T& operator[](int n) const-		{-			return m_data[n];-		} -		SIMD_FORCE_INLINE T& operator[](int n)-		{-			return m_data[n];-		}-		 -		///clear the array, deallocated memory. Generally it is better to use array.resize(0), to reduce performance overhead of run-time memory (de)allocations.-		SIMD_FORCE_INLINE	void	clear()-		{-			destroy(0,size());-			-			deallocate();-			-			init();-		}+/// return the number of elements in the array+SIMD_FORCE_INLINE int size() const+{+return m_size;+} -		SIMD_FORCE_INLINE	void	pop_back()-		{-			m_size--;-			m_data[m_size].~T();-		}+SIMD_FORCE_INLINE const T& at(int n) const+{+btAssert(n>=0);+btAssert(n<size());+return m_data[n];+} -		///resize changes the number of elements in the array. If the new size is larger, the new elements will be constructed using the optional second argument.-		///when the new number of elements is smaller, the destructor will be called, but memory will not be freed, to reduce performance overhead of run-time memory (de)allocations.-		SIMD_FORCE_INLINE	void	resize(int newsize, const T& fillData=T())-		{-			int curSize = size();+SIMD_FORCE_INLINE T& at(int n)+{+btAssert(n>=0);+btAssert(n<size());+return m_data[n];+} -			if (newsize < curSize)-			{-				for(int i = newsize; i < curSize; i++)-				{-					m_data[i].~T();-				}-			} else-			{-				if (newsize > size())-				{-					reserve(newsize);-				}+SIMD_FORCE_INLINE const T& operator[](int n) const+{+btAssert(n>=0);+btAssert(n<size());+return m_data[n];+}++SIMD_FORCE_INLINE T& operator[](int n)+{+btAssert(n>=0);+btAssert(n<size());+return m_data[n];+}+++///clear the array, deallocated memory. Generally it is better to use array.resize(0), to reduce performance overhead of run-time memory (de)allocations.+SIMD_FORCE_INLINE void clear()+{+destroy(0,size());++deallocate();++init();+}++SIMD_FORCE_INLINE void pop_back()+{+btAssert(m_size>0);+m_size--;+m_data[m_size].~T();+}++///resize changes the number of elements in the array. If the new size is larger, the new elements will be constructed using the optional second argument.+///when the new number of elements is smaller, the destructor will be called, but memory will not be freed, to reduce performance overhead of run-time memory (de)allocations.+SIMD_FORCE_INLINE void resize(int newsize, const T& fillData=T())+{+int curSize = size();++if (newsize < curSize)+{+for(int i = newsize; i < curSize; i++)+{+m_data[i].~T();+}+} else+{+if (newsize > size())+{+reserve(newsize);+} #ifdef BT_USE_PLACEMENT_NEW-				for (int i=curSize;i<newsize;i++)-				{-					new ( &m_data[i]) T(fillData);-				}+for (int i=curSize;i<newsize;i++)+{+new ( &m_data[i]) T(fillData);+} #endif //BT_USE_PLACEMENT_NEW -			}+} -			m_size = newsize;-		}-	-		SIMD_FORCE_INLINE	T&  expandNonInitializing( )-		{	-			int sz = size();-			if( sz == capacity() )-			{-				reserve( allocSize(size()) );-			}-			m_size++;+m_size = newsize;+} -			return m_data[sz];		-		}+SIMD_FORCE_INLINE T& expandNonInitializing( )+{+int sz = size();+if( sz == capacity() )+{+reserve( allocSize(size()) );+}+m_size++; +return m_data[sz];+} -		SIMD_FORCE_INLINE	T&  expand( const T& fillValue=T())-		{	-			int sz = size();-			if( sz == capacity() )-			{-				reserve( allocSize(size()) );-			}-			m_size++;++SIMD_FORCE_INLINE T& expand( const T& fillValue=T())+{+int sz = size();+if( sz == capacity() )+{+reserve( allocSize(size()) );+}+m_size++; #ifdef BT_USE_PLACEMENT_NEW-			new (&m_data[sz]) T(fillValue); //use the in-place new (not really allocating heap memory)+new (&m_data[sz]) T(fillValue); //use the in-place new (not really allocating heap memory) #endif -			return m_data[sz];		-		}+return m_data[sz];+}  -		SIMD_FORCE_INLINE	void push_back(const T& _Val)-		{	-			int sz = size();-			if( sz == capacity() )-			{-				reserve( allocSize(size()) );-			}-			+SIMD_FORCE_INLINE void push_back(const T& _Val)+{+int sz = size();+if( sz == capacity() )+{+reserve( allocSize(size()) );+}+ #ifdef BT_USE_PLACEMENT_NEW-			new ( &m_data[m_size] ) T(_Val);+new ( &m_data[m_size] ) T(_Val); #else-			m_data[size()] = _Val;			+m_data[size()] = _Val; #endif //BT_USE_PLACEMENT_NEW -			m_size++;-		}+m_size++;+} -	-		/// return the pre-allocated (reserved) elements, this is at least as large as the total number of elements,see size() and reserve()-		SIMD_FORCE_INLINE	int capacity() const-		{	-			return m_capacity;-		}-		-		SIMD_FORCE_INLINE	void reserve(int _Count)-		{	// determine new minimum length of allocated storage-			if (capacity() < _Count)-			{	// not enough room, reallocate-				T*	s = (T*)allocate(_Count); -				copy(0, size(), s);+/// return the pre-allocated (reserved) elements, this is at least as large as the total number of elements,see size() and reserve()+SIMD_FORCE_INLINE int capacity() const+{+return m_capacity;+} -				destroy(0,size());+SIMD_FORCE_INLINE void reserve(int _Count)+{ // determine new minimum length of allocated storage+if (capacity() < _Count)+{ // not enough room, reallocate+T* s = (T*)allocate(_Count); -				deallocate();-				-				//PCK: added this line-				m_ownsMemory = true;+copy(0, size(), s); -				m_data = s;-				-				m_capacity = _Count;+destroy(0,size()); -			}-		}+deallocate(); +//PCK: added this line+m_ownsMemory = true; -		class less-		{-			public:+m_data = s; -				bool operator() ( const T& a, const T& b )-				{-					return ( a < b );-				}-		};-	-		template <typename L>-		void quickSortInternal(L CompareFunc,int lo, int hi)-		{-		//  lo is the lower index, hi is the upper index-		//  of the region of array a that is to be sorted-			int i=lo, j=hi;-			T x=m_data[(lo+hi)/2];+m_capacity = _Count; -			//  partition-			do-			{    -				while (CompareFunc(m_data[i],x)) -					i++; -				while (CompareFunc(x,m_data[j])) -					j--;-				if (i<=j)-				{-					swap(i,j);-					i++; j--;-				}-			} while (i<=j);+}+} -			//  recursion-			if (lo<j) -				quickSortInternal( CompareFunc, lo, j);-			if (i<hi) -				quickSortInternal( CompareFunc, i, hi);-		} +class less+{ private:+public: -		template <typename L>-		void quickSort(L CompareFunc)-		{-			//don't sort 0 or 1 elements-			if (size()>1)-			{-				quickSortInternal(CompareFunc,0,size()-1);-			}-		}+bool operator() ( const T& a, const T& b )+{+return ( a < b );+}+}; +template <typename L>+void quickSortInternal(L CompareFunc,int lo, int hi)+{+// lo is the lower index, hi is the upper index+// of the region of array a that is to be sorted+int i=lo, j=hi;+T x=m_data[(lo+hi)/2]; -		///heap sort from http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Heap/-		template <typename L>-		void downHeap(T *pArr, int k, int n,L CompareFunc)-		{-			/*  PRE: a[k+1..N] is a heap */-			/* POST:  a[k..N]  is a heap */-			-			T temp = pArr[k - 1];-			/* k has child(s) */-			while (k <= n/2) -			{-				int child = 2*k;-				-				if ((child < n) && CompareFunc(pArr[child - 1] , pArr[child]))-				{-					child++;-				}-				/* pick larger child */-				if (CompareFunc(temp , pArr[child - 1]))-				{-					/* move child up */-					pArr[k - 1] = pArr[child - 1];-					k = child;-				}-				else-				{-					break;-				}-			}-			pArr[k - 1] = temp;-		} /*downHeap*/+// partition+do+{+while (CompareFunc(m_data[i],x))+i++;+while (CompareFunc(x,m_data[j]))+j--;+if (i<=j)+{+swap(i,j);+i++; j--;+}+} while (i<=j); -		void	swap(int index0,int index1)-		{+// recursion+if (lo<j)+quickSortInternal( CompareFunc, lo, j);+if (i<hi)+quickSortInternal( CompareFunc, i, hi);+}+++template <typename L>+void quickSort(L CompareFunc)+{+//don't sort 0 or 1 elements+if (size()>1)+{+quickSortInternal(CompareFunc,0,size()-1);+}+}+++///heap sort from http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Heap/+template <typename L>+void downHeap(T *pArr, int k, int n,L CompareFunc)+{+/* PRE: a[k+1..N] is a heap */+/* POST: a[k..N] is a heap */++T temp = pArr[k - 1];+/* k has child(s) */+while (k <= n/2)+{+int child = 2*k;++if ((child < n) && CompareFunc(pArr[child - 1] , pArr[child]))+{+child++;+}+/* pick larger child */+if (CompareFunc(temp , pArr[child - 1]))+{+/* move child up */+pArr[k - 1] = pArr[child - 1];+k = child;+}+else+{+break;+}+}+pArr[k - 1] = temp;+} /*downHeap*/++void swap(int index0,int index1)+{ #ifdef BT_USE_MEMCPY-			char	temp[sizeof(T)];-			memcpy(temp,&m_data[index0],sizeof(T));-			memcpy(&m_data[index0],&m_data[index1],sizeof(T));-			memcpy(&m_data[index1],temp,sizeof(T));+char temp[sizeof(T)];+memcpy(temp,&m_data[index0],sizeof(T));+memcpy(&m_data[index0],&m_data[index1],sizeof(T));+memcpy(&m_data[index1],temp,sizeof(T)); #else-			T temp = m_data[index0];-			m_data[index0] = m_data[index1];-			m_data[index1] = temp;+T temp = m_data[index0];+m_data[index0] = m_data[index1];+m_data[index1] = temp; #endif //BT_USE_PLACEMENT_NEW -		}+} -	template <typename L>-	void heapSort(L CompareFunc)-	{-		/* sort a[0..N-1],  N.B. 0 to N-1 */-		int k;-		int n = m_size;-		for (k = n/2; k > 0; k--) -		{-			downHeap(m_data, k, n, CompareFunc);-		}+template <typename L>+void heapSort(L CompareFunc)+{+/* sort a[0..N-1], N.B. 0 to N-1 */+int k;+int n = m_size;+for (k = n/2; k > 0; k--)+{+downHeap(m_data, k, n, CompareFunc);+} -		/* a[1..N] is now a heap */-		while ( n>=1 ) -		{-			swap(0,n-1); /* largest of a[0..n-1] */+/* a[1..N] is now a heap */+while ( n>=1 )+{+swap(0,n-1); /* largest of a[0..n-1] */  -			n = n - 1;-			/* restore a[1..i-1] heap */-			downHeap(m_data, 1, n, CompareFunc);-		} -	}+n = n - 1;+/* restore a[1..i-1] heap */+downHeap(m_data, 1, n, CompareFunc);+}+} -	///non-recursive binary search, assumes sorted array-	int	findBinarySearch(const T& key) const-	{-		int first = 0;-		int last = size()-1;+///non-recursive binary search, assumes sorted array+int findBinarySearch(const T& key) const+{+int first = 0;+int last = size()-1; -		//assume sorted array-		while (first <= last) {-			int mid = (first + last) / 2;  // compute mid point.-			if (key > m_data[mid]) -				first = mid + 1;  // repeat search in top half.-			else if (key < m_data[mid]) -				last = mid - 1; // repeat search in bottom half.-			else-				return mid;     // found it. return position /////-		}-		return size();    // failed to find key-	}+//assume sorted array+while (first <= last) {+int mid = (first + last) / 2; // compute mid point.+if (key > m_data[mid])+first = mid + 1; // repeat search in top half.+else if (key < m_data[mid])+last = mid - 1; // repeat search in bottom half.+else+return mid; // found it. return position /////+}+return size(); // failed to find key+}  -	int	findLinearSearch(const T& key) const-	{-		int index=size();-		int i;+int findLinearSearch(const T& key) const+{+int index=size();+int i; -		for (i=0;i<size();i++)-		{-			if (m_data[i] == key)-			{-				index = i;-				break;-			}-		}-		return index;-	}+for (i=0;i<size();i++)+{+if (m_data[i] == key)+{+index = i;+break;+}+}+return index;+} -	void	remove(const T& key)-	{+void remove(const T& key)+{ -		int findIndex = findLinearSearch(key);-		if (findIndex<size())-		{-			swap( findIndex,size()-1);-			pop_back();-		}-	}+int findIndex = findLinearSearch(key);+if (findIndex<size())+{+swap( findIndex,size()-1);+pop_back();+}+} -	//PCK: whole function-	void initializeFromBuffer(void *buffer, int size, int capacity)-	{-		clear();-		m_ownsMemory = false;-		m_data = (T*)buffer;-		m_size = size;-		m_capacity = capacity;-	}+//PCK: whole function+void initializeFromBuffer(void *buffer, int size, int capacity)+{+clear();+m_ownsMemory = false;+m_data = (T*)buffer;+m_size = size;+m_capacity = capacity;+} -	void copyFromArray(const btAlignedObjectArray& otherArray)-	{-		int otherSize = otherArray.size();-		resize (otherSize);-		otherArray.copy(0, otherSize, m_data);-	}+void copyFromArray(const btAlignedObjectArray& otherArray)+{+int otherSize = otherArray.size();+resize (otherSize);+otherArray.copy(0, otherSize, m_data);+}  }; 
bullet/LinearMath/btConvexHull.h view
@@ -5,8 +5,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,21 +25,21 @@ typedef btAlignedObjectArray<unsigned int> TUIntArray;  class HullResult-{+{ private: public:-	HullResult(void)-	{-		mPolygons = true;-		mNumOutputVertices = 0;-		mNumFaces = 0;-		mNumIndices = 0;-	}-	bool                    mPolygons;                  // true if indices represents polygons, false indices are triangles-	unsigned int            mNumOutputVertices;         // number of vertices in the output hull-	btAlignedObjectArray<btVector3>	m_OutputVertices;            // array of vertices-	unsigned int            mNumFaces;                  // the number of faces produced-	unsigned int            mNumIndices;                // the total number of indices-	btAlignedObjectArray<unsigned int>    m_Indices;                   // pointer to indices.+HullResult(void)+{+mPolygons = true;+mNumOutputVertices = 0;+mNumFaces = 0;+mNumIndices = 0;+}+bool mPolygons; // true if indices represents polygons, false indices are triangles+unsigned int mNumOutputVertices; // number of vertices in the output hull+btAlignedObjectArray<btVector3> m_OutputVertices; // array of vertices+unsigned int mNumFaces; // the number of faces produced+unsigned int mNumIndices; // the total number of indices+btAlignedObjectArray<unsigned int> m_Indices; // pointer to indices.  // If triangles, then indices are array indexes into the vertex list. // If polygons, indices are in the form (number of points in face) (p1, p2, p3, ..) etc..@@ -47,134 +47,134 @@  enum HullFlag {-	QF_TRIANGLES         = (1<<0),             // report results as triangles, not polygons.-	QF_REVERSE_ORDER     = (1<<1),             // reverse order of the triangle indices.-	QF_DEFAULT           = QF_TRIANGLES+QF_TRIANGLES = (1<<0), // report results as triangles, not polygons.+QF_REVERSE_ORDER = (1<<1), // reverse order of the triangle indices.+QF_DEFAULT = QF_TRIANGLES };   class HullDesc-{+{ private: public:-	HullDesc(void)-	{-		mFlags          = QF_DEFAULT;-		mVcount         = 0;-		mVertices       = 0;-		mVertexStride   = sizeof(btVector3);-		mNormalEpsilon  = 0.001f;-		mMaxVertices	= 4096; // maximum number of points to be considered for a convex hull.-		mMaxFaces	= 4096;-	};+HullDesc(void)+{+mFlags = QF_DEFAULT;+mVcount = 0;+mVertices = 0;+mVertexStride = sizeof(btVector3);+mNormalEpsilon = 0.001f;+mMaxVertices = 4096; // maximum number of points to be considered for a convex hull.+mMaxFaces = 4096;+}; -	HullDesc(HullFlag flag,-		 unsigned int vcount,-		 const btVector3 *vertices,-		 unsigned int stride = sizeof(btVector3))-	{-		mFlags          = flag;-		mVcount         = vcount;-		mVertices       = vertices;-		mVertexStride   = stride;-		mNormalEpsilon  = btScalar(0.001);-		mMaxVertices    = 4096;-	}+HullDesc(HullFlag flag,+unsigned int vcount,+const btVector3 *vertices,+unsigned int stride = sizeof(btVector3))+{+mFlags = flag;+mVcount = vcount;+mVertices = vertices;+mVertexStride = stride;+mNormalEpsilon = btScalar(0.001);+mMaxVertices = 4096;+} -	bool HasHullFlag(HullFlag flag) const-	{-		if ( mFlags & flag ) return true;-		return false;-	}+bool HasHullFlag(HullFlag flag) const+{+if ( mFlags & flag ) return true;+return false;+} -	void SetHullFlag(HullFlag flag)-	{-		mFlags|=flag;-	}+void SetHullFlag(HullFlag flag)+{+mFlags|=flag;+} -	void ClearHullFlag(HullFlag flag)-	{-		mFlags&=~flag;-	}+void ClearHullFlag(HullFlag flag)+{+mFlags&=~flag;+} -	unsigned int      mFlags;           // flags to use when generating the convex hull.-	unsigned int      mVcount;          // number of vertices in the input point cloud-	const btVector3  *mVertices;        // the array of vertices.-	unsigned int      mVertexStride;    // the stride of each vertex, in bytes.-	btScalar             mNormalEpsilon;   // the epsilon for removing duplicates.  This is a normalized value, if normalized bit is on.-	unsigned int      mMaxVertices;     // maximum number of vertices to be considered for the hull!-	unsigned int      mMaxFaces;+unsigned int mFlags; // flags to use when generating the convex hull.+unsigned int mVcount; // number of vertices in the input point cloud+const btVector3 *mVertices; // the array of vertices.+unsigned int mVertexStride; // the stride of each vertex, in bytes.+btScalar mNormalEpsilon; // the epsilon for removing duplicates. This is a normalized value, if normalized bit is on.+unsigned int mMaxVertices; // maximum number of vertices to be considered for the hull!+unsigned int mMaxFaces; };  enum HullError {-	QE_OK,            // success!-	QE_FAIL           // failed.+QE_OK, // success!+QE_FAIL // failed. };  class btPlane-{-	public:-	btVector3	normal;-	btScalar	dist;   // distance below origin - the D from plane equasion Ax+By+Cz+D=0-			btPlane(const btVector3 &n,btScalar d):normal(n),dist(d){}-			btPlane():normal(),dist(0){}-	+{ private:+public:+btVector3 normal;+btScalar dist; // distance below origin - the D from plane equasion Ax+By+Cz+D=0+btPlane(const btVector3 &n,btScalar d):normal(n),dist(d){}+btPlane():normal(),dist(0){}+ };   -class ConvexH +class ConvexH+{ private:+public:+class HalfEdge+{ private:+public:+short ea; // the other half of the edge (index into edges list)+unsigned char v; // the vertex at the start of this edge (index into vertices list)+unsigned char p; // the facet on which this edge lies (index into facets list)+HalfEdge(){}+HalfEdge(short _ea,unsigned char _v, unsigned char _p):ea(_ea),v(_v),p(_p){}+};+ConvexH() {-  public:-	class HalfEdge-	{-	  public:-		short ea;         // the other half of the edge (index into edges list)-		unsigned char v;  // the vertex at the start of this edge (index into vertices list)-		unsigned char p;  // the facet on which this edge lies (index into facets list)-		HalfEdge(){}-		HalfEdge(short _ea,unsigned char _v, unsigned char _p):ea(_ea),v(_v),p(_p){}-	};-	ConvexH()-	{-	}-	~ConvexH()-	{-	}-	btAlignedObjectArray<btVector3> vertices;-	btAlignedObjectArray<HalfEdge> edges;-	btAlignedObjectArray<btPlane>  facets;-	ConvexH(int vertices_size,int edges_size,int facets_size);+}+~ConvexH()+{+}+btAlignedObjectArray<btVector3> vertices;+btAlignedObjectArray<HalfEdge> edges;+btAlignedObjectArray<btPlane> facets;+ConvexH(int vertices_size,int edges_size,int facets_size); };   class int4-{+{ private: public:-	int x,y,z,w;-	int4(){};-	int4(int _x,int _y, int _z,int _w){x=_x;y=_y;z=_z;w=_w;}-	const int& operator[](int i) const {return (&x)[i];}-	int& operator[](int i) {return (&x)[i];}+int x,y,z,w;+int4(){};+int4(int _x,int _y, int _z,int _w){x=_x;y=_y;z=_z;w=_w;}+const int& operator[](int i) const {return (&x)[i];}+int& operator[](int i) {return (&x)[i];} };  class PHullResult-{+{ private: public: -	PHullResult(void)-	{-		mVcount = 0;-		mIndexCount = 0;-		mFaceCount = 0;-		mVertices = 0;-	}+PHullResult(void)+{+mVcount = 0;+mIndexCount = 0;+mFaceCount = 0;+mVertices = 0;+} -	unsigned int mVcount;-	unsigned int mIndexCount;-	unsigned int mFaceCount;-	btVector3*   mVertices;-	TUIntArray m_Indices;+unsigned int mVcount;+unsigned int mIndexCount;+unsigned int mFaceCount;+btVector3* mVertices;+TUIntArray m_Indices; };  @@ -182,58 +182,58 @@ ///The HullLibrary class can create a convex hull from a collection of vertices, using the ComputeHull method. ///The btShapeHull class uses this HullLibrary to create a approximate convex mesh given a general (non-polyhedral) convex shape. class HullLibrary-{+{ private: -	btAlignedObjectArray<class btHullTriangle*> m_tris;+btAlignedObjectArray<class btHullTriangle*> m_tris;  public: -	btAlignedObjectArray<int> m_vertexIndexMapping;+btAlignedObjectArray<int> m_vertexIndexMapping;  -	HullError CreateConvexHull(const HullDesc& desc, // describes the input request-				   HullResult&     result);        // contains the resulst-	HullError ReleaseResult(HullResult &result); // release memory allocated for this result, we are done with it.+HullError CreateConvexHull(const HullDesc& desc, // describes the input request+HullResult& result); // contains the resulst+HullError ReleaseResult(HullResult &result); // release memory allocated for this result, we are done with it.  private: -	bool ComputeHull(unsigned int vcount,const btVector3 *vertices,PHullResult &result,unsigned int vlimit);+bool ComputeHull(unsigned int vcount,const btVector3 *vertices,PHullResult &result,unsigned int vlimit); -	class btHullTriangle*	allocateTriangle(int a,int b,int c);-	void	deAllocateTriangle(btHullTriangle*);-	void b2bfix(btHullTriangle* s,btHullTriangle*t);+class btHullTriangle* allocateTriangle(int a,int b,int c);+void deAllocateTriangle(btHullTriangle*);+void b2bfix(btHullTriangle* s,btHullTriangle*t); -	void removeb2b(btHullTriangle* s,btHullTriangle*t);+void removeb2b(btHullTriangle* s,btHullTriangle*t); -	void checkit(btHullTriangle *t);+void checkit(btHullTriangle *t); -	btHullTriangle* extrudable(btScalar epsilon);+btHullTriangle* extrudable(btScalar epsilon); -	int calchull(btVector3 *verts,int verts_count, TUIntArray& tris_out, int &tris_count,int vlimit);+int calchull(btVector3 *verts,int verts_count, TUIntArray& tris_out, int &tris_count,int vlimit); -	int calchullgen(btVector3 *verts,int verts_count, int vlimit);+int calchullgen(btVector3 *verts,int verts_count, int vlimit); -	int4 FindSimplex(btVector3 *verts,int verts_count,btAlignedObjectArray<int> &allow);+int4 FindSimplex(btVector3 *verts,int verts_count,btAlignedObjectArray<int> &allow); -	class ConvexH* ConvexHCrop(ConvexH& convex,const btPlane& slice);+class ConvexH* ConvexHCrop(ConvexH& convex,const btPlane& slice); -	void extrude(class btHullTriangle* t0,int v);+void extrude(class btHullTriangle* t0,int v); -	ConvexH* test_cube();+ConvexH* test_cube(); -	//BringOutYourDead (John Ratcliff): When you create a convex hull you hand it a large input set of vertices forming a 'point cloud'. -	//After the hull is generated it give you back a set of polygon faces which index the *original* point cloud.-	//The thing is, often times, there are many 'dead vertices' in the point cloud that are on longer referenced by the hull.-	//The routine 'BringOutYourDead' find only the referenced vertices, copies them to an new buffer, and re-indexes the hull so that it is a minimal representation.-	void BringOutYourDead(const btVector3* verts,unsigned int vcount, btVector3* overts,unsigned int &ocount,unsigned int* indices,unsigned indexcount);+//BringOutYourDead (John Ratcliff): When you create a convex hull you hand it a large input set of vertices forming a 'point cloud'.+//After the hull is generated it give you back a set of polygon faces which index the *original* point cloud.+//The thing is, often times, there are many 'dead vertices' in the point cloud that are on longer referenced by the hull.+//The routine 'BringOutYourDead' find only the referenced vertices, copies them to an new buffer, and re-indexes the hull so that it is a minimal representation.+void BringOutYourDead(const btVector3* verts,unsigned int vcount, btVector3* overts,unsigned int &ocount,unsigned int* indices,unsigned indexcount); -	bool CleanupVertices(unsigned int svcount,-			     const btVector3* svertices,-			     unsigned int stride,-			     unsigned int &vcount, // output number of vertices-			     btVector3* vertices, // location to store the results.-			     btScalar  normalepsilon,-			     btVector3& scale);+bool CleanupVertices(unsigned int svcount,+const btVector3* svertices,+unsigned int stride,+unsigned int &vcount, // output number of vertices+btVector3* vertices, // location to store the results.+btScalar normalepsilon,+btVector3& scale); };  
bullet/LinearMath/btConvexHullComputer.h view
@@ -1,103 +1,103 @@-/*
-Copyright (c) 2011 Ole Kniemeyer, MAXON, www.maxon.net
-
-This software is provided 'as-is', without any express or implied warranty.
-In no event will the authors be held liable for any damages arising from the use of this software.
-Permission is granted to anyone to use this software for any purpose, 
-including commercial applications, and to alter it and redistribute it freely, 
-subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-*/
-
-#ifndef BT_CONVEX_HULL_COMPUTER_H
-#define BT_CONVEX_HULL_COMPUTER_H
-
-#include "btVector3.h"
-#include "btAlignedObjectArray.h"
-
-/// Convex hull implementation based on Preparata and Hong
-/// See http://code.google.com/p/bullet/issues/detail?id=275
-/// Ole Kniemeyer, MAXON Computer GmbH
-class btConvexHullComputer
-{
-	private:
-		btScalar compute(const void* coords, bool doubleCoords, int stride, int count, btScalar shrink, btScalar shrinkClamp);
-
-	public:
-
-		class Edge
-		{
-			private:
-				int next;
-				int reverse;
-				int targetVertex;
-
-				friend class btConvexHullComputer;
-
-			public:
-				int getSourceVertex() const
-				{
-					return (this + reverse)->targetVertex;
-				}
-
-				int getTargetVertex() const
-				{
-					return targetVertex;
-				}
-
-				const Edge* getNextEdgeOfVertex() const // counter-clockwise list of all edges of a vertex
-				{
-					return this + next;
-				}
-
-				const Edge* getNextEdgeOfFace() const // clockwise list of all edges of a face
-				{
-					return (this + reverse)->getNextEdgeOfVertex();
-				}
-
-				const Edge* getReverseEdge() const
-				{
-					return this + reverse;
-				}
-		};
-
-
-		// Vertices of the output hull
-		btAlignedObjectArray<btVector3> vertices;
-
-		// Edges of the output hull
-		btAlignedObjectArray<Edge> edges;
-
-		// Faces of the convex hull. Each entry is an index into the "edges" array pointing to an edge of the face. Faces are planar n-gons
-		btAlignedObjectArray<int> faces;
-
-		/*
-		Compute convex hull of "count" vertices stored in "coords". "stride" is the difference in bytes
-		between the addresses of consecutive vertices. If "shrink" is positive, the convex hull is shrunken
-		by that amount (each face is moved by "shrink" length units towards the center along its normal).
-		If "shrinkClamp" is positive, "shrink" is clamped to not exceed "shrinkClamp * innerRadius", where "innerRadius"
-		is the minimum distance of a face to the center of the convex hull.
-
-		The returned value is the amount by which the hull has been shrunken. If it is negative, the amount was so large
-		that the resulting convex hull is empty.
-
-		The output convex hull can be found in the member variables "vertices", "edges", "faces".
-		*/
-		btScalar compute(const float* coords, int stride, int count, btScalar shrink, btScalar shrinkClamp)
-		{
-			return compute(coords, false, stride, count, shrink, shrinkClamp);
-		}
-
-		// same as above, but double precision
-		btScalar compute(const double* coords, int stride, int count, btScalar shrink, btScalar shrinkClamp)
-		{
-			return compute(coords, true, stride, count, shrink, shrinkClamp);
-		}
-};
-
-
-#endif //BT_CONVEX_HULL_COMPUTER_H
-
+/*+Copyright (c) 2011 Ole Kniemeyer, MAXON, www.maxon.net++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++#ifndef BT_CONVEX_HULL_COMPUTER_H+#define BT_CONVEX_HULL_COMPUTER_H++#include "btVector3.h"+#include "btAlignedObjectArray.h"++/// Convex hull implementation based on Preparata and Hong+/// See http://code.google.com/p/bullet/issues/detail?id=275+/// Ole Kniemeyer, MAXON Computer GmbH+class btConvexHullComputer+{ private:+private:+btScalar compute(const void* coords, bool doubleCoords, int stride, int count, btScalar shrink, btScalar shrinkClamp);++public:++class Edge+{ private:+private:+int next;+int reverse;+int targetVertex;++friend class btConvexHullComputer;++public:+int getSourceVertex() const+{+return (this + reverse)->targetVertex;+}++int getTargetVertex() const+{+return targetVertex;+}++const Edge* getNextEdgeOfVertex() const // clockwise list of all edges of a vertex+{+return this + next;+}++const Edge* getNextEdgeOfFace() const // counter-clockwise list of all edges of a face+{+return (this + reverse)->getNextEdgeOfVertex();+}++const Edge* getReverseEdge() const+{+return this + reverse;+}+};+++// Vertices of the output hull+btAlignedObjectArray<btVector3> vertices;++// Edges of the output hull+btAlignedObjectArray<Edge> edges;++// Faces of the convex hull. Each entry is an index into the "edges" array pointing to an edge of the face. Faces are planar n-gons+btAlignedObjectArray<int> faces;++/*+Compute convex hull of "count" vertices stored in "coords". "stride" is the difference in bytes+between the addresses of consecutive vertices. If "shrink" is positive, the convex hull is shrunken+by that amount (each face is moved by "shrink" length units towards the center along its normal).+If "shrinkClamp" is positive, "shrink" is clamped to not exceed "shrinkClamp * innerRadius", where "innerRadius"+is the minimum distance of a face to the center of the convex hull.++The returned value is the amount by which the hull has been shrunken. If it is negative, the amount was so large+that the resulting convex hull is empty.++The output convex hull can be found in the member variables "vertices", "edges", "faces".+*/+btScalar compute(const float* coords, int stride, int count, btScalar shrink, btScalar shrinkClamp)+{+return compute(coords, false, stride, count, shrink, shrinkClamp);+}++// same as above, but double precision+btScalar compute(const double* coords, int stride, int count, btScalar shrink, btScalar shrinkClamp)+{+return compute(coords, true, stride, count, shrink, shrinkClamp);+}+};+++#endif //BT_CONVEX_HULL_COMPUTER_H+
bullet/LinearMath/btDefaultMotionState.h view
@@ -4,36 +4,36 @@ #include "btMotionState.h"  ///The btDefaultMotionState provides a common implementation to synchronize world transforms with offsets.-struct	btDefaultMotionState : public btMotionState+struct btDefaultMotionState : public btMotionState {-	btTransform m_graphicsWorldTrans;-	btTransform	m_centerOfMassOffset;-	btTransform m_startWorldTrans;-	void*		m_userPointer;+btTransform m_graphicsWorldTrans;+btTransform m_centerOfMassOffset;+btTransform m_startWorldTrans;+void* m_userPointer; -	btDefaultMotionState(const btTransform& startTrans = btTransform::getIdentity(),const btTransform& centerOfMassOffset = btTransform::getIdentity())-		: m_graphicsWorldTrans(startTrans),-		m_centerOfMassOffset(centerOfMassOffset),-		m_startWorldTrans(startTrans),-		m_userPointer(0)+btDefaultMotionState(const btTransform& startTrans = btTransform::getIdentity(),const btTransform& centerOfMassOffset = btTransform::getIdentity())+: m_graphicsWorldTrans(startTrans),+m_centerOfMassOffset(centerOfMassOffset),+m_startWorldTrans(startTrans),+m_userPointer(0) -	{-	}+{+} -	///synchronizes world transform from user to physics-	virtual void	getWorldTransform(btTransform& centerOfMassWorldTrans ) const -	{-			centerOfMassWorldTrans = 	m_centerOfMassOffset.inverse() * m_graphicsWorldTrans ;-	}+///synchronizes world transform from user to physics+virtual void getWorldTransform(btTransform& centerOfMassWorldTrans ) const+{+centerOfMassWorldTrans = m_centerOfMassOffset.inverse() * m_graphicsWorldTrans ;+} -	///synchronizes world transform from physics to user-	///Bullet only calls the update of worldtransform for active objects-	virtual void	setWorldTransform(const btTransform& centerOfMassWorldTrans)-	{-			m_graphicsWorldTrans = centerOfMassWorldTrans * m_centerOfMassOffset ;-	}+///synchronizes world transform from physics to user+///Bullet only calls the update of worldtransform for active objects+virtual void setWorldTransform(const btTransform& centerOfMassWorldTrans)+{+m_graphicsWorldTrans = centerOfMassWorldTrans * m_centerOfMassOffset ;+} -	+  }; 
bullet/LinearMath/btGeometryUtil.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,19 +21,19 @@  ///The btGeometryUtil helper class provides a few methods to convert between plane equations and vertices. class btGeometryUtil-{-	public:-	-	-		static void	getPlaneEquationsFromVertices(btAlignedObjectArray<btVector3>& vertices, btAlignedObjectArray<btVector3>& planeEquationsOut );+{ private:+public: -		static void	getVerticesFromPlaneEquations(const btAlignedObjectArray<btVector3>& planeEquations , btAlignedObjectArray<btVector3>& verticesOut );-	-		static bool	isInside(const btAlignedObjectArray<btVector3>& vertices, const btVector3& planeNormal, btScalar	margin);-		-		static bool	isPointInsidePlanes(const btAlignedObjectArray<btVector3>& planeEquations, const btVector3& point, btScalar	margin); -		static bool	areVerticesBehindPlane(const btVector3& planeNormal, const btAlignedObjectArray<btVector3>& vertices, btScalar	margin);+static void getPlaneEquationsFromVertices(btAlignedObjectArray<btVector3>& vertices, btAlignedObjectArray<btVector3>& planeEquationsOut );++static void getVerticesFromPlaneEquations(const btAlignedObjectArray<btVector3>& planeEquations , btAlignedObjectArray<btVector3>& verticesOut );++static bool isInside(const btAlignedObjectArray<btVector3>& vertices, const btVector3& planeNormal, btScalar margin);++static bool isPointInsidePlanes(const btAlignedObjectArray<btVector3>& planeEquations, const btVector3& point, btScalar margin);++static bool areVerticesBehindPlane(const btVector3& planeNormal, const btAlignedObjectArray<btVector3>& vertices, btScalar margin);  }; 
bullet/LinearMath/btHashMap.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -22,195 +22,195 @@ ///very basic hashable string implementation, compatible with btHashMap struct btHashString {-	const char* m_string;-	unsigned int	m_hash;+const char* m_string;+unsigned int m_hash; -	SIMD_FORCE_INLINE	unsigned int getHash()const-	{-		return m_hash;-	}+SIMD_FORCE_INLINE unsigned int getHash()const+{+return m_hash;+} -	btHashString(const char* name)-		:m_string(name)-	{-		/* magic numbers from http://www.isthe.com/chongo/tech/comp/fnv/ */-		static const unsigned int  InitialFNV = 2166136261u;-		static const unsigned int FNVMultiple = 16777619u;+btHashString(const char* name)+:m_string(name)+{+/* magic numbers from http://www.isthe.com/chongo/tech/comp/fnv/ */+static const unsigned int InitialFNV = 2166136261u;+static const unsigned int FNVMultiple = 16777619u; -		/* Fowler / Noll / Vo (FNV) Hash */-		unsigned int hash = InitialFNV;-		-		for(int i = 0; m_string[i]; i++)-		{-			hash = hash ^ (m_string[i]);       /* xor  the low 8 bits */-			hash = hash * FNVMultiple;  /* multiply by the magic number */-		}-		m_hash = hash;-	}+/* Fowler / Noll / Vo (FNV) Hash */+unsigned int hash = InitialFNV; -	int portableStringCompare(const char* src,	const char* dst) const-	{-			int ret = 0 ;+for(int i = 0; m_string[i]; i++)+{+hash = hash ^ (m_string[i]); /* xor the low 8 bits */+hash = hash * FNVMultiple; /* multiply by the magic number */+}+m_hash = hash;+} -			while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)-					++src, ++dst;+int portableStringCompare(const char* src, const char* dst) const+{+int ret = 0 ; -			if ( ret < 0 )-					ret = -1 ;-			else if ( ret > 0 )-					ret = 1 ;+while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)+++src, ++dst; -			return( ret );-	}+if ( ret < 0 )+ret = -1 ;+else if ( ret > 0 )+ret = 1 ; -	bool equals(const btHashString& other) const-	{-		return (m_string == other.m_string) ||-			(0==portableStringCompare(m_string,other.m_string));+return( ret );+} -	}+bool equals(const btHashString& other) const+{+return (m_string == other.m_string) ||+(0==portableStringCompare(m_string,other.m_string)); +}+ };  const int BT_HASH_NULL=0xffffffff;   class btHashInt-{-	int	m_uid;+{ private:+int m_uid; public:-	btHashInt(int uid)	:m_uid(uid)-	{-	}+btHashInt(int uid) :m_uid(uid)+{+} -	int	getUid1() const-	{-		return m_uid;-	}+int getUid1() const+{+return m_uid;+} -	void	setUid1(int uid)-	{-		m_uid = uid;-	}+void setUid1(int uid)+{+m_uid = uid;+} -	bool equals(const btHashInt& other) const-	{-		return getUid1() == other.getUid1();-	}-	//to our success-	SIMD_FORCE_INLINE	unsigned int getHash()const-	{-		int key = m_uid;-		// Thomas Wang's hash-		key += ~(key << 15);	key ^=  (key >> 10);	key +=  (key << 3);	key ^=  (key >> 6);	key += ~(key << 11);	key ^=  (key >> 16);-		return key;-	}+bool equals(const btHashInt& other) const+{+return getUid1() == other.getUid1();+}+//to our success+SIMD_FORCE_INLINE unsigned int getHash()const+{+int key = m_uid;+// Thomas Wang's hash+key += ~(key << 15); key ^= (key >> 10); key += (key << 3); key ^= (key >> 6); key += ~(key << 11); key ^= (key >> 16);+return key;+} };    class btHashPtr-{+{ private: -	union-	{-		const void*	m_pointer;-		int	m_hashValues[2];-	};+union+{+const void* m_pointer;+int m_hashValues[2];+};  public: -	btHashPtr(const void* ptr)-		:m_pointer(ptr)-	{-	}+btHashPtr(const void* ptr)+:m_pointer(ptr)+{+} -	const void*	getPointer() const-	{-		return m_pointer;-	}+const void* getPointer() const+{+return m_pointer;+} -	bool equals(const btHashPtr& other) const-	{-		return getPointer() == other.getPointer();-	}+bool equals(const btHashPtr& other) const+{+return getPointer() == other.getPointer();+} -	//to our success-	SIMD_FORCE_INLINE	unsigned int getHash()const-	{-		const bool VOID_IS_8 = ((sizeof(void*)==8));-		-		int key = VOID_IS_8? m_hashValues[0]+m_hashValues[1] : m_hashValues[0];-	-		// Thomas Wang's hash-		key += ~(key << 15);	key ^=  (key >> 10);	key +=  (key << 3);	key ^=  (key >> 6);	key += ~(key << 11);	key ^=  (key >> 16);-		return key;-	}+//to our success+SIMD_FORCE_INLINE unsigned int getHash()const+{+const bool VOID_IS_8 = ((sizeof(void*)==8)); -	+int key = VOID_IS_8? m_hashValues[0]+m_hashValues[1] : m_hashValues[0];++// Thomas Wang's hash+key += ~(key << 15); key ^= (key >> 10); key += (key << 3); key ^= (key >> 6); key += ~(key << 11); key ^= (key >> 16);+return key;+}++ };   template <class Value> class btHashKeyPtr-{-        int     m_uid;+{ private:+int m_uid; public: -        btHashKeyPtr(int uid)    :m_uid(uid)-        {-        }+btHashKeyPtr(int uid) :m_uid(uid)+{+} -        int     getUid1() const-        {-                return m_uid;-        }+int getUid1() const+{+return m_uid;+} -        bool equals(const btHashKeyPtr<Value>& other) const-        {-                return getUid1() == other.getUid1();-        }+bool equals(const btHashKeyPtr<Value>& other) const+{+return getUid1() == other.getUid1();+} -        //to our success-        SIMD_FORCE_INLINE       unsigned int getHash()const-        {-                int key = m_uid;-                // Thomas Wang's hash-                key += ~(key << 15);	key ^=  (key >> 10);	key +=  (key << 3);	key ^=  (key >> 6);	key += ~(key << 11);	key ^=  (key >> 16);-                return key;-        }+//to our success+SIMD_FORCE_INLINE unsigned int getHash()const+{+int key = m_uid;+// Thomas Wang's hash+key += ~(key << 15); key ^= (key >> 10); key += (key << 3); key ^= (key >> 6); key += ~(key << 11); key ^= (key >> 16);+return key;+} -        + };   template <class Value> class btHashKey-{-	int	m_uid;+{ private:+int m_uid; public: -	btHashKey(int uid)	:m_uid(uid)-	{-	}+btHashKey(int uid) :m_uid(uid)+{+} -	int	getUid1() const-	{-		return m_uid;-	}+int getUid1() const+{+return m_uid;+} -	bool equals(const btHashKey<Value>& other) const-	{-		return getUid1() == other.getUid1();-	}-	//to our success-	SIMD_FORCE_INLINE	unsigned int getHash()const-	{-		int key = m_uid;-		// Thomas Wang's hash-		key += ~(key << 15);	key ^=  (key >> 10);	key +=  (key << 3);	key ^=  (key >> 6);	key += ~(key << 11);	key ^=  (key >> 16);-		return key;-	}+bool equals(const btHashKey<Value>& other) const+{+return getUid1() == other.getUid1();+}+//to our success+SIMD_FORCE_INLINE unsigned int getHash()const+{+int key = m_uid;+// Thomas Wang's hash+key += ~(key << 15); key ^= (key >> 10); key += (key << 3); key ^= (key >> 6); key += ~(key << 11); key ^= (key >> 16);+return key;+} };  @@ -218,232 +218,232 @@ ///A basic sample of how to use btHashMap is located in Demos\BasicDemo\main.cpp template <class Key, class Value> class btHashMap-{+{ private:  protected:-	btAlignedObjectArray<int>		m_hashTable;-	btAlignedObjectArray<int>		m_next;-	-	btAlignedObjectArray<Value>		m_valueArray;-	btAlignedObjectArray<Key>		m_keyArray;+btAlignedObjectArray<int> m_hashTable;+btAlignedObjectArray<int> m_next; -	void	growTables(const Key& /*key*/)-	{-		int newCapacity = m_valueArray.capacity();+btAlignedObjectArray<Value> m_valueArray;+btAlignedObjectArray<Key> m_keyArray; -		if (m_hashTable.size() < newCapacity)-		{-			//grow hashtable and next table-			int curHashtableSize = m_hashTable.size();+void growTables(const Key& /*key*/)+{+int newCapacity = m_valueArray.capacity(); -			m_hashTable.resize(newCapacity);-			m_next.resize(newCapacity);+if (m_hashTable.size() < newCapacity)+{+//grow hashtable and next table+int curHashtableSize = m_hashTable.size(); -			int i;+m_hashTable.resize(newCapacity);+m_next.resize(newCapacity); -			for (i= 0; i < newCapacity; ++i)-			{-				m_hashTable[i] = BT_HASH_NULL;-			}-			for (i = 0; i < newCapacity; ++i)-			{-				m_next[i] = BT_HASH_NULL;-			}+int i; -			for(i=0;i<curHashtableSize;i++)-			{-				//const Value& value = m_valueArray[i];-				//const Key& key = m_keyArray[i];+for (i= 0; i < newCapacity; ++i)+{+m_hashTable[i] = BT_HASH_NULL;+}+for (i = 0; i < newCapacity; ++i)+{+m_next[i] = BT_HASH_NULL;+} -				int	hashValue = m_keyArray[i].getHash() & (m_valueArray.capacity()-1);	// New hash value with new mask-				m_next[i] = m_hashTable[hashValue];-				m_hashTable[hashValue] = i;-			}+for(i=0;i<curHashtableSize;i++)+{+//const Value& value = m_valueArray[i];+//const Key& key = m_keyArray[i]; +int hashValue = m_keyArray[i].getHash() & (m_valueArray.capacity()-1); // New hash value with new mask+m_next[i] = m_hashTable[hashValue];+m_hashTable[hashValue] = i;+} -		}-	} -	public:+}+} -	void insert(const Key& key, const Value& value) {-		int hash = key.getHash() & (m_valueArray.capacity()-1);+public: -		//replace value if the key is already there-		int index = findIndex(key);-		if (index != BT_HASH_NULL)-		{-			m_valueArray[index]=value;-			return;-		}+void insert(const Key& key, const Value& value) {+int hash = key.getHash() & (m_valueArray.capacity()-1); -		int count = m_valueArray.size();-		int oldCapacity = m_valueArray.capacity();-		m_valueArray.push_back(value);-		m_keyArray.push_back(key);+//replace value if the key is already there+int index = findIndex(key);+if (index != BT_HASH_NULL)+{+m_valueArray[index]=value;+return;+} -		int newCapacity = m_valueArray.capacity();-		if (oldCapacity < newCapacity)-		{-			growTables(key);-			//hash with new capacity-			hash = key.getHash() & (m_valueArray.capacity()-1);-		}-		m_next[count] = m_hashTable[hash];-		m_hashTable[hash] = count;-	}+int count = m_valueArray.size();+int oldCapacity = m_valueArray.capacity();+m_valueArray.push_back(value);+m_keyArray.push_back(key); -	void remove(const Key& key) {+int newCapacity = m_valueArray.capacity();+if (oldCapacity < newCapacity)+{+growTables(key);+//hash with new capacity+hash = key.getHash() & (m_valueArray.capacity()-1);+}+m_next[count] = m_hashTable[hash];+m_hashTable[hash] = count;+} -		int hash = key.getHash() & (m_valueArray.capacity()-1);+void remove(const Key& key) { -		int pairIndex = findIndex(key);-		-		if (pairIndex ==BT_HASH_NULL)-		{-			return;-		}+int hash = key.getHash() & (m_valueArray.capacity()-1); -		// Remove the pair from the hash table.-		int index = m_hashTable[hash];-		btAssert(index != BT_HASH_NULL);+int pairIndex = findIndex(key); -		int previous = BT_HASH_NULL;-		while (index != pairIndex)-		{-			previous = index;-			index = m_next[index];-		}+if (pairIndex ==BT_HASH_NULL)+{+return;+} -		if (previous != BT_HASH_NULL)-		{-			btAssert(m_next[previous] == pairIndex);-			m_next[previous] = m_next[pairIndex];-		}-		else-		{-			m_hashTable[hash] = m_next[pairIndex];-		}+// Remove the pair from the hash table.+int index = m_hashTable[hash];+btAssert(index != BT_HASH_NULL); -		// We now move the last pair into spot of the-		// pair being removed. We need to fix the hash-		// table indices to support the move.+int previous = BT_HASH_NULL;+while (index != pairIndex)+{+previous = index;+index = m_next[index];+} -		int lastPairIndex = m_valueArray.size() - 1;+if (previous != BT_HASH_NULL)+{+btAssert(m_next[previous] == pairIndex);+m_next[previous] = m_next[pairIndex];+}+else+{+m_hashTable[hash] = m_next[pairIndex];+} -		// If the removed pair is the last pair, we are done.-		if (lastPairIndex == pairIndex)-		{-			m_valueArray.pop_back();-			m_keyArray.pop_back();-			return;-		}+// We now move the last pair into spot of the+// pair being removed. We need to fix the hash+// table indices to support the move. -		// Remove the last pair from the hash table.-		int lastHash = m_keyArray[lastPairIndex].getHash() & (m_valueArray.capacity()-1);+int lastPairIndex = m_valueArray.size() - 1; -		index = m_hashTable[lastHash];-		btAssert(index != BT_HASH_NULL);+// If the removed pair is the last pair, we are done.+if (lastPairIndex == pairIndex)+{+m_valueArray.pop_back();+m_keyArray.pop_back();+return;+} -		previous = BT_HASH_NULL;-		while (index != lastPairIndex)-		{-			previous = index;-			index = m_next[index];-		}+// Remove the last pair from the hash table.+int lastHash = m_keyArray[lastPairIndex].getHash() & (m_valueArray.capacity()-1); -		if (previous != BT_HASH_NULL)-		{-			btAssert(m_next[previous] == lastPairIndex);-			m_next[previous] = m_next[lastPairIndex];-		}-		else-		{-			m_hashTable[lastHash] = m_next[lastPairIndex];-		}+index = m_hashTable[lastHash];+btAssert(index != BT_HASH_NULL); -		// Copy the last pair into the remove pair's spot.-		m_valueArray[pairIndex] = m_valueArray[lastPairIndex];-		m_keyArray[pairIndex] = m_keyArray[lastPairIndex];+previous = BT_HASH_NULL;+while (index != lastPairIndex)+{+previous = index;+index = m_next[index];+} -		// Insert the last pair into the hash table-		m_next[pairIndex] = m_hashTable[lastHash];-		m_hashTable[lastHash] = pairIndex;+if (previous != BT_HASH_NULL)+{+btAssert(m_next[previous] == lastPairIndex);+m_next[previous] = m_next[lastPairIndex];+}+else+{+m_hashTable[lastHash] = m_next[lastPairIndex];+} -		m_valueArray.pop_back();-		m_keyArray.pop_back();+// Copy the last pair into the remove pair's spot.+m_valueArray[pairIndex] = m_valueArray[lastPairIndex];+m_keyArray[pairIndex] = m_keyArray[lastPairIndex]; -	}+// Insert the last pair into the hash table+m_next[pairIndex] = m_hashTable[lastHash];+m_hashTable[lastHash] = pairIndex; +m_valueArray.pop_back();+m_keyArray.pop_back(); -	int size() const-	{-		return m_valueArray.size();-	}+} -	const Value* getAtIndex(int index) const-	{-		btAssert(index < m_valueArray.size()); -		return &m_valueArray[index];-	}+int size() const+{+return m_valueArray.size();+} -	Value* getAtIndex(int index)-	{-		btAssert(index < m_valueArray.size());+const Value* getAtIndex(int index) const+{+btAssert(index < m_valueArray.size()); -		return &m_valueArray[index];-	}+return &m_valueArray[index];+} -	Value* operator[](const Key& key) {-		return find(key);-	}+Value* getAtIndex(int index)+{+btAssert(index < m_valueArray.size()); -	const Value*	find(const Key& key) const-	{-		int index = findIndex(key);-		if (index == BT_HASH_NULL)-		{-			return NULL;-		}-		return &m_valueArray[index];-	}+return &m_valueArray[index];+} -	Value*	find(const Key& key)-	{-		int index = findIndex(key);-		if (index == BT_HASH_NULL)-		{-			return NULL;-		}-		return &m_valueArray[index];-	}+Value* operator[](const Key& key) {+return find(key);+} +const Value* find(const Key& key) const+{+int index = findIndex(key);+if (index == BT_HASH_NULL)+{+return NULL;+}+return &m_valueArray[index];+} -	int	findIndex(const Key& key) const-	{-		unsigned int hash = key.getHash() & (m_valueArray.capacity()-1);+Value* find(const Key& key)+{+int index = findIndex(key);+if (index == BT_HASH_NULL)+{+return NULL;+}+return &m_valueArray[index];+} -		if (hash >= (unsigned int)m_hashTable.size())-		{-			return BT_HASH_NULL;-		} -		int index = m_hashTable[hash];-		while ((index != BT_HASH_NULL) && key.equals(m_keyArray[index]) == false)-		{-			index = m_next[index];-		}-		return index;-	}+int findIndex(const Key& key) const+{+unsigned int hash = key.getHash() & (m_valueArray.capacity()-1); -	void	clear()-	{-		m_hashTable.clear();-		m_next.clear();-		m_valueArray.clear();-		m_keyArray.clear();-	}+if (hash >= (unsigned int)m_hashTable.size())+{+return BT_HASH_NULL;+}++int index = m_hashTable[hash];+while ((index != BT_HASH_NULL) && key.equals(m_keyArray[index]) == false)+{+index = m_next[index];+}+return index;+}++void clear()+{+m_hashTable.clear();+m_next.clear();+m_valueArray.clear();+m_keyArray.clear();+}  }; 
bullet/LinearMath/btIDebugDraw.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -25,391 +25,391 @@ ///Typical use case: create a debug drawer object, and assign it to a btCollisionWorld or btDynamicsWorld using setDebugDrawer and call debugDrawWorld. ///A class that implements the btIDebugDraw interface has to implement the drawLine method at a minimum. ///For color arguments the X,Y,Z components refer to Red, Green and Blue each in the range [0..1]-class	btIDebugDraw+class btIDebugDraw+{ private:+public:++enum DebugDrawModes {-	public:+DBG_NoDebug=0,+DBG_DrawWireframe = 1,+DBG_DrawAabb=2,+DBG_DrawFeaturesText=4,+DBG_DrawContactPoints=8,+DBG_NoDeactivation=16,+DBG_NoHelpText = 32,+DBG_DrawText=64,+DBG_ProfileTimings = 128,+DBG_EnableSatComparison = 256,+DBG_DisableBulletLCP = 512,+DBG_EnableCCD = 1024,+DBG_DrawConstraints = (1 << 11),+DBG_DrawConstraintLimits = (1 << 12),+DBG_FastWireframe = (1<<13),+DBG_MAX_DEBUG_DRAW_MODE+}; -	enum	DebugDrawModes-	{-		DBG_NoDebug=0,-		DBG_DrawWireframe = 1,-		DBG_DrawAabb=2,-		DBG_DrawFeaturesText=4,-		DBG_DrawContactPoints=8,-		DBG_NoDeactivation=16,-		DBG_NoHelpText = 32,-		DBG_DrawText=64,-		DBG_ProfileTimings = 128,-		DBG_EnableSatComparison = 256,-		DBG_DisableBulletLCP = 512,-		DBG_EnableCCD = 1024,-		DBG_DrawConstraints = (1 << 11),-		DBG_DrawConstraintLimits = (1 << 12),-		DBG_FastWireframe = (1<<13),-		DBG_MAX_DEBUG_DRAW_MODE-	};+virtual ~btIDebugDraw() {}; -	virtual ~btIDebugDraw() {};+virtual void drawLine(const btVector3& from,const btVector3& to,const btVector3& color)=0; -	virtual void	drawLine(const btVector3& from,const btVector3& to,const btVector3& color)=0;-		-	virtual void    drawLine(const btVector3& from,const btVector3& to, const btVector3& fromColor, const btVector3& toColor)-	{-        (void) toColor;-		drawLine (from, to, fromColor);-	}+virtual void drawLine(const btVector3& from,const btVector3& to, const btVector3& fromColor, const btVector3& toColor)+{+(void) toColor;+drawLine (from, to, fromColor);+} -	virtual void	drawSphere(btScalar radius, const btTransform& transform, const btVector3& color)-	{-		btVector3 start = transform.getOrigin();+virtual void drawSphere(btScalar radius, const btTransform& transform, const btVector3& color)+{+btVector3 start = transform.getOrigin(); -		const btVector3 xoffs = transform.getBasis() * btVector3(radius,0,0);-		const btVector3 yoffs = transform.getBasis() * btVector3(0,radius,0);-		const btVector3 zoffs = transform.getBasis() * btVector3(0,0,radius);+const btVector3 xoffs = transform.getBasis() * btVector3(radius,0,0);+const btVector3 yoffs = transform.getBasis() * btVector3(0,radius,0);+const btVector3 zoffs = transform.getBasis() * btVector3(0,0,radius); -		// XY -		drawLine(start-xoffs, start+yoffs, color);-		drawLine(start+yoffs, start+xoffs, color);-		drawLine(start+xoffs, start-yoffs, color);-		drawLine(start-yoffs, start-xoffs, color);+// XY+drawLine(start-xoffs, start+yoffs, color);+drawLine(start+yoffs, start+xoffs, color);+drawLine(start+xoffs, start-yoffs, color);+drawLine(start-yoffs, start-xoffs, color); -		// XZ-		drawLine(start-xoffs, start+zoffs, color);-		drawLine(start+zoffs, start+xoffs, color);-		drawLine(start+xoffs, start-zoffs, color);-		drawLine(start-zoffs, start-xoffs, color);+// XZ+drawLine(start-xoffs, start+zoffs, color);+drawLine(start+zoffs, start+xoffs, color);+drawLine(start+xoffs, start-zoffs, color);+drawLine(start-zoffs, start-xoffs, color); -		// YZ-		drawLine(start-yoffs, start+zoffs, color);-		drawLine(start+zoffs, start+yoffs, color);-		drawLine(start+yoffs, start-zoffs, color);-		drawLine(start-zoffs, start-yoffs, color);-	}-	-	virtual void	drawSphere (const btVector3& p, btScalar radius, const btVector3& color)-	{-		btTransform tr;-		tr.setIdentity();-		tr.setOrigin(p);-		drawSphere(radius,tr,color);-	}-	-	virtual	void	drawTriangle(const btVector3& v0,const btVector3& v1,const btVector3& v2,const btVector3& /*n0*/,const btVector3& /*n1*/,const btVector3& /*n2*/,const btVector3& color, btScalar alpha)-	{-		drawTriangle(v0,v1,v2,color,alpha);-	}-	virtual	void	drawTriangle(const btVector3& v0,const btVector3& v1,const btVector3& v2,const btVector3& color, btScalar /*alpha*/)-	{-		drawLine(v0,v1,color);-		drawLine(v1,v2,color);-		drawLine(v2,v0,color);-	}+// YZ+drawLine(start-yoffs, start+zoffs, color);+drawLine(start+zoffs, start+yoffs, color);+drawLine(start+yoffs, start-zoffs, color);+drawLine(start-zoffs, start-yoffs, color);+} -	virtual void	drawContactPoint(const btVector3& PointOnB,const btVector3& normalOnB,btScalar distance,int lifeTime,const btVector3& color)=0;+virtual void drawSphere (const btVector3& p, btScalar radius, const btVector3& color)+{+btTransform tr;+tr.setIdentity();+tr.setOrigin(p);+drawSphere(radius,tr,color);+} -	virtual void	reportErrorWarning(const char* warningString) = 0;+virtual void drawTriangle(const btVector3& v0,const btVector3& v1,const btVector3& v2,const btVector3& /*n0*/,const btVector3& /*n1*/,const btVector3& /*n2*/,const btVector3& color, btScalar alpha)+{+drawTriangle(v0,v1,v2,color,alpha);+}+virtual void drawTriangle(const btVector3& v0,const btVector3& v1,const btVector3& v2,const btVector3& color, btScalar /*alpha*/)+{+drawLine(v0,v1,color);+drawLine(v1,v2,color);+drawLine(v2,v0,color);+} -	virtual void	draw3dText(const btVector3& location,const char* textString) = 0;-	-	virtual void	setDebugMode(int debugMode) =0;-	-	virtual int		getDebugMode() const = 0;+virtual void drawContactPoint(const btVector3& PointOnB,const btVector3& normalOnB,btScalar distance,int lifeTime,const btVector3& color)=0; -	virtual void drawAabb(const btVector3& from,const btVector3& to,const btVector3& color)-	{+virtual void reportErrorWarning(const char* warningString) = 0; -		btVector3 halfExtents = (to-from)* 0.5f;-		btVector3 center = (to+from) *0.5f;-		int i,j;+virtual void draw3dText(const btVector3& location,const char* textString) = 0; -		btVector3 edgecoord(1.f,1.f,1.f),pa,pb;-		for (i=0;i<4;i++)-		{-			for (j=0;j<3;j++)-			{-				pa = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],		-					edgecoord[2]*halfExtents[2]);-				pa+=center;+virtual void setDebugMode(int debugMode) =0; -				int othercoord = j%3;-				edgecoord[othercoord]*=-1.f;-				pb = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],	-					edgecoord[2]*halfExtents[2]);-				pb+=center;+virtual int getDebugMode() const = 0; -				drawLine(pa,pb,color);-			}-			edgecoord = btVector3(-1.f,-1.f,-1.f);-			if (i<3)-				edgecoord[i]*=-1.f;-		}-	}-	virtual void drawTransform(const btTransform& transform, btScalar orthoLen)-	{-		btVector3 start = transform.getOrigin();-		drawLine(start, start+transform.getBasis() * btVector3(orthoLen, 0, 0), btVector3(0.7f,0,0));-		drawLine(start, start+transform.getBasis() * btVector3(0, orthoLen, 0), btVector3(0,0.7f,0));-		drawLine(start, start+transform.getBasis() * btVector3(0, 0, orthoLen), btVector3(0,0,0.7f));-	}+virtual void drawAabb(const btVector3& from,const btVector3& to,const btVector3& color)+{ -	virtual void drawArc(const btVector3& center, const btVector3& normal, const btVector3& axis, btScalar radiusA, btScalar radiusB, btScalar minAngle, btScalar maxAngle, -				const btVector3& color, bool drawSect, btScalar stepDegrees = btScalar(10.f))-	{-		const btVector3& vx = axis;-		btVector3 vy = normal.cross(axis);-		btScalar step = stepDegrees * SIMD_RADS_PER_DEG;-		int nSteps = (int)((maxAngle - minAngle) / step);-		if(!nSteps) nSteps = 1;-		btVector3 prev = center + radiusA * vx * btCos(minAngle) + radiusB * vy * btSin(minAngle);-		if(drawSect)-		{-			drawLine(center, prev, color);-		}-		for(int i = 1; i <= nSteps; i++)-		{-			btScalar angle = minAngle + (maxAngle - minAngle) * btScalar(i) / btScalar(nSteps);-			btVector3 next = center + radiusA * vx * btCos(angle) + radiusB * vy * btSin(angle);-			drawLine(prev, next, color);-			prev = next;-		}-		if(drawSect)-		{-			drawLine(center, prev, color);-		}-	}-	virtual void drawSpherePatch(const btVector3& center, const btVector3& up, const btVector3& axis, btScalar radius, -		btScalar minTh, btScalar maxTh, btScalar minPs, btScalar maxPs, const btVector3& color, btScalar stepDegrees = btScalar(10.f))-	{-		btVector3 vA[74];-		btVector3 vB[74];-		btVector3 *pvA = vA, *pvB = vB, *pT;-		btVector3 npole = center + up * radius;-		btVector3 spole = center - up * radius;-		btVector3 arcStart;-		btScalar step = stepDegrees * SIMD_RADS_PER_DEG;-		const btVector3& kv = up;-		const btVector3& iv = axis;-		btVector3 jv = kv.cross(iv);-		bool drawN = false;-		bool drawS = false;-		if(minTh <= -SIMD_HALF_PI)-		{-			minTh = -SIMD_HALF_PI + step;-			drawN = true;-		}-		if(maxTh >= SIMD_HALF_PI)-		{-			maxTh = SIMD_HALF_PI - step;-			drawS = true;-		}-		if(minTh > maxTh)-		{-			minTh = -SIMD_HALF_PI + step;-			maxTh =  SIMD_HALF_PI - step;-			drawN = drawS = true;-		}-		int n_hor = (int)((maxTh - minTh) / step) + 1;-		if(n_hor < 2) n_hor = 2;-		btScalar step_h = (maxTh - minTh) / btScalar(n_hor - 1);-		bool isClosed = false;-		if(minPs > maxPs)-		{-			minPs = -SIMD_PI + step;-			maxPs =  SIMD_PI;-			isClosed = true;-		}-		else if((maxPs - minPs) >= SIMD_PI * btScalar(2.f))-		{-			isClosed = true;-		}-		else-		{-			isClosed = false;-		}-		int n_vert = (int)((maxPs - minPs) / step) + 1;-		if(n_vert < 2) n_vert = 2;-		btScalar step_v = (maxPs - minPs) / btScalar(n_vert - 1);-		for(int i = 0; i < n_hor; i++)-		{-			btScalar th = minTh + btScalar(i) * step_h;-			btScalar sth = radius * btSin(th);-			btScalar cth = radius * btCos(th);-			for(int j = 0; j < n_vert; j++)-			{-				btScalar psi = minPs + btScalar(j) * step_v;-				btScalar sps = btSin(psi);-				btScalar cps = btCos(psi);-				pvB[j] = center + cth * cps * iv + cth * sps * jv + sth * kv;-				if(i)-				{-					drawLine(pvA[j], pvB[j], color);-				}-				else if(drawS)-				{-					drawLine(spole, pvB[j], color);-				}-				if(j)-				{-					drawLine(pvB[j-1], pvB[j], color);-				}-				else-				{-					arcStart = pvB[j];-				}-				if((i == (n_hor - 1)) && drawN)-				{-					drawLine(npole, pvB[j], color);-				}-				if(isClosed)-				{-					if(j == (n_vert-1))-					{-						drawLine(arcStart, pvB[j], color);-					}-				}-				else-				{-					if(((!i) || (i == (n_hor-1))) && ((!j) || (j == (n_vert-1))))-					{-						drawLine(center, pvB[j], color);-					}-				}-			}-			pT = pvA; pvA = pvB; pvB = pT;-		}-	}-	-	virtual void drawBox(const btVector3& bbMin, const btVector3& bbMax, const btVector3& color)-	{-		drawLine(btVector3(bbMin[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMin[1], bbMin[2]), color);-		drawLine(btVector3(bbMax[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMax[1], bbMin[2]), color);-		drawLine(btVector3(bbMax[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMax[1], bbMin[2]), color);-		drawLine(btVector3(bbMin[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMin[1], bbMin[2]), color);-		drawLine(btVector3(bbMin[0], bbMin[1], bbMin[2]), btVector3(bbMin[0], bbMin[1], bbMax[2]), color);-		drawLine(btVector3(bbMax[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMin[1], bbMax[2]), color);-		drawLine(btVector3(bbMax[0], bbMax[1], bbMin[2]), btVector3(bbMax[0], bbMax[1], bbMax[2]), color);-		drawLine(btVector3(bbMin[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMax[1], bbMax[2]), color);-		drawLine(btVector3(bbMin[0], bbMin[1], bbMax[2]), btVector3(bbMax[0], bbMin[1], bbMax[2]), color);-		drawLine(btVector3(bbMax[0], bbMin[1], bbMax[2]), btVector3(bbMax[0], bbMax[1], bbMax[2]), color);-		drawLine(btVector3(bbMax[0], bbMax[1], bbMax[2]), btVector3(bbMin[0], bbMax[1], bbMax[2]), color);-		drawLine(btVector3(bbMin[0], bbMax[1], bbMax[2]), btVector3(bbMin[0], bbMin[1], bbMax[2]), color);-	}-	virtual void drawBox(const btVector3& bbMin, const btVector3& bbMax, const btTransform& trans, const btVector3& color)-	{-		drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), color);-		drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), color);-		drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), color);-		drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), color);-	}+btVector3 halfExtents = (to-from)* 0.5f;+btVector3 center = (to+from) *0.5f;+int i,j; -	virtual void drawCapsule(btScalar radius, btScalar halfHeight, int upAxis, const btTransform& transform, const btVector3& color)-	{-		btVector3 capStart(0.f,0.f,0.f);-		capStart[upAxis] = -halfHeight;+btVector3 edgecoord(1.f,1.f,1.f),pa,pb;+for (i=0;i<4;i++)+{+for (j=0;j<3;j++)+{+pa = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],+edgecoord[2]*halfExtents[2]);+pa+=center; -		btVector3 capEnd(0.f,0.f,0.f);-		capEnd[upAxis] = halfHeight;+int othercoord = j%3;+edgecoord[othercoord]*=-1.f;+pb = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],+edgecoord[2]*halfExtents[2]);+pb+=center; -		// Draw the ends-		{+drawLine(pa,pb,color);+}+edgecoord = btVector3(-1.f,-1.f,-1.f);+if (i<3)+edgecoord[i]*=-1.f;+}+}+virtual void drawTransform(const btTransform& transform, btScalar orthoLen)+{+btVector3 start = transform.getOrigin();+drawLine(start, start+transform.getBasis() * btVector3(orthoLen, 0, 0), btVector3(0.7f,0,0));+drawLine(start, start+transform.getBasis() * btVector3(0, orthoLen, 0), btVector3(0,0.7f,0));+drawLine(start, start+transform.getBasis() * btVector3(0, 0, orthoLen), btVector3(0,0,0.7f));+} -			btTransform childTransform = transform;-			childTransform.getOrigin() = transform * capStart;-			drawSphere(radius, childTransform, color);-		}+virtual void drawArc(const btVector3& center, const btVector3& normal, const btVector3& axis, btScalar radiusA, btScalar radiusB, btScalar minAngle, btScalar maxAngle,+const btVector3& color, bool drawSect, btScalar stepDegrees = btScalar(10.f))+{+const btVector3& vx = axis;+btVector3 vy = normal.cross(axis);+btScalar step = stepDegrees * SIMD_RADS_PER_DEG;+int nSteps = (int)((maxAngle - minAngle) / step);+if(!nSteps) nSteps = 1;+btVector3 prev = center + radiusA * vx * btCos(minAngle) + radiusB * vy * btSin(minAngle);+if(drawSect)+{+drawLine(center, prev, color);+}+for(int i = 1; i <= nSteps; i++)+{+btScalar angle = minAngle + (maxAngle - minAngle) * btScalar(i) / btScalar(nSteps);+btVector3 next = center + radiusA * vx * btCos(angle) + radiusB * vy * btSin(angle);+drawLine(prev, next, color);+prev = next;+}+if(drawSect)+{+drawLine(center, prev, color);+}+}+virtual void drawSpherePatch(const btVector3& center, const btVector3& up, const btVector3& axis, btScalar radius,+btScalar minTh, btScalar maxTh, btScalar minPs, btScalar maxPs, const btVector3& color, btScalar stepDegrees = btScalar(10.f))+{+btVector3 vA[74];+btVector3 vB[74];+btVector3 *pvA = vA, *pvB = vB, *pT;+btVector3 npole = center + up * radius;+btVector3 spole = center - up * radius;+btVector3 arcStart;+btScalar step = stepDegrees * SIMD_RADS_PER_DEG;+const btVector3& kv = up;+const btVector3& iv = axis;+btVector3 jv = kv.cross(iv);+bool drawN = false;+bool drawS = false;+if(minTh <= -SIMD_HALF_PI)+{+minTh = -SIMD_HALF_PI + step;+drawN = true;+}+if(maxTh >= SIMD_HALF_PI)+{+maxTh = SIMD_HALF_PI - step;+drawS = true;+}+if(minTh > maxTh)+{+minTh = -SIMD_HALF_PI + step;+maxTh = SIMD_HALF_PI - step;+drawN = drawS = true;+}+int n_hor = (int)((maxTh - minTh) / step) + 1;+if(n_hor < 2) n_hor = 2;+btScalar step_h = (maxTh - minTh) / btScalar(n_hor - 1);+bool isClosed = false;+if(minPs > maxPs)+{+minPs = -SIMD_PI + step;+maxPs = SIMD_PI;+isClosed = true;+}+else if((maxPs - minPs) >= SIMD_PI * btScalar(2.f))+{+isClosed = true;+}+else+{+isClosed = false;+}+int n_vert = (int)((maxPs - minPs) / step) + 1;+if(n_vert < 2) n_vert = 2;+btScalar step_v = (maxPs - minPs) / btScalar(n_vert - 1);+for(int i = 0; i < n_hor; i++)+{+btScalar th = minTh + btScalar(i) * step_h;+btScalar sth = radius * btSin(th);+btScalar cth = radius * btCos(th);+for(int j = 0; j < n_vert; j++)+{+btScalar psi = minPs + btScalar(j) * step_v;+btScalar sps = btSin(psi);+btScalar cps = btCos(psi);+pvB[j] = center + cth * cps * iv + cth * sps * jv + sth * kv;+if(i)+{+drawLine(pvA[j], pvB[j], color);+}+else if(drawS)+{+drawLine(spole, pvB[j], color);+}+if(j)+{+drawLine(pvB[j-1], pvB[j], color);+}+else+{+arcStart = pvB[j];+}+if((i == (n_hor - 1)) && drawN)+{+drawLine(npole, pvB[j], color);+}+if(isClosed)+{+if(j == (n_vert-1))+{+drawLine(arcStart, pvB[j], color);+}+}+else+{+if(((!i) || (i == (n_hor-1))) && ((!j) || (j == (n_vert-1))))+{+drawLine(center, pvB[j], color);+}+}+}+pT = pvA; pvA = pvB; pvB = pT;+}+} -		{-			btTransform childTransform = transform;-			childTransform.getOrigin() = transform * capEnd;-			drawSphere(radius, childTransform, color);-		}+virtual void drawBox(const btVector3& bbMin, const btVector3& bbMax, const btVector3& color)+{+drawLine(btVector3(bbMin[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMin[1], bbMin[2]), color);+drawLine(btVector3(bbMax[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMax[1], bbMin[2]), color);+drawLine(btVector3(bbMax[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMax[1], bbMin[2]), color);+drawLine(btVector3(bbMin[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMin[1], bbMin[2]), color);+drawLine(btVector3(bbMin[0], bbMin[1], bbMin[2]), btVector3(bbMin[0], bbMin[1], bbMax[2]), color);+drawLine(btVector3(bbMax[0], bbMin[1], bbMin[2]), btVector3(bbMax[0], bbMin[1], bbMax[2]), color);+drawLine(btVector3(bbMax[0], bbMax[1], bbMin[2]), btVector3(bbMax[0], bbMax[1], bbMax[2]), color);+drawLine(btVector3(bbMin[0], bbMax[1], bbMin[2]), btVector3(bbMin[0], bbMax[1], bbMax[2]), color);+drawLine(btVector3(bbMin[0], bbMin[1], bbMax[2]), btVector3(bbMax[0], bbMin[1], bbMax[2]), color);+drawLine(btVector3(bbMax[0], bbMin[1], bbMax[2]), btVector3(bbMax[0], bbMax[1], bbMax[2]), color);+drawLine(btVector3(bbMax[0], bbMax[1], bbMax[2]), btVector3(bbMin[0], bbMax[1], bbMax[2]), color);+drawLine(btVector3(bbMin[0], bbMax[1], bbMax[2]), btVector3(bbMin[0], bbMin[1], bbMax[2]), color);+}+virtual void drawBox(const btVector3& bbMin, const btVector3& bbMax, const btTransform& trans, const btVector3& color)+{+drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), color);+drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), color);+drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMin[2]), trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMin[2]), trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMin[2]), trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMin[2]), trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMin[1], bbMax[2]), trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMax[0], bbMax[1], bbMax[2]), trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), color);+drawLine(trans * btVector3(bbMin[0], bbMax[1], bbMax[2]), trans * btVector3(bbMin[0], bbMin[1], bbMax[2]), color);+} -		// Draw some additional lines-		btVector3 start = transform.getOrigin();+virtual void drawCapsule(btScalar radius, btScalar halfHeight, int upAxis, const btTransform& transform, const btVector3& color)+{+btVector3 capStart(0.f,0.f,0.f);+capStart[upAxis] = -halfHeight; -		capStart[(upAxis+1)%3] = radius;-		capEnd[(upAxis+1)%3] = radius;-		drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);-		capStart[(upAxis+1)%3] = -radius;-		capEnd[(upAxis+1)%3] = -radius;-		drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);+btVector3 capEnd(0.f,0.f,0.f);+capEnd[upAxis] = halfHeight; -		capStart[(upAxis+1)%3] = 0.f;-		capEnd[(upAxis+1)%3] = 0.f;+// Draw the ends+{ -		capStart[(upAxis+2)%3] = radius;-		capEnd[(upAxis+2)%3] = radius;-		drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);-		capStart[(upAxis+2)%3] = -radius;-		capEnd[(upAxis+2)%3] = -radius;-		drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);-	}+btTransform childTransform = transform;+childTransform.getOrigin() = transform * capStart;+drawSphere(radius, childTransform, color);+} -	virtual void drawCylinder(btScalar radius, btScalar halfHeight, int upAxis, const btTransform& transform, const btVector3& color)-	{-		btVector3 start = transform.getOrigin();-		btVector3	offsetHeight(0,0,0);-		offsetHeight[upAxis] = halfHeight;-		btVector3	offsetRadius(0,0,0);-		offsetRadius[(upAxis+1)%3] = radius;-		drawLine(start+transform.getBasis() * (offsetHeight+offsetRadius),start+transform.getBasis() * (-offsetHeight+offsetRadius),color);-		drawLine(start+transform.getBasis() * (offsetHeight-offsetRadius),start+transform.getBasis() * (-offsetHeight-offsetRadius),color);+{+btTransform childTransform = transform;+childTransform.getOrigin() = transform * capEnd;+drawSphere(radius, childTransform, color);+} -		// Drawing top and bottom caps of the cylinder-		btVector3 yaxis(0,0,0);-		yaxis[upAxis] = btScalar(1.0);-		btVector3 xaxis(0,0,0);-		xaxis[(upAxis+1)%3] = btScalar(1.0);-		drawArc(start-transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,btScalar(10.0));-		drawArc(start+transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,btScalar(10.0));-	}+// Draw some additional lines+btVector3 start = transform.getOrigin(); -	virtual void drawCone(btScalar radius, btScalar height, int upAxis, const btTransform& transform, const btVector3& color)-	{+capStart[(upAxis+1)%3] = radius;+capEnd[(upAxis+1)%3] = radius;+drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);+capStart[(upAxis+1)%3] = -radius;+capEnd[(upAxis+1)%3] = -radius;+drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color); -		btVector3 start = transform.getOrigin();+capStart[(upAxis+1)%3] = 0.f;+capEnd[(upAxis+1)%3] = 0.f; -		btVector3	offsetHeight(0,0,0);-		offsetHeight[upAxis] = height * btScalar(0.5);-		btVector3	offsetRadius(0,0,0);-		offsetRadius[(upAxis+1)%3] = radius;-		btVector3	offset2Radius(0,0,0);-		offset2Radius[(upAxis+2)%3] = radius;+capStart[(upAxis+2)%3] = radius;+capEnd[(upAxis+2)%3] = radius;+drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);+capStart[(upAxis+2)%3] = -radius;+capEnd[(upAxis+2)%3] = -radius;+drawLine(start+transform.getBasis() * capStart,start+transform.getBasis() * capEnd, color);+} -		drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight+offsetRadius),color);-		drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight-offsetRadius),color);-		drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight+offset2Radius),color);-		drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight-offset2Radius),color);+virtual void drawCylinder(btScalar radius, btScalar halfHeight, int upAxis, const btTransform& transform, const btVector3& color)+{+btVector3 start = transform.getOrigin();+btVector3 offsetHeight(0,0,0);+offsetHeight[upAxis] = halfHeight;+btVector3 offsetRadius(0,0,0);+offsetRadius[(upAxis+1)%3] = radius;+drawLine(start+transform.getBasis() * (offsetHeight+offsetRadius),start+transform.getBasis() * (-offsetHeight+offsetRadius),color);+drawLine(start+transform.getBasis() * (offsetHeight-offsetRadius),start+transform.getBasis() * (-offsetHeight-offsetRadius),color); -		// Drawing the base of the cone-		btVector3 yaxis(0,0,0);-		yaxis[upAxis] = btScalar(1.0);-		btVector3 xaxis(0,0,0);-		xaxis[(upAxis+1)%3] = btScalar(1.0);-		drawArc(start-transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,10.0);-	}+// Drawing top and bottom caps of the cylinder+btVector3 yaxis(0,0,0);+yaxis[upAxis] = btScalar(1.0);+btVector3 xaxis(0,0,0);+xaxis[(upAxis+1)%3] = btScalar(1.0);+drawArc(start-transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,btScalar(10.0));+drawArc(start+transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,btScalar(10.0));+} -	virtual void drawPlane(const btVector3& planeNormal, btScalar planeConst, const btTransform& transform, const btVector3& color)-	{-		btVector3 planeOrigin = planeNormal * planeConst;-		btVector3 vec0,vec1;-		btPlaneSpace1(planeNormal,vec0,vec1);-		btScalar vecLen = 100.f;-		btVector3 pt0 = planeOrigin + vec0*vecLen;-		btVector3 pt1 = planeOrigin - vec0*vecLen;-		btVector3 pt2 = planeOrigin + vec1*vecLen;-		btVector3 pt3 = planeOrigin - vec1*vecLen;-		drawLine(transform*pt0,transform*pt1,color);-		drawLine(transform*pt2,transform*pt3,color);-	}+virtual void drawCone(btScalar radius, btScalar height, int upAxis, const btTransform& transform, const btVector3& color)+{++btVector3 start = transform.getOrigin();++btVector3 offsetHeight(0,0,0);+offsetHeight[upAxis] = height * btScalar(0.5);+btVector3 offsetRadius(0,0,0);+offsetRadius[(upAxis+1)%3] = radius;+btVector3 offset2Radius(0,0,0);+offset2Radius[(upAxis+2)%3] = radius;++drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight+offsetRadius),color);+drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight-offsetRadius),color);+drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight+offset2Radius),color);+drawLine(start+transform.getBasis() * (offsetHeight),start+transform.getBasis() * (-offsetHeight-offset2Radius),color);++// Drawing the base of the cone+btVector3 yaxis(0,0,0);+yaxis[upAxis] = btScalar(1.0);+btVector3 xaxis(0,0,0);+xaxis[(upAxis+1)%3] = btScalar(1.0);+drawArc(start-transform.getBasis()*(offsetHeight),transform.getBasis()*yaxis,transform.getBasis()*xaxis,radius,radius,0,SIMD_2_PI,color,false,10.0);+}++virtual void drawPlane(const btVector3& planeNormal, btScalar planeConst, const btTransform& transform, const btVector3& color)+{+btVector3 planeOrigin = planeNormal * planeConst;+btVector3 vec0,vec1;+btPlaneSpace1(planeNormal,vec0,vec1);+btScalar vecLen = 100.f;+btVector3 pt0 = planeOrigin + vec0*vecLen;+btVector3 pt1 = planeOrigin - vec0*vecLen;+btVector3 pt2 = planeOrigin + vec1*vecLen;+btVector3 pt3 = planeOrigin - vec1*vecLen;+drawLine(transform*pt0,transform*pt1,color);+drawLine(transform*pt2,transform*pt3,color);+} };  
bullet/LinearMath/btList.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -19,52 +19,52 @@  class btGEN_Link { public:-    btGEN_Link() : m_next(0), m_prev(0) {}-    btGEN_Link(btGEN_Link *next, btGEN_Link *prev) : m_next(next), m_prev(prev) {}-    -    btGEN_Link *getNext() const { return m_next; }  -    btGEN_Link *getPrev() const { return m_prev; }  +btGEN_Link() : m_next(0), m_prev(0) {}+btGEN_Link(btGEN_Link *next, btGEN_Link *prev) : m_next(next), m_prev(prev) {} -    bool isHead() const { return m_prev == 0; }-    bool isTail() const { return m_next == 0; }+btGEN_Link *getNext() const { return m_next; }+btGEN_Link *getPrev() const { return m_prev; } -    void insertBefore(btGEN_Link *link) {-        m_next         = link;-        m_prev         = link->m_prev;-        m_next->m_prev = this;-        m_prev->m_next = this;-    } +bool isHead() const { return m_prev == 0; }+bool isTail() const { return m_next == 0; } -    void insertAfter(btGEN_Link *link) {-        m_next         = link->m_next;-        m_prev         = link;-        m_next->m_prev = this;-        m_prev->m_next = this;-    } +void insertBefore(btGEN_Link *link) {+m_next = link;+m_prev = link->m_prev;+m_next->m_prev = this;+m_prev->m_next = this;+} -    void remove() { -        m_next->m_prev = m_prev; -        m_prev->m_next = m_next;-    }+void insertAfter(btGEN_Link *link) {+m_next = link->m_next;+m_prev = link;+m_next->m_prev = this;+m_prev->m_next = this;+} -private:  -    btGEN_Link  *m_next;-    btGEN_Link  *m_prev;+void remove() {+m_next->m_prev = m_prev;+m_prev->m_next = m_next;+}++private:+btGEN_Link *m_next;+btGEN_Link *m_prev; };  class btGEN_List { public:-    btGEN_List() : m_head(&m_tail, 0), m_tail(0, &m_head) {}+btGEN_List() : m_head(&m_tail, 0), m_tail(0, &m_head) {} -    btGEN_Link *getHead() const { return m_head.getNext(); } -    btGEN_Link *getTail() const { return m_tail.getPrev(); } +btGEN_Link *getHead() const { return m_head.getNext(); }+btGEN_Link *getTail() const { return m_tail.getPrev(); } -    void addHead(btGEN_Link *link) { link->insertAfter(&m_head); }-    void addTail(btGEN_Link *link) { link->insertBefore(&m_tail); }-    +void addHead(btGEN_Link *link) { link->insertAfter(&m_head); }+void addTail(btGEN_Link *link) { link->insertBefore(&m_tail); }+ private:-    btGEN_Link m_head;-    btGEN_Link m_tail;+btGEN_Link m_head;+btGEN_Link m_tail; };  #endif //BT_GEN_LIST_H
bullet/LinearMath/btMatrix3x3.h view
@@ -1,770 +1,770 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/---#ifndef	BT_MATRIX3x3_H-#define BT_MATRIX3x3_H--#include "btVector3.h"-#include "btQuaternion.h"--#ifdef BT_USE_DOUBLE_PRECISION-#define btMatrix3x3Data	btMatrix3x3DoubleData -#else-#define btMatrix3x3Data	btMatrix3x3FloatData-#endif //BT_USE_DOUBLE_PRECISION---/**@brief The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with btQuaternion, btTransform and btVector3.-* Make sure to only include a pure orthogonal matrix without scaling. */-class btMatrix3x3 {--	///Data storage for the matrix, each vector is a row of the matrix-	btVector3 m_el[3];--public:-	/** @brief No initializaion constructor */-	btMatrix3x3 () {}--	//		explicit btMatrix3x3(const btScalar *m) { setFromOpenGLSubMatrix(m); }--	/**@brief Constructor from Quaternion */-	explicit btMatrix3x3(const btQuaternion& q) { setRotation(q); }-	/*-	template <typename btScalar>-	Matrix3x3(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)-	{ -	setEulerYPR(yaw, pitch, roll);-	}-	*/-	/** @brief Constructor with row major formatting */-	btMatrix3x3(const btScalar& xx, const btScalar& xy, const btScalar& xz,-		const btScalar& yx, const btScalar& yy, const btScalar& yz,-		const btScalar& zx, const btScalar& zy, const btScalar& zz)-	{ -		setValue(xx, xy, xz, -			yx, yy, yz, -			zx, zy, zz);-	}-	/** @brief Copy constructor */-	SIMD_FORCE_INLINE btMatrix3x3 (const btMatrix3x3& other)-	{-		m_el[0] = other.m_el[0];-		m_el[1] = other.m_el[1];-		m_el[2] = other.m_el[2];-	}-	/** @brief Assignment Operator */-	SIMD_FORCE_INLINE btMatrix3x3& operator=(const btMatrix3x3& other)-	{-		m_el[0] = other.m_el[0];-		m_el[1] = other.m_el[1];-		m_el[2] = other.m_el[2];-		return *this;-	}--	/** @brief Get a column of the matrix as a vector -	*  @param i Column number 0 indexed */-	SIMD_FORCE_INLINE btVector3 getColumn(int i) const-	{-		return btVector3(m_el[0][i],m_el[1][i],m_el[2][i]);-	}---	/** @brief Get a row of the matrix as a vector -	*  @param i Row number 0 indexed */-	SIMD_FORCE_INLINE const btVector3& getRow(int i) const-	{-		btFullAssert(0 <= i && i < 3);-		return m_el[i];-	}--	/** @brief Get a mutable reference to a row of the matrix as a vector -	*  @param i Row number 0 indexed */-	SIMD_FORCE_INLINE btVector3&  operator[](int i)-	{ -		btFullAssert(0 <= i && i < 3);-		return m_el[i]; -	}--	/** @brief Get a const reference to a row of the matrix as a vector -	*  @param i Row number 0 indexed */-	SIMD_FORCE_INLINE const btVector3& operator[](int i) const-	{-		btFullAssert(0 <= i && i < 3);-		return m_el[i]; -	}--	/** @brief Multiply by the target matrix on the right-	*  @param m Rotation matrix to be applied -	* Equivilant to this = this * m */-	btMatrix3x3& operator*=(const btMatrix3x3& m); --	/** @brief Adds by the target matrix on the right-	*  @param m matrix to be applied -	* Equivilant to this = this + m */-	btMatrix3x3& operator+=(const btMatrix3x3& m); --	/** @brief Substractss by the target matrix on the right-	*  @param m matrix to be applied -	* Equivilant to this = this - m */-	btMatrix3x3& operator-=(const btMatrix3x3& m); --	/** @brief Set from the rotational part of a 4x4 OpenGL matrix-	*  @param m A pointer to the beginning of the array of scalars*/-	void setFromOpenGLSubMatrix(const btScalar *m)-	{-		m_el[0].setValue(m[0],m[4],m[8]);-		m_el[1].setValue(m[1],m[5],m[9]);-		m_el[2].setValue(m[2],m[6],m[10]);--	}-	/** @brief Set the values of the matrix explicitly (row major)-	*  @param xx Top left-	*  @param xy Top Middle-	*  @param xz Top Right-	*  @param yx Middle Left-	*  @param yy Middle Middle-	*  @param yz Middle Right-	*  @param zx Bottom Left-	*  @param zy Bottom Middle-	*  @param zz Bottom Right*/-	void setValue(const btScalar& xx, const btScalar& xy, const btScalar& xz, -		const btScalar& yx, const btScalar& yy, const btScalar& yz, -		const btScalar& zx, const btScalar& zy, const btScalar& zz)-	{-		m_el[0].setValue(xx,xy,xz);-		m_el[1].setValue(yx,yy,yz);-		m_el[2].setValue(zx,zy,zz);-	}--	/** @brief Set the matrix from a quaternion-	*  @param q The Quaternion to match */  -	void setRotation(const btQuaternion& q) -	{-		btScalar d = q.length2();-		btFullAssert(d != btScalar(0.0));-		btScalar s = btScalar(2.0) / d;-		btScalar xs = q.x() * s,   ys = q.y() * s,   zs = q.z() * s;-		btScalar wx = q.w() * xs,  wy = q.w() * ys,  wz = q.w() * zs;-		btScalar xx = q.x() * xs,  xy = q.x() * ys,  xz = q.x() * zs;-		btScalar yy = q.y() * ys,  yz = q.y() * zs,  zz = q.z() * zs;-		setValue(btScalar(1.0) - (yy + zz), xy - wz, xz + wy,-			xy + wz, btScalar(1.0) - (xx + zz), yz - wx,-			xz - wy, yz + wx, btScalar(1.0) - (xx + yy));-	}---	/** @brief Set the matrix from euler angles using YPR around YXZ respectively-	*  @param yaw Yaw about Y axis-	*  @param pitch Pitch about X axis-	*  @param roll Roll about Z axis -	*/-	void setEulerYPR(const btScalar& yaw, const btScalar& pitch, const btScalar& roll) -	{-		setEulerZYX(roll, pitch, yaw);-	}--	/** @brief Set the matrix from euler angles YPR around ZYX axes-	* @param eulerX Roll about X axis-	* @param eulerY Pitch around Y axis-	* @param eulerZ Yaw aboud Z axis-	* -	* These angles are used to produce a rotation matrix. The euler-	* angles are applied in ZYX order. I.e a vector is first rotated -	* about X then Y and then Z-	**/-	void setEulerZYX(btScalar eulerX,btScalar eulerY,btScalar eulerZ) { -		///@todo proposed to reverse this since it's labeled zyx but takes arguments xyz and it will match all other parts of the code-		btScalar ci ( btCos(eulerX)); -		btScalar cj ( btCos(eulerY)); -		btScalar ch ( btCos(eulerZ)); -		btScalar si ( btSin(eulerX)); -		btScalar sj ( btSin(eulerY)); -		btScalar sh ( btSin(eulerZ)); -		btScalar cc = ci * ch; -		btScalar cs = ci * sh; -		btScalar sc = si * ch; -		btScalar ss = si * sh;--		setValue(cj * ch, sj * sc - cs, sj * cc + ss,-			cj * sh, sj * ss + cc, sj * cs - sc, -			-sj,      cj * si,      cj * ci);-	}--	/**@brief Set the matrix to the identity */-	void setIdentity()-	{ -		setValue(btScalar(1.0), btScalar(0.0), btScalar(0.0), -			btScalar(0.0), btScalar(1.0), btScalar(0.0), -			btScalar(0.0), btScalar(0.0), btScalar(1.0)); -	}--	static const btMatrix3x3&	getIdentity()-	{-		static const btMatrix3x3 identityMatrix(btScalar(1.0), btScalar(0.0), btScalar(0.0), -			btScalar(0.0), btScalar(1.0), btScalar(0.0), -			btScalar(0.0), btScalar(0.0), btScalar(1.0));-		return identityMatrix;-	}--	/**@brief Fill the rotational part of an OpenGL matrix and clear the shear/perspective-	* @param m The array to be filled */-	void getOpenGLSubMatrix(btScalar *m) const -	{-		m[0]  = btScalar(m_el[0].x()); -		m[1]  = btScalar(m_el[1].x());-		m[2]  = btScalar(m_el[2].x());-		m[3]  = btScalar(0.0); -		m[4]  = btScalar(m_el[0].y());-		m[5]  = btScalar(m_el[1].y());-		m[6]  = btScalar(m_el[2].y());-		m[7]  = btScalar(0.0); -		m[8]  = btScalar(m_el[0].z()); -		m[9]  = btScalar(m_el[1].z());-		m[10] = btScalar(m_el[2].z());-		m[11] = btScalar(0.0); -	}--	/**@brief Get the matrix represented as a quaternion -	* @param q The quaternion which will be set */-	void getRotation(btQuaternion& q) const-	{-		btScalar trace = m_el[0].x() + m_el[1].y() + m_el[2].z();-		btScalar temp[4];--		if (trace > btScalar(0.0)) -		{-			btScalar s = btSqrt(trace + btScalar(1.0));-			temp[3]=(s * btScalar(0.5));-			s = btScalar(0.5) / s;--			temp[0]=((m_el[2].y() - m_el[1].z()) * s);-			temp[1]=((m_el[0].z() - m_el[2].x()) * s);-			temp[2]=((m_el[1].x() - m_el[0].y()) * s);-		} -		else -		{-			int i = m_el[0].x() < m_el[1].y() ? -				(m_el[1].y() < m_el[2].z() ? 2 : 1) :-				(m_el[0].x() < m_el[2].z() ? 2 : 0); -			int j = (i + 1) % 3;  -			int k = (i + 2) % 3;--			btScalar s = btSqrt(m_el[i][i] - m_el[j][j] - m_el[k][k] + btScalar(1.0));-			temp[i] = s * btScalar(0.5);-			s = btScalar(0.5) / s;--			temp[3] = (m_el[k][j] - m_el[j][k]) * s;-			temp[j] = (m_el[j][i] + m_el[i][j]) * s;-			temp[k] = (m_el[k][i] + m_el[i][k]) * s;-		}-		q.setValue(temp[0],temp[1],temp[2],temp[3]);-	}--	/**@brief Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR-	* @param yaw Yaw around Y axis-	* @param pitch Pitch around X axis-	* @param roll around Z axis */	-	void getEulerYPR(btScalar& yaw, btScalar& pitch, btScalar& roll) const-	{--		// first use the normal calculus-		yaw = btScalar(btAtan2(m_el[1].x(), m_el[0].x()));-		pitch = btScalar(btAsin(-m_el[2].x()));-		roll = btScalar(btAtan2(m_el[2].y(), m_el[2].z()));--		// on pitch = +/-HalfPI-		if (btFabs(pitch)==SIMD_HALF_PI)-		{-			if (yaw>0)-				yaw-=SIMD_PI;-			else-				yaw+=SIMD_PI;--			if (roll>0)-				roll-=SIMD_PI;-			else-				roll+=SIMD_PI;-		}-	};---	/**@brief Get the matrix represented as euler angles around ZYX-	* @param yaw Yaw around X axis-	* @param pitch Pitch around Y axis-	* @param roll around X axis -	* @param solution_number Which solution of two possible solutions ( 1 or 2) are possible values*/	-	void getEulerZYX(btScalar& yaw, btScalar& pitch, btScalar& roll, unsigned int solution_number = 1) const-	{-		struct Euler-		{-			btScalar yaw;-			btScalar pitch;-			btScalar roll;-		};--		Euler euler_out;-		Euler euler_out2; //second solution-		//get the pointer to the raw data--		// Check that pitch is not at a singularity-		if (btFabs(m_el[2].x()) >= 1)-		{-			euler_out.yaw = 0;-			euler_out2.yaw = 0;--			// From difference of angles formula-			btScalar delta = btAtan2(m_el[0].x(),m_el[0].z());-			if (m_el[2].x() > 0)  //gimbal locked up-			{-				euler_out.pitch = SIMD_PI / btScalar(2.0);-				euler_out2.pitch = SIMD_PI / btScalar(2.0);-				euler_out.roll = euler_out.pitch + delta;-				euler_out2.roll = euler_out.pitch + delta;-			}-			else // gimbal locked down-			{-				euler_out.pitch = -SIMD_PI / btScalar(2.0);-				euler_out2.pitch = -SIMD_PI / btScalar(2.0);-				euler_out.roll = -euler_out.pitch + delta;-				euler_out2.roll = -euler_out.pitch + delta;-			}-		}-		else-		{-			euler_out.pitch = - btAsin(m_el[2].x());-			euler_out2.pitch = SIMD_PI - euler_out.pitch;--			euler_out.roll = btAtan2(m_el[2].y()/btCos(euler_out.pitch), -				m_el[2].z()/btCos(euler_out.pitch));-			euler_out2.roll = btAtan2(m_el[2].y()/btCos(euler_out2.pitch), -				m_el[2].z()/btCos(euler_out2.pitch));--			euler_out.yaw = btAtan2(m_el[1].x()/btCos(euler_out.pitch), -				m_el[0].x()/btCos(euler_out.pitch));-			euler_out2.yaw = btAtan2(m_el[1].x()/btCos(euler_out2.pitch), -				m_el[0].x()/btCos(euler_out2.pitch));-		}--		if (solution_number == 1)-		{ -			yaw = euler_out.yaw; -			pitch = euler_out.pitch;-			roll = euler_out.roll;-		}-		else-		{ -			yaw = euler_out2.yaw; -			pitch = euler_out2.pitch;-			roll = euler_out2.roll;-		}-	}--	/**@brief Create a scaled copy of the matrix -	* @param s Scaling vector The elements of the vector will scale each column */--	btMatrix3x3 scaled(const btVector3& s) const-	{-		return btMatrix3x3(m_el[0].x() * s.x(), m_el[0].y() * s.y(), m_el[0].z() * s.z(),-			m_el[1].x() * s.x(), m_el[1].y() * s.y(), m_el[1].z() * s.z(),-			m_el[2].x() * s.x(), m_el[2].y() * s.y(), m_el[2].z() * s.z());-	}--	/**@brief Return the determinant of the matrix */-	btScalar            determinant() const;-	/**@brief Return the adjoint of the matrix */-	btMatrix3x3 adjoint() const;-	/**@brief Return the matrix with all values non negative */-	btMatrix3x3 absolute() const;-	/**@brief Return the transpose of the matrix */-	btMatrix3x3 transpose() const;-	/**@brief Return the inverse of the matrix */-	btMatrix3x3 inverse() const; --	btMatrix3x3 transposeTimes(const btMatrix3x3& m) const;-	btMatrix3x3 timesTranspose(const btMatrix3x3& m) const;--	SIMD_FORCE_INLINE btScalar tdotx(const btVector3& v) const -	{-		return m_el[0].x() * v.x() + m_el[1].x() * v.y() + m_el[2].x() * v.z();-	}-	SIMD_FORCE_INLINE btScalar tdoty(const btVector3& v) const -	{-		return m_el[0].y() * v.x() + m_el[1].y() * v.y() + m_el[2].y() * v.z();-	}-	SIMD_FORCE_INLINE btScalar tdotz(const btVector3& v) const -	{-		return m_el[0].z() * v.x() + m_el[1].z() * v.y() + m_el[2].z() * v.z();-	}---	/**@brief diagonalizes this matrix by the Jacobi method.-	* @param rot stores the rotation from the coordinate system in which the matrix is diagonal to the original-	* coordinate system, i.e., old_this = rot * new_this * rot^T. -	* @param threshold See iteration-	* @param iteration The iteration stops when all off-diagonal elements are less than the threshold multiplied -	* by the sum of the absolute values of the diagonal, or when maxSteps have been executed. -	* -	* Note that this matrix is assumed to be symmetric. -	*/-	void diagonalize(btMatrix3x3& rot, btScalar threshold, int maxSteps)-	{-		rot.setIdentity();-		for (int step = maxSteps; step > 0; step--)-		{-			// find off-diagonal element [p][q] with largest magnitude-			int p = 0;-			int q = 1;-			int r = 2;-			btScalar max = btFabs(m_el[0][1]);-			btScalar v = btFabs(m_el[0][2]);-			if (v > max)-			{-				q = 2;-				r = 1;-				max = v;-			}-			v = btFabs(m_el[1][2]);-			if (v > max)-			{-				p = 1;-				q = 2;-				r = 0;-				max = v;-			}--			btScalar t = threshold * (btFabs(m_el[0][0]) + btFabs(m_el[1][1]) + btFabs(m_el[2][2]));-			if (max <= t)-			{-				if (max <= SIMD_EPSILON * t)-				{-					return;-				}-				step = 1;-			}--			// compute Jacobi rotation J which leads to a zero for element [p][q] -			btScalar mpq = m_el[p][q];-			btScalar theta = (m_el[q][q] - m_el[p][p]) / (2 * mpq);-			btScalar theta2 = theta * theta;-			btScalar cos;-			btScalar sin;-			if (theta2 * theta2 < btScalar(10 / SIMD_EPSILON))-			{-				t = (theta >= 0) ? 1 / (theta + btSqrt(1 + theta2))-					: 1 / (theta - btSqrt(1 + theta2));-				cos = 1 / btSqrt(1 + t * t);-				sin = cos * t;-			}-			else-			{-				// approximation for large theta-value, i.e., a nearly diagonal matrix-				t = 1 / (theta * (2 + btScalar(0.5) / theta2));-				cos = 1 - btScalar(0.5) * t * t;-				sin = cos * t;-			}--			// apply rotation to matrix (this = J^T * this * J)-			m_el[p][q] = m_el[q][p] = 0;-			m_el[p][p] -= t * mpq;-			m_el[q][q] += t * mpq;-			btScalar mrp = m_el[r][p];-			btScalar mrq = m_el[r][q];-			m_el[r][p] = m_el[p][r] = cos * mrp - sin * mrq;-			m_el[r][q] = m_el[q][r] = cos * mrq + sin * mrp;--			// apply rotation to rot (rot = rot * J)-			for (int i = 0; i < 3; i++)-			{-				btVector3& row = rot[i];-				mrp = row[p];-				mrq = row[q];-				row[p] = cos * mrp - sin * mrq;-				row[q] = cos * mrq + sin * mrp;-			}-		}-	}-----	/**@brief Calculate the matrix cofactor -	* @param r1 The first row to use for calculating the cofactor-	* @param c1 The first column to use for calculating the cofactor-	* @param r1 The second row to use for calculating the cofactor-	* @param c1 The second column to use for calculating the cofactor-	* See http://en.wikipedia.org/wiki/Cofactor_(linear_algebra) for more details-	*/-	btScalar cofac(int r1, int c1, int r2, int c2) const -	{-		return m_el[r1][c1] * m_el[r2][c2] - m_el[r1][c2] * m_el[r2][c1];-	}--	void	serialize(struct	btMatrix3x3Data& dataOut) const;--	void	serializeFloat(struct	btMatrix3x3FloatData& dataOut) const;--	void	deSerialize(const struct	btMatrix3x3Data& dataIn);--	void	deSerializeFloat(const struct	btMatrix3x3FloatData& dataIn);--	void	deSerializeDouble(const struct	btMatrix3x3DoubleData& dataIn);--};---SIMD_FORCE_INLINE btMatrix3x3& -btMatrix3x3::operator*=(const btMatrix3x3& m)-{-	setValue(m.tdotx(m_el[0]), m.tdoty(m_el[0]), m.tdotz(m_el[0]),-		m.tdotx(m_el[1]), m.tdoty(m_el[1]), m.tdotz(m_el[1]),-		m.tdotx(m_el[2]), m.tdoty(m_el[2]), m.tdotz(m_el[2]));-	return *this;-}--SIMD_FORCE_INLINE btMatrix3x3& -btMatrix3x3::operator+=(const btMatrix3x3& m)-{-	setValue(-		m_el[0][0]+m.m_el[0][0], -		m_el[0][1]+m.m_el[0][1],-		m_el[0][2]+m.m_el[0][2],-		m_el[1][0]+m.m_el[1][0], -		m_el[1][1]+m.m_el[1][1],-		m_el[1][2]+m.m_el[1][2],-		m_el[2][0]+m.m_el[2][0], -		m_el[2][1]+m.m_el[2][1],-		m_el[2][2]+m.m_el[2][2]);-	return *this;-}--SIMD_FORCE_INLINE btMatrix3x3-operator*(const btMatrix3x3& m, const btScalar & k)-{-	return btMatrix3x3(-		m[0].x()*k,m[0].y()*k,m[0].z()*k,-		m[1].x()*k,m[1].y()*k,m[1].z()*k,-		m[2].x()*k,m[2].y()*k,m[2].z()*k);-}-- SIMD_FORCE_INLINE btMatrix3x3 -operator+(const btMatrix3x3& m1, const btMatrix3x3& m2)-{-	return btMatrix3x3(-	m1[0][0]+m2[0][0], -	m1[0][1]+m2[0][1],-	m1[0][2]+m2[0][2],-	m1[1][0]+m2[1][0], -	m1[1][1]+m2[1][1],-	m1[1][2]+m2[1][2],-	m1[2][0]+m2[2][0], -	m1[2][1]+m2[2][1],-	m1[2][2]+m2[2][2]);-}--SIMD_FORCE_INLINE btMatrix3x3 -operator-(const btMatrix3x3& m1, const btMatrix3x3& m2)-{-	return btMatrix3x3(-	m1[0][0]-m2[0][0], -	m1[0][1]-m2[0][1],-	m1[0][2]-m2[0][2],-	m1[1][0]-m2[1][0], -	m1[1][1]-m2[1][1],-	m1[1][2]-m2[1][2],-	m1[2][0]-m2[2][0], -	m1[2][1]-m2[2][1],-	m1[2][2]-m2[2][2]);-}---SIMD_FORCE_INLINE btMatrix3x3& -btMatrix3x3::operator-=(const btMatrix3x3& m)-{-	setValue(-	m_el[0][0]-m.m_el[0][0], -	m_el[0][1]-m.m_el[0][1],-	m_el[0][2]-m.m_el[0][2],-	m_el[1][0]-m.m_el[1][0], -	m_el[1][1]-m.m_el[1][1],-	m_el[1][2]-m.m_el[1][2],-	m_el[2][0]-m.m_el[2][0], -	m_el[2][1]-m.m_el[2][1],-	m_el[2][2]-m.m_el[2][2]);-	return *this;-}---SIMD_FORCE_INLINE btScalar -btMatrix3x3::determinant() const-{ -	return btTriple((*this)[0], (*this)[1], (*this)[2]);-}---SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::absolute() const-{-	return btMatrix3x3(-		btFabs(m_el[0].x()), btFabs(m_el[0].y()), btFabs(m_el[0].z()),-		btFabs(m_el[1].x()), btFabs(m_el[1].y()), btFabs(m_el[1].z()),-		btFabs(m_el[2].x()), btFabs(m_el[2].y()), btFabs(m_el[2].z()));-}--SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::transpose() const -{-	return btMatrix3x3(m_el[0].x(), m_el[1].x(), m_el[2].x(),-		m_el[0].y(), m_el[1].y(), m_el[2].y(),-		m_el[0].z(), m_el[1].z(), m_el[2].z());-}--SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::adjoint() const -{-	return btMatrix3x3(cofac(1, 1, 2, 2), cofac(0, 2, 2, 1), cofac(0, 1, 1, 2),-		cofac(1, 2, 2, 0), cofac(0, 0, 2, 2), cofac(0, 2, 1, 0),-		cofac(1, 0, 2, 1), cofac(0, 1, 2, 0), cofac(0, 0, 1, 1));-}--SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::inverse() const-{-	btVector3 co(cofac(1, 1, 2, 2), cofac(1, 2, 2, 0), cofac(1, 0, 2, 1));-	btScalar det = (*this)[0].dot(co);-	btFullAssert(det != btScalar(0.0));-	btScalar s = btScalar(1.0) / det;-	return btMatrix3x3(co.x() * s, cofac(0, 2, 2, 1) * s, cofac(0, 1, 1, 2) * s,-		co.y() * s, cofac(0, 0, 2, 2) * s, cofac(0, 2, 1, 0) * s,-		co.z() * s, cofac(0, 1, 2, 0) * s, cofac(0, 0, 1, 1) * s);-}--SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::transposeTimes(const btMatrix3x3& m) const-{-	return btMatrix3x3(-		m_el[0].x() * m[0].x() + m_el[1].x() * m[1].x() + m_el[2].x() * m[2].x(),-		m_el[0].x() * m[0].y() + m_el[1].x() * m[1].y() + m_el[2].x() * m[2].y(),-		m_el[0].x() * m[0].z() + m_el[1].x() * m[1].z() + m_el[2].x() * m[2].z(),-		m_el[0].y() * m[0].x() + m_el[1].y() * m[1].x() + m_el[2].y() * m[2].x(),-		m_el[0].y() * m[0].y() + m_el[1].y() * m[1].y() + m_el[2].y() * m[2].y(),-		m_el[0].y() * m[0].z() + m_el[1].y() * m[1].z() + m_el[2].y() * m[2].z(),-		m_el[0].z() * m[0].x() + m_el[1].z() * m[1].x() + m_el[2].z() * m[2].x(),-		m_el[0].z() * m[0].y() + m_el[1].z() * m[1].y() + m_el[2].z() * m[2].y(),-		m_el[0].z() * m[0].z() + m_el[1].z() * m[1].z() + m_el[2].z() * m[2].z());-}--SIMD_FORCE_INLINE btMatrix3x3 -btMatrix3x3::timesTranspose(const btMatrix3x3& m) const-{-	return btMatrix3x3(-		m_el[0].dot(m[0]), m_el[0].dot(m[1]), m_el[0].dot(m[2]),-		m_el[1].dot(m[0]), m_el[1].dot(m[1]), m_el[1].dot(m[2]),-		m_el[2].dot(m[0]), m_el[2].dot(m[1]), m_el[2].dot(m[2]));--}--SIMD_FORCE_INLINE btVector3 -operator*(const btMatrix3x3& m, const btVector3& v) -{-	return btVector3(m[0].dot(v), m[1].dot(v), m[2].dot(v));-}---SIMD_FORCE_INLINE btVector3-operator*(const btVector3& v, const btMatrix3x3& m)-{-	return btVector3(m.tdotx(v), m.tdoty(v), m.tdotz(v));-}--SIMD_FORCE_INLINE btMatrix3x3 -operator*(const btMatrix3x3& m1, const btMatrix3x3& m2)-{-	return btMatrix3x3(-		m2.tdotx( m1[0]), m2.tdoty( m1[0]), m2.tdotz( m1[0]),-		m2.tdotx( m1[1]), m2.tdoty( m1[1]), m2.tdotz( m1[1]),-		m2.tdotx( m1[2]), m2.tdoty( m1[2]), m2.tdotz( m1[2]));-}--/*-SIMD_FORCE_INLINE btMatrix3x3 btMultTransposeLeft(const btMatrix3x3& m1, const btMatrix3x3& m2) {-return btMatrix3x3(-m1[0][0] * m2[0][0] + m1[1][0] * m2[1][0] + m1[2][0] * m2[2][0],-m1[0][0] * m2[0][1] + m1[1][0] * m2[1][1] + m1[2][0] * m2[2][1],-m1[0][0] * m2[0][2] + m1[1][0] * m2[1][2] + m1[2][0] * m2[2][2],-m1[0][1] * m2[0][0] + m1[1][1] * m2[1][0] + m1[2][1] * m2[2][0],-m1[0][1] * m2[0][1] + m1[1][1] * m2[1][1] + m1[2][1] * m2[2][1],-m1[0][1] * m2[0][2] + m1[1][1] * m2[1][2] + m1[2][1] * m2[2][2],-m1[0][2] * m2[0][0] + m1[1][2] * m2[1][0] + m1[2][2] * m2[2][0],-m1[0][2] * m2[0][1] + m1[1][2] * m2[1][1] + m1[2][2] * m2[2][1],-m1[0][2] * m2[0][2] + m1[1][2] * m2[1][2] + m1[2][2] * m2[2][2]);-}-*/--/**@brief Equality operator between two matrices-* It will test all elements are equal.  */-SIMD_FORCE_INLINE bool operator==(const btMatrix3x3& m1, const btMatrix3x3& m2)-{-	return ( m1[0][0] == m2[0][0] && m1[1][0] == m2[1][0] && m1[2][0] == m2[2][0] &&-		m1[0][1] == m2[0][1] && m1[1][1] == m2[1][1] && m1[2][1] == m2[2][1] &&-		m1[0][2] == m2[0][2] && m1[1][2] == m2[1][2] && m1[2][2] == m2[2][2] );-}--///for serialization-struct	btMatrix3x3FloatData-{-	btVector3FloatData m_el[3];-};--///for serialization-struct	btMatrix3x3DoubleData-{-	btVector3DoubleData m_el[3];-};---	--SIMD_FORCE_INLINE	void	btMatrix3x3::serialize(struct	btMatrix3x3Data& dataOut) const-{-	for (int i=0;i<3;i++)-		m_el[i].serialize(dataOut.m_el[i]);-}--SIMD_FORCE_INLINE	void	btMatrix3x3::serializeFloat(struct	btMatrix3x3FloatData& dataOut) const-{-	for (int i=0;i<3;i++)-		m_el[i].serializeFloat(dataOut.m_el[i]);-}---SIMD_FORCE_INLINE	void	btMatrix3x3::deSerialize(const struct	btMatrix3x3Data& dataIn)-{-	for (int i=0;i<3;i++)-		m_el[i].deSerialize(dataIn.m_el[i]);-}--SIMD_FORCE_INLINE	void	btMatrix3x3::deSerializeFloat(const struct	btMatrix3x3FloatData& dataIn)-{-	for (int i=0;i<3;i++)-		m_el[i].deSerializeFloat(dataIn.m_el[i]);-}--SIMD_FORCE_INLINE	void	btMatrix3x3::deSerializeDouble(const struct	btMatrix3x3DoubleData& dataIn)-{-	for (int i=0;i<3;i++)-		m_el[i].deSerializeDouble(dataIn.m_el[i]);+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/+++#ifndef BT_MATRIX3x3_H+#define BT_MATRIX3x3_H++#include "btVector3.h"+#include "btQuaternion.h"++#ifdef BT_USE_DOUBLE_PRECISION+#define btMatrix3x3Data btMatrix3x3DoubleData+#else+#define btMatrix3x3Data btMatrix3x3FloatData+#endif //BT_USE_DOUBLE_PRECISION+++/**@brief The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with btQuaternion, btTransform and btVector3.+* Make sure to only include a pure orthogonal matrix without scaling. */+class btMatrix3x3 {++///Data storage for the matrix, each vector is a row of the matrix+btVector3 m_el[3];++public:+/** @brief No initializaion constructor */+btMatrix3x3 () {}++// explicit btMatrix3x3(const btScalar *m) { setFromOpenGLSubMatrix(m); }++/**@brief Constructor from Quaternion */+explicit btMatrix3x3(const btQuaternion& q) { setRotation(q); }+/*+template <typename btScalar>+Matrix3x3(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)+{+setEulerYPR(yaw, pitch, roll);+}+*/+/** @brief Constructor with row major formatting */+btMatrix3x3(const btScalar& xx, const btScalar& xy, const btScalar& xz,+const btScalar& yx, const btScalar& yy, const btScalar& yz,+const btScalar& zx, const btScalar& zy, const btScalar& zz)+{+setValue(xx, xy, xz,+yx, yy, yz,+zx, zy, zz);+}+/** @brief Copy constructor */+SIMD_FORCE_INLINE btMatrix3x3 (const btMatrix3x3& other)+{+m_el[0] = other.m_el[0];+m_el[1] = other.m_el[1];+m_el[2] = other.m_el[2];+}+/** @brief Assignment Operator */+SIMD_FORCE_INLINE btMatrix3x3& operator=(const btMatrix3x3& other)+{+m_el[0] = other.m_el[0];+m_el[1] = other.m_el[1];+m_el[2] = other.m_el[2];+return *this;+}++/** @brief Get a column of the matrix as a vector+* @param i Column number 0 indexed */+SIMD_FORCE_INLINE btVector3 getColumn(int i) const+{+return btVector3(m_el[0][i],m_el[1][i],m_el[2][i]);+}+++/** @brief Get a row of the matrix as a vector+* @param i Row number 0 indexed */+SIMD_FORCE_INLINE const btVector3& getRow(int i) const+{+btFullAssert(0 <= i && i < 3);+return m_el[i];+}++/** @brief Get a mutable reference to a row of the matrix as a vector+* @param i Row number 0 indexed */+SIMD_FORCE_INLINE btVector3& operator[](int i)+{+btFullAssert(0 <= i && i < 3);+return m_el[i];+}++/** @brief Get a const reference to a row of the matrix as a vector+* @param i Row number 0 indexed */+SIMD_FORCE_INLINE const btVector3& operator[](int i) const+{+btFullAssert(0 <= i && i < 3);+return m_el[i];+}++/** @brief Multiply by the target matrix on the right+* @param m Rotation matrix to be applied+* Equivilant to this = this * m */+btMatrix3x3& operator*=(const btMatrix3x3& m);++/** @brief Adds by the target matrix on the right+* @param m matrix to be applied+* Equivilant to this = this + m */+btMatrix3x3& operator+=(const btMatrix3x3& m);++/** @brief Substractss by the target matrix on the right+* @param m matrix to be applied+* Equivilant to this = this - m */+btMatrix3x3& operator-=(const btMatrix3x3& m);++/** @brief Set from the rotational part of a 4x4 OpenGL matrix+* @param m A pointer to the beginning of the array of scalars*/+void setFromOpenGLSubMatrix(const btScalar *m)+{+m_el[0].setValue(m[0],m[4],m[8]);+m_el[1].setValue(m[1],m[5],m[9]);+m_el[2].setValue(m[2],m[6],m[10]);++}+/** @brief Set the values of the matrix explicitly (row major)+* @param xx Top left+* @param xy Top Middle+* @param xz Top Right+* @param yx Middle Left+* @param yy Middle Middle+* @param yz Middle Right+* @param zx Bottom Left+* @param zy Bottom Middle+* @param zz Bottom Right*/+void setValue(const btScalar& xx, const btScalar& xy, const btScalar& xz,+const btScalar& yx, const btScalar& yy, const btScalar& yz,+const btScalar& zx, const btScalar& zy, const btScalar& zz)+{+m_el[0].setValue(xx,xy,xz);+m_el[1].setValue(yx,yy,yz);+m_el[2].setValue(zx,zy,zz);+}++/** @brief Set the matrix from a quaternion+* @param q The Quaternion to match */+void setRotation(const btQuaternion& q)+{+btScalar d = q.length2();+btFullAssert(d != btScalar(0.0));+btScalar s = btScalar(2.0) / d;+btScalar xs = q.x() * s, ys = q.y() * s, zs = q.z() * s;+btScalar wx = q.w() * xs, wy = q.w() * ys, wz = q.w() * zs;+btScalar xx = q.x() * xs, xy = q.x() * ys, xz = q.x() * zs;+btScalar yy = q.y() * ys, yz = q.y() * zs, zz = q.z() * zs;+setValue(btScalar(1.0) - (yy + zz), xy - wz, xz + wy,+xy + wz, btScalar(1.0) - (xx + zz), yz - wx,+xz - wy, yz + wx, btScalar(1.0) - (xx + yy));+}+++/** @brief Set the matrix from euler angles using YPR around YXZ respectively+* @param yaw Yaw about Y axis+* @param pitch Pitch about X axis+* @param roll Roll about Z axis+*/+void setEulerYPR(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)+{+setEulerZYX(roll, pitch, yaw);+}++/** @brief Set the matrix from euler angles YPR around ZYX axes+* @param eulerX Roll about X axis+* @param eulerY Pitch around Y axis+* @param eulerZ Yaw aboud Z axis+*+* These angles are used to produce a rotation matrix. The euler+* angles are applied in ZYX order. I.e a vector is first rotated+* about X then Y and then Z+**/+void setEulerZYX(btScalar eulerX,btScalar eulerY,btScalar eulerZ) {+///@todo proposed to reverse this since it's labeled zyx but takes arguments xyz and it will match all other parts of the code+btScalar ci ( btCos(eulerX));+btScalar cj ( btCos(eulerY));+btScalar ch ( btCos(eulerZ));+btScalar si ( btSin(eulerX));+btScalar sj ( btSin(eulerY));+btScalar sh ( btSin(eulerZ));+btScalar cc = ci * ch;+btScalar cs = ci * sh;+btScalar sc = si * ch;+btScalar ss = si * sh;++setValue(cj * ch, sj * sc - cs, sj * cc + ss,+cj * sh, sj * ss + cc, sj * cs - sc,+-sj, cj * si, cj * ci);+}++/**@brief Set the matrix to the identity */+void setIdentity()+{+setValue(btScalar(1.0), btScalar(0.0), btScalar(0.0),+btScalar(0.0), btScalar(1.0), btScalar(0.0),+btScalar(0.0), btScalar(0.0), btScalar(1.0));+}++static const btMatrix3x3& getIdentity()+{+static const btMatrix3x3 identityMatrix(btScalar(1.0), btScalar(0.0), btScalar(0.0),+btScalar(0.0), btScalar(1.0), btScalar(0.0),+btScalar(0.0), btScalar(0.0), btScalar(1.0));+return identityMatrix;+}++/**@brief Fill the rotational part of an OpenGL matrix and clear the shear/perspective+* @param m The array to be filled */+void getOpenGLSubMatrix(btScalar *m) const+{+m[0] = btScalar(m_el[0].x());+m[1] = btScalar(m_el[1].x());+m[2] = btScalar(m_el[2].x());+m[3] = btScalar(0.0);+m[4] = btScalar(m_el[0].y());+m[5] = btScalar(m_el[1].y());+m[6] = btScalar(m_el[2].y());+m[7] = btScalar(0.0);+m[8] = btScalar(m_el[0].z());+m[9] = btScalar(m_el[1].z());+m[10] = btScalar(m_el[2].z());+m[11] = btScalar(0.0);+}++/**@brief Get the matrix represented as a quaternion+* @param q The quaternion which will be set */+void getRotation(btQuaternion& q) const+{+btScalar trace = m_el[0].x() + m_el[1].y() + m_el[2].z();+btScalar temp[4];++if (trace > btScalar(0.0))+{+btScalar s = btSqrt(trace + btScalar(1.0));+temp[3]=(s * btScalar(0.5));+s = btScalar(0.5) / s;++temp[0]=((m_el[2].y() - m_el[1].z()) * s);+temp[1]=((m_el[0].z() - m_el[2].x()) * s);+temp[2]=((m_el[1].x() - m_el[0].y()) * s);+}+else+{+int i = m_el[0].x() < m_el[1].y() ?+(m_el[1].y() < m_el[2].z() ? 2 : 1) :+(m_el[0].x() < m_el[2].z() ? 2 : 0);+int j = (i + 1) % 3;+int k = (i + 2) % 3;++btScalar s = btSqrt(m_el[i][i] - m_el[j][j] - m_el[k][k] + btScalar(1.0));+temp[i] = s * btScalar(0.5);+s = btScalar(0.5) / s;++temp[3] = (m_el[k][j] - m_el[j][k]) * s;+temp[j] = (m_el[j][i] + m_el[i][j]) * s;+temp[k] = (m_el[k][i] + m_el[i][k]) * s;+}+q.setValue(temp[0],temp[1],temp[2],temp[3]);+}++/**@brief Get the matrix represented as euler angles around YXZ, roundtrip with setEulerYPR+* @param yaw Yaw around Y axis+* @param pitch Pitch around X axis+* @param roll around Z axis */+void getEulerYPR(btScalar& yaw, btScalar& pitch, btScalar& roll) const+{++// first use the normal calculus+yaw = btScalar(btAtan2(m_el[1].x(), m_el[0].x()));+pitch = btScalar(btAsin(-m_el[2].x()));+roll = btScalar(btAtan2(m_el[2].y(), m_el[2].z()));++// on pitch = +/-HalfPI+if (btFabs(pitch)==SIMD_HALF_PI)+{+if (yaw>0)+yaw-=SIMD_PI;+else+yaw+=SIMD_PI;++if (roll>0)+roll-=SIMD_PI;+else+roll+=SIMD_PI;+}+};+++/**@brief Get the matrix represented as euler angles around ZYX+* @param yaw Yaw around X axis+* @param pitch Pitch around Y axis+* @param roll around X axis+* @param solution_number Which solution of two possible solutions ( 1 or 2) are possible values*/+void getEulerZYX(btScalar& yaw, btScalar& pitch, btScalar& roll, unsigned int solution_number = 1) const+{+struct Euler+{+btScalar yaw;+btScalar pitch;+btScalar roll;+};++Euler euler_out;+Euler euler_out2; //second solution+//get the pointer to the raw data++// Check that pitch is not at a singularity+if (btFabs(m_el[2].x()) >= 1)+{+euler_out.yaw = 0;+euler_out2.yaw = 0;++// From difference of angles formula+btScalar delta = btAtan2(m_el[0].x(),m_el[0].z());+if (m_el[2].x() > 0) //gimbal locked up+{+euler_out.pitch = SIMD_PI / btScalar(2.0);+euler_out2.pitch = SIMD_PI / btScalar(2.0);+euler_out.roll = euler_out.pitch + delta;+euler_out2.roll = euler_out.pitch + delta;+}+else // gimbal locked down+{+euler_out.pitch = -SIMD_PI / btScalar(2.0);+euler_out2.pitch = -SIMD_PI / btScalar(2.0);+euler_out.roll = -euler_out.pitch + delta;+euler_out2.roll = -euler_out.pitch + delta;+}+}+else+{+euler_out.pitch = - btAsin(m_el[2].x());+euler_out2.pitch = SIMD_PI - euler_out.pitch;++euler_out.roll = btAtan2(m_el[2].y()/btCos(euler_out.pitch),+m_el[2].z()/btCos(euler_out.pitch));+euler_out2.roll = btAtan2(m_el[2].y()/btCos(euler_out2.pitch),+m_el[2].z()/btCos(euler_out2.pitch));++euler_out.yaw = btAtan2(m_el[1].x()/btCos(euler_out.pitch),+m_el[0].x()/btCos(euler_out.pitch));+euler_out2.yaw = btAtan2(m_el[1].x()/btCos(euler_out2.pitch),+m_el[0].x()/btCos(euler_out2.pitch));+}++if (solution_number == 1)+{+yaw = euler_out.yaw;+pitch = euler_out.pitch;+roll = euler_out.roll;+}+else+{+yaw = euler_out2.yaw;+pitch = euler_out2.pitch;+roll = euler_out2.roll;+}+}++/**@brief Create a scaled copy of the matrix+* @param s Scaling vector The elements of the vector will scale each column */++btMatrix3x3 scaled(const btVector3& s) const+{+return btMatrix3x3(m_el[0].x() * s.x(), m_el[0].y() * s.y(), m_el[0].z() * s.z(),+m_el[1].x() * s.x(), m_el[1].y() * s.y(), m_el[1].z() * s.z(),+m_el[2].x() * s.x(), m_el[2].y() * s.y(), m_el[2].z() * s.z());+}++/**@brief Return the determinant of the matrix */+btScalar determinant() const;+/**@brief Return the adjoint of the matrix */+btMatrix3x3 adjoint() const;+/**@brief Return the matrix with all values non negative */+btMatrix3x3 absolute() const;+/**@brief Return the transpose of the matrix */+btMatrix3x3 transpose() const;+/**@brief Return the inverse of the matrix */+btMatrix3x3 inverse() const;++btMatrix3x3 transposeTimes(const btMatrix3x3& m) const;+btMatrix3x3 timesTranspose(const btMatrix3x3& m) const;++SIMD_FORCE_INLINE btScalar tdotx(const btVector3& v) const+{+return m_el[0].x() * v.x() + m_el[1].x() * v.y() + m_el[2].x() * v.z();+}+SIMD_FORCE_INLINE btScalar tdoty(const btVector3& v) const+{+return m_el[0].y() * v.x() + m_el[1].y() * v.y() + m_el[2].y() * v.z();+}+SIMD_FORCE_INLINE btScalar tdotz(const btVector3& v) const+{+return m_el[0].z() * v.x() + m_el[1].z() * v.y() + m_el[2].z() * v.z();+}+++/**@brief diagonalizes this matrix by the Jacobi method.+* @param rot stores the rotation from the coordinate system in which the matrix is diagonal to the original+* coordinate system, i.e., old_this = rot * new_this * rot^T.+* @param threshold See iteration+* @param iteration The iteration stops when all off-diagonal elements are less than the threshold multiplied+* by the sum of the absolute values of the diagonal, or when maxSteps have been executed.+*+* Note that this matrix is assumed to be symmetric.+*/+void diagonalize(btMatrix3x3& rot, btScalar threshold, int maxSteps)+{+rot.setIdentity();+for (int step = maxSteps; step > 0; step--)+{+// find off-diagonal element [p][q] with largest magnitude+int p = 0;+int q = 1;+int r = 2;+btScalar max = btFabs(m_el[0][1]);+btScalar v = btFabs(m_el[0][2]);+if (v > max)+{+q = 2;+r = 1;+max = v;+}+v = btFabs(m_el[1][2]);+if (v > max)+{+p = 1;+q = 2;+r = 0;+max = v;+}++btScalar t = threshold * (btFabs(m_el[0][0]) + btFabs(m_el[1][1]) + btFabs(m_el[2][2]));+if (max <= t)+{+if (max <= SIMD_EPSILON * t)+{+return;+}+step = 1;+}++// compute Jacobi rotation J which leads to a zero for element [p][q]+btScalar mpq = m_el[p][q];+btScalar theta = (m_el[q][q] - m_el[p][p]) / (2 * mpq);+btScalar theta2 = theta * theta;+btScalar cos;+btScalar sin;+if (theta2 * theta2 < btScalar(10 / SIMD_EPSILON))+{+t = (theta >= 0) ? 1 / (theta + btSqrt(1 + theta2))+: 1 / (theta - btSqrt(1 + theta2));+cos = 1 / btSqrt(1 + t * t);+sin = cos * t;+}+else+{+// approximation for large theta-value, i.e., a nearly diagonal matrix+t = 1 / (theta * (2 + btScalar(0.5) / theta2));+cos = 1 - btScalar(0.5) * t * t;+sin = cos * t;+}++// apply rotation to matrix (this = J^T * this * J)+m_el[p][q] = m_el[q][p] = 0;+m_el[p][p] -= t * mpq;+m_el[q][q] += t * mpq;+btScalar mrp = m_el[r][p];+btScalar mrq = m_el[r][q];+m_el[r][p] = m_el[p][r] = cos * mrp - sin * mrq;+m_el[r][q] = m_el[q][r] = cos * mrq + sin * mrp;++// apply rotation to rot (rot = rot * J)+for (int i = 0; i < 3; i++)+{+btVector3& row = rot[i];+mrp = row[p];+mrq = row[q];+row[p] = cos * mrp - sin * mrq;+row[q] = cos * mrq + sin * mrp;+}+}+}+++++/**@brief Calculate the matrix cofactor+* @param r1 The first row to use for calculating the cofactor+* @param c1 The first column to use for calculating the cofactor+* @param r1 The second row to use for calculating the cofactor+* @param c1 The second column to use for calculating the cofactor+* See http://en.wikipedia.org/wiki/Cofactor_(linear_algebra) for more details+*/+btScalar cofac(int r1, int c1, int r2, int c2) const+{+return m_el[r1][c1] * m_el[r2][c2] - m_el[r1][c2] * m_el[r2][c1];+}++void serialize(struct btMatrix3x3Data& dataOut) const;++void serializeFloat(struct btMatrix3x3FloatData& dataOut) const;++void deSerialize(const struct btMatrix3x3Data& dataIn);++void deSerializeFloat(const struct btMatrix3x3FloatData& dataIn);++void deSerializeDouble(const struct btMatrix3x3DoubleData& dataIn);++};+++SIMD_FORCE_INLINE btMatrix3x3&+btMatrix3x3::operator*=(const btMatrix3x3& m)+{+setValue(m.tdotx(m_el[0]), m.tdoty(m_el[0]), m.tdotz(m_el[0]),+m.tdotx(m_el[1]), m.tdoty(m_el[1]), m.tdotz(m_el[1]),+m.tdotx(m_el[2]), m.tdoty(m_el[2]), m.tdotz(m_el[2]));+return *this;+}++SIMD_FORCE_INLINE btMatrix3x3&+btMatrix3x3::operator+=(const btMatrix3x3& m)+{+setValue(+m_el[0][0]+m.m_el[0][0],+m_el[0][1]+m.m_el[0][1],+m_el[0][2]+m.m_el[0][2],+m_el[1][0]+m.m_el[1][0],+m_el[1][1]+m.m_el[1][1],+m_el[1][2]+m.m_el[1][2],+m_el[2][0]+m.m_el[2][0],+m_el[2][1]+m.m_el[2][1],+m_el[2][2]+m.m_el[2][2]);+return *this;+}++SIMD_FORCE_INLINE btMatrix3x3+operator*(const btMatrix3x3& m, const btScalar & k)+{+return btMatrix3x3(+m[0].x()*k,m[0].y()*k,m[0].z()*k,+m[1].x()*k,m[1].y()*k,m[1].z()*k,+m[2].x()*k,m[2].y()*k,m[2].z()*k);+}++SIMD_FORCE_INLINE btMatrix3x3+operator+(const btMatrix3x3& m1, const btMatrix3x3& m2)+{+return btMatrix3x3(+m1[0][0]+m2[0][0],+m1[0][1]+m2[0][1],+m1[0][2]+m2[0][2],+m1[1][0]+m2[1][0],+m1[1][1]+m2[1][1],+m1[1][2]+m2[1][2],+m1[2][0]+m2[2][0],+m1[2][1]+m2[2][1],+m1[2][2]+m2[2][2]);+}++SIMD_FORCE_INLINE btMatrix3x3+operator-(const btMatrix3x3& m1, const btMatrix3x3& m2)+{+return btMatrix3x3(+m1[0][0]-m2[0][0],+m1[0][1]-m2[0][1],+m1[0][2]-m2[0][2],+m1[1][0]-m2[1][0],+m1[1][1]-m2[1][1],+m1[1][2]-m2[1][2],+m1[2][0]-m2[2][0],+m1[2][1]-m2[2][1],+m1[2][2]-m2[2][2]);+}+++SIMD_FORCE_INLINE btMatrix3x3&+btMatrix3x3::operator-=(const btMatrix3x3& m)+{+setValue(+m_el[0][0]-m.m_el[0][0],+m_el[0][1]-m.m_el[0][1],+m_el[0][2]-m.m_el[0][2],+m_el[1][0]-m.m_el[1][0],+m_el[1][1]-m.m_el[1][1],+m_el[1][2]-m.m_el[1][2],+m_el[2][0]-m.m_el[2][0],+m_el[2][1]-m.m_el[2][1],+m_el[2][2]-m.m_el[2][2]);+return *this;+}+++SIMD_FORCE_INLINE btScalar+btMatrix3x3::determinant() const+{+return btTriple((*this)[0], (*this)[1], (*this)[2]);+}+++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::absolute() const+{+return btMatrix3x3(+btFabs(m_el[0].x()), btFabs(m_el[0].y()), btFabs(m_el[0].z()),+btFabs(m_el[1].x()), btFabs(m_el[1].y()), btFabs(m_el[1].z()),+btFabs(m_el[2].x()), btFabs(m_el[2].y()), btFabs(m_el[2].z()));+}++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::transpose() const+{+return btMatrix3x3(m_el[0].x(), m_el[1].x(), m_el[2].x(),+m_el[0].y(), m_el[1].y(), m_el[2].y(),+m_el[0].z(), m_el[1].z(), m_el[2].z());+}++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::adjoint() const+{+return btMatrix3x3(cofac(1, 1, 2, 2), cofac(0, 2, 2, 1), cofac(0, 1, 1, 2),+cofac(1, 2, 2, 0), cofac(0, 0, 2, 2), cofac(0, 2, 1, 0),+cofac(1, 0, 2, 1), cofac(0, 1, 2, 0), cofac(0, 0, 1, 1));+}++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::inverse() const+{+btVector3 co(cofac(1, 1, 2, 2), cofac(1, 2, 2, 0), cofac(1, 0, 2, 1));+btScalar det = (*this)[0].dot(co);+btFullAssert(det != btScalar(0.0));+btScalar s = btScalar(1.0) / det;+return btMatrix3x3(co.x() * s, cofac(0, 2, 2, 1) * s, cofac(0, 1, 1, 2) * s,+co.y() * s, cofac(0, 0, 2, 2) * s, cofac(0, 2, 1, 0) * s,+co.z() * s, cofac(0, 1, 2, 0) * s, cofac(0, 0, 1, 1) * s);+}++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::transposeTimes(const btMatrix3x3& m) const+{+return btMatrix3x3(+m_el[0].x() * m[0].x() + m_el[1].x() * m[1].x() + m_el[2].x() * m[2].x(),+m_el[0].x() * m[0].y() + m_el[1].x() * m[1].y() + m_el[2].x() * m[2].y(),+m_el[0].x() * m[0].z() + m_el[1].x() * m[1].z() + m_el[2].x() * m[2].z(),+m_el[0].y() * m[0].x() + m_el[1].y() * m[1].x() + m_el[2].y() * m[2].x(),+m_el[0].y() * m[0].y() + m_el[1].y() * m[1].y() + m_el[2].y() * m[2].y(),+m_el[0].y() * m[0].z() + m_el[1].y() * m[1].z() + m_el[2].y() * m[2].z(),+m_el[0].z() * m[0].x() + m_el[1].z() * m[1].x() + m_el[2].z() * m[2].x(),+m_el[0].z() * m[0].y() + m_el[1].z() * m[1].y() + m_el[2].z() * m[2].y(),+m_el[0].z() * m[0].z() + m_el[1].z() * m[1].z() + m_el[2].z() * m[2].z());+}++SIMD_FORCE_INLINE btMatrix3x3+btMatrix3x3::timesTranspose(const btMatrix3x3& m) const+{+return btMatrix3x3(+m_el[0].dot(m[0]), m_el[0].dot(m[1]), m_el[0].dot(m[2]),+m_el[1].dot(m[0]), m_el[1].dot(m[1]), m_el[1].dot(m[2]),+m_el[2].dot(m[0]), m_el[2].dot(m[1]), m_el[2].dot(m[2]));++}++SIMD_FORCE_INLINE btVector3+operator*(const btMatrix3x3& m, const btVector3& v)+{+return btVector3(m[0].dot(v), m[1].dot(v), m[2].dot(v));+}+++SIMD_FORCE_INLINE btVector3+operator*(const btVector3& v, const btMatrix3x3& m)+{+return btVector3(m.tdotx(v), m.tdoty(v), m.tdotz(v));+}++SIMD_FORCE_INLINE btMatrix3x3+operator*(const btMatrix3x3& m1, const btMatrix3x3& m2)+{+return btMatrix3x3(+m2.tdotx( m1[0]), m2.tdoty( m1[0]), m2.tdotz( m1[0]),+m2.tdotx( m1[1]), m2.tdoty( m1[1]), m2.tdotz( m1[1]),+m2.tdotx( m1[2]), m2.tdoty( m1[2]), m2.tdotz( m1[2]));+}++/*+SIMD_FORCE_INLINE btMatrix3x3 btMultTransposeLeft(const btMatrix3x3& m1, const btMatrix3x3& m2) {+return btMatrix3x3(+m1[0][0] * m2[0][0] + m1[1][0] * m2[1][0] + m1[2][0] * m2[2][0],+m1[0][0] * m2[0][1] + m1[1][0] * m2[1][1] + m1[2][0] * m2[2][1],+m1[0][0] * m2[0][2] + m1[1][0] * m2[1][2] + m1[2][0] * m2[2][2],+m1[0][1] * m2[0][0] + m1[1][1] * m2[1][0] + m1[2][1] * m2[2][0],+m1[0][1] * m2[0][1] + m1[1][1] * m2[1][1] + m1[2][1] * m2[2][1],+m1[0][1] * m2[0][2] + m1[1][1] * m2[1][2] + m1[2][1] * m2[2][2],+m1[0][2] * m2[0][0] + m1[1][2] * m2[1][0] + m1[2][2] * m2[2][0],+m1[0][2] * m2[0][1] + m1[1][2] * m2[1][1] + m1[2][2] * m2[2][1],+m1[0][2] * m2[0][2] + m1[1][2] * m2[1][2] + m1[2][2] * m2[2][2]);+}+*/++/**@brief Equality operator between two matrices+* It will test all elements are equal. */+SIMD_FORCE_INLINE bool operator==(const btMatrix3x3& m1, const btMatrix3x3& m2)+{+return ( m1[0][0] == m2[0][0] && m1[1][0] == m2[1][0] && m1[2][0] == m2[2][0] &&+m1[0][1] == m2[0][1] && m1[1][1] == m2[1][1] && m1[2][1] == m2[2][1] &&+m1[0][2] == m2[0][2] && m1[1][2] == m2[1][2] && m1[2][2] == m2[2][2] );+}++///for serialization+struct btMatrix3x3FloatData+{+btVector3FloatData m_el[3];+};++///for serialization+struct btMatrix3x3DoubleData+{+btVector3DoubleData m_el[3];+};+++++SIMD_FORCE_INLINE void btMatrix3x3::serialize(struct btMatrix3x3Data& dataOut) const+{+for (int i=0;i<3;i++)+m_el[i].serialize(dataOut.m_el[i]);+}++SIMD_FORCE_INLINE void btMatrix3x3::serializeFloat(struct btMatrix3x3FloatData& dataOut) const+{+for (int i=0;i<3;i++)+m_el[i].serializeFloat(dataOut.m_el[i]);+}+++SIMD_FORCE_INLINE void btMatrix3x3::deSerialize(const struct btMatrix3x3Data& dataIn)+{+for (int i=0;i<3;i++)+m_el[i].deSerialize(dataIn.m_el[i]);+}++SIMD_FORCE_INLINE void btMatrix3x3::deSerializeFloat(const struct btMatrix3x3FloatData& dataIn)+{+for (int i=0;i<3;i++)+m_el[i].deSerializeFloat(dataIn.m_el[i]);+}++SIMD_FORCE_INLINE void btMatrix3x3::deSerializeDouble(const struct btMatrix3x3DoubleData& dataIn)+{+for (int i=0;i<3;i++)+m_el[i].deSerializeDouble(dataIn.m_el[i]); }  #endif //BT_MATRIX3x3_H
bullet/LinearMath/btMinMax.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,52 +20,52 @@ #include "LinearMath/btScalar.h"  template <class T>-SIMD_FORCE_INLINE const T& btMin(const T& a, const T& b) +SIMD_FORCE_INLINE const T& btMin(const T& a, const T& b) {-  return a < b ? a : b ;+return a < b ? a : b ; }  template <class T>-SIMD_FORCE_INLINE const T& btMax(const T& a, const T& b) +SIMD_FORCE_INLINE const T& btMax(const T& a, const T& b) {-  return  a > b ? a : b;+return a > b ? a : b; }  template <class T>-SIMD_FORCE_INLINE const T& btClamped(const T& a, const T& lb, const T& ub) +SIMD_FORCE_INLINE const T& btClamped(const T& a, const T& lb, const T& ub) {-	return a < lb ? lb : (ub < a ? ub : a); +return a < lb ? lb : (ub < a ? ub : a); }  template <class T>-SIMD_FORCE_INLINE void btSetMin(T& a, const T& b) +SIMD_FORCE_INLINE void btSetMin(T& a, const T& b) {-    if (b < a) -	{-		a = b;-	}+if (b < a)+{+a = b; }+}  template <class T>-SIMD_FORCE_INLINE void btSetMax(T& a, const T& b) +SIMD_FORCE_INLINE void btSetMax(T& a, const T& b) {-    if (a < b) -	{-		a = b;-	}+if (a < b)+{+a = b; }+}  template <class T>-SIMD_FORCE_INLINE void btClamp(T& a, const T& lb, const T& ub) +SIMD_FORCE_INLINE void btClamp(T& a, const T& lb, const T& ub) {-	if (a < lb) -	{-		a = lb; -	}-	else if (ub < a) -	{-		a = ub;-	}+if (a < lb)+{+a = lb;+}+else if (ub < a)+{+a = ub;+} }  #endif //BT_GEN_MINMAX_H
bullet/LinearMath/btMotionState.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,21 +20,21 @@  ///The btMotionState interface class allows the dynamics world to synchronize and interpolate the updated world transforms with graphics ///For optimizations, potentially only moving objects get synchronized (using setWorldPosition/setWorldOrientation)-class	btMotionState+class btMotionState+{ private:+public:++virtual ~btMotionState() {-	public:-		-		virtual ~btMotionState()-		{-			-		}-		-		virtual void	getWorldTransform(btTransform& worldTrans ) const =0; -		//Bullet only calls the update of worldtransform for active objects-		virtual void	setWorldTransform(const btTransform& worldTrans)=0;-		-	+}++virtual void getWorldTransform(btTransform& worldTrans ) const =0;++//Bullet only calls the update of worldtransform for active objects+virtual void setWorldTransform(const btTransform& worldTrans)=0;++ };  #endif //BT_MOTIONSTATE_H
bullet/LinearMath/btPoolAllocator.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -21,100 +21,100 @@  ///The btPoolAllocator class allows to efficiently allocate a large pool of objects, instead of dynamically allocating them separately. class btPoolAllocator-{-	int				m_elemSize;-	int				m_maxElements;-	int				m_freeCount;-	void*			m_firstFree;-	unsigned char*	m_pool;+{ private:+int m_elemSize;+int m_maxElements;+int m_freeCount;+void* m_firstFree;+unsigned char* m_pool;  public: -	btPoolAllocator(int elemSize, int maxElements)-		:m_elemSize(elemSize),-		m_maxElements(maxElements)-	{-		m_pool = (unsigned char*) btAlignedAlloc( static_cast<unsigned int>(m_elemSize*m_maxElements),16);+btPoolAllocator(int elemSize, int maxElements)+:m_elemSize(elemSize),+m_maxElements(maxElements)+{+m_pool = (unsigned char*) btAlignedAlloc( static_cast<unsigned int>(m_elemSize*m_maxElements),16); -		unsigned char* p = m_pool;-        m_firstFree = p;-        m_freeCount = m_maxElements;-        int count = m_maxElements;-        while (--count) {-            *(void**)p = (p + m_elemSize);-            p += m_elemSize;-        }-        *(void**)p = 0;-    }+unsigned char* p = m_pool;+m_firstFree = p;+m_freeCount = m_maxElements;+int count = m_maxElements;+while (--count) {+*(void**)p = (p + m_elemSize);+p += m_elemSize;+}+*(void**)p = 0;+} -	~btPoolAllocator()-	{-		btAlignedFree( m_pool);-	}+~btPoolAllocator()+{+btAlignedFree( m_pool);+} -	int	getFreeCount() const-	{-		return m_freeCount;-	}+int getFreeCount() const+{+return m_freeCount;+} -	int getUsedCount() const-	{-		return m_maxElements - m_freeCount;-	}+int getUsedCount() const+{+return m_maxElements - m_freeCount;+} -	int getMaxCount() const-	{-		return m_maxElements;-	}+int getMaxCount() const+{+return m_maxElements;+} -	void*	allocate(int size)-	{-		// release mode fix-		(void)size;-		btAssert(!size || size<=m_elemSize);-		btAssert(m_freeCount>0);-        void* result = m_firstFree;-        m_firstFree = *(void**)m_firstFree;-        --m_freeCount;-        return result;-	}+void* allocate(int size)+{+// release mode fix+(void)size;+btAssert(!size || size<=m_elemSize);+btAssert(m_freeCount>0);+void* result = m_firstFree;+m_firstFree = *(void**)m_firstFree;+--m_freeCount;+return result;+} -	bool validPtr(void* ptr)-	{-		if (ptr) {-			if (((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize))-			{-				return true;-			}-		}-		return false;-	}+bool validPtr(void* ptr)+{+if (ptr) {+if (((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize))+{+return true;+}+}+return false;+} -	void	freeMemory(void* ptr)-	{-		 if (ptr) {-            btAssert((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize);+void freeMemory(void* ptr)+{+if (ptr) {+btAssert((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize); -            *(void**)ptr = m_firstFree;-            m_firstFree = ptr;-            ++m_freeCount;-        }-	}+*(void**)ptr = m_firstFree;+m_firstFree = ptr;+++m_freeCount;+}+} -	int	getElementSize() const-	{-		return m_elemSize;-	}+int getElementSize() const+{+return m_elemSize;+} -	unsigned char*	getPoolAddress()-	{-		return m_pool;-	}+unsigned char* getPoolAddress()+{+return m_pool;+} -	const unsigned char*	getPoolAddress() const-	{-		return m_pool;-	}+const unsigned char* getPoolAddress() const+{+return m_pool;+}  }; 
bullet/LinearMath/btQuadWord.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,9 +24,9 @@ #include <altivec.h> #endif -/**@brief The btQuadWord class is base class for btVector3 and btQuaternion. - * Some issues under PS3 Linux with IBM 2.1 SDK, gcc compiler prevent from using aligned quadword.- */+/**@brief The btQuadWord class is base class for btVector3 and btQuaternion.+* Some issues under PS3 Linux with IBM 2.1 SDK, gcc compiler prevent from using aligned quadword.+*/ #ifndef USE_LIBSPE2 ATTRIBUTE_ALIGNED16(class) btQuadWord #else@@ -36,142 +36,142 @@ protected:  #if defined (__SPU__) && defined (__CELLOS_LV2__)-	union {-		vec_float4 mVec128;-		btScalar	m_floats[4];-	};+union {+vec_float4 mVec128;+btScalar m_floats[4];+}; public:-	vec_float4	get128() const-	{-		return mVec128;-	}+vec_float4 get128() const+{+return mVec128;+} protected: #else //__CELLOS_LV2__ __SPU__-	btScalar	m_floats[4];+btScalar m_floats[4]; #endif //__CELLOS_LV2__ __SPU__ -	public:-  +public: -  /**@brief Return the x value */-		SIMD_FORCE_INLINE const btScalar& getX() const { return m_floats[0]; }-  /**@brief Return the y value */-		SIMD_FORCE_INLINE const btScalar& getY() const { return m_floats[1]; }-  /**@brief Return the z value */-		SIMD_FORCE_INLINE const btScalar& getZ() const { return m_floats[2]; }-  /**@brief Set the x value */-		SIMD_FORCE_INLINE void	setX(btScalar x) { m_floats[0] = x;};-  /**@brief Set the y value */-		SIMD_FORCE_INLINE void	setY(btScalar y) { m_floats[1] = y;};-  /**@brief Set the z value */-		SIMD_FORCE_INLINE void	setZ(btScalar z) { m_floats[2] = z;};-  /**@brief Set the w value */-		SIMD_FORCE_INLINE void	setW(btScalar w) { m_floats[3] = w;};-  /**@brief Return the x value */-		SIMD_FORCE_INLINE const btScalar& x() const { return m_floats[0]; }-  /**@brief Return the y value */-		SIMD_FORCE_INLINE const btScalar& y() const { return m_floats[1]; }-  /**@brief Return the z value */-		SIMD_FORCE_INLINE const btScalar& z() const { return m_floats[2]; }-  /**@brief Return the w value */-		SIMD_FORCE_INLINE const btScalar& w() const { return m_floats[3]; } -	//SIMD_FORCE_INLINE btScalar&       operator[](int i)       { return (&m_floats[0])[i];	}      -	//SIMD_FORCE_INLINE const btScalar& operator[](int i) const { return (&m_floats[0])[i]; }-	///operator btScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.-	SIMD_FORCE_INLINE	operator       btScalar *()       { return &m_floats[0]; }-	SIMD_FORCE_INLINE	operator const btScalar *() const { return &m_floats[0]; }+/**@brief Return the x value */+SIMD_FORCE_INLINE const btScalar& getX() const { return m_floats[0]; }+/**@brief Return the y value */+SIMD_FORCE_INLINE const btScalar& getY() const { return m_floats[1]; }+/**@brief Return the z value */+SIMD_FORCE_INLINE const btScalar& getZ() const { return m_floats[2]; }+/**@brief Set the x value */+SIMD_FORCE_INLINE void setX(btScalar x) { m_floats[0] = x;};+/**@brief Set the y value */+SIMD_FORCE_INLINE void setY(btScalar y) { m_floats[1] = y;};+/**@brief Set the z value */+SIMD_FORCE_INLINE void setZ(btScalar z) { m_floats[2] = z;};+/**@brief Set the w value */+SIMD_FORCE_INLINE void setW(btScalar w) { m_floats[3] = w;};+/**@brief Return the x value */+SIMD_FORCE_INLINE const btScalar& x() const { return m_floats[0]; }+/**@brief Return the y value */+SIMD_FORCE_INLINE const btScalar& y() const { return m_floats[1]; }+/**@brief Return the z value */+SIMD_FORCE_INLINE const btScalar& z() const { return m_floats[2]; }+/**@brief Return the w value */+SIMD_FORCE_INLINE const btScalar& w() const { return m_floats[3]; } -	SIMD_FORCE_INLINE	bool	operator==(const btQuadWord& other) const-	{-		return ((m_floats[3]==other.m_floats[3]) && (m_floats[2]==other.m_floats[2]) && (m_floats[1]==other.m_floats[1]) && (m_floats[0]==other.m_floats[0]));-	}+//SIMD_FORCE_INLINE btScalar& operator[](int i) { return (&m_floats[0])[i]; }+//SIMD_FORCE_INLINE const btScalar& operator[](int i) const { return (&m_floats[0])[i]; }+///operator btScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.+SIMD_FORCE_INLINE operator btScalar *() { return &m_floats[0]; }+SIMD_FORCE_INLINE operator const btScalar *() const { return &m_floats[0]; } -	SIMD_FORCE_INLINE	bool	operator!=(const btQuadWord& other) const-	{-		return !(*this == other);-	}+SIMD_FORCE_INLINE bool operator==(const btQuadWord& other) const+{+return ((m_floats[3]==other.m_floats[3]) && (m_floats[2]==other.m_floats[2]) && (m_floats[1]==other.m_floats[1]) && (m_floats[0]==other.m_floats[0]));+} -  /**@brief Set x,y,z and zero w -   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   */-		SIMD_FORCE_INLINE void 	setValue(const btScalar& x, const btScalar& y, const btScalar& z)-		{-			m_floats[0]=x;-			m_floats[1]=y;-			m_floats[2]=z;-			m_floats[3] = 0.f;-		}+SIMD_FORCE_INLINE bool operator!=(const btQuadWord& other) const+{+return !(*this == other);+} -/*		void getValue(btScalar *m) const -		{-			m[0] = m_floats[0];-			m[1] = m_floats[1];-			m[2] = m_floats[2];-		}+/**@brief Set x,y,z and zero w+* @param x Value of x+* @param y Value of y+* @param z Value of z */-/**@brief Set the values -   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   * @param w Value of w-   */-		SIMD_FORCE_INLINE void	setValue(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)-		{-			m_floats[0]=x;-			m_floats[1]=y;-			m_floats[2]=z;-			m_floats[3]=w;-		}-  /**@brief No initialization constructor */-		SIMD_FORCE_INLINE btQuadWord()-		//	:m_floats[0](btScalar(0.)),m_floats[1](btScalar(0.)),m_floats[2](btScalar(0.)),m_floats[3](btScalar(0.))-		{-		}- -  /**@brief Three argument constructor (zeros w)-   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   */-		SIMD_FORCE_INLINE btQuadWord(const btScalar& x, const btScalar& y, const btScalar& z)		-		{-			m_floats[0] = x, m_floats[1] = y, m_floats[2] = z, m_floats[3] = 0.0f;-		}+SIMD_FORCE_INLINE void setValue(const btScalar& x, const btScalar& y, const btScalar& z)+{+m_floats[0]=x;+m_floats[1]=y;+m_floats[2]=z;+m_floats[3] = 0.f;+} +/* void getValue(btScalar *m) const+{+m[0] = m_floats[0];+m[1] = m_floats[1];+m[2] = m_floats[2];+}+*/+/**@brief Set the values+* @param x Value of x+* @param y Value of y+* @param z Value of z+* @param w Value of w+*/+SIMD_FORCE_INLINE void setValue(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)+{+m_floats[0]=x;+m_floats[1]=y;+m_floats[2]=z;+m_floats[3]=w;+}+/**@brief No initialization constructor */+SIMD_FORCE_INLINE btQuadWord()+// :m_floats[0](btScalar(0.)),m_floats[1](btScalar(0.)),m_floats[2](btScalar(0.)),m_floats[3](btScalar(0.))+{+}++/**@brief Three argument constructor (zeros w)+* @param x Value of x+* @param y Value of y+* @param z Value of z+*/+SIMD_FORCE_INLINE btQuadWord(const btScalar& x, const btScalar& y, const btScalar& z)+{+m_floats[0] = x, m_floats[1] = y, m_floats[2] = z, m_floats[3] = 0.0f;+}+ /**@brief Initializing constructor-   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   * @param w Value of w-   */-		SIMD_FORCE_INLINE btQuadWord(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w) -		{-			m_floats[0] = x, m_floats[1] = y, m_floats[2] = z, m_floats[3] = w;-		}+* @param x Value of x+* @param y Value of y+* @param z Value of z+* @param w Value of w+*/+SIMD_FORCE_INLINE btQuadWord(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)+{+m_floats[0] = x, m_floats[1] = y, m_floats[2] = z, m_floats[3] = w;+} -  /**@brief Set each element to the max of the current values and the values of another btQuadWord-   * @param other The other btQuadWord to compare with -   */-		SIMD_FORCE_INLINE void	setMax(const btQuadWord& other)-		{-			btSetMax(m_floats[0], other.m_floats[0]);-			btSetMax(m_floats[1], other.m_floats[1]);-			btSetMax(m_floats[2], other.m_floats[2]);-			btSetMax(m_floats[3], other.m_floats[3]);-		}-  /**@brief Set each element to the min of the current values and the values of another btQuadWord-   * @param other The other btQuadWord to compare with -   */-		SIMD_FORCE_INLINE void	setMin(const btQuadWord& other)-		{-			btSetMin(m_floats[0], other.m_floats[0]);-			btSetMin(m_floats[1], other.m_floats[1]);-			btSetMin(m_floats[2], other.m_floats[2]);-			btSetMin(m_floats[3], other.m_floats[3]);-		}+/**@brief Set each element to the max of the current values and the values of another btQuadWord+* @param other The other btQuadWord to compare with+*/+SIMD_FORCE_INLINE void setMax(const btQuadWord& other)+{+btSetMax(m_floats[0], other.m_floats[0]);+btSetMax(m_floats[1], other.m_floats[1]);+btSetMax(m_floats[2], other.m_floats[2]);+btSetMax(m_floats[3], other.m_floats[3]);+}+/**@brief Set each element to the min of the current values and the values of another btQuadWord+* @param other The other btQuadWord to compare with+*/+SIMD_FORCE_INLINE void setMin(const btQuadWord& other)+{+btSetMin(m_floats[0], other.m_floats[0]);+btSetMin(m_floats[1], other.m_floats[1]);+btSetMin(m_floats[2], other.m_floats[2]);+btSetMin(m_floats[3], other.m_floats[3]);+}   
bullet/LinearMath/btQuaternion.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,406 +24,401 @@ /**@brief The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatrix3x3, btVector3 and btTransform. */ class btQuaternion : public btQuadWord { public:-  /**@brief No initialization constructor */-	btQuaternion() {}+/**@brief No initialization constructor */+btQuaternion() {} -	//		template <typename btScalar>-	//		explicit Quaternion(const btScalar *v) : Tuple4<btScalar>(v) {}-  /**@brief Constructor from scalars */-	btQuaternion(const btScalar& x, const btScalar& y, const btScalar& z, const btScalar& w) -		: btQuadWord(x, y, z, w) -	{}-  /**@brief Axis angle Constructor-   * @param axis The axis which the rotation is around-   * @param angle The magnitude of the rotation around the angle (Radians) */-	btQuaternion(const btVector3& axis, const btScalar& angle) -	{ -		setRotation(axis, angle); -	}-  /**@brief Constructor from Euler angles-   * @param yaw Angle around Y unless BT_EULER_DEFAULT_ZYX defined then Z-   * @param pitch Angle around X unless BT_EULER_DEFAULT_ZYX defined then Y-   * @param roll Angle around Z unless BT_EULER_DEFAULT_ZYX defined then X */-	btQuaternion(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)-	{ +// template <typename btScalar>+// explicit Quaternion(const btScalar *v) : Tuple4<btScalar>(v) {}+/**@brief Constructor from scalars */+btQuaternion(const btScalar& x, const btScalar& y, const btScalar& z, const btScalar& w)+: btQuadWord(x, y, z, w)+{}+/**@brief Axis angle Constructor+* @param axis The axis which the rotation is around+* @param angle The magnitude of the rotation around the angle (Radians) */+btQuaternion(const btVector3& axis, const btScalar& angle)+{+setRotation(axis, angle);+}+/**@brief Constructor from Euler angles+* @param yaw Angle around Y unless BT_EULER_DEFAULT_ZYX defined then Z+* @param pitch Angle around X unless BT_EULER_DEFAULT_ZYX defined then Y+* @param roll Angle around Z unless BT_EULER_DEFAULT_ZYX defined then X */+btQuaternion(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)+{ #ifndef BT_EULER_DEFAULT_ZYX-		setEuler(yaw, pitch, roll); +setEuler(yaw, pitch, roll); #else-		setEulerZYX(yaw, pitch, roll); -#endif -	}-  /**@brief Set the rotation using axis angle notation -   * @param axis The axis around which to rotate-   * @param angle The magnitude of the rotation in Radians */-	void setRotation(const btVector3& axis, const btScalar& angle)-	{-		btScalar d = axis.length();-		btAssert(d != btScalar(0.0));-		btScalar s = btSin(angle * btScalar(0.5)) / d;-		setValue(axis.x() * s, axis.y() * s, axis.z() * s, -			btCos(angle * btScalar(0.5)));-	}-  /**@brief Set the quaternion using Euler angles-   * @param yaw Angle around Y-   * @param pitch Angle around X-   * @param roll Angle around Z */-	void setEuler(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)-	{-		btScalar halfYaw = btScalar(yaw) * btScalar(0.5);  -		btScalar halfPitch = btScalar(pitch) * btScalar(0.5);  -		btScalar halfRoll = btScalar(roll) * btScalar(0.5);  -		btScalar cosYaw = btCos(halfYaw);-		btScalar sinYaw = btSin(halfYaw);-		btScalar cosPitch = btCos(halfPitch);-		btScalar sinPitch = btSin(halfPitch);-		btScalar cosRoll = btCos(halfRoll);-		btScalar sinRoll = btSin(halfRoll);-		setValue(cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw,-			cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw,-			sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw,-			cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw);-	}-  /**@brief Set the quaternion using euler angles -   * @param yaw Angle around Z-   * @param pitch Angle around Y-   * @param roll Angle around X */-	void setEulerZYX(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)-	{-		btScalar halfYaw = btScalar(yaw) * btScalar(0.5);  -		btScalar halfPitch = btScalar(pitch) * btScalar(0.5);  -		btScalar halfRoll = btScalar(roll) * btScalar(0.5);  -		btScalar cosYaw = btCos(halfYaw);-		btScalar sinYaw = btSin(halfYaw);-		btScalar cosPitch = btCos(halfPitch);-		btScalar sinPitch = btSin(halfPitch);-		btScalar cosRoll = btCos(halfRoll);-		btScalar sinRoll = btSin(halfRoll);-		setValue(sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw, //x-                         cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw, //y-                         cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw, //z-                         cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw); //formerly yzx-	}-  /**@brief Add two quaternions-   * @param q The quaternion to add to this one */-	SIMD_FORCE_INLINE	btQuaternion& operator+=(const btQuaternion& q)-	{-		m_floats[0] += q.x(); m_floats[1] += q.y(); m_floats[2] += q.z(); m_floats[3] += q.m_floats[3];-		return *this;-	}+setEulerZYX(yaw, pitch, roll);+#endif+}+/**@brief Set the rotation using axis angle notation+* @param axis The axis around which to rotate+* @param angle The magnitude of the rotation in Radians */+void setRotation(const btVector3& axis, const btScalar& angle)+{+btScalar d = axis.length();+btAssert(d != btScalar(0.0));+btScalar s = btSin(angle * btScalar(0.5)) / d;+setValue(axis.x() * s, axis.y() * s, axis.z() * s,+btCos(angle * btScalar(0.5)));+}+/**@brief Set the quaternion using Euler angles+* @param yaw Angle around Y+* @param pitch Angle around X+* @param roll Angle around Z */+void setEuler(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)+{+btScalar halfYaw = btScalar(yaw) * btScalar(0.5);+btScalar halfPitch = btScalar(pitch) * btScalar(0.5);+btScalar halfRoll = btScalar(roll) * btScalar(0.5);+btScalar cosYaw = btCos(halfYaw);+btScalar sinYaw = btSin(halfYaw);+btScalar cosPitch = btCos(halfPitch);+btScalar sinPitch = btSin(halfPitch);+btScalar cosRoll = btCos(halfRoll);+btScalar sinRoll = btSin(halfRoll);+setValue(cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw,+cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw,+sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw,+cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw);+}+/**@brief Set the quaternion using euler angles+* @param yaw Angle around Z+* @param pitch Angle around Y+* @param roll Angle around X */+void setEulerZYX(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)+{+btScalar halfYaw = btScalar(yaw) * btScalar(0.5);+btScalar halfPitch = btScalar(pitch) * btScalar(0.5);+btScalar halfRoll = btScalar(roll) * btScalar(0.5);+btScalar cosYaw = btCos(halfYaw);+btScalar sinYaw = btSin(halfYaw);+btScalar cosPitch = btCos(halfPitch);+btScalar sinPitch = btSin(halfPitch);+btScalar cosRoll = btCos(halfRoll);+btScalar sinRoll = btSin(halfRoll);+setValue(sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw, //x+cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw, //y+cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw, //z+cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw); //formerly yzx+}+/**@brief Add two quaternions+* @param q The quaternion to add to this one */+SIMD_FORCE_INLINE btQuaternion& operator+=(const btQuaternion& q)+{+m_floats[0] += q.x(); m_floats[1] += q.y(); m_floats[2] += q.z(); m_floats[3] += q.m_floats[3];+return *this;+} -  /**@brief Subtract out a quaternion-   * @param q The quaternion to subtract from this one */-	btQuaternion& operator-=(const btQuaternion& q) -	{-		m_floats[0] -= q.x(); m_floats[1] -= q.y(); m_floats[2] -= q.z(); m_floats[3] -= q.m_floats[3];-		return *this;-	}+/**@brief Subtract out a quaternion+* @param q The quaternion to subtract from this one */+btQuaternion& operator-=(const btQuaternion& q)+{+m_floats[0] -= q.x(); m_floats[1] -= q.y(); m_floats[2] -= q.z(); m_floats[3] -= q.m_floats[3];+return *this;+} -  /**@brief Scale this quaternion-   * @param s The scalar to scale by */-	btQuaternion& operator*=(const btScalar& s)-	{-		m_floats[0] *= s; m_floats[1] *= s; m_floats[2] *= s; m_floats[3] *= s;-		return *this;-	}+/**@brief Scale this quaternion+* @param s The scalar to scale by */+btQuaternion& operator*=(const btScalar& s)+{+m_floats[0] *= s; m_floats[1] *= s; m_floats[2] *= s; m_floats[3] *= s;+return *this;+} -  /**@brief Multiply this quaternion by q on the right-   * @param q The other quaternion -   * Equivilant to this = this * q */-	btQuaternion& operator*=(const btQuaternion& q)-	{-		setValue(m_floats[3] * q.x() + m_floats[0] * q.m_floats[3] + m_floats[1] * q.z() - m_floats[2] * q.y(),-			m_floats[3] * q.y() + m_floats[1] * q.m_floats[3] + m_floats[2] * q.x() - m_floats[0] * q.z(),-			m_floats[3] * q.z() + m_floats[2] * q.m_floats[3] + m_floats[0] * q.y() - m_floats[1] * q.x(),-			m_floats[3] * q.m_floats[3] - m_floats[0] * q.x() - m_floats[1] * q.y() - m_floats[2] * q.z());-		return *this;-	}-  /**@brief Return the dot product between this quaternion and another-   * @param q The other quaternion */-	btScalar dot(const btQuaternion& q) const-	{-		return m_floats[0] * q.x() + m_floats[1] * q.y() + m_floats[2] * q.z() + m_floats[3] * q.m_floats[3];-	}+/**@brief Multiply this quaternion by q on the right+* @param q The other quaternion+* Equivilant to this = this * q */+btQuaternion& operator*=(const btQuaternion& q)+{+setValue(m_floats[3] * q.x() + m_floats[0] * q.m_floats[3] + m_floats[1] * q.z() - m_floats[2] * q.y(),+m_floats[3] * q.y() + m_floats[1] * q.m_floats[3] + m_floats[2] * q.x() - m_floats[0] * q.z(),+m_floats[3] * q.z() + m_floats[2] * q.m_floats[3] + m_floats[0] * q.y() - m_floats[1] * q.x(),+m_floats[3] * q.m_floats[3] - m_floats[0] * q.x() - m_floats[1] * q.y() - m_floats[2] * q.z());+return *this;+}+/**@brief Return the dot product between this quaternion and another+* @param q The other quaternion */+btScalar dot(const btQuaternion& q) const+{+return m_floats[0] * q.x() + m_floats[1] * q.y() + m_floats[2] * q.z() + m_floats[3] * q.m_floats[3];+} -  /**@brief Return the length squared of the quaternion */-	btScalar length2() const-	{-		return dot(*this);-	}+/**@brief Return the length squared of the quaternion */+btScalar length2() const+{+return dot(*this);+} -  /**@brief Return the length of the quaternion */-	btScalar length() const-	{-		return btSqrt(length2());-	}+/**@brief Return the length of the quaternion */+btScalar length() const+{+return btSqrt(length2());+} -  /**@brief Normalize the quaternion -   * Such that x^2 + y^2 + z^2 +w^2 = 1 */-	btQuaternion& normalize() -	{-		return *this /= length();-	}+/**@brief Normalize the quaternion+* Such that x^2 + y^2 + z^2 +w^2 = 1 */+btQuaternion& normalize()+{+return *this /= length();+} -  /**@brief Return a scaled version of this quaternion-   * @param s The scale factor */-	SIMD_FORCE_INLINE btQuaternion-	operator*(const btScalar& s) const-	{-		return btQuaternion(x() * s, y() * s, z() * s, m_floats[3] * s);-	}+/**@brief Return a scaled version of this quaternion+* @param s The scale factor */+SIMD_FORCE_INLINE btQuaternion+operator*(const btScalar& s) const+{+return btQuaternion(x() * s, y() * s, z() * s, m_floats[3] * s);+}  -  /**@brief Return an inversely scaled versionof this quaternion-   * @param s The inverse scale factor */-	btQuaternion operator/(const btScalar& s) const-	{-		btAssert(s != btScalar(0.0));-		return *this * (btScalar(1.0) / s);-	}+/**@brief Return an inversely scaled versionof this quaternion+* @param s The inverse scale factor */+btQuaternion operator/(const btScalar& s) const+{+btAssert(s != btScalar(0.0));+return *this * (btScalar(1.0) / s);+} -  /**@brief Inversely scale this quaternion-   * @param s The scale factor */-	btQuaternion& operator/=(const btScalar& s) -	{-		btAssert(s != btScalar(0.0));-		return *this *= btScalar(1.0) / s;-	}+/**@brief Inversely scale this quaternion+* @param s The scale factor */+btQuaternion& operator/=(const btScalar& s)+{+btAssert(s != btScalar(0.0));+return *this *= btScalar(1.0) / s;+} -  /**@brief Return a normalized version of this quaternion */-	btQuaternion normalized() const -	{-		return *this / length();-	} -  /**@brief Return the angle between this quaternion and the other -   * @param q The other quaternion */-	btScalar angle(const btQuaternion& q) const -	{-		btScalar s = btSqrt(length2() * q.length2());-		btAssert(s != btScalar(0.0));-		return btAcos(dot(q) / s);-	}-  /**@brief Return the angle of rotation represented by this quaternion */-	btScalar getAngle() const -	{-		btScalar s = btScalar(2.) * btAcos(m_floats[3]);-		return s;-	}+/**@brief Return a normalized version of this quaternion */+btQuaternion normalized() const+{+return *this / length();+}+/**@brief Return the angle between this quaternion and the other+* @param q The other quaternion */+btScalar angle(const btQuaternion& q) const+{+btScalar s = btSqrt(length2() * q.length2());+btAssert(s != btScalar(0.0));+return btAcos(dot(q) / s);+}+/**@brief Return the angle of rotation represented by this quaternion */+btScalar getAngle() const+{+btScalar s = btScalar(2.) * btAcos(m_floats[3]);+return s;+} -	/**@brief Return the axis of the rotation represented by this quaternion */-	btVector3 getAxis() const-	{-		btScalar s_squared = btScalar(1.) - btPow(m_floats[3], btScalar(2.));-		if (s_squared < btScalar(10.) * SIMD_EPSILON) //Check for divide by zero-			return btVector3(1.0, 0.0, 0.0);  // Arbitrary-		btScalar s = btSqrt(s_squared);-		return btVector3(m_floats[0] / s, m_floats[1] / s, m_floats[2] / s);-	}+/**@brief Return the axis of the rotation represented by this quaternion */+btVector3 getAxis() const+{+btScalar s_squared = 1.f-m_floats[3]*m_floats[3]; -	/**@brief Return the inverse of this quaternion */-	btQuaternion inverse() const-	{-		return btQuaternion(-m_floats[0], -m_floats[1], -m_floats[2], m_floats[3]);-	}+if (s_squared < btScalar(10.) * SIMD_EPSILON) //Check for divide by zero+return btVector3(1.0, 0.0, 0.0); // Arbitrary+btScalar s = 1.f/btSqrt(s_squared);+return btVector3(m_floats[0] * s, m_floats[1] * s, m_floats[2] * s);+} -  /**@brief Return the sum of this quaternion and the other -   * @param q2 The other quaternion */-	SIMD_FORCE_INLINE btQuaternion-	operator+(const btQuaternion& q2) const-	{-		const btQuaternion& q1 = *this;-		return btQuaternion(q1.x() + q2.x(), q1.y() + q2.y(), q1.z() + q2.z(), q1.m_floats[3] + q2.m_floats[3]);-	}+/**@brief Return the inverse of this quaternion */+btQuaternion inverse() const+{+return btQuaternion(-m_floats[0], -m_floats[1], -m_floats[2], m_floats[3]);+} -  /**@brief Return the difference between this quaternion and the other -   * @param q2 The other quaternion */-	SIMD_FORCE_INLINE btQuaternion-	operator-(const btQuaternion& q2) const-	{-		const btQuaternion& q1 = *this;-		return btQuaternion(q1.x() - q2.x(), q1.y() - q2.y(), q1.z() - q2.z(), q1.m_floats[3] - q2.m_floats[3]);-	}+/**@brief Return the sum of this quaternion and the other+* @param q2 The other quaternion */+SIMD_FORCE_INLINE btQuaternion+operator+(const btQuaternion& q2) const+{+const btQuaternion& q1 = *this;+return btQuaternion(q1.x() + q2.x(), q1.y() + q2.y(), q1.z() + q2.z(), q1.m_floats[3] + q2.m_floats[3]);+} -  /**@brief Return the negative of this quaternion -   * This simply negates each element */-	SIMD_FORCE_INLINE btQuaternion operator-() const-	{-		const btQuaternion& q2 = *this;-		return btQuaternion( - q2.x(), - q2.y(),  - q2.z(),  - q2.m_floats[3]);-	}-  /**@todo document this and it's use */-	SIMD_FORCE_INLINE btQuaternion farthest( const btQuaternion& qd) const -	{-		btQuaternion diff,sum;-		diff = *this - qd;-		sum = *this + qd;-		if( diff.dot(diff) > sum.dot(sum) )-			return qd;-		return (-qd);-	}+/**@brief Return the difference between this quaternion and the other+* @param q2 The other quaternion */+SIMD_FORCE_INLINE btQuaternion+operator-(const btQuaternion& q2) const+{+const btQuaternion& q1 = *this;+return btQuaternion(q1.x() - q2.x(), q1.y() - q2.y(), q1.z() - q2.z(), q1.m_floats[3] - q2.m_floats[3]);+} -	/**@todo document this and it's use */-	SIMD_FORCE_INLINE btQuaternion nearest( const btQuaternion& qd) const -	{-		btQuaternion diff,sum;-		diff = *this - qd;-		sum = *this + qd;-		if( diff.dot(diff) < sum.dot(sum) )-			return qd;-		return (-qd);-	}+/**@brief Return the negative of this quaternion+* This simply negates each element */+SIMD_FORCE_INLINE btQuaternion operator-() const+{+const btQuaternion& q2 = *this;+return btQuaternion( - q2.x(), - q2.y(), - q2.z(), - q2.m_floats[3]);+}+/**@todo document this and it's use */+SIMD_FORCE_INLINE btQuaternion farthest( const btQuaternion& qd) const+{+btQuaternion diff,sum;+diff = *this - qd;+sum = *this + qd;+if( diff.dot(diff) > sum.dot(sum) )+return qd;+return (-qd);+} +/**@todo document this and it's use */+SIMD_FORCE_INLINE btQuaternion nearest( const btQuaternion& qd) const+{+btQuaternion diff,sum;+diff = *this - qd;+sum = *this + qd;+if( diff.dot(diff) < sum.dot(sum) )+return qd;+return (-qd);+} -  /**@brief Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion-   * @param q The other quaternion to interpolate with -   * @param t The ratio between this and q to interpolate.  If t = 0 the result is this, if t=1 the result is q.-   * Slerp interpolates assuming constant velocity.  */-	btQuaternion slerp(const btQuaternion& q, const btScalar& t) const-	{-		btScalar theta = angle(q);-		if (theta != btScalar(0.0))-		{-			btScalar d = btScalar(1.0) / btSin(theta);-			btScalar s0 = btSin((btScalar(1.0) - t) * theta);-			btScalar s1 = btSin(t * theta);   -                        if (dot(q) < 0) // Take care of long angle case see http://en.wikipedia.org/wiki/Slerp-                          return btQuaternion((m_floats[0] * s0 + -q.x() * s1) * d,-                                              (m_floats[1] * s0 + -q.y() * s1) * d,-                                              (m_floats[2] * s0 + -q.z() * s1) * d,-                                              (m_floats[3] * s0 + -q.m_floats[3] * s1) * d);-                        else-                          return btQuaternion((m_floats[0] * s0 + q.x() * s1) * d,-                                              (m_floats[1] * s0 + q.y() * s1) * d,-                                              (m_floats[2] * s0 + q.z() * s1) * d,-                                              (m_floats[3] * s0 + q.m_floats[3] * s1) * d);-                        -		}-		else-		{-			return *this;-		}-	} -	static const btQuaternion&	getIdentity()-	{-		static const btQuaternion identityQuat(btScalar(0.),btScalar(0.),btScalar(0.),btScalar(1.));-		return identityQuat;-	}+/**@brief Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion+* @param q The other quaternion to interpolate with+* @param t The ratio between this and q to interpolate. If t = 0 the result is this, if t=1 the result is q.+* Slerp interpolates assuming constant velocity. */+btQuaternion slerp(const btQuaternion& q, const btScalar& t) const+{+btScalar theta = angle(q);+if (theta != btScalar(0.0))+{+btScalar d = btScalar(1.0) / btSin(theta);+btScalar s0 = btSin((btScalar(1.0) - t) * theta);+btScalar s1 = btSin(t * theta);+if (dot(q) < 0) // Take care of long angle case see http://en.wikipedia.org/wiki/Slerp+return btQuaternion((m_floats[0] * s0 + -q.x() * s1) * d,+(m_floats[1] * s0 + -q.y() * s1) * d,+(m_floats[2] * s0 + -q.z() * s1) * d,+(m_floats[3] * s0 + -q.m_floats[3] * s1) * d);+else+return btQuaternion((m_floats[0] * s0 + q.x() * s1) * d,+(m_floats[1] * s0 + q.y() * s1) * d,+(m_floats[2] * s0 + q.z() * s1) * d,+(m_floats[3] * s0 + q.m_floats[3] * s1) * d); -	SIMD_FORCE_INLINE const btScalar& getW() const { return m_floats[3]; }+}+else+{+return *this;+}+} -	+static const btQuaternion& getIdentity()+{+static const btQuaternion identityQuat(btScalar(0.),btScalar(0.),btScalar(0.),btScalar(1.));+return identityQuat;+}++SIMD_FORCE_INLINE const btScalar& getW() const { return m_floats[3]; }++ };  -/**@brief Return the negative of a quaternion */-SIMD_FORCE_INLINE btQuaternion-operator-(const btQuaternion& q)-{-	return btQuaternion(-q.x(), -q.y(), -q.z(), -q.w());-}    /**@brief Return the product of two quaternions */ SIMD_FORCE_INLINE btQuaternion operator*(const btQuaternion& q1, const btQuaternion& q2) {-	return btQuaternion(q1.w() * q2.x() + q1.x() * q2.w() + q1.y() * q2.z() - q1.z() * q2.y(),-		q1.w() * q2.y() + q1.y() * q2.w() + q1.z() * q2.x() - q1.x() * q2.z(),-		q1.w() * q2.z() + q1.z() * q2.w() + q1.x() * q2.y() - q1.y() * q2.x(),-		q1.w() * q2.w() - q1.x() * q2.x() - q1.y() * q2.y() - q1.z() * q2.z()); +return btQuaternion(q1.w() * q2.x() + q1.x() * q2.w() + q1.y() * q2.z() - q1.z() * q2.y(),+q1.w() * q2.y() + q1.y() * q2.w() + q1.z() * q2.x() - q1.x() * q2.z(),+q1.w() * q2.z() + q1.z() * q2.w() + q1.x() * q2.y() - q1.y() * q2.x(),+q1.w() * q2.w() - q1.x() * q2.x() - q1.y() * q2.y() - q1.z() * q2.z()); }  SIMD_FORCE_INLINE btQuaternion operator*(const btQuaternion& q, const btVector3& w) {-	return btQuaternion( q.w() * w.x() + q.y() * w.z() - q.z() * w.y(),-		q.w() * w.y() + q.z() * w.x() - q.x() * w.z(),-		q.w() * w.z() + q.x() * w.y() - q.y() * w.x(),-		-q.x() * w.x() - q.y() * w.y() - q.z() * w.z()); +return btQuaternion( q.w() * w.x() + q.y() * w.z() - q.z() * w.y(),+q.w() * w.y() + q.z() * w.x() - q.x() * w.z(),+q.w() * w.z() + q.x() * w.y() - q.y() * w.x(),+-q.x() * w.x() - q.y() * w.y() - q.z() * w.z()); }  SIMD_FORCE_INLINE btQuaternion operator*(const btVector3& w, const btQuaternion& q) {-	return btQuaternion( w.x() * q.w() + w.y() * q.z() - w.z() * q.y(),-		w.y() * q.w() + w.z() * q.x() - w.x() * q.z(),-		w.z() * q.w() + w.x() * q.y() - w.y() * q.x(),-		-w.x() * q.x() - w.y() * q.y() - w.z() * q.z()); +return btQuaternion( w.x() * q.w() + w.y() * q.z() - w.z() * q.y(),+w.y() * q.w() + w.z() * q.x() - w.x() * q.z(),+w.z() * q.w() + w.x() * q.y() - w.y() * q.x(),+-w.x() * q.x() - w.y() * q.y() - w.z() * q.z()); }  /**@brief Calculate the dot product between two quaternions */-SIMD_FORCE_INLINE btScalar -dot(const btQuaternion& q1, const btQuaternion& q2) -{ -	return q1.dot(q2); +SIMD_FORCE_INLINE btScalar+dot(const btQuaternion& q1, const btQuaternion& q2)+{+return q1.dot(q2); }   /**@brief Return the length of a quaternion */ SIMD_FORCE_INLINE btScalar-length(const btQuaternion& q) -{ -	return q.length(); +length(const btQuaternion& q)+{+return q.length(); }  /**@brief Return the angle between two quaternions*/ SIMD_FORCE_INLINE btScalar-angle(const btQuaternion& q1, const btQuaternion& q2) -{ -	return q1.angle(q2); +angle(const btQuaternion& q1, const btQuaternion& q2)+{+return q1.angle(q2); }  /**@brief Return the inverse of a quaternion*/ SIMD_FORCE_INLINE btQuaternion-inverse(const btQuaternion& q) +inverse(const btQuaternion& q) {-	return q.inverse();+return q.inverse(); } -/**@brief Return the result of spherical linear interpolation betwen two quaternions - * @param q1 The first quaternion- * @param q2 The second quaternion - * @param t The ration between q1 and q2.  t = 0 return q1, t=1 returns q2 - * Slerp assumes constant velocity between positions. */+/**@brief Return the result of spherical linear interpolation betwen two quaternions+* @param q1 The first quaternion+* @param q2 The second quaternion+* @param t The ration between q1 and q2. t = 0 return q1, t=1 returns q2+* Slerp assumes constant velocity between positions. */ SIMD_FORCE_INLINE btQuaternion-slerp(const btQuaternion& q1, const btQuaternion& q2, const btScalar& t) +slerp(const btQuaternion& q1, const btQuaternion& q2, const btScalar& t) {-	return q1.slerp(q2, t);+return q1.slerp(q2, t); } -SIMD_FORCE_INLINE btVector3 -quatRotate(const btQuaternion& rotation, const btVector3& v) +SIMD_FORCE_INLINE btVector3+quatRotate(const btQuaternion& rotation, const btVector3& v) {-	btQuaternion q = rotation * v;-	q *= rotation.inverse();-	return btVector3(q.getX(),q.getY(),q.getZ());+btQuaternion q = rotation * v;+q *= rotation.inverse();+return btVector3(q.getX(),q.getY(),q.getZ()); } -SIMD_FORCE_INLINE btQuaternion +SIMD_FORCE_INLINE btQuaternion shortestArcQuat(const btVector3& v0, const btVector3& v1) // Game Programming Gems 2.10. make sure v0,v1 are normalized {-	btVector3 c = v0.cross(v1);-	btScalar  d = v0.dot(v1);+btVector3 c = v0.cross(v1);+btScalar d = v0.dot(v1); -	if (d < -1.0 + SIMD_EPSILON)-	{-		btVector3 n,unused;-		btPlaneSpace1(v0,n,unused);-		return btQuaternion(n.x(),n.y(),n.z(),0.0f); // just pick any vector that is orthogonal to v0-	}+if (d < -1.0 + SIMD_EPSILON)+{+btVector3 n,unused;+btPlaneSpace1(v0,n,unused);+return btQuaternion(n.x(),n.y(),n.z(),0.0f); // just pick any vector that is orthogonal to v0+} -	btScalar  s = btSqrt((1.0f + d) * 2.0f);-	btScalar rs = 1.0f / s;+btScalar s = btSqrt((1.0f + d) * 2.0f);+btScalar rs = 1.0f / s; -	return btQuaternion(c.getX()*rs,c.getY()*rs,c.getZ()*rs,s * 0.5f);+return btQuaternion(c.getX()*rs,c.getY()*rs,c.getZ()*rs,s * 0.5f); } -SIMD_FORCE_INLINE btQuaternion +SIMD_FORCE_INLINE btQuaternion shortestArcQuatNormalize2(btVector3& v0,btVector3& v1) {-	v0.normalize();-	v1.normalize();-	return shortestArcQuat(v0,v1);+v0.normalize();+v1.normalize();+return shortestArcQuat(v0,v1); }  #endif //BT_SIMD__QUATERNION_H_
bullet/LinearMath/btQuickprof.h view
@@ -7,7 +7,7 @@ ** ***************************************************************************************************/ -// Credits: The Clock class was inspired by the Timer classes in +// Credits: The Clock class was inspired by the Timer classes in // Ogre (www.ogre3d.org).  @@ -33,27 +33,27 @@  ///The btClock is a portable basic clock that measures accurate time in seconds, use for profiling. class btClock-{+{ private: public:-	btClock();+btClock(); -	btClock(const btClock& other);-	btClock& operator=(const btClock& other);+btClock(const btClock& other);+btClock& operator=(const btClock& other); -	~btClock();+~btClock(); -	/// Resets the initial reference time.-	void reset();+/// Resets the initial reference time.+void reset(); -	/// Returns the time in ms since the last call to reset or since -	/// the btClock was created.-	unsigned long int getTimeMilliseconds();+/// Returns the time in ms since the last call to reset or since+/// the btClock was created.+unsigned long int getTimeMilliseconds(); -	/// Returns the time in us since the last call to reset or since -	/// the Clock was created.-	unsigned long int getTimeMicroseconds();+/// Returns the time in us since the last call to reset or since+/// the Clock was created.+unsigned long int getTimeMicroseconds(); private:-	struct btClockData* m_data;+struct btClockData* m_data; };  #endif //USE_BT_CLOCK@@ -62,130 +62,137 @@   ///A node in the Profile Hierarchy Tree-class	CProfileNode {+class CProfileNode {  public:-	CProfileNode( const char * name, CProfileNode * parent );-	~CProfileNode( void );--	CProfileNode * Get_Sub_Node( const char * name );+CProfileNode( const char * name, CProfileNode * parent );+~CProfileNode( void ); -	CProfileNode * Get_Parent( void )		{ return Parent; }-	CProfileNode * Get_Sibling( void )		{ return Sibling; }-	CProfileNode * Get_Child( void )			{ return Child; }+CProfileNode * Get_Sub_Node( const char * name ); -	void				CleanupMemory();-	void				Reset( void );-	void				Call( void );-	bool				Return( void );+CProfileNode * Get_Parent( void ) { return Parent; }+CProfileNode * Get_Sibling( void ) { return Sibling; }+CProfileNode * Get_Child( void ) { return Child; } -	const char *	Get_Name( void )				{ return Name; }-	int				Get_Total_Calls( void )		{ return TotalCalls; }-	float				Get_Total_Time( void )		{ return TotalTime; }+void CleanupMemory();+void Reset( void );+void Call( void );+bool Return( void ); +const char * Get_Name( void ) { return Name; }+int Get_Total_Calls( void ) { return TotalCalls; }+float Get_Total_Time( void ) { return TotalTime; }+void* GetUserPointer() const {return m_userPtr;}+void SetUserPointer(void* ptr) { m_userPtr = ptr;} protected: -	const char *	Name;-	int				TotalCalls;-	float				TotalTime;-	unsigned long int			StartTime;-	int				RecursionCounter;+const char * Name;+int TotalCalls;+float TotalTime;+unsigned long int StartTime;+int RecursionCounter; -	CProfileNode *	Parent;-	CProfileNode *	Child;-	CProfileNode *	Sibling;+CProfileNode * Parent;+CProfileNode * Child;+CProfileNode * Sibling;+void* m_userPtr; };  ///An iterator to navigate through the tree class CProfileIterator-{+{ private: public:-	// Access all the children of the current parent-	void				First(void);-	void				Next(void);-	bool				Is_Done(void);-	bool                Is_Root(void) { return (CurrentParent->Get_Parent() == 0); }+// Access all the children of the current parent+void First(void);+void Next(void);+bool Is_Done(void);+bool Is_Root(void) { return (CurrentParent->Get_Parent() == 0); } -	void				Enter_Child( int index );		// Make the given child the new parent-	void				Enter_Largest_Child( void );	// Make the largest child the new parent-	void				Enter_Parent( void );			// Make the current parent's parent the new parent+void Enter_Child( int index ); // Make the given child the new parent+void Enter_Largest_Child( void ); // Make the largest child the new parent+void Enter_Parent( void ); // Make the current parent's parent the new parent -	// Access the current child-	const char *	Get_Current_Name( void )			{ return CurrentChild->Get_Name(); }-	int				Get_Current_Total_Calls( void )	{ return CurrentChild->Get_Total_Calls(); }-	float				Get_Current_Total_Time( void )	{ return CurrentChild->Get_Total_Time(); }+// Access the current child+const char * Get_Current_Name( void ) { return CurrentChild->Get_Name(); }+int Get_Current_Total_Calls( void ) { return CurrentChild->Get_Total_Calls(); }+float Get_Current_Total_Time( void ) { return CurrentChild->Get_Total_Time(); } -	// Access the current parent-	const char *	Get_Current_Parent_Name( void )			{ return CurrentParent->Get_Name(); }-	int				Get_Current_Parent_Total_Calls( void )	{ return CurrentParent->Get_Total_Calls(); }-	float				Get_Current_Parent_Total_Time( void )	{ return CurrentParent->Get_Total_Time(); }+void* Get_Current_UserPointer( void ) { return CurrentChild->GetUserPointer(); }+void Set_Current_UserPointer(void* ptr) {CurrentChild->SetUserPointer(ptr);}+// Access the current parent+const char * Get_Current_Parent_Name( void ) { return CurrentParent->Get_Name(); }+int Get_Current_Parent_Total_Calls( void ) { return CurrentParent->Get_Total_Calls(); }+float Get_Current_Parent_Total_Time( void ) { return CurrentParent->Get_Total_Time(); } ++ protected: -	CProfileNode *	CurrentParent;-	CProfileNode *	CurrentChild;+CProfileNode * CurrentParent;+CProfileNode * CurrentChild; -	CProfileIterator( CProfileNode * start );-	friend	class		CProfileManager;++CProfileIterator( CProfileNode * start );+friend class CProfileManager; };   ///The Manager for the Profile system-class	CProfileManager {+class CProfileManager { public:-	static	void						Start_Profile( const char * name );-	static	void						Stop_Profile( void );+static void Start_Profile( const char * name );+static void Stop_Profile( void ); -	static	void						CleanupMemory(void)-	{-		Root.CleanupMemory();-	}+static void CleanupMemory(void)+{+Root.CleanupMemory();+} -	static	void						Reset( void );-	static	void						Increment_Frame_Counter( void );-	static	int						Get_Frame_Count_Since_Reset( void )		{ return FrameCounter; }-	static	float						Get_Time_Since_Reset( void );+static void Reset( void );+static void Increment_Frame_Counter( void );+static int Get_Frame_Count_Since_Reset( void ) { return FrameCounter; }+static float Get_Time_Since_Reset( void ); -	static	CProfileIterator *	Get_Iterator( void )	-	{ -		-		return new CProfileIterator( &Root ); -	}-	static	void						Release_Iterator( CProfileIterator * iterator ) { delete ( iterator); }+static CProfileIterator * Get_Iterator( void )+{ -	static void	dumpRecursive(CProfileIterator* profileIterator, int spacing);+return new CProfileIterator( &Root );+}+static void Release_Iterator( CProfileIterator * iterator ) { delete ( iterator); } -	static void	dumpAll();+static void dumpRecursive(CProfileIterator* profileIterator, int spacing); +static void dumpAll();+ private:-	static	CProfileNode			Root;-	static	CProfileNode *			CurrentNode;-	static	int						FrameCounter;-	static	unsigned long int					ResetTime;+static CProfileNode Root;+static CProfileNode * CurrentNode;+static int FrameCounter;+static unsigned long int ResetTime; };   ///ProfileSampleClass is a simple way to profile a function's scope ///Use the BT_PROFILE macro at the start of scope to time-class	CProfileSample {+class CProfileSample { public:-	CProfileSample( const char * name )-	{ -		CProfileManager::Start_Profile( name ); -	}+CProfileSample( const char * name )+{+CProfileManager::Start_Profile( name );+} -	~CProfileSample( void )					-	{ -		CProfileManager::Stop_Profile(); -	}+~CProfileSample( void )+{+CProfileManager::Stop_Profile();+} };  -#define	BT_PROFILE( name )			CProfileSample __profile( name )+#define BT_PROFILE( name ) CProfileSample __profile( name )  #else -#define	BT_PROFILE( name )+#define BT_PROFILE( name )  #endif //#ifndef BT_NO_PROFILE 
bullet/LinearMath/btRandom.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,8 +24,8 @@  #define GEN_RAND_MAX UINT_MAX -SIMD_FORCE_INLINE void         GEN_srand(unsigned int seed) { init_genrand(seed); }-SIMD_FORCE_INLINE unsigned int GEN_rand()                   { return genrand_int32(); }+SIMD_FORCE_INLINE void GEN_srand(unsigned int seed) { init_genrand(seed); }+SIMD_FORCE_INLINE unsigned int GEN_rand() { return genrand_int32(); }  #else @@ -33,8 +33,8 @@  #define GEN_RAND_MAX RAND_MAX -SIMD_FORCE_INLINE void         GEN_srand(unsigned int seed) { srand(seed); } -SIMD_FORCE_INLINE unsigned int GEN_rand()                   { return rand(); }+SIMD_FORCE_INLINE void GEN_srand(unsigned int seed) { srand(seed); }+SIMD_FORCE_INLINE unsigned int GEN_rand() { return rand(); }  #endif 
bullet/LinearMath/btScalar.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2009 Erwin Coumans  http://bullet.googlecode.com+Copyright (c) 2003-2009 Erwin Coumans http://bullet.googlecode.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,11 +28,11 @@ #include <float.h>  /* SVN $Revision$ on $Date$ from http://bullet.googlecode.com*/-#define BT_BULLET_VERSION 278+#define BT_BULLET_VERSION 279 -inline int	btGetVersion()+inline int btGetVersion() {-	return BT_BULLET_VERSION;+return BT_BULLET_VERSION; }  #if defined(DEBUG) || defined (_DEBUG)@@ -42,160 +42,160 @@  #ifdef _WIN32 -		#if defined(__MINGW32__) || defined(__CYGWIN__) || (defined (_MSC_VER) && _MSC_VER < 1300)+#if defined(__MINGW32__) || defined(__CYGWIN__) || (defined (_MSC_VER) && _MSC_VER < 1300) -			#define SIMD_FORCE_INLINE inline-			#define ATTRIBUTE_ALIGNED16(a) a-			#define ATTRIBUTE_ALIGNED64(a) a-			#define ATTRIBUTE_ALIGNED128(a) a-		#else-			//#define BT_HAS_ALIGNED_ALLOCATOR-			#pragma warning(disable : 4324) // disable padding warning-//			#pragma warning(disable:4530) // Disable the exception disable but used in MSCV Stl warning.-//			#pragma warning(disable:4996) //Turn off warnings about deprecated C routines-//			#pragma warning(disable:4786) // Disable the "debug name too long" warning+#define SIMD_FORCE_INLINE inline+#define ATTRIBUTE_ALIGNED16(a) a+#define ATTRIBUTE_ALIGNED64(a) a+#define ATTRIBUTE_ALIGNED128(a) a+#else+//#define BT_HAS_ALIGNED_ALLOCATOR+#pragma warning(disable : 4324) // disable padding warning+// #pragma warning(disable:4530) // Disable the exception disable but used in MSCV Stl warning.+// #pragma warning(disable:4996) //Turn off warnings about deprecated C routines+// #pragma warning(disable:4786) // Disable the "debug name too long" warning -			#define SIMD_FORCE_INLINE __forceinline-			#define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a-			#define ATTRIBUTE_ALIGNED64(a) __declspec(align(64)) a-			#define ATTRIBUTE_ALIGNED128(a) __declspec (align(128)) a-		#ifdef _XBOX-			#define BT_USE_VMX128+#define SIMD_FORCE_INLINE __forceinline+#define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a+#define ATTRIBUTE_ALIGNED64(a) __declspec(align(64)) a+#define ATTRIBUTE_ALIGNED128(a) __declspec (align(128)) a+#ifdef _XBOX+#define BT_USE_VMX128 -			#include <ppcintrinsics.h>- 			#define BT_HAVE_NATIVE_FSEL- 			#define btFsel(a,b,c) __fsel((a),(b),(c))-		#else+#include <ppcintrinsics.h>+#define BT_HAVE_NATIVE_FSEL+#define btFsel(a,b,c) __fsel((a),(b),(c))+#else  #if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400) && (!defined (BT_USE_DOUBLE_PRECISION))-			#define BT_USE_SSE-			#include <emmintrin.h>+#define BT_USE_SSE+#include <emmintrin.h> #endif -		#endif//_XBOX+#endif//_XBOX -		#endif //__MINGW32__+#endif //__MINGW32__ -		#include <assert.h>+#include <assert.h> #ifdef BT_DEBUG-		#define btAssert assert+#define btAssert assert #else-		#define btAssert(x)+#define btAssert(x) #endif-		//btFullAssert is optional, slows down a lot-		#define btFullAssert(x)+//btFullAssert is optional, slows down a lot+#define btFullAssert(x) -		#define btLikely(_c)  _c-		#define btUnlikely(_c) _c+#define btLikely(_c) _c+#define btUnlikely(_c) _c  #else-	-#if defined	(__CELLOS_LV2__)-		#define SIMD_FORCE_INLINE inline __attribute__((always_inline))-		#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))-		#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))-		#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))-		#ifndef assert-		#include <assert.h>-		#endif++#if defined (__CELLOS_LV2__)+#define SIMD_FORCE_INLINE inline __attribute__((always_inline))+#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))+#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))+#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))+#ifndef assert+#include <assert.h>+#endif #ifdef BT_DEBUG #ifdef __SPU__ #include <spu_printf.h> #define printf spu_printf-	#define btAssert(x) {if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);spu_hcmpeq(0,0);}}+#define btAssert(x) {if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);spu_hcmpeq(0,0);}} #else-	#define btAssert assert+#define btAssert assert #endif-	+ #else-		#define btAssert(x)+#define btAssert(x) #endif-		//btFullAssert is optional, slows down a lot-		#define btFullAssert(x)+//btFullAssert is optional, slows down a lot+#define btFullAssert(x) -		#define btLikely(_c)  _c-		#define btUnlikely(_c) _c+#define btLikely(_c) _c+#define btUnlikely(_c) _c  #else  #ifdef USE_LIBSPE2 -		#define SIMD_FORCE_INLINE __inline-		#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))-		#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))-		#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))-		#ifndef assert-		#include <assert.h>-		#endif+#define SIMD_FORCE_INLINE __inline+#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))+#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))+#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))+#ifndef assert+#include <assert.h>+#endif #ifdef BT_DEBUG-		#define btAssert assert+#define btAssert assert #else-		#define btAssert(x)+#define btAssert(x) #endif-		//btFullAssert is optional, slows down a lot-		#define btFullAssert(x)+//btFullAssert is optional, slows down a lot+#define btFullAssert(x)  -		#define btLikely(_c)   __builtin_expect((_c), 1)-		#define btUnlikely(_c) __builtin_expect((_c), 0)-		+#define btLikely(_c) __builtin_expect((_c), 1)+#define btUnlikely(_c) __builtin_expect((_c), 0) + #else-	//non-windows systems+//non-windows systems  #if (defined (__APPLE__) && defined (__i386__) && (!defined (BT_USE_DOUBLE_PRECISION)))-	#define BT_USE_SSE-	#include <emmintrin.h>+#define BT_USE_SSE+#include <emmintrin.h> -	#define SIMD_FORCE_INLINE inline+#define SIMD_FORCE_INLINE inline ///@todo: check out alignment methods for other platforms/compilers-	#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))-	#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))-	#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))-	#ifndef assert-	#include <assert.h>-	#endif+#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))+#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))+#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))+#ifndef assert+#include <assert.h>+#endif -	#if defined(DEBUG) || defined (_DEBUG)-		#define btAssert assert-	#else-		#define btAssert(x)-	#endif+#if defined(DEBUG) || defined (_DEBUG)+#define btAssert assert+#else+#define btAssert(x)+#endif -	//btFullAssert is optional, slows down a lot-	#define btFullAssert(x)-	#define btLikely(_c)  _c-	#define btUnlikely(_c) _c+//btFullAssert is optional, slows down a lot+#define btFullAssert(x)+#define btLikely(_c) _c+#define btUnlikely(_c) _c  #else -		#define SIMD_FORCE_INLINE inline-		///@todo: check out alignment methods for other platforms/compilers-		///#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))-		///#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))-		///#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))-		#define ATTRIBUTE_ALIGNED16(a) a-		#define ATTRIBUTE_ALIGNED64(a) a-		#define ATTRIBUTE_ALIGNED128(a) a-		#ifndef assert-		#include <assert.h>-		#endif+#define SIMD_FORCE_INLINE inline+///@todo: check out alignment methods for other platforms/compilers+///#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16)))+///#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64)))+///#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))+#define ATTRIBUTE_ALIGNED16(a) a+#define ATTRIBUTE_ALIGNED64(a) a+#define ATTRIBUTE_ALIGNED128(a) a+#ifndef assert+#include <assert.h>+#endif  #if defined(DEBUG) || defined (_DEBUG)-		#define btAssert assert+#define btAssert assert #else-		#define btAssert(x)+#define btAssert(x) #endif -		//btFullAssert is optional, slows down a lot-		#define btFullAssert(x)-		#define btLikely(_c)  _c-		#define btUnlikely(_c) _c-#endif //__APPLE__ +//btFullAssert is optional, slows down a lot+#define btFullAssert(x)+#define btLikely(_c) _c+#define btUnlikely(_c) _c+#endif //__APPLE__  #endif // LIBSPE2 -#endif	//__CELLOS_LV2__+#endif //__CELLOS_LV2__ #endif  @@ -213,26 +213,26 @@   #define BT_DECLARE_ALIGNED_ALLOCATOR() \-   SIMD_FORCE_INLINE void* operator new(size_t sizeInBytes)   { return btAlignedAlloc(sizeInBytes,16); }   \-   SIMD_FORCE_INLINE void  operator delete(void* ptr)         { btAlignedFree(ptr); }   \-   SIMD_FORCE_INLINE void* operator new(size_t, void* ptr)   { return ptr; }   \-   SIMD_FORCE_INLINE void  operator delete(void*, void*)      { }   \-   SIMD_FORCE_INLINE void* operator new[](size_t sizeInBytes)   { return btAlignedAlloc(sizeInBytes,16); }   \-   SIMD_FORCE_INLINE void  operator delete[](void* ptr)         { btAlignedFree(ptr); }   \-   SIMD_FORCE_INLINE void* operator new[](size_t, void* ptr)   { return ptr; }   \-   SIMD_FORCE_INLINE void  operator delete[](void*, void*)      { }   \+SIMD_FORCE_INLINE void* operator new(size_t sizeInBytes) { return btAlignedAlloc(sizeInBytes,16); } \+SIMD_FORCE_INLINE void operator delete(void* ptr) { btAlignedFree(ptr); } \+SIMD_FORCE_INLINE void* operator new(size_t, void* ptr) { return ptr; } \+SIMD_FORCE_INLINE void operator delete(void*, void*) { } \+SIMD_FORCE_INLINE void* operator new[](size_t sizeInBytes) { return btAlignedAlloc(sizeInBytes,16); } \+SIMD_FORCE_INLINE void operator delete[](void* ptr) { btAlignedFree(ptr); } \+SIMD_FORCE_INLINE void* operator new[](size_t, void* ptr) { return ptr; } \+SIMD_FORCE_INLINE void operator delete[](void*, void*) { } \    #if defined(BT_USE_DOUBLE_PRECISION) || defined(BT_FORCE_DOUBLE_FUNCTIONS)-		+ SIMD_FORCE_INLINE btScalar btSqrt(btScalar x) { return sqrt(x); } SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabs(x); } SIMD_FORCE_INLINE btScalar btCos(btScalar x) { return cos(x); } SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sin(x); } SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tan(x); }-SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { if (x<btScalar(-1))	x=btScalar(-1); if (x>btScalar(1))	x=btScalar(1); return acos(x); }-SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { if (x<btScalar(-1))	x=btScalar(-1); if (x>btScalar(1))	x=btScalar(1); return asin(x); }+SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1); return acos(x); }+SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1); return asin(x); } SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atan(x); } SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2(x, y); } SIMD_FORCE_INLINE btScalar btExp(btScalar x) { return exp(x); }@@ -241,44 +241,44 @@ SIMD_FORCE_INLINE btScalar btFmod(btScalar x,btScalar y) { return fmod(x,y); }  #else-		-SIMD_FORCE_INLINE btScalar btSqrt(btScalar y) -{ ++SIMD_FORCE_INLINE btScalar btSqrt(btScalar y)+{ #ifdef USE_APPROXIMATION-    double x, z, tempf;-    unsigned long *tfptr = ((unsigned long *)&tempf) + 1;+double x, z, tempf;+unsigned long *tfptr = ((unsigned long *)&tempf) + 1; -	tempf = y;-	*tfptr = (0xbfcdd90a - *tfptr)>>1; /* estimate of 1/sqrt(y) */-	x =  tempf;-	z =  y*btScalar(0.5);-	x = (btScalar(1.5)*x)-(x*x)*(x*z);         /* iteration formula     */-	x = (btScalar(1.5)*x)-(x*x)*(x*z);-	x = (btScalar(1.5)*x)-(x*x)*(x*z);-	x = (btScalar(1.5)*x)-(x*x)*(x*z);-	x = (btScalar(1.5)*x)-(x*x)*(x*z);-	return x*y;+tempf = y;+*tfptr = (0xbfcdd90a - *tfptr)>>1; /* estimate of 1/sqrt(y) */+x = tempf;+z = y*btScalar(0.5);+x = (btScalar(1.5)*x)-(x*x)*(x*z); /* iteration formula */+x = (btScalar(1.5)*x)-(x*x)*(x*z);+x = (btScalar(1.5)*x)-(x*x)*(x*z);+x = (btScalar(1.5)*x)-(x*x)*(x*z);+x = (btScalar(1.5)*x)-(x*x)*(x*z);+return x*y; #else-	return sqrtf(y); +return sqrtf(y); #endif } SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabsf(x); } SIMD_FORCE_INLINE btScalar btCos(btScalar x) { return cosf(x); } SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sinf(x); } SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tanf(x); }-SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { -	if (x<btScalar(-1))	-		x=btScalar(-1); -	if (x>btScalar(1))	-		x=btScalar(1);-	return acosf(x); +SIMD_FORCE_INLINE btScalar btAcos(btScalar x) {+if (x<btScalar(-1))+x=btScalar(-1);+if (x>btScalar(1))+x=btScalar(1);+return acosf(x); }-SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { -	if (x<btScalar(-1))	-		x=btScalar(-1); -	if (x>btScalar(1))	-		x=btScalar(1);-	return asinf(x); +SIMD_FORCE_INLINE btScalar btAsin(btScalar x) {+if (x<btScalar(-1))+x=btScalar(-1);+if (x>btScalar(1))+x=btScalar(1);+return asinf(x); } SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atanf(x); } SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2f(x, y); }@@ -286,55 +286,55 @@ SIMD_FORCE_INLINE btScalar btLog(btScalar x) { return logf(x); } SIMD_FORCE_INLINE btScalar btPow(btScalar x,btScalar y) { return powf(x,y); } SIMD_FORCE_INLINE btScalar btFmod(btScalar x,btScalar y) { return fmodf(x,y); }-	+ #endif -#define SIMD_2_PI         btScalar(6.283185307179586232)-#define SIMD_PI           (SIMD_2_PI * btScalar(0.5))-#define SIMD_HALF_PI      (SIMD_2_PI * btScalar(0.25))+#define SIMD_2_PI btScalar(6.283185307179586232)+#define SIMD_PI (SIMD_2_PI * btScalar(0.5))+#define SIMD_HALF_PI (SIMD_2_PI * btScalar(0.25)) #define SIMD_RADS_PER_DEG (SIMD_2_PI / btScalar(360.0))-#define SIMD_DEGS_PER_RAD  (btScalar(360.0) / SIMD_2_PI)+#define SIMD_DEGS_PER_RAD (btScalar(360.0) / SIMD_2_PI) #define SIMDSQRT12 btScalar(0.7071067811865475244008443621048490) -#define btRecipSqrt(x) ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x))))		/* reciprocal square root */+#define btRecipSqrt(x) ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x)))) /* reciprocal square root */   #ifdef BT_USE_DOUBLE_PRECISION-#define SIMD_EPSILON      DBL_EPSILON-#define SIMD_INFINITY     DBL_MAX+#define SIMD_EPSILON DBL_EPSILON+#define SIMD_INFINITY DBL_MAX #else-#define SIMD_EPSILON      FLT_EPSILON-#define SIMD_INFINITY     FLT_MAX+#define SIMD_EPSILON FLT_EPSILON+#define SIMD_INFINITY FLT_MAX #endif -SIMD_FORCE_INLINE btScalar btAtan2Fast(btScalar y, btScalar x) +SIMD_FORCE_INLINE btScalar btAtan2Fast(btScalar y, btScalar x) {-	btScalar coeff_1 = SIMD_PI / 4.0f;-	btScalar coeff_2 = 3.0f * coeff_1;-	btScalar abs_y = btFabs(y);-	btScalar angle;-	if (x >= 0.0f) {-		btScalar r = (x - abs_y) / (x + abs_y);-		angle = coeff_1 - coeff_1 * r;-	} else {-		btScalar r = (x + abs_y) / (abs_y - x);-		angle = coeff_2 - coeff_1 * r;-	}-	return (y < 0.0f) ? -angle : angle;+btScalar coeff_1 = SIMD_PI / 4.0f;+btScalar coeff_2 = 3.0f * coeff_1;+btScalar abs_y = btFabs(y);+btScalar angle;+if (x >= 0.0f) {+btScalar r = (x - abs_y) / (x + abs_y);+angle = coeff_1 - coeff_1 * r;+} else {+btScalar r = (x + abs_y) / (abs_y - x);+angle = coeff_2 - coeff_1 * r; }+return (y < 0.0f) ? -angle : angle;+} -SIMD_FORCE_INLINE bool      btFuzzyZero(btScalar x) { return btFabs(x) < SIMD_EPSILON; }+SIMD_FORCE_INLINE bool btFuzzyZero(btScalar x) { return btFabs(x) < SIMD_EPSILON; } -SIMD_FORCE_INLINE bool	btEqual(btScalar a, btScalar eps) {-	return (((a) <= eps) && !((a) < -eps));+SIMD_FORCE_INLINE bool btEqual(btScalar a, btScalar eps) {+return (((a) <= eps) && !((a) < -eps)); }-SIMD_FORCE_INLINE bool	btGreaterEqual (btScalar a, btScalar eps) {-	return (!((a) <= eps));+SIMD_FORCE_INLINE bool btGreaterEqual (btScalar a, btScalar eps) {+return (!((a) <= eps)); }  -SIMD_FORCE_INLINE int       btIsNegative(btScalar x) {-    return x < btScalar(0.0) ? 1 : 0;+SIMD_FORCE_INLINE int btIsNegative(btScalar x) {+return x < btScalar(0.0) ? 1 : 0; }  SIMD_FORCE_INLINE btScalar btRadians(btScalar x) { return x * SIMD_RADS_PER_DEG; }@@ -345,7 +345,7 @@ #ifndef btFsel SIMD_FORCE_INLINE btScalar btFsel(btScalar a, btScalar b, btScalar c) {-	return a >= 0 ? b : c;+return a >= 0 ? b : c; } #endif #define btFsels(a,b,c) (btScalar)btFsel(a,b,c)@@ -353,170 +353,170 @@  SIMD_FORCE_INLINE bool btMachineIsLittleEndian() {-   long int i = 1;-   const char *p = (const char *) &i;-   if (p[0] == 1)  // Lowest address contains the least significant byte-	   return true;-   else-	   return false;+long int i = 1;+const char *p = (const char *) &i;+if (p[0] == 1) // Lowest address contains the least significant byte+return true;+else+return false; }    ///btSelect avoids branches, which makes performance much better for consoles like Playstation 3 and XBox 360 ///Thanks Phil Knight. See also http://www.cellperformance.com/articles/2006/04/more_techniques_for_eliminatin_1.html-SIMD_FORCE_INLINE unsigned btSelect(unsigned condition, unsigned valueIfConditionNonZero, unsigned valueIfConditionZero) +SIMD_FORCE_INLINE unsigned btSelect(unsigned condition, unsigned valueIfConditionNonZero, unsigned valueIfConditionZero) {-    // Set testNz to 0xFFFFFFFF if condition is nonzero, 0x00000000 if condition is zero-    // Rely on positive value or'ed with its negative having sign bit on-    // and zero value or'ed with its negative (which is still zero) having sign bit off -    // Use arithmetic shift right, shifting the sign bit through all 32 bits-    unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31);-    unsigned testEqz = ~testNz;-    return ((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz)); +// Set testNz to 0xFFFFFFFF if condition is nonzero, 0x00000000 if condition is zero+// Rely on positive value or'ed with its negative having sign bit on+// and zero value or'ed with its negative (which is still zero) having sign bit off+// Use arithmetic shift right, shifting the sign bit through all 32 bits+unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31);+unsigned testEqz = ~testNz;+return ((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz)); } SIMD_FORCE_INLINE int btSelect(unsigned condition, int valueIfConditionNonZero, int valueIfConditionZero) {-    unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31);-    unsigned testEqz = ~testNz; -    return static_cast<int>((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz));+unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31);+unsigned testEqz = ~testNz;+return static_cast<int>((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz)); } SIMD_FORCE_INLINE float btSelect(unsigned condition, float valueIfConditionNonZero, float valueIfConditionZero) { #ifdef BT_HAVE_NATIVE_FSEL-    return (float)btFsel((btScalar)condition - btScalar(1.0f), valueIfConditionNonZero, valueIfConditionZero);+return (float)btFsel((btScalar)condition - btScalar(1.0f), valueIfConditionNonZero, valueIfConditionZero); #else-    return (condition != 0) ? valueIfConditionNonZero : valueIfConditionZero; +return (condition != 0) ? valueIfConditionNonZero : valueIfConditionZero; #endif }  template<typename T> SIMD_FORCE_INLINE void btSwap(T& a, T& b) {-	T tmp = a;-	a = b;-	b = tmp;+T tmp = a;+a = b;+b = tmp; }   //PCK: endian swapping functions SIMD_FORCE_INLINE unsigned btSwapEndian(unsigned val) {-	return (((val & 0xff000000) >> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8)  | ((val & 0x000000ff) << 24));+return (((val & 0xff000000) >> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | ((val & 0x000000ff) << 24)); }  SIMD_FORCE_INLINE unsigned short btSwapEndian(unsigned short val) {-	return static_cast<unsigned short>(((val & 0xff00) >> 8) | ((val & 0x00ff) << 8));+return static_cast<unsigned short>(((val & 0xff00) >> 8) | ((val & 0x00ff) << 8)); }  SIMD_FORCE_INLINE unsigned btSwapEndian(int val) {-	return btSwapEndian((unsigned)val);+return btSwapEndian((unsigned)val); }  SIMD_FORCE_INLINE unsigned short btSwapEndian(short val) {-	return btSwapEndian((unsigned short) val);+return btSwapEndian((unsigned short) val); }  ///btSwapFloat uses using char pointers to swap the endianness ////btSwapFloat/btSwapDouble will NOT return a float, because the machine might 'correct' invalid floating point values-///Not all values of sign/exponent/mantissa are valid floating point numbers according to IEEE 754. -///When a floating point unit is faced with an invalid value, it may actually change the value, or worse, throw an exception. -///In most systems, running user mode code, you wouldn't get an exception, but instead the hardware/os/runtime will 'fix' the number for you. +///Not all values of sign/exponent/mantissa are valid floating point numbers according to IEEE 754.+///When a floating point unit is faced with an invalid value, it may actually change the value, or worse, throw an exception.+///In most systems, running user mode code, you wouldn't get an exception, but instead the hardware/os/runtime will 'fix' the number for you. ///so instead of returning a float/double, we return integer/long long integer-SIMD_FORCE_INLINE unsigned int  btSwapEndianFloat(float d)+SIMD_FORCE_INLINE unsigned int btSwapEndianFloat(float d) {-    unsigned int a = 0;-    unsigned char *dst = (unsigned char *)&a;-    unsigned char *src = (unsigned char *)&d;+unsigned int a = 0;+unsigned char *dst = (unsigned char *)&a;+unsigned char *src = (unsigned char *)&d; -    dst[0] = src[3];-    dst[1] = src[2];-    dst[2] = src[1];-    dst[3] = src[0];-    return a;+dst[0] = src[3];+dst[1] = src[2];+dst[2] = src[1];+dst[3] = src[0];+return a; }  // unswap using char pointers-SIMD_FORCE_INLINE float btUnswapEndianFloat(unsigned int a) +SIMD_FORCE_INLINE float btUnswapEndianFloat(unsigned int a) {-    float d = 0.0f;-    unsigned char *src = (unsigned char *)&a;-    unsigned char *dst = (unsigned char *)&d;+float d = 0.0f;+unsigned char *src = (unsigned char *)&a;+unsigned char *dst = (unsigned char *)&d; -    dst[0] = src[3];-    dst[1] = src[2];-    dst[2] = src[1];-    dst[3] = src[0];+dst[0] = src[3];+dst[1] = src[2];+dst[2] = src[1];+dst[3] = src[0]; -    return d;+return d; }   // swap using char pointers-SIMD_FORCE_INLINE void  btSwapEndianDouble(double d, unsigned char* dst)+SIMD_FORCE_INLINE void btSwapEndianDouble(double d, unsigned char* dst) {-    unsigned char *src = (unsigned char *)&d;+unsigned char *src = (unsigned char *)&d; -    dst[0] = src[7];-    dst[1] = src[6];-    dst[2] = src[5];-    dst[3] = src[4];-    dst[4] = src[3];-    dst[5] = src[2];-    dst[6] = src[1];-    dst[7] = src[0];+dst[0] = src[7];+dst[1] = src[6];+dst[2] = src[5];+dst[3] = src[4];+dst[4] = src[3];+dst[5] = src[2];+dst[6] = src[1];+dst[7] = src[0];  }  // unswap using char pointers-SIMD_FORCE_INLINE double btUnswapEndianDouble(const unsigned char *src) +SIMD_FORCE_INLINE double btUnswapEndianDouble(const unsigned char *src) {-    double d = 0.0;-    unsigned char *dst = (unsigned char *)&d;+double d = 0.0;+unsigned char *dst = (unsigned char *)&d; -    dst[0] = src[7];-    dst[1] = src[6];-    dst[2] = src[5];-    dst[3] = src[4];-    dst[4] = src[3];-    dst[5] = src[2];-    dst[6] = src[1];-    dst[7] = src[0];+dst[0] = src[7];+dst[1] = src[6];+dst[2] = src[5];+dst[3] = src[4];+dst[4] = src[3];+dst[5] = src[2];+dst[6] = src[1];+dst[7] = src[0]; -	return d;+return d; }  // returns normalized value in range [-SIMD_PI, SIMD_PI]-SIMD_FORCE_INLINE btScalar btNormalizeAngle(btScalar angleInRadians) +SIMD_FORCE_INLINE btScalar btNormalizeAngle(btScalar angleInRadians) {-	angleInRadians = btFmod(angleInRadians, SIMD_2_PI);-	if(angleInRadians < -SIMD_PI)-	{-		return angleInRadians + SIMD_2_PI;-	}-	else if(angleInRadians > SIMD_PI)-	{-		return angleInRadians - SIMD_2_PI;-	}-	else-	{-		return angleInRadians;-	}+angleInRadians = btFmod(angleInRadians, SIMD_2_PI);+if(angleInRadians < -SIMD_PI)+{+return angleInRadians + SIMD_2_PI; }+else if(angleInRadians > SIMD_PI)+{+return angleInRadians - SIMD_2_PI;+}+else+{+return angleInRadians;+}+}  ///rudimentary class to provide type info struct btTypedObject {-	btTypedObject(int objectType)-		:m_objectType(objectType)-	{-	}-	int	m_objectType;-	inline int getObjectType() const-	{-		return m_objectType;-	}+btTypedObject(int objectType)+:m_objectType(objectType)+{+}+int m_objectType;+inline int getObjectType() const+{+return m_objectType;+} }; #endif //BT_SCALAR_H
bullet/LinearMath/btSerializer.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2009 Erwin Coumans  http://bulletphysics.org+Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -33,620 +33,620 @@ extern unsigned char sBulletDNAstr64[]; extern int sBulletDNAlen64; -SIMD_FORCE_INLINE	int btStrLen(const char* str) +SIMD_FORCE_INLINE int btStrLen(const char* str) {-    if (!str) -		return(0);-	int len = 0;-    -	while (*str != 0)-	{-        str++;-        len++;-    }+if (!str)+return(0);+int len = 0; -    return len;+while (*str != 0)+{+str++;+len++; } +return len;+} + class btChunk-{+{ private: public:-	int		m_chunkCode;-	int		m_length;-	void	*m_oldPtr;-	int		m_dna_nr;-	int		m_number;+int m_chunkCode;+int m_length;+void *m_oldPtr;+int m_dna_nr;+int m_number; }; -enum	btSerializationFlags+enum btSerializationFlags {-	BT_SERIALIZE_NO_BVH = 1,-	BT_SERIALIZE_NO_TRIANGLEINFOMAP = 2,-	BT_SERIALIZE_NO_DUPLICATE_ASSERT = 4+BT_SERIALIZE_NO_BVH = 1,+BT_SERIALIZE_NO_TRIANGLEINFOMAP = 2,+BT_SERIALIZE_NO_DUPLICATE_ASSERT = 4 }; -class	btSerializer-{+class btSerializer+{ private:  public: -	virtual ~btSerializer() {}+virtual ~btSerializer() {} -	virtual	const unsigned char*		getBufferPointer() const = 0;+virtual const unsigned char* getBufferPointer() const = 0; -	virtual	int		getCurrentBufferSize() const = 0;+virtual int getCurrentBufferSize() const = 0; -	virtual	btChunk*	allocate(size_t size, int numElements) = 0;+virtual btChunk* allocate(size_t size, int numElements) = 0; -	virtual	void	finalizeChunk(btChunk* chunk, const char* structType, int chunkCode,void* oldPtr)= 0;+virtual void finalizeChunk(btChunk* chunk, const char* structType, int chunkCode,void* oldPtr)= 0; -	virtual	 void*	findPointer(void* oldPtr)  = 0;+virtual void* findPointer(void* oldPtr) = 0; -	virtual	void*	getUniquePointer(void*oldPtr) = 0;+virtual void* getUniquePointer(void*oldPtr) = 0; -	virtual	void	startSerialization() = 0;-	-	virtual	void	finishSerialization() = 0;+virtual void startSerialization() = 0; -	virtual	const char*	findNameForPointer(const void* ptr) const = 0;+virtual void finishSerialization() = 0; -	virtual	void	registerNameForPointer(const void* ptr, const char* name) = 0;+virtual const char* findNameForPointer(const void* ptr) const = 0; -	virtual void	serializeName(const char* ptr) = 0;+virtual void registerNameForPointer(const void* ptr, const char* name) = 0; -	virtual int		getSerializationFlags() const = 0;+virtual void serializeName(const char* ptr) = 0; -	virtual void	setSerializationFlags(int flags) = 0;+virtual int getSerializationFlags() const = 0; +virtual void setSerializationFlags(int flags) = 0; + };    #define BT_HEADER_LENGTH 12 #if defined(__sgi) || defined (__sparc) || defined (__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)-#	define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )+# define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) ) #else-#	define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )+# define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) ) #endif -#define BT_SOFTBODY_CODE		MAKE_ID('S','B','D','Y')+#define BT_SOFTBODY_CODE MAKE_ID('S','B','D','Y') #define BT_COLLISIONOBJECT_CODE MAKE_ID('C','O','B','J')-#define BT_RIGIDBODY_CODE		MAKE_ID('R','B','D','Y')-#define BT_CONSTRAINT_CODE		MAKE_ID('C','O','N','S')-#define BT_BOXSHAPE_CODE		MAKE_ID('B','O','X','S')-#define BT_QUANTIZED_BVH_CODE	MAKE_ID('Q','B','V','H')-#define BT_TRIANLGE_INFO_MAP	MAKE_ID('T','M','A','P')-#define BT_SHAPE_CODE			MAKE_ID('S','H','A','P')-#define BT_ARRAY_CODE			MAKE_ID('A','R','A','Y')-#define BT_SBMATERIAL_CODE		MAKE_ID('S','B','M','T')-#define BT_SBNODE_CODE			MAKE_ID('S','B','N','D')-#define BT_DNA_CODE				MAKE_ID('D','N','A','1')+#define BT_RIGIDBODY_CODE MAKE_ID('R','B','D','Y')+#define BT_CONSTRAINT_CODE MAKE_ID('C','O','N','S')+#define BT_BOXSHAPE_CODE MAKE_ID('B','O','X','S')+#define BT_QUANTIZED_BVH_CODE MAKE_ID('Q','B','V','H')+#define BT_TRIANLGE_INFO_MAP MAKE_ID('T','M','A','P')+#define BT_SHAPE_CODE MAKE_ID('S','H','A','P')+#define BT_ARRAY_CODE MAKE_ID('A','R','A','Y')+#define BT_SBMATERIAL_CODE MAKE_ID('S','B','M','T')+#define BT_SBNODE_CODE MAKE_ID('S','B','N','D')+#define BT_DNA_CODE MAKE_ID('D','N','A','1')  -struct	btPointerUid+struct btPointerUid {-	union-	{-		void*	m_ptr;-		int		m_uniqueIds[2];-	};+union+{+void* m_ptr;+int m_uniqueIds[2]; };+};  ///The btDefaultSerializer is the main Bullet serialization class. ///The constructor takes an optional argument for backwards compatibility, it is recommended to leave this empty/zero.-class btDefaultSerializer	:	public btSerializer-{+class btDefaultSerializer : public btSerializer+{ private:  -	btAlignedObjectArray<char*>			mTypes;-	btAlignedObjectArray<short*>			mStructs;-	btAlignedObjectArray<short>			mTlens;-	btHashMap<btHashInt, int>			mStructReverse;-	btHashMap<btHashString,int>	mTypeLookup;+btAlignedObjectArray<char*> mTypes;+btAlignedObjectArray<short*> mStructs;+btAlignedObjectArray<short> mTlens;+btHashMap<btHashInt, int> mStructReverse;+btHashMap<btHashString,int> mTypeLookup; -	-	btHashMap<btHashPtr,void*>	m_chunkP;-	-	btHashMap<btHashPtr,const char*>	m_nameMap; -	btHashMap<btHashPtr,btPointerUid>	m_uniquePointers;-	int	m_uniqueIdGenerator;+btHashMap<btHashPtr,void*> m_chunkP; -	int					m_totalSize;-	unsigned char*		m_buffer;-	int					m_currentSize;-	void*				m_dna;-	int					m_dnaLength;+btHashMap<btHashPtr,const char*> m_nameMap; -	int					m_serializationFlags;+btHashMap<btHashPtr,btPointerUid> m_uniquePointers;+int m_uniqueIdGenerator; +int m_totalSize;+unsigned char* m_buffer;+int m_currentSize;+void* m_dna;+int m_dnaLength; -	btAlignedObjectArray<btChunk*>	m_chunkPtrs;-	+int m_serializationFlags;+++btAlignedObjectArray<btChunk*> m_chunkPtrs;+ protected: -	virtual	void*	findPointer(void* oldPtr) -	{-		void** ptr = m_chunkP.find(oldPtr);-		if (ptr && *ptr)-			return *ptr;-		return 0;-	}+virtual void* findPointer(void* oldPtr)+{+void** ptr = m_chunkP.find(oldPtr);+if (ptr && *ptr)+return *ptr;+return 0;+} -	   -		void	writeDNA()-		{-			btChunk* dnaChunk = allocate(m_dnaLength,1);-			memcpy(dnaChunk->m_oldPtr,m_dna,m_dnaLength);-			finalizeChunk(dnaChunk,"DNA1",BT_DNA_CODE, m_dna);-		} -		int getReverseType(const char *type) const-		{+void writeDNA()+{+btChunk* dnaChunk = allocate(m_dnaLength,1);+memcpy(dnaChunk->m_oldPtr,m_dna,m_dnaLength);+finalizeChunk(dnaChunk,"DNA1",BT_DNA_CODE, m_dna);+} -			btHashString key(type);-			const int* valuePtr = mTypeLookup.find(key);-			if (valuePtr)-				return *valuePtr;-			-			return -1;-		}+int getReverseType(const char *type) const+{ -		void initDNA(const char* bdnaOrg,int dnalen)-		{-			///was already initialized-			if (m_dna)-				return;+btHashString key(type);+const int* valuePtr = mTypeLookup.find(key);+if (valuePtr)+return *valuePtr; -			int littleEndian= 1;-			littleEndian= ((char*)&littleEndian)[0];-			+return -1;+} -			m_dna = btAlignedAlloc(dnalen,16);-			memcpy(m_dna,bdnaOrg,dnalen);-			m_dnaLength = dnalen;+void initDNA(const char* bdnaOrg,int dnalen)+{+///was already initialized+if (m_dna)+return; -			int *intPtr=0;-			short *shtPtr=0;-			char *cp = 0;int dataLen =0;long nr=0;-			intPtr = (int*)m_dna;+int littleEndian= 1;+littleEndian= ((char*)&littleEndian)[0]; -			/*-				SDNA (4 bytes) (magic number)-				NAME (4 bytes)-				<nr> (4 bytes) amount of names (int)-				<string>-				<string>-			*/ -			if (strncmp((const char*)m_dna, "SDNA", 4)==0)-			{-				// skip ++ NAME-				intPtr++; intPtr++;-			}+m_dna = btAlignedAlloc(dnalen,16);+memcpy(m_dna,bdnaOrg,dnalen);+m_dnaLength = dnalen; -			// Parse names-			if (!littleEndian)-				*intPtr = btSwapEndian(*intPtr);-				-			dataLen = *intPtr;-			-			intPtr++;+int *intPtr=0;+short *shtPtr=0;+char *cp = 0;int dataLen =0;long nr=0;+intPtr = (int*)m_dna; -			cp = (char*)intPtr;-			int i;-			for ( i=0; i<dataLen; i++)-			{-				-				while (*cp)cp++;-				cp++;-			}-			{-				nr= (long)cp;-			//	long mask=3;-				nr= ((nr+3)&~3)-nr;-				while (nr--)-				{-					cp++;-				}-			}+/*+SDNA (4 bytes) (magic number)+NAME (4 bytes)+<nr> (4 bytes) amount of names (int)+<string>+<string>+*/ -			/*-				TYPE (4 bytes)-				<nr> amount of types (int)-				<string>-				<string>-			*/+if (strncmp((const char*)m_dna, "SDNA", 4)==0)+{+// skip ++ NAME+intPtr++; intPtr++;+} -			intPtr = (int*)cp;-			assert(strncmp(cp, "TYPE", 4)==0); intPtr++;+// Parse names+if (!littleEndian)+*intPtr = btSwapEndian(*intPtr); -			if (!littleEndian)-				*intPtr =  btSwapEndian(*intPtr);-			-			dataLen = *intPtr;-			intPtr++;+dataLen = *intPtr; -			-			cp = (char*)intPtr;-			for (i=0; i<dataLen; i++)-			{-				mTypes.push_back(cp);-				while (*cp)cp++;-				cp++;-			}+intPtr++; -		{-				nr= (long)cp;-			//	long mask=3;-				nr= ((nr+3)&~3)-nr;-				while (nr--)-				{-					cp++;-				}-			}+cp = (char*)intPtr;+int i;+for ( i=0; i<dataLen; i++)+{ +while (*cp)cp++;+cp++;+}+{+nr= (long)cp;+// long mask=3;+nr= ((nr+3)&~3)-nr;+while (nr--)+{+cp++;+}+} -			/*-				TLEN (4 bytes)-				<len> (short) the lengths of types-				<len>-			*/+/*+TYPE (4 bytes)+<nr> amount of types (int)+<string>+<string>+*/ -			// Parse type lens-			intPtr = (int*)cp;-			assert(strncmp(cp, "TLEN", 4)==0); intPtr++;+intPtr = (int*)cp;+assert(strncmp(cp, "TYPE", 4)==0); intPtr++; -			dataLen = (int)mTypes.size();+if (!littleEndian)+*intPtr = btSwapEndian(*intPtr); -			shtPtr = (short*)intPtr;-			for (i=0; i<dataLen; i++, shtPtr++)-			{-				if (!littleEndian)-					shtPtr[0] = btSwapEndian(shtPtr[0]);-				mTlens.push_back(shtPtr[0]);-			}+dataLen = *intPtr;+intPtr++; -			if (dataLen & 1) shtPtr++; -			/*-				STRC (4 bytes)-				<nr> amount of structs (int)-				<typenr>-				<nr_of_elems>-				<typenr>-				<namenr>-				<typenr>-				<namenr>-			*/+cp = (char*)intPtr;+for (i=0; i<dataLen; i++)+{+mTypes.push_back(cp);+while (*cp)cp++;+cp++;+} -			intPtr = (int*)shtPtr;-			cp = (char*)intPtr;-			assert(strncmp(cp, "STRC", 4)==0); intPtr++;+{+nr= (long)cp;+// long mask=3;+nr= ((nr+3)&~3)-nr;+while (nr--)+{+cp++;+}+} -			if (!littleEndian)-				*intPtr = btSwapEndian(*intPtr);-			dataLen = *intPtr ; -			intPtr++; +/*+TLEN (4 bytes)+<len> (short) the lengths of types+<len>+*/ -			shtPtr = (short*)intPtr;-			for (i=0; i<dataLen; i++)-			{-				mStructs.push_back (shtPtr);-				-				if (!littleEndian)-				{-					shtPtr[0]= btSwapEndian(shtPtr[0]);-					shtPtr[1]= btSwapEndian(shtPtr[1]);+// Parse type lens+intPtr = (int*)cp;+assert(strncmp(cp, "TLEN", 4)==0); intPtr++; -					int len = shtPtr[1];-					shtPtr+= 2;+dataLen = (int)mTypes.size(); -					for (int a=0; a<len; a++, shtPtr+=2)-					{-							shtPtr[0]= btSwapEndian(shtPtr[0]);-							shtPtr[1]= btSwapEndian(shtPtr[1]);-					}+shtPtr = (short*)intPtr;+for (i=0; i<dataLen; i++, shtPtr++)+{+if (!littleEndian)+shtPtr[0] = btSwapEndian(shtPtr[0]);+mTlens.push_back(shtPtr[0]);+} -				} else-				{-					shtPtr+= (2*shtPtr[1])+2;-				}-			}+if (dataLen & 1) shtPtr++; -			// build reverse lookups-			for (i=0; i<(int)mStructs.size(); i++)-			{-				short *strc = mStructs.at(i);-				mStructReverse.insert(strc[0], i);-				mTypeLookup.insert(btHashString(mTypes[strc[0]]),i);-			}-		}+/*+STRC (4 bytes)+<nr> amount of structs (int)+<typenr>+<nr_of_elems>+<typenr>+<namenr>+<typenr>+<namenr>+*/ -public:	-	+intPtr = (int*)shtPtr;+cp = (char*)intPtr;+assert(strncmp(cp, "STRC", 4)==0); intPtr++; -	+if (!littleEndian)+*intPtr = btSwapEndian(*intPtr);+dataLen = *intPtr ;+intPtr++; -		btDefaultSerializer(int totalSize=0)-			:m_totalSize(totalSize),-			m_currentSize(0),-			m_dna(0),-			m_dnaLength(0),-			m_serializationFlags(0)-		{-			m_buffer = m_totalSize?(unsigned char*)btAlignedAlloc(totalSize,16):0;-			-			const bool VOID_IS_8 = ((sizeof(void*)==8)); +shtPtr = (short*)intPtr;+for (i=0; i<dataLen; i++)+{+mStructs.push_back (shtPtr);++if (!littleEndian)+{+shtPtr[0]= btSwapEndian(shtPtr[0]);+shtPtr[1]= btSwapEndian(shtPtr[1]);++int len = shtPtr[1];+shtPtr+= 2;++for (int a=0; a<len; a++, shtPtr+=2)+{+shtPtr[0]= btSwapEndian(shtPtr[0]);+shtPtr[1]= btSwapEndian(shtPtr[1]);+}++} else+{+shtPtr+= (2*shtPtr[1])+2;+}+}++// build reverse lookups+for (i=0; i<(int)mStructs.size(); i++)+{+short *strc = mStructs.at(i);+mStructReverse.insert(strc[0], i);+mTypeLookup.insert(btHashString(mTypes[strc[0]]),i);+}+}++public:+++++btDefaultSerializer(int totalSize=0)+:m_totalSize(totalSize),+m_currentSize(0),+m_dna(0),+m_dnaLength(0),+m_serializationFlags(0)+{+m_buffer = m_totalSize?(unsigned char*)btAlignedAlloc(totalSize,16):0;++const bool VOID_IS_8 = ((sizeof(void*)==8));+ #ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES-			if (VOID_IS_8)-			{+if (VOID_IS_8)+{ #if _WIN64-				initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64);+initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64); #else-				btAssert(0);+btAssert(0); #endif-			} else-			{+} else+{ #ifndef _WIN64-				initDNA((const char*)sBulletDNAstr,sBulletDNAlen);+initDNA((const char*)sBulletDNAstr,sBulletDNAlen); #else-				btAssert(0);+btAssert(0); #endif-			}-	+}+ #else //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES-			if (VOID_IS_8)-			{-				initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64);-			} else-			{-				initDNA((const char*)sBulletDNAstr,sBulletDNAlen);-			}+if (VOID_IS_8)+{+initDNA((const char*)sBulletDNAstr64,sBulletDNAlen64);+} else+{+initDNA((const char*)sBulletDNAstr,sBulletDNAlen);+} #endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES-	-		} -		virtual ~btDefaultSerializer() -		{-			if (m_buffer)-				btAlignedFree(m_buffer);-			if (m_dna)-				btAlignedFree(m_dna);-		}+} -		void	writeHeader(unsigned char* buffer) const-		{-			+virtual ~btDefaultSerializer()+{+if (m_buffer)+btAlignedFree(m_buffer);+if (m_dna)+btAlignedFree(m_dna);+} -#ifdef  BT_USE_DOUBLE_PRECISION-			memcpy(buffer, "BULLETd", 7);+void writeHeader(unsigned char* buffer) const+{+++#ifdef BT_USE_DOUBLE_PRECISION+memcpy(buffer, "BULLETd", 7); #else-			memcpy(buffer, "BULLETf", 7);+memcpy(buffer, "BULLETf", 7); #endif //BT_USE_DOUBLE_PRECISION-	-			int littleEndian= 1;-			littleEndian= ((char*)&littleEndian)[0]; -			if (sizeof(void*)==8)-			{-				buffer[7] = '-';-			} else-			{-				buffer[7] = '_';-			}+int littleEndian= 1;+littleEndian= ((char*)&littleEndian)[0]; -			if (littleEndian)-			{-				buffer[8]='v';				-			} else-			{-				buffer[8]='V';-			}+if (sizeof(void*)==8)+{+buffer[7] = '-';+} else+{+buffer[7] = '_';+} +if (littleEndian)+{+buffer[8]='v';+} else+{+buffer[8]='V';+} -			buffer[9] = '2';-			buffer[10] = '7';-			buffer[11] = '8'; -		}+buffer[9] = '2';+buffer[10] = '7';+buffer[11] = '8'; -		virtual	void	startSerialization()-		{-			m_uniqueIdGenerator= 1;-			if (m_totalSize)-			{-				unsigned char* buffer = internalAlloc(BT_HEADER_LENGTH);-				writeHeader(buffer);-			}-			-		}+} -		virtual	void	finishSerialization()-		{-			writeDNA();+virtual void startSerialization()+{+m_uniqueIdGenerator= 1;+if (m_totalSize)+{+unsigned char* buffer = internalAlloc(BT_HEADER_LENGTH);+writeHeader(buffer);+} -			//if we didn't pre-allocate a buffer, we need to create a contiguous buffer now-			int mysize = 0;-			if (!m_totalSize)-			{-				if (m_buffer)-					btAlignedFree(m_buffer);+} -				m_currentSize += BT_HEADER_LENGTH;-				m_buffer = (unsigned char*)btAlignedAlloc(m_currentSize,16);+virtual void finishSerialization()+{+writeDNA(); -				unsigned char* currentPtr = m_buffer;-				writeHeader(m_buffer);-				currentPtr += BT_HEADER_LENGTH;-				mysize+=BT_HEADER_LENGTH;-				for (int i=0;i<	m_chunkPtrs.size();i++)-				{-					int curLength = sizeof(btChunk)+m_chunkPtrs[i]->m_length;-					memcpy(currentPtr,m_chunkPtrs[i], curLength);-					btAlignedFree(m_chunkPtrs[i]);-					currentPtr+=curLength;-					mysize+=curLength;-				}-			}+//if we didn't pre-allocate a buffer, we need to create a contiguous buffer now+int mysize = 0;+if (!m_totalSize)+{+if (m_buffer)+btAlignedFree(m_buffer); -			mTypes.clear();-			mStructs.clear();-			mTlens.clear();-			mStructReverse.clear();-			mTypeLookup.clear();-			m_chunkP.clear();-			m_nameMap.clear();-			m_uniquePointers.clear();-			m_chunkPtrs.clear();-		}+m_currentSize += BT_HEADER_LENGTH;+m_buffer = (unsigned char*)btAlignedAlloc(m_currentSize,16); -		virtual	void*	getUniquePointer(void*oldPtr)-		{-			if (!oldPtr)-				return 0;+unsigned char* currentPtr = m_buffer;+writeHeader(m_buffer);+currentPtr += BT_HEADER_LENGTH;+mysize+=BT_HEADER_LENGTH;+for (int i=0;i< m_chunkPtrs.size();i++)+{+int curLength = sizeof(btChunk)+m_chunkPtrs[i]->m_length;+memcpy(currentPtr,m_chunkPtrs[i], curLength);+btAlignedFree(m_chunkPtrs[i]);+currentPtr+=curLength;+mysize+=curLength;+}+} -			btPointerUid* uptr = (btPointerUid*)m_uniquePointers.find(oldPtr);-			if (uptr)-			{-				return uptr->m_ptr;-			}-			m_uniqueIdGenerator++;-			-			btPointerUid uid;-			uid.m_uniqueIds[0] = m_uniqueIdGenerator;-			uid.m_uniqueIds[1] = m_uniqueIdGenerator;-			m_uniquePointers.insert(oldPtr,uid);-			return uid.m_ptr;+mTypes.clear();+mStructs.clear();+mTlens.clear();+mStructReverse.clear();+mTypeLookup.clear();+m_chunkP.clear();+m_nameMap.clear();+m_uniquePointers.clear();+m_chunkPtrs.clear();+} -		}+virtual void* getUniquePointer(void*oldPtr)+{+if (!oldPtr)+return 0; -		virtual	const unsigned char*		getBufferPointer() const-		{-			return m_buffer;-		}+btPointerUid* uptr = (btPointerUid*)m_uniquePointers.find(oldPtr);+if (uptr)+{+return uptr->m_ptr;+}+m_uniqueIdGenerator++; -		virtual	int					getCurrentBufferSize() const-		{-			return	m_currentSize;-		}+btPointerUid uid;+uid.m_uniqueIds[0] = m_uniqueIdGenerator;+uid.m_uniqueIds[1] = m_uniqueIdGenerator;+m_uniquePointers.insert(oldPtr,uid);+return uid.m_ptr; -		virtual	void	finalizeChunk(btChunk* chunk, const char* structType, int chunkCode,void* oldPtr)-		{-			if (!(m_serializationFlags&BT_SERIALIZE_NO_DUPLICATE_ASSERT))-			{-				btAssert(!findPointer(oldPtr));-			}+} -			chunk->m_dna_nr = getReverseType(structType);-			-			chunk->m_chunkCode = chunkCode;-			-			void* uniquePtr = getUniquePointer(oldPtr);-			-			m_chunkP.insert(oldPtr,uniquePtr);//chunk->m_oldPtr);-			chunk->m_oldPtr = uniquePtr;//oldPtr;-			-		}+virtual const unsigned char* getBufferPointer() const+{+return m_buffer;+} -		-		virtual unsigned char* internalAlloc(size_t size)-		{-			unsigned char* ptr = 0;+virtual int getCurrentBufferSize() const+{+return m_currentSize;+} -			if (m_totalSize)-			{-				ptr = m_buffer+m_currentSize;-				m_currentSize += int(size);-				btAssert(m_currentSize<m_totalSize);-			} else-			{-				ptr = (unsigned char*)btAlignedAlloc(size,16);-				m_currentSize += int(size);-			}-			return ptr;-		}+virtual void finalizeChunk(btChunk* chunk, const char* structType, int chunkCode,void* oldPtr)+{+if (!(m_serializationFlags&BT_SERIALIZE_NO_DUPLICATE_ASSERT))+{+btAssert(!findPointer(oldPtr));+} -		+chunk->m_dna_nr = getReverseType(structType); -		virtual	btChunk*	allocate(size_t size, int numElements)-		{+chunk->m_chunkCode = chunkCode; -			unsigned char* ptr = internalAlloc(int(size)*numElements+sizeof(btChunk));+void* uniquePtr = getUniquePointer(oldPtr); -			unsigned char* data = ptr + sizeof(btChunk);-			-			btChunk* chunk = (btChunk*)ptr;-			chunk->m_chunkCode = 0;-			chunk->m_oldPtr = data;-			chunk->m_length = int(size)*numElements;-			chunk->m_number = numElements;-			-			m_chunkPtrs.push_back(chunk);-			+m_chunkP.insert(oldPtr,uniquePtr);//chunk->m_oldPtr);+chunk->m_oldPtr = uniquePtr;//oldPtr; -			return chunk;-		}+} -		virtual	const char*	findNameForPointer(const void* ptr) const-		{-			const char*const * namePtr = m_nameMap.find(ptr);-			if (namePtr && *namePtr)-				return *namePtr;-			return 0; -		}+virtual unsigned char* internalAlloc(size_t size)+{+unsigned char* ptr = 0; -		virtual	void	registerNameForPointer(const void* ptr, const char* name)-		{-			m_nameMap.insert(ptr,name);-		}+if (m_totalSize)+{+ptr = m_buffer+m_currentSize;+m_currentSize += int(size);+btAssert(m_currentSize<m_totalSize);+} else+{+ptr = (unsigned char*)btAlignedAlloc(size,16);+m_currentSize += int(size);+}+return ptr;+} -		virtual void	serializeName(const char* name)-		{-			if (name)-			{-				//don't serialize name twice-				if (findPointer((void*)name))-					return; -				int len = btStrLen(name);-				if (len)-				{ -					int newLen = len+1;-					int padding = ((newLen+3)&~3)-newLen;-					newLen += padding;+virtual btChunk* allocate(size_t size, int numElements)+{ -					//serialize name string now-					btChunk* chunk = allocate(sizeof(char),newLen);-					char* destinationName = (char*)chunk->m_oldPtr;-					for (int i=0;i<len;i++)-					{-						destinationName[i] = name[i];-					}-					destinationName[len] = 0;-					finalizeChunk(chunk,"char",BT_ARRAY_CODE,(void*)name);-				}-			}-		}+unsigned char* ptr = internalAlloc(int(size)*numElements+sizeof(btChunk)); -		virtual int		getSerializationFlags() const-		{-			return m_serializationFlags;-		}+unsigned char* data = ptr + sizeof(btChunk); -		virtual void	setSerializationFlags(int flags)-		{-			m_serializationFlags = flags;-		}+btChunk* chunk = (btChunk*)ptr;+chunk->m_chunkCode = 0;+chunk->m_oldPtr = data;+chunk->m_length = int(size)*numElements;+chunk->m_number = numElements;++m_chunkPtrs.push_back(chunk);+++return chunk;+}++virtual const char* findNameForPointer(const void* ptr) const+{+const char*const * namePtr = m_nameMap.find(ptr);+if (namePtr && *namePtr)+return *namePtr;+return 0;++}++virtual void registerNameForPointer(const void* ptr, const char* name)+{+m_nameMap.insert(ptr,name);+}++virtual void serializeName(const char* name)+{+if (name)+{+//don't serialize name twice+if (findPointer((void*)name))+return;++int len = btStrLen(name);+if (len)+{++int newLen = len+1;+int padding = ((newLen+3)&~3)-newLen;+newLen += padding;++//serialize name string now+btChunk* chunk = allocate(sizeof(char),newLen);+char* destinationName = (char*)chunk->m_oldPtr;+for (int i=0;i<len;i++)+{+destinationName[i] = name[i];+}+destinationName[len] = 0;+finalizeChunk(chunk,"char",BT_ARRAY_CODE,(void*)name);+}+}+}++virtual int getSerializationFlags() const+{+return m_serializationFlags;+}++virtual void setSerializationFlags(int flags)+{+m_serializationFlags = flags;+}  }; 
bullet/LinearMath/btStackAlloc.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -26,91 +26,91 @@ ///The btBlock class is an internal structure for the btStackAlloc memory allocator. struct btBlock {-	btBlock*			previous;-	unsigned char*		address;+btBlock* previous;+unsigned char* address; };  ///The StackAlloc class provides some fast stack-based memory allocator (LIFO last-in first-out) class btStackAlloc-{+{ private: public: -	btStackAlloc(unsigned int size)	{ ctor();create(size); }-	~btStackAlloc()		{ destroy(); }-	-	inline void		create(unsigned int size)-	{-		destroy();-		data		=  (unsigned char*) btAlignedAlloc(size,16);-		totalsize	=	size;-	}-	inline void		destroy()-	{-		btAssert(usedsize==0);-		//Raise(L"StackAlloc is still in use");+btStackAlloc(unsigned int size) { ctor();create(size); }+~btStackAlloc() { destroy(); } -		if(usedsize==0)-		{-			if(!ischild && data)		-				btAlignedFree(data);+inline void create(unsigned int size)+{+destroy();+data = (unsigned char*) btAlignedAlloc(size,16);+totalsize = size;+}+inline void destroy()+{+btAssert(usedsize==0);+//Raise(L"StackAlloc is still in use"); -			data				=	0;-			usedsize			=	0;-		}-		-	}+if(usedsize==0)+{+if(!ischild && data)+btAlignedFree(data); -	int	getAvailableMemory() const-	{-		return static_cast<int>(totalsize - usedsize);-	}+data = 0;+usedsize = 0;+} -	unsigned char*			allocate(unsigned int size)-	{-		const unsigned int	nus(usedsize+size);-		if(nus<totalsize)-		{-			usedsize=nus;-			return(data+(usedsize-size));-		}-		btAssert(0);-		//&& (L"Not enough memory"));-		-		return(0);-	}-	SIMD_FORCE_INLINE btBlock*		beginBlock()-	{-		btBlock*	pb = (btBlock*)allocate(sizeof(btBlock));-		pb->previous	=	current;-		pb->address		=	data+usedsize;-		current			=	pb;-		return(pb);-	}-	SIMD_FORCE_INLINE void		endBlock(btBlock* block)-	{-		btAssert(block==current);-		//Raise(L"Unmatched blocks");-		if(block==current)-		{-			current		=	block->previous;-			usedsize	=	(unsigned int)((block->address-data)-sizeof(btBlock));-		}-	}+} +int getAvailableMemory() const+{+return static_cast<int>(totalsize - usedsize);+}++unsigned char* allocate(unsigned int size)+{+const unsigned int nus(usedsize+size);+if(nus<totalsize)+{+usedsize=nus;+return(data+(usedsize-size));+}+btAssert(0);+//&& (L"Not enough memory"));++return(0);+}+SIMD_FORCE_INLINE btBlock* beginBlock()+{+btBlock* pb = (btBlock*)allocate(sizeof(btBlock));+pb->previous = current;+pb->address = data+usedsize;+current = pb;+return(pb);+}+SIMD_FORCE_INLINE void endBlock(btBlock* block)+{+btAssert(block==current);+//Raise(L"Unmatched blocks");+if(block==current)+{+current = block->previous;+usedsize = (unsigned int)((block->address-data)-sizeof(btBlock));+}+}+ private:-	void		ctor()-	{-		data		=	0;-		totalsize	=	0;-		usedsize	=	0;-		current		=	0;-		ischild		=	false;-	}-	unsigned char*		data;-	unsigned int		totalsize;-	unsigned int		usedsize;-	btBlock*	current;-	bool		ischild;+void ctor()+{+data = 0;+totalsize = 0;+usedsize = 0;+current = 0;+ischild = false;+}+unsigned char* data;+unsigned int totalsize;+unsigned int usedsize;+btBlock* current;+bool ischild; };  #endif //BT_STACK_ALLOC
bullet/LinearMath/btTransform.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,271 +30,271 @@   /**@brief The btTransform class supports rigid transforms with only translation and rotation and no scaling/shear.- *It can be used in combination with btVector3, btQuaternion and btMatrix3x3 linear algebra classes. */+*It can be used in combination with btVector3, btQuaternion and btMatrix3x3 linear algebra classes. */ class btTransform {-	-  ///Storage for the rotation-	btMatrix3x3 m_basis;-  ///Storage for the translation-	btVector3   m_origin; +///Storage for the rotation+btMatrix3x3 m_basis;+///Storage for the translation+btVector3 m_origin;+ public:-	-  /**@brief No initialization constructor */-	btTransform() {}-  /**@brief Constructor from btQuaternion (optional btVector3 )-   * @param q Rotation from quaternion -   * @param c Translation from Vector (default 0,0,0) */-	explicit SIMD_FORCE_INLINE btTransform(const btQuaternion& q, -		const btVector3& c = btVector3(btScalar(0), btScalar(0), btScalar(0))) -		: m_basis(q),-		m_origin(c)-	{} -  /**@brief Constructor from btMatrix3x3 (optional btVector3)-   * @param b Rotation from Matrix -   * @param c Translation from Vector default (0,0,0)*/-	explicit SIMD_FORCE_INLINE btTransform(const btMatrix3x3& b, -		const btVector3& c = btVector3(btScalar(0), btScalar(0), btScalar(0)))-		: m_basis(b),-		m_origin(c)-	{}-  /**@brief Copy constructor */-	SIMD_FORCE_INLINE btTransform (const btTransform& other)-		: m_basis(other.m_basis),-		m_origin(other.m_origin)-	{-	}-  /**@brief Assignment Operator */-	SIMD_FORCE_INLINE btTransform& operator=(const btTransform& other)-	{-		m_basis = other.m_basis;-		m_origin = other.m_origin;-		return *this;-	}+/**@brief No initialization constructor */+btTransform() {}+/**@brief Constructor from btQuaternion (optional btVector3 )+* @param q Rotation from quaternion+* @param c Translation from Vector (default 0,0,0) */+explicit SIMD_FORCE_INLINE btTransform(const btQuaternion& q,+const btVector3& c = btVector3(btScalar(0), btScalar(0), btScalar(0)))+: m_basis(q),+m_origin(c)+{} +/**@brief Constructor from btMatrix3x3 (optional btVector3)+* @param b Rotation from Matrix+* @param c Translation from Vector default (0,0,0)*/+explicit SIMD_FORCE_INLINE btTransform(const btMatrix3x3& b,+const btVector3& c = btVector3(btScalar(0), btScalar(0), btScalar(0)))+: m_basis(b),+m_origin(c)+{}+/**@brief Copy constructor */+SIMD_FORCE_INLINE btTransform (const btTransform& other)+: m_basis(other.m_basis),+m_origin(other.m_origin)+{+}+/**@brief Assignment Operator */+SIMD_FORCE_INLINE btTransform& operator=(const btTransform& other)+{+m_basis = other.m_basis;+m_origin = other.m_origin;+return *this;+} -  /**@brief Set the current transform as the value of the product of two transforms-   * @param t1 Transform 1-   * @param t2 Transform 2-   * This = Transform1 * Transform2 */-		SIMD_FORCE_INLINE void mult(const btTransform& t1, const btTransform& t2) {-			m_basis = t1.m_basis * t2.m_basis;-			m_origin = t1(t2.m_origin);-		} -/*		void multInverseLeft(const btTransform& t1, const btTransform& t2) {-			btVector3 v = t2.m_origin - t1.m_origin;-			m_basis = btMultTransposeLeft(t1.m_basis, t2.m_basis);-			m_origin = v * t1.m_basis;-		}-		*/+/**@brief Set the current transform as the value of the product of two transforms+* @param t1 Transform 1+* @param t2 Transform 2+* This = Transform1 * Transform2 */+SIMD_FORCE_INLINE void mult(const btTransform& t1, const btTransform& t2) {+m_basis = t1.m_basis * t2.m_basis;+m_origin = t1(t2.m_origin);+} +/* void multInverseLeft(const btTransform& t1, const btTransform& t2) {+btVector3 v = t2.m_origin - t1.m_origin;+m_basis = btMultTransposeLeft(t1.m_basis, t2.m_basis);+m_origin = v * t1.m_basis;+}+*/+ /**@brief Return the transform of the vector */-	SIMD_FORCE_INLINE btVector3 operator()(const btVector3& x) const-	{-		return btVector3(m_basis[0].dot(x) + m_origin.x(), -			m_basis[1].dot(x) + m_origin.y(), -			m_basis[2].dot(x) + m_origin.z());-	}+SIMD_FORCE_INLINE btVector3 operator()(const btVector3& x) const+{+return btVector3(m_basis[0].dot(x) + m_origin.x(),+m_basis[1].dot(x) + m_origin.y(),+m_basis[2].dot(x) + m_origin.z());+} -  /**@brief Return the transform of the vector */-	SIMD_FORCE_INLINE btVector3 operator*(const btVector3& x) const-	{-		return (*this)(x);-	}+/**@brief Return the transform of the vector */+SIMD_FORCE_INLINE btVector3 operator*(const btVector3& x) const+{+return (*this)(x);+} -  /**@brief Return the transform of the btQuaternion */-	SIMD_FORCE_INLINE btQuaternion operator*(const btQuaternion& q) const-	{-		return getRotation() * q;-	}+/**@brief Return the transform of the btQuaternion */+SIMD_FORCE_INLINE btQuaternion operator*(const btQuaternion& q) const+{+return getRotation() * q;+} -  /**@brief Return the basis matrix for the rotation */-	SIMD_FORCE_INLINE btMatrix3x3&       getBasis()          { return m_basis; }-  /**@brief Return the basis matrix for the rotation */-	SIMD_FORCE_INLINE const btMatrix3x3& getBasis()    const { return m_basis; }+/**@brief Return the basis matrix for the rotation */+SIMD_FORCE_INLINE btMatrix3x3& getBasis() { return m_basis; }+/**@brief Return the basis matrix for the rotation */+SIMD_FORCE_INLINE const btMatrix3x3& getBasis() const { return m_basis; } -  /**@brief Return the origin vector translation */-	SIMD_FORCE_INLINE btVector3&         getOrigin()         { return m_origin; }-  /**@brief Return the origin vector translation */-	SIMD_FORCE_INLINE const btVector3&   getOrigin()   const { return m_origin; }+/**@brief Return the origin vector translation */+SIMD_FORCE_INLINE btVector3& getOrigin() { return m_origin; }+/**@brief Return the origin vector translation */+SIMD_FORCE_INLINE const btVector3& getOrigin() const { return m_origin; } -  /**@brief Return a quaternion representing the rotation */-	btQuaternion getRotation() const { -		btQuaternion q;-		m_basis.getRotation(q);-		return q;-	}-	-	-  /**@brief Set from an array -   * @param m A pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation */-	void setFromOpenGLMatrix(const btScalar *m)-	{-		m_basis.setFromOpenGLSubMatrix(m);-		m_origin.setValue(m[12],m[13],m[14]);-	}+/**@brief Return a quaternion representing the rotation */+btQuaternion getRotation() const {+btQuaternion q;+m_basis.getRotation(q);+return q;+} -  /**@brief Fill an array representation-   * @param m A pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation */-	void getOpenGLMatrix(btScalar *m) const -	{-		m_basis.getOpenGLSubMatrix(m);-		m[12] = m_origin.x();-		m[13] = m_origin.y();-		m[14] = m_origin.z();-		m[15] = btScalar(1.0);-	} -  /**@brief Set the translational element-   * @param origin The vector to set the translation to */-	SIMD_FORCE_INLINE void setOrigin(const btVector3& origin) -	{ -		m_origin = origin;-	}+/**@brief Set from an array+* @param m A pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation */+void setFromOpenGLMatrix(const btScalar *m)+{+m_basis.setFromOpenGLSubMatrix(m);+m_origin.setValue(m[12],m[13],m[14]);+} -	SIMD_FORCE_INLINE btVector3 invXform(const btVector3& inVec) const;+/**@brief Fill an array representation+* @param m A pointer to a 15 element array (12 rotation(row major padded on the right by 1), and 3 translation */+void getOpenGLMatrix(btScalar *m) const+{+m_basis.getOpenGLSubMatrix(m);+m[12] = m_origin.x();+m[13] = m_origin.y();+m[14] = m_origin.z();+m[15] = btScalar(1.0);+} +/**@brief Set the translational element+* @param origin The vector to set the translation to */+SIMD_FORCE_INLINE void setOrigin(const btVector3& origin)+{+m_origin = origin;+} -  /**@brief Set the rotational element by btMatrix3x3 */-	SIMD_FORCE_INLINE void setBasis(const btMatrix3x3& basis)-	{ -		m_basis = basis;-	}+SIMD_FORCE_INLINE btVector3 invXform(const btVector3& inVec) const; -  /**@brief Set the rotational element by btQuaternion */-	SIMD_FORCE_INLINE void setRotation(const btQuaternion& q)-	{-		m_basis.setRotation(q);-	} +/**@brief Set the rotational element by btMatrix3x3 */+SIMD_FORCE_INLINE void setBasis(const btMatrix3x3& basis)+{+m_basis = basis;+} -  /**@brief Set this transformation to the identity */-	void setIdentity()-	{-		m_basis.setIdentity();-		m_origin.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));-	}+/**@brief Set the rotational element by btQuaternion */+SIMD_FORCE_INLINE void setRotation(const btQuaternion& q)+{+m_basis.setRotation(q);+} -  /**@brief Multiply this Transform by another(this = this * another) -   * @param t The other transform */-	btTransform& operator*=(const btTransform& t) -	{-		m_origin += m_basis * t.m_origin;-		m_basis *= t.m_basis;-		return *this;-	} -  /**@brief Return the inverse of this transform */-	btTransform inverse() const-	{ -		btMatrix3x3 inv = m_basis.transpose();-		return btTransform(inv, inv * -m_origin);-	}+/**@brief Set this transformation to the identity */+void setIdentity()+{+m_basis.setIdentity();+m_origin.setValue(btScalar(0.0), btScalar(0.0), btScalar(0.0));+} -  /**@brief Return the inverse of this transform times the other transform-   * @param t The other transform -   * return this.inverse() * the other */-	btTransform inverseTimes(const btTransform& t) const;  +/**@brief Multiply this Transform by another(this = this * another)+* @param t The other transform */+btTransform& operator*=(const btTransform& t)+{+m_origin += m_basis * t.m_origin;+m_basis *= t.m_basis;+return *this;+} -  /**@brief Return the product of this transform and the other */-	btTransform operator*(const btTransform& t) const;+/**@brief Return the inverse of this transform */+btTransform inverse() const+{+btMatrix3x3 inv = m_basis.transpose();+return btTransform(inv, inv * -m_origin);+} -  /**@brief Return an identity transform */-	static const btTransform&	getIdentity()-	{-		static const btTransform identityTransform(btMatrix3x3::getIdentity());-		return identityTransform;-	}+/**@brief Return the inverse of this transform times the other transform+* @param t The other transform+* return this.inverse() * the other */+btTransform inverseTimes(const btTransform& t) const; -	void	serialize(struct	btTransformData& dataOut) const;+/**@brief Return the product of this transform and the other */+btTransform operator*(const btTransform& t) const; -	void	serializeFloat(struct	btTransformFloatData& dataOut) const;+/**@brief Return an identity transform */+static const btTransform& getIdentity()+{+static const btTransform identityTransform(btMatrix3x3::getIdentity());+return identityTransform;+} -	void	deSerialize(const struct	btTransformData& dataIn);+void serialize(struct btTransformData& dataOut) const; -	void	deSerializeDouble(const struct	btTransformDoubleData& dataIn);+void serializeFloat(struct btTransformFloatData& dataOut) const; -	void	deSerializeFloat(const struct	btTransformFloatData& dataIn);+void deSerialize(const struct btTransformData& dataIn); +void deSerializeDouble(const struct btTransformDoubleData& dataIn);++void deSerializeFloat(const struct btTransformFloatData& dataIn);+ };   SIMD_FORCE_INLINE btVector3 btTransform::invXform(const btVector3& inVec) const {-	btVector3 v = inVec - m_origin;-	return (m_basis.transpose() * v);+btVector3 v = inVec - m_origin;+return (m_basis.transpose() * v); } -SIMD_FORCE_INLINE btTransform -btTransform::inverseTimes(const btTransform& t) const  +SIMD_FORCE_INLINE btTransform+btTransform::inverseTimes(const btTransform& t) const {-	btVector3 v = t.getOrigin() - m_origin;-		return btTransform(m_basis.transposeTimes(t.m_basis),-			v * m_basis);+btVector3 v = t.getOrigin() - m_origin;+return btTransform(m_basis.transposeTimes(t.m_basis),+v * m_basis); } -SIMD_FORCE_INLINE btTransform +SIMD_FORCE_INLINE btTransform btTransform::operator*(const btTransform& t) const {-	return btTransform(m_basis * t.m_basis, -		(*this)(t.m_origin));+return btTransform(m_basis * t.m_basis,+(*this)(t.m_origin)); }  /**@brief Test if two transforms have all elements equal */ SIMD_FORCE_INLINE bool operator==(const btTransform& t1, const btTransform& t2) {-   return ( t1.getBasis()  == t2.getBasis() &&-            t1.getOrigin() == t2.getOrigin() );+return ( t1.getBasis() == t2.getBasis() &&+t1.getOrigin() == t2.getOrigin() ); }   ///for serialization-struct	btTransformFloatData+struct btTransformFloatData {-	btMatrix3x3FloatData	m_basis;-	btVector3FloatData	m_origin;+btMatrix3x3FloatData m_basis;+btVector3FloatData m_origin; }; -struct	btTransformDoubleData+struct btTransformDoubleData {-	btMatrix3x3DoubleData	m_basis;-	btVector3DoubleData	m_origin;+btMatrix3x3DoubleData m_basis;+btVector3DoubleData m_origin; };   -SIMD_FORCE_INLINE	void	btTransform::serialize(btTransformData& dataOut) const+SIMD_FORCE_INLINE void btTransform::serialize(btTransformData& dataOut) const {-	m_basis.serialize(dataOut.m_basis);-	m_origin.serialize(dataOut.m_origin);+m_basis.serialize(dataOut.m_basis);+m_origin.serialize(dataOut.m_origin); } -SIMD_FORCE_INLINE	void	btTransform::serializeFloat(btTransformFloatData& dataOut) const+SIMD_FORCE_INLINE void btTransform::serializeFloat(btTransformFloatData& dataOut) const {-	m_basis.serializeFloat(dataOut.m_basis);-	m_origin.serializeFloat(dataOut.m_origin);+m_basis.serializeFloat(dataOut.m_basis);+m_origin.serializeFloat(dataOut.m_origin); }  -SIMD_FORCE_INLINE	void	btTransform::deSerialize(const btTransformData& dataIn)+SIMD_FORCE_INLINE void btTransform::deSerialize(const btTransformData& dataIn) {-	m_basis.deSerialize(dataIn.m_basis);-	m_origin.deSerialize(dataIn.m_origin);+m_basis.deSerialize(dataIn.m_basis);+m_origin.deSerialize(dataIn.m_origin); } -SIMD_FORCE_INLINE	void	btTransform::deSerializeFloat(const btTransformFloatData& dataIn)+SIMD_FORCE_INLINE void btTransform::deSerializeFloat(const btTransformFloatData& dataIn) {-	m_basis.deSerializeFloat(dataIn.m_basis);-	m_origin.deSerializeFloat(dataIn.m_origin);+m_basis.deSerializeFloat(dataIn.m_basis);+m_origin.deSerializeFloat(dataIn.m_origin); } -SIMD_FORCE_INLINE	void	btTransform::deSerializeDouble(const btTransformDoubleData& dataIn)+SIMD_FORCE_INLINE void btTransform::deSerializeDouble(const btTransformDoubleData& dataIn) {-	m_basis.deSerializeDouble(dataIn.m_basis);-	m_origin.deSerializeDouble(dataIn.m_origin);+m_basis.deSerializeDouble(dataIn.m_basis);+m_origin.deSerializeDouble(dataIn.m_origin); }  
bullet/LinearMath/btTransformUtil.h view
@@ -1,10 +1,10 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -24,9 +24,9 @@  SIMD_FORCE_INLINE btVector3 btAabbSupport(const btVector3& halfExtents,const btVector3& supportDir) {-	return btVector3(supportDir.x() < btScalar(0.0) ? -halfExtents.x() : halfExtents.x(),-      supportDir.y() < btScalar(0.0) ? -halfExtents.y() : halfExtents.y(),-      supportDir.z() < btScalar(0.0) ? -halfExtents.z() : halfExtents.z()); +return btVector3(supportDir.x() < btScalar(0.0) ? -halfExtents.x() : halfExtents.x(),+supportDir.y() < btScalar(0.0) ? -halfExtents.y() : halfExtents.y(),+supportDir.z() < btScalar(0.0) ? -halfExtents.z() : halfExtents.z()); }  @@ -36,190 +36,190 @@  /// Utils related to temporal transforms class btTransformUtil-{+{ private:  public: -	static void integrateTransform(const btTransform& curTrans,const btVector3& linvel,const btVector3& angvel,btScalar timeStep,btTransform& predictedTransform)-	{-		predictedTransform.setOrigin(curTrans.getOrigin() + linvel * timeStep);-//	#define QUATERNION_DERIVATIVE-	#ifdef QUATERNION_DERIVATIVE-		btQuaternion predictedOrn = curTrans.getRotation();-		predictedOrn += (angvel * predictedOrn) * (timeStep * btScalar(0.5));-		predictedOrn.normalize();-	#else-		//Exponential map-		//google for "Practical Parameterization of Rotations Using the Exponential Map", F. Sebastian Grassia+static void integrateTransform(const btTransform& curTrans,const btVector3& linvel,const btVector3& angvel,btScalar timeStep,btTransform& predictedTransform)+{+predictedTransform.setOrigin(curTrans.getOrigin() + linvel * timeStep);+// #define QUATERNION_DERIVATIVE+#ifdef QUATERNION_DERIVATIVE+btQuaternion predictedOrn = curTrans.getRotation();+predictedOrn += (angvel * predictedOrn) * (timeStep * btScalar(0.5));+predictedOrn.normalize();+#else+//Exponential map+//google for "Practical Parameterization of Rotations Using the Exponential Map", F. Sebastian Grassia -		btVector3 axis;-		btScalar	fAngle = angvel.length(); -		//limit the angular motion-		if (fAngle*timeStep > ANGULAR_MOTION_THRESHOLD)-		{-			fAngle = ANGULAR_MOTION_THRESHOLD / timeStep;-		}+btVector3 axis;+btScalar fAngle = angvel.length();+//limit the angular motion+if (fAngle*timeStep > ANGULAR_MOTION_THRESHOLD)+{+fAngle = ANGULAR_MOTION_THRESHOLD / timeStep;+} -		if ( fAngle < btScalar(0.001) )-		{-			// use Taylor's expansions of sync function-			axis   = angvel*( btScalar(0.5)*timeStep-(timeStep*timeStep*timeStep)*(btScalar(0.020833333333))*fAngle*fAngle );-		}-		else-		{-			// sync(fAngle) = sin(c*fAngle)/t-			axis   = angvel*( btSin(btScalar(0.5)*fAngle*timeStep)/fAngle );-		}-		btQuaternion dorn (axis.x(),axis.y(),axis.z(),btCos( fAngle*timeStep*btScalar(0.5) ));-		btQuaternion orn0 = curTrans.getRotation();+if ( fAngle < btScalar(0.001) )+{+// use Taylor's expansions of sync function+axis = angvel*( btScalar(0.5)*timeStep-(timeStep*timeStep*timeStep)*(btScalar(0.020833333333))*fAngle*fAngle );+}+else+{+// sync(fAngle) = sin(c*fAngle)/t+axis = angvel*( btSin(btScalar(0.5)*fAngle*timeStep)/fAngle );+}+btQuaternion dorn (axis.x(),axis.y(),axis.z(),btCos( fAngle*timeStep*btScalar(0.5) ));+btQuaternion orn0 = curTrans.getRotation(); -		btQuaternion predictedOrn = dorn * orn0;-		predictedOrn.normalize();-	#endif-		predictedTransform.setRotation(predictedOrn);-	}+btQuaternion predictedOrn = dorn * orn0;+predictedOrn.normalize();+#endif+predictedTransform.setRotation(predictedOrn);+} -	static void	calculateVelocityQuaternion(const btVector3& pos0,const btVector3& pos1,const btQuaternion& orn0,const btQuaternion& orn1,btScalar timeStep,btVector3& linVel,btVector3& angVel)-	{-		linVel = (pos1 - pos0) / timeStep;-		btVector3 axis;-		btScalar  angle;-		if (orn0 != orn1)-		{-			calculateDiffAxisAngleQuaternion(orn0,orn1,axis,angle);-			angVel = axis * angle / timeStep;-		} else-		{-			angVel.setValue(0,0,0);-		}-	}+static void calculateVelocityQuaternion(const btVector3& pos0,const btVector3& pos1,const btQuaternion& orn0,const btQuaternion& orn1,btScalar timeStep,btVector3& linVel,btVector3& angVel)+{+linVel = (pos1 - pos0) / timeStep;+btVector3 axis;+btScalar angle;+if (orn0 != orn1)+{+calculateDiffAxisAngleQuaternion(orn0,orn1,axis,angle);+angVel = axis * angle / timeStep;+} else+{+angVel.setValue(0,0,0);+}+} -	static void calculateDiffAxisAngleQuaternion(const btQuaternion& orn0,const btQuaternion& orn1a,btVector3& axis,btScalar& angle)-	{-		btQuaternion orn1 = orn0.nearest(orn1a);-		btQuaternion dorn = orn1 * orn0.inverse();-		angle = dorn.getAngle();-		axis = btVector3(dorn.x(),dorn.y(),dorn.z());-		axis[3] = btScalar(0.);-		//check for axis length-		btScalar len = axis.length2();-		if (len < SIMD_EPSILON*SIMD_EPSILON)-			axis = btVector3(btScalar(1.),btScalar(0.),btScalar(0.));-		else-			axis /= btSqrt(len);-	}+static void calculateDiffAxisAngleQuaternion(const btQuaternion& orn0,const btQuaternion& orn1a,btVector3& axis,btScalar& angle)+{+btQuaternion orn1 = orn0.nearest(orn1a);+btQuaternion dorn = orn1 * orn0.inverse();+angle = dorn.getAngle();+axis = btVector3(dorn.x(),dorn.y(),dorn.z());+axis[3] = btScalar(0.);+//check for axis length+btScalar len = axis.length2();+if (len < SIMD_EPSILON*SIMD_EPSILON)+axis = btVector3(btScalar(1.),btScalar(0.),btScalar(0.));+else+axis /= btSqrt(len);+} -	static void	calculateVelocity(const btTransform& transform0,const btTransform& transform1,btScalar timeStep,btVector3& linVel,btVector3& angVel)-	{-		linVel = (transform1.getOrigin() - transform0.getOrigin()) / timeStep;-		btVector3 axis;-		btScalar  angle;-		calculateDiffAxisAngle(transform0,transform1,axis,angle);-		angVel = axis * angle / timeStep;-	}+static void calculateVelocity(const btTransform& transform0,const btTransform& transform1,btScalar timeStep,btVector3& linVel,btVector3& angVel)+{+linVel = (transform1.getOrigin() - transform0.getOrigin()) / timeStep;+btVector3 axis;+btScalar angle;+calculateDiffAxisAngle(transform0,transform1,axis,angle);+angVel = axis * angle / timeStep;+} -	static void calculateDiffAxisAngle(const btTransform& transform0,const btTransform& transform1,btVector3& axis,btScalar& angle)-	{-		btMatrix3x3 dmat = transform1.getBasis() * transform0.getBasis().inverse();-		btQuaternion dorn;-		dmat.getRotation(dorn);+static void calculateDiffAxisAngle(const btTransform& transform0,const btTransform& transform1,btVector3& axis,btScalar& angle)+{+btMatrix3x3 dmat = transform1.getBasis() * transform0.getBasis().inverse();+btQuaternion dorn;+dmat.getRotation(dorn); -		///floating point inaccuracy can lead to w component > 1..., which breaks -		dorn.normalize();-		-		angle = dorn.getAngle();-		axis = btVector3(dorn.x(),dorn.y(),dorn.z());-		axis[3] = btScalar(0.);-		//check for axis length-		btScalar len = axis.length2();-		if (len < SIMD_EPSILON*SIMD_EPSILON)-			axis = btVector3(btScalar(1.),btScalar(0.),btScalar(0.));-		else-			axis /= btSqrt(len);-	}+///floating point inaccuracy can lead to w component > 1..., which breaks+dorn.normalize(); +angle = dorn.getAngle();+axis = btVector3(dorn.x(),dorn.y(),dorn.z());+axis[3] = btScalar(0.);+//check for axis length+btScalar len = axis.length2();+if (len < SIMD_EPSILON*SIMD_EPSILON)+axis = btVector3(btScalar(1.),btScalar(0.),btScalar(0.));+else+axis /= btSqrt(len);+}+ };  -///The btConvexSeparatingDistanceUtil can help speed up convex collision detection +///The btConvexSeparatingDistanceUtil can help speed up convex collision detection ///by conservatively updating a cached separating distance/vector instead of re-calculating the closest distance-class	btConvexSeparatingDistanceUtil-{-	btQuaternion	m_ornA;-	btQuaternion	m_ornB;-	btVector3	m_posA;-	btVector3	m_posB;-	-	btVector3	m_separatingNormal;+class btConvexSeparatingDistanceUtil+{ private:+btQuaternion m_ornA;+btQuaternion m_ornB;+btVector3 m_posA;+btVector3 m_posB; -	btScalar	m_boundingRadiusA;-	btScalar	m_boundingRadiusB;-	btScalar	m_separatingDistance;+btVector3 m_separatingNormal; +btScalar m_boundingRadiusA;+btScalar m_boundingRadiusB;+btScalar m_separatingDistance;+ public: -	btConvexSeparatingDistanceUtil(btScalar	boundingRadiusA,btScalar	boundingRadiusB)-		:m_boundingRadiusA(boundingRadiusA),-		m_boundingRadiusB(boundingRadiusB),-		m_separatingDistance(0.f)-	{-	}+btConvexSeparatingDistanceUtil(btScalar boundingRadiusA,btScalar boundingRadiusB)+:m_boundingRadiusA(boundingRadiusA),+m_boundingRadiusB(boundingRadiusB),+m_separatingDistance(0.f)+{+} -	btScalar	getConservativeSeparatingDistance()-	{-		return m_separatingDistance;-	}+btScalar getConservativeSeparatingDistance()+{+return m_separatingDistance;+} -	void	updateSeparatingDistance(const btTransform& transA,const btTransform& transB)-	{-		const btVector3& toPosA = transA.getOrigin();-		const btVector3& toPosB = transB.getOrigin();-		btQuaternion toOrnA = transA.getRotation();-		btQuaternion toOrnB = transB.getRotation();+void updateSeparatingDistance(const btTransform& transA,const btTransform& transB)+{+const btVector3& toPosA = transA.getOrigin();+const btVector3& toPosB = transB.getOrigin();+btQuaternion toOrnA = transA.getRotation();+btQuaternion toOrnB = transB.getRotation(); -		if (m_separatingDistance>0.f)-		{-			+if (m_separatingDistance>0.f)+{ -			btVector3 linVelA,angVelA,linVelB,angVelB;-			btTransformUtil::calculateVelocityQuaternion(m_posA,toPosA,m_ornA,toOrnA,btScalar(1.),linVelA,angVelA);-			btTransformUtil::calculateVelocityQuaternion(m_posB,toPosB,m_ornB,toOrnB,btScalar(1.),linVelB,angVelB);-			btScalar maxAngularProjectedVelocity = angVelA.length() * m_boundingRadiusA + angVelB.length() * m_boundingRadiusB;-			btVector3 relLinVel = (linVelB-linVelA);-			btScalar relLinVelocLength = relLinVel.dot(m_separatingNormal);-			if (relLinVelocLength<0.f)-			{-				relLinVelocLength = 0.f;-			}-	-			btScalar	projectedMotion = maxAngularProjectedVelocity +relLinVelocLength;-			m_separatingDistance -= projectedMotion;-		}-	-		m_posA = toPosA;-		m_posB = toPosB;-		m_ornA = toOrnA;-		m_ornB = toOrnB;-	} -	void	initSeparatingDistance(const btVector3& separatingVector,btScalar separatingDistance,const btTransform& transA,const btTransform& transB)-	{-		m_separatingDistance = separatingDistance;+btVector3 linVelA,angVelA,linVelB,angVelB;+btTransformUtil::calculateVelocityQuaternion(m_posA,toPosA,m_ornA,toOrnA,btScalar(1.),linVelA,angVelA);+btTransformUtil::calculateVelocityQuaternion(m_posB,toPosB,m_ornB,toOrnB,btScalar(1.),linVelB,angVelB);+btScalar maxAngularProjectedVelocity = angVelA.length() * m_boundingRadiusA + angVelB.length() * m_boundingRadiusB;+btVector3 relLinVel = (linVelB-linVelA);+btScalar relLinVelocLength = relLinVel.dot(m_separatingNormal);+if (relLinVelocLength<0.f)+{+relLinVelocLength = 0.f;+} -		if (m_separatingDistance>0.f)-		{-			m_separatingNormal = separatingVector;-			-			const btVector3& toPosA = transA.getOrigin();-			const btVector3& toPosB = transB.getOrigin();-			btQuaternion toOrnA = transA.getRotation();-			btQuaternion toOrnB = transB.getRotation();-			m_posA = toPosA;-			m_posB = toPosB;-			m_ornA = toOrnA;-			m_ornB = toOrnB;-		}-	}+btScalar projectedMotion = maxAngularProjectedVelocity +relLinVelocLength;+m_separatingDistance -= projectedMotion;+}++m_posA = toPosA;+m_posB = toPosB;+m_ornA = toOrnA;+m_ornB = toOrnB;+}++void initSeparatingDistance(const btVector3& separatingVector,btScalar separatingDistance,const btTransform& transA,const btTransform& transB)+{+m_separatingDistance = separatingDistance;++if (m_separatingDistance>0.f)+{+m_separatingNormal = separatingVector;++const btVector3& toPosA = transA.getOrigin();+const btVector3& toPosB = transB.getOrigin();+btQuaternion toOrnA = transA.getRotation();+btQuaternion toOrnB = transB.getRotation();+m_posA = toPosA;+m_posB = toPosB;+m_ornA = toOrnA;+m_ornB = toOrnB;+}+}  }; 
bullet/LinearMath/btVector3.h view
@@ -1,765 +1,765 @@ /*-Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans  http://continuousphysics.com/Bullet/--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.-*/----#ifndef BT_VECTOR3_H-#define BT_VECTOR3_H---#include "btScalar.h"-#include "btMinMax.h"--#ifdef BT_USE_DOUBLE_PRECISION-#define btVector3Data btVector3DoubleData-#define btVector3DataName "btVector3DoubleData"-#else-#define btVector3Data btVector3FloatData-#define btVector3DataName "btVector3FloatData"-#endif //BT_USE_DOUBLE_PRECISION-----/**@brief btVector3 can be used to represent 3D points and vectors.- * It has an un-used w component to suit 16-byte alignment when btVector3 is stored in containers. This extra component can be used by derived classes (Quaternion?) or by user- * Ideally, this class should be replaced by a platform optimized SIMD version that keeps the data in registers- */-ATTRIBUTE_ALIGNED16(class) btVector3-{-public:--#if defined (__SPU__) && defined (__CELLOS_LV2__)-		btScalar	m_floats[4];-public:-	SIMD_FORCE_INLINE const vec_float4&	get128() const-	{-		return *((const vec_float4*)&m_floats[0]);-	}-public:-#else //__CELLOS_LV2__ __SPU__-#ifdef BT_USE_SSE // _WIN32-	union {-		__m128 mVec128;-		btScalar	m_floats[4];-	};-	SIMD_FORCE_INLINE	__m128	get128() const-	{-		return mVec128;-	}-	SIMD_FORCE_INLINE	void	set128(__m128 v128)-	{-		mVec128 = v128;-	}-#else-	btScalar	m_floats[4];-#endif-#endif //__CELLOS_LV2__ __SPU__--	public:--  /**@brief No initialization constructor */-	SIMD_FORCE_INLINE btVector3() {}-- -	-  /**@brief Constructor from scalars -   * @param x X value-   * @param y Y value -   * @param z Z value -   */-	SIMD_FORCE_INLINE btVector3(const btScalar& x, const btScalar& y, const btScalar& z)-	{-		m_floats[0] = x;-		m_floats[1] = y;-		m_floats[2] = z;-		m_floats[3] = btScalar(0.);-	}--	-/**@brief Add a vector to this one - * @param The vector to add to this one */-	SIMD_FORCE_INLINE btVector3& operator+=(const btVector3& v)-	{--		m_floats[0] += v.m_floats[0]; m_floats[1] += v.m_floats[1];m_floats[2] += v.m_floats[2];-		return *this;-	}---  /**@brief Subtract a vector from this one-   * @param The vector to subtract */-	SIMD_FORCE_INLINE btVector3& operator-=(const btVector3& v) -	{-		m_floats[0] -= v.m_floats[0]; m_floats[1] -= v.m_floats[1];m_floats[2] -= v.m_floats[2];-		return *this;-	}-  /**@brief Scale the vector-   * @param s Scale factor */-	SIMD_FORCE_INLINE btVector3& operator*=(const btScalar& s)-	{-		m_floats[0] *= s; m_floats[1] *= s;m_floats[2] *= s;-		return *this;-	}--  /**@brief Inversely scale the vector -   * @param s Scale factor to divide by */-	SIMD_FORCE_INLINE btVector3& operator/=(const btScalar& s) -	{-		btFullAssert(s != btScalar(0.0));-		return *this *= btScalar(1.0) / s;-	}--  /**@brief Return the dot product-   * @param v The other vector in the dot product */-	SIMD_FORCE_INLINE btScalar dot(const btVector3& v) const-	{-		return m_floats[0] * v.m_floats[0] + m_floats[1] * v.m_floats[1] +m_floats[2] * v.m_floats[2];-	}--  /**@brief Return the length of the vector squared */-	SIMD_FORCE_INLINE btScalar length2() const-	{-		return dot(*this);-	}--  /**@brief Return the length of the vector */-	SIMD_FORCE_INLINE btScalar length() const-	{-		return btSqrt(length2());-	}--  /**@brief Return the distance squared between the ends of this and another vector-   * This is symantically treating the vector like a point */-	SIMD_FORCE_INLINE btScalar distance2(const btVector3& v) const;--  /**@brief Return the distance between the ends of this and another vector-   * This is symantically treating the vector like a point */-	SIMD_FORCE_INLINE btScalar distance(const btVector3& v) const;--	SIMD_FORCE_INLINE btVector3& safeNormalize() -	{-		btVector3 absVec = this->absolute();-		int maxIndex = absVec.maxAxis();-		if (absVec[maxIndex]>0)-		{-			*this /= absVec[maxIndex];-			return *this /= length();-		}-		setValue(1,0,0);-		return *this;-	}--  /**@brief Normalize this vector -   * x^2 + y^2 + z^2 = 1 */-	SIMD_FORCE_INLINE btVector3& normalize() -	{-		return *this /= length();-	}--  /**@brief Return a normalized version of this vector */-	SIMD_FORCE_INLINE btVector3 normalized() const;--  /**@brief Return a rotated version of this vector-   * @param wAxis The axis to rotate about -   * @param angle The angle to rotate by */-	SIMD_FORCE_INLINE btVector3 rotate( const btVector3& wAxis, const btScalar angle ) const;--  /**@brief Return the angle between this and another vector-   * @param v The other vector */-	SIMD_FORCE_INLINE btScalar angle(const btVector3& v) const -	{-		btScalar s = btSqrt(length2() * v.length2());-		btFullAssert(s != btScalar(0.0));-		return btAcos(dot(v) / s);-	}-  /**@brief Return a vector will the absolute values of each element */-	SIMD_FORCE_INLINE btVector3 absolute() const -	{-		return btVector3(-			btFabs(m_floats[0]), -			btFabs(m_floats[1]), -			btFabs(m_floats[2]));-	}-  /**@brief Return the cross product between this and another vector -   * @param v The other vector */-	SIMD_FORCE_INLINE btVector3 cross(const btVector3& v) const-	{-		return btVector3(-			m_floats[1] * v.m_floats[2] -m_floats[2] * v.m_floats[1],-			m_floats[2] * v.m_floats[0] - m_floats[0] * v.m_floats[2],-			m_floats[0] * v.m_floats[1] - m_floats[1] * v.m_floats[0]);-	}--	SIMD_FORCE_INLINE btScalar triple(const btVector3& v1, const btVector3& v2) const-	{-		return m_floats[0] * (v1.m_floats[1] * v2.m_floats[2] - v1.m_floats[2] * v2.m_floats[1]) + -			m_floats[1] * (v1.m_floats[2] * v2.m_floats[0] - v1.m_floats[0] * v2.m_floats[2]) + -			m_floats[2] * (v1.m_floats[0] * v2.m_floats[1] - v1.m_floats[1] * v2.m_floats[0]);-	}--  /**@brief Return the axis with the smallest value -   * Note return values are 0,1,2 for x, y, or z */-	SIMD_FORCE_INLINE int minAxis() const-	{-		return m_floats[0] < m_floats[1] ? (m_floats[0] <m_floats[2] ? 0 : 2) : (m_floats[1] <m_floats[2] ? 1 : 2);-	}--  /**@brief Return the axis with the largest value -   * Note return values are 0,1,2 for x, y, or z */-	SIMD_FORCE_INLINE int maxAxis() const -	{-		return m_floats[0] < m_floats[1] ? (m_floats[1] <m_floats[2] ? 2 : 1) : (m_floats[0] <m_floats[2] ? 2 : 0);-	}--	SIMD_FORCE_INLINE int furthestAxis() const-	{-		return absolute().minAxis();-	}--	SIMD_FORCE_INLINE int closestAxis() const -	{-		return absolute().maxAxis();-	}--	SIMD_FORCE_INLINE void setInterpolate3(const btVector3& v0, const btVector3& v1, btScalar rt)-	{-		btScalar s = btScalar(1.0) - rt;-		m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0];-		m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];-		m_floats[2] = s * v0.m_floats[2] + rt * v1.m_floats[2];-		//don't do the unused w component-		//		m_co[3] = s * v0[3] + rt * v1[3];-	}--  /**@brief Return the linear interpolation between this and another vector -   * @param v The other vector -   * @param t The ration of this to v (t = 0 => return this, t=1 => return other) */-	SIMD_FORCE_INLINE btVector3 lerp(const btVector3& v, const btScalar& t) const -	{-		return btVector3(m_floats[0] + (v.m_floats[0] - m_floats[0]) * t,-			m_floats[1] + (v.m_floats[1] - m_floats[1]) * t,-			m_floats[2] + (v.m_floats[2] -m_floats[2]) * t);-	}--  /**@brief Elementwise multiply this vector by the other -   * @param v The other vector */-	SIMD_FORCE_INLINE btVector3& operator*=(const btVector3& v)-	{-		m_floats[0] *= v.m_floats[0]; m_floats[1] *= v.m_floats[1];m_floats[2] *= v.m_floats[2];-		return *this;-	}--	 /**@brief Return the x value */-		SIMD_FORCE_INLINE const btScalar& getX() const { return m_floats[0]; }-  /**@brief Return the y value */-		SIMD_FORCE_INLINE const btScalar& getY() const { return m_floats[1]; }-  /**@brief Return the z value */-		SIMD_FORCE_INLINE const btScalar& getZ() const { return m_floats[2]; }-  /**@brief Set the x value */-		SIMD_FORCE_INLINE void	setX(btScalar x) { m_floats[0] = x;};-  /**@brief Set the y value */-		SIMD_FORCE_INLINE void	setY(btScalar y) { m_floats[1] = y;};-  /**@brief Set the z value */-		SIMD_FORCE_INLINE void	setZ(btScalar z) {m_floats[2] = z;};-  /**@brief Set the w value */-		SIMD_FORCE_INLINE void	setW(btScalar w) { m_floats[3] = w;};-  /**@brief Return the x value */-		SIMD_FORCE_INLINE const btScalar& x() const { return m_floats[0]; }-  /**@brief Return the y value */-		SIMD_FORCE_INLINE const btScalar& y() const { return m_floats[1]; }-  /**@brief Return the z value */-		SIMD_FORCE_INLINE const btScalar& z() const { return m_floats[2]; }-  /**@brief Return the w value */-		SIMD_FORCE_INLINE const btScalar& w() const { return m_floats[3]; }--	//SIMD_FORCE_INLINE btScalar&       operator[](int i)       { return (&m_floats[0])[i];	}      -	//SIMD_FORCE_INLINE const btScalar& operator[](int i) const { return (&m_floats[0])[i]; }-	///operator btScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.-	SIMD_FORCE_INLINE	operator       btScalar *()       { return &m_floats[0]; }-	SIMD_FORCE_INLINE	operator const btScalar *() const { return &m_floats[0]; }--	SIMD_FORCE_INLINE	bool	operator==(const btVector3& other) const-	{-		return ((m_floats[3]==other.m_floats[3]) && (m_floats[2]==other.m_floats[2]) && (m_floats[1]==other.m_floats[1]) && (m_floats[0]==other.m_floats[0]));-	}--	SIMD_FORCE_INLINE	bool	operator!=(const btVector3& other) const-	{-		return !(*this == other);-	}--	 /**@brief Set each element to the max of the current values and the values of another btVector3-   * @param other The other btVector3 to compare with -   */-		SIMD_FORCE_INLINE void	setMax(const btVector3& other)-		{-			btSetMax(m_floats[0], other.m_floats[0]);-			btSetMax(m_floats[1], other.m_floats[1]);-			btSetMax(m_floats[2], other.m_floats[2]);-			btSetMax(m_floats[3], other.w());-		}-  /**@brief Set each element to the min of the current values and the values of another btVector3-   * @param other The other btVector3 to compare with -   */-		SIMD_FORCE_INLINE void	setMin(const btVector3& other)-		{-			btSetMin(m_floats[0], other.m_floats[0]);-			btSetMin(m_floats[1], other.m_floats[1]);-			btSetMin(m_floats[2], other.m_floats[2]);-			btSetMin(m_floats[3], other.w());-		}--		SIMD_FORCE_INLINE void 	setValue(const btScalar& x, const btScalar& y, const btScalar& z)-		{-			m_floats[0]=x;-			m_floats[1]=y;-			m_floats[2]=z;-			m_floats[3] = btScalar(0.);-		}--		void	getSkewSymmetricMatrix(btVector3* v0,btVector3* v1,btVector3* v2) const-		{-			v0->setValue(0.		,-z()		,y());-			v1->setValue(z()	,0.			,-x());-			v2->setValue(-y()	,x()	,0.);-		}--		void	setZero()-		{-			setValue(btScalar(0.),btScalar(0.),btScalar(0.));-		}--		SIMD_FORCE_INLINE bool isZero() const -		{-			return m_floats[0] == btScalar(0) && m_floats[1] == btScalar(0) && m_floats[2] == btScalar(0);-		}--		SIMD_FORCE_INLINE bool fuzzyZero() const -		{-			return length2() < SIMD_EPSILON;-		}--		SIMD_FORCE_INLINE	void	serialize(struct	btVector3Data& dataOut) const;--		SIMD_FORCE_INLINE	void	deSerialize(const struct	btVector3Data& dataIn);--		SIMD_FORCE_INLINE	void	serializeFloat(struct	btVector3FloatData& dataOut) const;--		SIMD_FORCE_INLINE	void	deSerializeFloat(const struct	btVector3FloatData& dataIn);--		SIMD_FORCE_INLINE	void	serializeDouble(struct	btVector3DoubleData& dataOut) const;--		SIMD_FORCE_INLINE	void	deSerializeDouble(const struct	btVector3DoubleData& dataIn);--};--/**@brief Return the sum of two vectors (Point symantics)*/-SIMD_FORCE_INLINE btVector3 -operator+(const btVector3& v1, const btVector3& v2) -{-	return btVector3(v1.m_floats[0] + v2.m_floats[0], v1.m_floats[1] + v2.m_floats[1], v1.m_floats[2] + v2.m_floats[2]);-}--/**@brief Return the elementwise product of two vectors */-SIMD_FORCE_INLINE btVector3 -operator*(const btVector3& v1, const btVector3& v2) -{-	return btVector3(v1.m_floats[0] * v2.m_floats[0], v1.m_floats[1] * v2.m_floats[1], v1.m_floats[2] * v2.m_floats[2]);-}--/**@brief Return the difference between two vectors */-SIMD_FORCE_INLINE btVector3 -operator-(const btVector3& v1, const btVector3& v2)-{-	return btVector3(v1.m_floats[0] - v2.m_floats[0], v1.m_floats[1] - v2.m_floats[1], v1.m_floats[2] - v2.m_floats[2]);-}-/**@brief Return the negative of the vector */-SIMD_FORCE_INLINE btVector3 -operator-(const btVector3& v)-{-	return btVector3(-v.m_floats[0], -v.m_floats[1], -v.m_floats[2]);-}--/**@brief Return the vector scaled by s */-SIMD_FORCE_INLINE btVector3 -operator*(const btVector3& v, const btScalar& s)-{-	return btVector3(v.m_floats[0] * s, v.m_floats[1] * s, v.m_floats[2] * s);-}--/**@brief Return the vector scaled by s */-SIMD_FORCE_INLINE btVector3 -operator*(const btScalar& s, const btVector3& v)-{ -	return v * s; -}--/**@brief Return the vector inversely scaled by s */-SIMD_FORCE_INLINE btVector3-operator/(const btVector3& v, const btScalar& s)-{-	btFullAssert(s != btScalar(0.0));-	return v * (btScalar(1.0) / s);-}--/**@brief Return the vector inversely scaled by s */-SIMD_FORCE_INLINE btVector3-operator/(const btVector3& v1, const btVector3& v2)-{-	return btVector3(v1.m_floats[0] / v2.m_floats[0],v1.m_floats[1] / v2.m_floats[1],v1.m_floats[2] / v2.m_floats[2]);-}--/**@brief Return the dot product between two vectors */-SIMD_FORCE_INLINE btScalar -btDot(const btVector3& v1, const btVector3& v2) -{ -	return v1.dot(v2); -}---/**@brief Return the distance squared between two vectors */-SIMD_FORCE_INLINE btScalar-btDistance2(const btVector3& v1, const btVector3& v2) -{ -	return v1.distance2(v2); -}---/**@brief Return the distance between two vectors */-SIMD_FORCE_INLINE btScalar-btDistance(const btVector3& v1, const btVector3& v2) -{ -	return v1.distance(v2); -}--/**@brief Return the angle between two vectors */-SIMD_FORCE_INLINE btScalar-btAngle(const btVector3& v1, const btVector3& v2) -{ -	return v1.angle(v2); -}--/**@brief Return the cross product of two vectors */-SIMD_FORCE_INLINE btVector3 -btCross(const btVector3& v1, const btVector3& v2) -{ -	return v1.cross(v2); -}--SIMD_FORCE_INLINE btScalar-btTriple(const btVector3& v1, const btVector3& v2, const btVector3& v3)-{-	return v1.triple(v2, v3);-}--/**@brief Return the linear interpolation between two vectors- * @param v1 One vector - * @param v2 The other vector - * @param t The ration of this to v (t = 0 => return v1, t=1 => return v2) */-SIMD_FORCE_INLINE btVector3 -lerp(const btVector3& v1, const btVector3& v2, const btScalar& t)-{-	return v1.lerp(v2, t);-}----SIMD_FORCE_INLINE btScalar btVector3::distance2(const btVector3& v) const-{-	return (v - *this).length2();-}--SIMD_FORCE_INLINE btScalar btVector3::distance(const btVector3& v) const-{-	return (v - *this).length();-}--SIMD_FORCE_INLINE btVector3 btVector3::normalized() const-{-	return *this / length();-} --SIMD_FORCE_INLINE btVector3 btVector3::rotate( const btVector3& wAxis, const btScalar angle ) const-{-	// wAxis must be a unit lenght vector--	btVector3 o = wAxis * wAxis.dot( *this );-	btVector3 x = *this - o;-	btVector3 y;--	y = wAxis.cross( *this );--	return ( o + x * btCos( angle ) + y * btSin( angle ) );-}--class btVector4 : public btVector3-{-public:--	SIMD_FORCE_INLINE btVector4() {}---	SIMD_FORCE_INLINE btVector4(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w) -		: btVector3(x,y,z)-	{-		m_floats[3] = w;-	}---	SIMD_FORCE_INLINE btVector4 absolute4() const -	{-		return btVector4(-			btFabs(m_floats[0]), -			btFabs(m_floats[1]), -			btFabs(m_floats[2]),-			btFabs(m_floats[3]));-	}----	btScalar	getW() const { return m_floats[3];}---		SIMD_FORCE_INLINE int maxAxis4() const-	{-		int maxIndex = -1;-		btScalar maxVal = btScalar(-BT_LARGE_FLOAT);-		if (m_floats[0] > maxVal)-		{-			maxIndex = 0;-			maxVal = m_floats[0];-		}-		if (m_floats[1] > maxVal)-		{-			maxIndex = 1;-			maxVal = m_floats[1];-		}-		if (m_floats[2] > maxVal)-		{-			maxIndex = 2;-			maxVal =m_floats[2];-		}-		if (m_floats[3] > maxVal)-		{-			maxIndex = 3;-			maxVal = m_floats[3];-		}-		-		-		--		return maxIndex;--	}---	SIMD_FORCE_INLINE int minAxis4() const-	{-		int minIndex = -1;-		btScalar minVal = btScalar(BT_LARGE_FLOAT);-		if (m_floats[0] < minVal)-		{-			minIndex = 0;-			minVal = m_floats[0];-		}-		if (m_floats[1] < minVal)-		{-			minIndex = 1;-			minVal = m_floats[1];-		}-		if (m_floats[2] < minVal)-		{-			minIndex = 2;-			minVal =m_floats[2];-		}-		if (m_floats[3] < minVal)-		{-			minIndex = 3;-			minVal = m_floats[3];-		}-		-		return minIndex;--	}---	SIMD_FORCE_INLINE int closestAxis4() const -	{-		return absolute4().maxAxis4();-	}--	- --  /**@brief Set x,y,z and zero w -   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   */-		--/*		void getValue(btScalar *m) const -		{-			m[0] = m_floats[0];-			m[1] = m_floats[1];-			m[2] =m_floats[2];-		}-*/-/**@brief Set the values -   * @param x Value of x-   * @param y Value of y-   * @param z Value of z-   * @param w Value of w-   */-		SIMD_FORCE_INLINE void	setValue(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)-		{-			m_floats[0]=x;-			m_floats[1]=y;-			m_floats[2]=z;-			m_floats[3]=w;-		}---};---///btSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization-SIMD_FORCE_INLINE void	btSwapScalarEndian(const btScalar& sourceVal, btScalar& destVal)-{-	#ifdef BT_USE_DOUBLE_PRECISION-	unsigned char* dest = (unsigned char*) &destVal;-	unsigned char* src  = (unsigned char*) &sourceVal;-	dest[0] = src[7];-    dest[1] = src[6];-    dest[2] = src[5];-    dest[3] = src[4];-    dest[4] = src[3];-    dest[5] = src[2];-    dest[6] = src[1];-    dest[7] = src[0];-#else-	unsigned char* dest = (unsigned char*) &destVal;-	unsigned char* src  = (unsigned char*) &sourceVal;-	dest[0] = src[3];-    dest[1] = src[2];-    dest[2] = src[1];-    dest[3] = src[0];-#endif //BT_USE_DOUBLE_PRECISION-}-///btSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization-SIMD_FORCE_INLINE void	btSwapVector3Endian(const btVector3& sourceVec, btVector3& destVec)-{-	for (int i=0;i<4;i++)-	{-		btSwapScalarEndian(sourceVec[i],destVec[i]);-	}--}--///btUnSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization-SIMD_FORCE_INLINE void	btUnSwapVector3Endian(btVector3& vector)-{--	btVector3	swappedVec;-	for (int i=0;i<4;i++)-	{-		btSwapScalarEndian(vector[i],swappedVec[i]);-	}-	vector = swappedVec;-}--template <class T>-SIMD_FORCE_INLINE void btPlaneSpace1 (const T& n, T& p, T& q)-{-  if (btFabs(n[2]) > SIMDSQRT12) {-    // choose p in y-z plane-    btScalar a = n[1]*n[1] + n[2]*n[2];-    btScalar k = btRecipSqrt (a);-    p[0] = 0;-	p[1] = -n[2]*k;-	p[2] = n[1]*k;-    // set q = n x p-    q[0] = a*k;-	q[1] = -n[0]*p[2];-	q[2] = n[0]*p[1];-  }-  else {-    // choose p in x-y plane-    btScalar a = n[0]*n[0] + n[1]*n[1];-    btScalar k = btRecipSqrt (a);-    p[0] = -n[1]*k;-	p[1] = n[0]*k;-	p[2] = 0;-    // set q = n x p-    q[0] = -n[2]*p[1];-	q[1] = n[2]*p[0];-	q[2] = a*k;-  }-}---struct	btVector3FloatData-{-	float	m_floats[4];-};--struct	btVector3DoubleData-{-	double	m_floats[4];--};--SIMD_FORCE_INLINE	void	btVector3::serializeFloat(struct	btVector3FloatData& dataOut) const-{-	///could also do a memcpy, check if it is worth it-	for (int i=0;i<4;i++)-		dataOut.m_floats[i] = float(m_floats[i]);-}--SIMD_FORCE_INLINE void	btVector3::deSerializeFloat(const struct	btVector3FloatData& dataIn)-{-	for (int i=0;i<4;i++)-		m_floats[i] = btScalar(dataIn.m_floats[i]);-}---SIMD_FORCE_INLINE	void	btVector3::serializeDouble(struct	btVector3DoubleData& dataOut) const-{-	///could also do a memcpy, check if it is worth it-	for (int i=0;i<4;i++)-		dataOut.m_floats[i] = double(m_floats[i]);-}--SIMD_FORCE_INLINE void	btVector3::deSerializeDouble(const struct	btVector3DoubleData& dataIn)-{-	for (int i=0;i<4;i++)-		m_floats[i] = btScalar(dataIn.m_floats[i]);-}---SIMD_FORCE_INLINE	void	btVector3::serialize(struct	btVector3Data& dataOut) const-{-	///could also do a memcpy, check if it is worth it-	for (int i=0;i<4;i++)-		dataOut.m_floats[i] = m_floats[i];-}--SIMD_FORCE_INLINE void	btVector3::deSerialize(const struct	btVector3Data& dataIn)-{-	for (int i=0;i<4;i++)-		m_floats[i] = dataIn.m_floats[i];+Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.+*/++++#ifndef BT_VECTOR3_H+#define BT_VECTOR3_H+++#include "btScalar.h"+#include "btMinMax.h"++#ifdef BT_USE_DOUBLE_PRECISION+#define btVector3Data btVector3DoubleData+#define btVector3DataName "btVector3DoubleData"+#else+#define btVector3Data btVector3FloatData+#define btVector3DataName "btVector3FloatData"+#endif //BT_USE_DOUBLE_PRECISION+++++/**@brief btVector3 can be used to represent 3D points and vectors.+* It has an un-used w component to suit 16-byte alignment when btVector3 is stored in containers. This extra component can be used by derived classes (Quaternion?) or by user+* Ideally, this class should be replaced by a platform optimized SIMD version that keeps the data in registers+*/+ATTRIBUTE_ALIGNED16(class) btVector3+{ private:+public:++#if defined (__SPU__) && defined (__CELLOS_LV2__)+btScalar m_floats[4];+public:+SIMD_FORCE_INLINE const vec_float4& get128() const+{+return *((const vec_float4*)&m_floats[0]);+}+public:+#else //__CELLOS_LV2__ __SPU__+#ifdef BT_USE_SSE // _WIN32+union {+__m128 mVec128;+btScalar m_floats[4];+};+SIMD_FORCE_INLINE __m128 get128() const+{+return mVec128;+}+SIMD_FORCE_INLINE void set128(__m128 v128)+{+mVec128 = v128;+}+#else+btScalar m_floats[4];+#endif+#endif //__CELLOS_LV2__ __SPU__++public:++/**@brief No initialization constructor */+SIMD_FORCE_INLINE btVector3() {}++++/**@brief Constructor from scalars+* @param x X value+* @param y Y value+* @param z Z value+*/+SIMD_FORCE_INLINE btVector3(const btScalar& x, const btScalar& y, const btScalar& z)+{+m_floats[0] = x;+m_floats[1] = y;+m_floats[2] = z;+m_floats[3] = btScalar(0.);+}+++/**@brief Add a vector to this one+* @param The vector to add to this one */+SIMD_FORCE_INLINE btVector3& operator+=(const btVector3& v)+{++m_floats[0] += v.m_floats[0]; m_floats[1] += v.m_floats[1];m_floats[2] += v.m_floats[2];+return *this;+}+++/**@brief Subtract a vector from this one+* @param The vector to subtract */+SIMD_FORCE_INLINE btVector3& operator-=(const btVector3& v)+{+m_floats[0] -= v.m_floats[0]; m_floats[1] -= v.m_floats[1];m_floats[2] -= v.m_floats[2];+return *this;+}+/**@brief Scale the vector+* @param s Scale factor */+SIMD_FORCE_INLINE btVector3& operator*=(const btScalar& s)+{+m_floats[0] *= s; m_floats[1] *= s;m_floats[2] *= s;+return *this;+}++/**@brief Inversely scale the vector+* @param s Scale factor to divide by */+SIMD_FORCE_INLINE btVector3& operator/=(const btScalar& s)+{+btFullAssert(s != btScalar(0.0));+return *this *= btScalar(1.0) / s;+}++/**@brief Return the dot product+* @param v The other vector in the dot product */+SIMD_FORCE_INLINE btScalar dot(const btVector3& v) const+{+return m_floats[0] * v.m_floats[0] + m_floats[1] * v.m_floats[1] +m_floats[2] * v.m_floats[2];+}++/**@brief Return the length of the vector squared */+SIMD_FORCE_INLINE btScalar length2() const+{+return dot(*this);+}++/**@brief Return the length of the vector */+SIMD_FORCE_INLINE btScalar length() const+{+return btSqrt(length2());+}++/**@brief Return the distance squared between the ends of this and another vector+* This is symantically treating the vector like a point */+SIMD_FORCE_INLINE btScalar distance2(const btVector3& v) const;++/**@brief Return the distance between the ends of this and another vector+* This is symantically treating the vector like a point */+SIMD_FORCE_INLINE btScalar distance(const btVector3& v) const;++SIMD_FORCE_INLINE btVector3& safeNormalize()+{+btVector3 absVec = this->absolute();+int maxIndex = absVec.maxAxis();+if (absVec[maxIndex]>0)+{+*this /= absVec[maxIndex];+return *this /= length();+}+setValue(1,0,0);+return *this;+}++/**@brief Normalize this vector+* x^2 + y^2 + z^2 = 1 */+SIMD_FORCE_INLINE btVector3& normalize()+{+return *this /= length();+}++/**@brief Return a normalized version of this vector */+SIMD_FORCE_INLINE btVector3 normalized() const;++/**@brief Return a rotated version of this vector+* @param wAxis The axis to rotate about+* @param angle The angle to rotate by */+SIMD_FORCE_INLINE btVector3 rotate( const btVector3& wAxis, const btScalar angle ) const;++/**@brief Return the angle between this and another vector+* @param v The other vector */+SIMD_FORCE_INLINE btScalar angle(const btVector3& v) const+{+btScalar s = btSqrt(length2() * v.length2());+btFullAssert(s != btScalar(0.0));+return btAcos(dot(v) / s);+}+/**@brief Return a vector will the absolute values of each element */+SIMD_FORCE_INLINE btVector3 absolute() const+{+return btVector3(+btFabs(m_floats[0]),+btFabs(m_floats[1]),+btFabs(m_floats[2]));+}+/**@brief Return the cross product between this and another vector+* @param v The other vector */+SIMD_FORCE_INLINE btVector3 cross(const btVector3& v) const+{+return btVector3(+m_floats[1] * v.m_floats[2] -m_floats[2] * v.m_floats[1],+m_floats[2] * v.m_floats[0] - m_floats[0] * v.m_floats[2],+m_floats[0] * v.m_floats[1] - m_floats[1] * v.m_floats[0]);+}++SIMD_FORCE_INLINE btScalar triple(const btVector3& v1, const btVector3& v2) const+{+return m_floats[0] * (v1.m_floats[1] * v2.m_floats[2] - v1.m_floats[2] * v2.m_floats[1]) ++m_floats[1] * (v1.m_floats[2] * v2.m_floats[0] - v1.m_floats[0] * v2.m_floats[2]) ++m_floats[2] * (v1.m_floats[0] * v2.m_floats[1] - v1.m_floats[1] * v2.m_floats[0]);+}++/**@brief Return the axis with the smallest value+* Note return values are 0,1,2 for x, y, or z */+SIMD_FORCE_INLINE int minAxis() const+{+return m_floats[0] < m_floats[1] ? (m_floats[0] <m_floats[2] ? 0 : 2) : (m_floats[1] <m_floats[2] ? 1 : 2);+}++/**@brief Return the axis with the largest value+* Note return values are 0,1,2 for x, y, or z */+SIMD_FORCE_INLINE int maxAxis() const+{+return m_floats[0] < m_floats[1] ? (m_floats[1] <m_floats[2] ? 2 : 1) : (m_floats[0] <m_floats[2] ? 2 : 0);+}++SIMD_FORCE_INLINE int furthestAxis() const+{+return absolute().minAxis();+}++SIMD_FORCE_INLINE int closestAxis() const+{+return absolute().maxAxis();+}++SIMD_FORCE_INLINE void setInterpolate3(const btVector3& v0, const btVector3& v1, btScalar rt)+{+btScalar s = btScalar(1.0) - rt;+m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0];+m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];+m_floats[2] = s * v0.m_floats[2] + rt * v1.m_floats[2];+//don't do the unused w component+// m_co[3] = s * v0[3] + rt * v1[3];+}++/**@brief Return the linear interpolation between this and another vector+* @param v The other vector+* @param t The ration of this to v (t = 0 => return this, t=1 => return other) */+SIMD_FORCE_INLINE btVector3 lerp(const btVector3& v, const btScalar& t) const+{+return btVector3(m_floats[0] + (v.m_floats[0] - m_floats[0]) * t,+m_floats[1] + (v.m_floats[1] - m_floats[1]) * t,+m_floats[2] + (v.m_floats[2] -m_floats[2]) * t);+}++/**@brief Elementwise multiply this vector by the other+* @param v The other vector */+SIMD_FORCE_INLINE btVector3& operator*=(const btVector3& v)+{+m_floats[0] *= v.m_floats[0]; m_floats[1] *= v.m_floats[1];m_floats[2] *= v.m_floats[2];+return *this;+}++/**@brief Return the x value */+SIMD_FORCE_INLINE const btScalar& getX() const { return m_floats[0]; }+/**@brief Return the y value */+SIMD_FORCE_INLINE const btScalar& getY() const { return m_floats[1]; }+/**@brief Return the z value */+SIMD_FORCE_INLINE const btScalar& getZ() const { return m_floats[2]; }+/**@brief Set the x value */+SIMD_FORCE_INLINE void setX(btScalar x) { m_floats[0] = x;};+/**@brief Set the y value */+SIMD_FORCE_INLINE void setY(btScalar y) { m_floats[1] = y;};+/**@brief Set the z value */+SIMD_FORCE_INLINE void setZ(btScalar z) {m_floats[2] = z;};+/**@brief Set the w value */+SIMD_FORCE_INLINE void setW(btScalar w) { m_floats[3] = w;};+/**@brief Return the x value */+SIMD_FORCE_INLINE const btScalar& x() const { return m_floats[0]; }+/**@brief Return the y value */+SIMD_FORCE_INLINE const btScalar& y() const { return m_floats[1]; }+/**@brief Return the z value */+SIMD_FORCE_INLINE const btScalar& z() const { return m_floats[2]; }+/**@brief Return the w value */+SIMD_FORCE_INLINE const btScalar& w() const { return m_floats[3]; }++//SIMD_FORCE_INLINE btScalar& operator[](int i) { return (&m_floats[0])[i]; }+//SIMD_FORCE_INLINE const btScalar& operator[](int i) const { return (&m_floats[0])[i]; }+///operator btScalar*() replaces operator[], using implicit conversion. We added operator != and operator == to avoid pointer comparisons.+SIMD_FORCE_INLINE operator btScalar *() { return &m_floats[0]; }+SIMD_FORCE_INLINE operator const btScalar *() const { return &m_floats[0]; }++SIMD_FORCE_INLINE bool operator==(const btVector3& other) const+{+return ((m_floats[3]==other.m_floats[3]) && (m_floats[2]==other.m_floats[2]) && (m_floats[1]==other.m_floats[1]) && (m_floats[0]==other.m_floats[0]));+}++SIMD_FORCE_INLINE bool operator!=(const btVector3& other) const+{+return !(*this == other);+}++/**@brief Set each element to the max of the current values and the values of another btVector3+* @param other The other btVector3 to compare with+*/+SIMD_FORCE_INLINE void setMax(const btVector3& other)+{+btSetMax(m_floats[0], other.m_floats[0]);+btSetMax(m_floats[1], other.m_floats[1]);+btSetMax(m_floats[2], other.m_floats[2]);+btSetMax(m_floats[3], other.w());+}+/**@brief Set each element to the min of the current values and the values of another btVector3+* @param other The other btVector3 to compare with+*/+SIMD_FORCE_INLINE void setMin(const btVector3& other)+{+btSetMin(m_floats[0], other.m_floats[0]);+btSetMin(m_floats[1], other.m_floats[1]);+btSetMin(m_floats[2], other.m_floats[2]);+btSetMin(m_floats[3], other.w());+}++SIMD_FORCE_INLINE void setValue(const btScalar& x, const btScalar& y, const btScalar& z)+{+m_floats[0]=x;+m_floats[1]=y;+m_floats[2]=z;+m_floats[3] = btScalar(0.);+}++void getSkewSymmetricMatrix(btVector3* v0,btVector3* v1,btVector3* v2) const+{+v0->setValue(0. ,-z() ,y());+v1->setValue(z() ,0. ,-x());+v2->setValue(-y() ,x() ,0.);+}++void setZero()+{+setValue(btScalar(0.),btScalar(0.),btScalar(0.));+}++SIMD_FORCE_INLINE bool isZero() const+{+return m_floats[0] == btScalar(0) && m_floats[1] == btScalar(0) && m_floats[2] == btScalar(0);+}++SIMD_FORCE_INLINE bool fuzzyZero() const+{+return length2() < SIMD_EPSILON;+}++SIMD_FORCE_INLINE void serialize(struct btVector3Data& dataOut) const;++SIMD_FORCE_INLINE void deSerialize(const struct btVector3Data& dataIn);++SIMD_FORCE_INLINE void serializeFloat(struct btVector3FloatData& dataOut) const;++SIMD_FORCE_INLINE void deSerializeFloat(const struct btVector3FloatData& dataIn);++SIMD_FORCE_INLINE void serializeDouble(struct btVector3DoubleData& dataOut) const;++SIMD_FORCE_INLINE void deSerializeDouble(const struct btVector3DoubleData& dataIn);++};++/**@brief Return the sum of two vectors (Point symantics)*/+SIMD_FORCE_INLINE btVector3+operator+(const btVector3& v1, const btVector3& v2)+{+return btVector3(v1.m_floats[0] + v2.m_floats[0], v1.m_floats[1] + v2.m_floats[1], v1.m_floats[2] + v2.m_floats[2]);+}++/**@brief Return the elementwise product of two vectors */+SIMD_FORCE_INLINE btVector3+operator*(const btVector3& v1, const btVector3& v2)+{+return btVector3(v1.m_floats[0] * v2.m_floats[0], v1.m_floats[1] * v2.m_floats[1], v1.m_floats[2] * v2.m_floats[2]);+}++/**@brief Return the difference between two vectors */+SIMD_FORCE_INLINE btVector3+operator-(const btVector3& v1, const btVector3& v2)+{+return btVector3(v1.m_floats[0] - v2.m_floats[0], v1.m_floats[1] - v2.m_floats[1], v1.m_floats[2] - v2.m_floats[2]);+}+/**@brief Return the negative of the vector */+SIMD_FORCE_INLINE btVector3+operator-(const btVector3& v)+{+return btVector3(-v.m_floats[0], -v.m_floats[1], -v.m_floats[2]);+}++/**@brief Return the vector scaled by s */+SIMD_FORCE_INLINE btVector3+operator*(const btVector3& v, const btScalar& s)+{+return btVector3(v.m_floats[0] * s, v.m_floats[1] * s, v.m_floats[2] * s);+}++/**@brief Return the vector scaled by s */+SIMD_FORCE_INLINE btVector3+operator*(const btScalar& s, const btVector3& v)+{+return v * s;+}++/**@brief Return the vector inversely scaled by s */+SIMD_FORCE_INLINE btVector3+operator/(const btVector3& v, const btScalar& s)+{+btFullAssert(s != btScalar(0.0));+return v * (btScalar(1.0) / s);+}++/**@brief Return the vector inversely scaled by s */+SIMD_FORCE_INLINE btVector3+operator/(const btVector3& v1, const btVector3& v2)+{+return btVector3(v1.m_floats[0] / v2.m_floats[0],v1.m_floats[1] / v2.m_floats[1],v1.m_floats[2] / v2.m_floats[2]);+}++/**@brief Return the dot product between two vectors */+SIMD_FORCE_INLINE btScalar+btDot(const btVector3& v1, const btVector3& v2)+{+return v1.dot(v2);+}+++/**@brief Return the distance squared between two vectors */+SIMD_FORCE_INLINE btScalar+btDistance2(const btVector3& v1, const btVector3& v2)+{+return v1.distance2(v2);+}+++/**@brief Return the distance between two vectors */+SIMD_FORCE_INLINE btScalar+btDistance(const btVector3& v1, const btVector3& v2)+{+return v1.distance(v2);+}++/**@brief Return the angle between two vectors */+SIMD_FORCE_INLINE btScalar+btAngle(const btVector3& v1, const btVector3& v2)+{+return v1.angle(v2);+}++/**@brief Return the cross product of two vectors */+SIMD_FORCE_INLINE btVector3+btCross(const btVector3& v1, const btVector3& v2)+{+return v1.cross(v2);+}++SIMD_FORCE_INLINE btScalar+btTriple(const btVector3& v1, const btVector3& v2, const btVector3& v3)+{+return v1.triple(v2, v3);+}++/**@brief Return the linear interpolation between two vectors+* @param v1 One vector+* @param v2 The other vector+* @param t The ration of this to v (t = 0 => return v1, t=1 => return v2) */+SIMD_FORCE_INLINE btVector3+lerp(const btVector3& v1, const btVector3& v2, const btScalar& t)+{+return v1.lerp(v2, t);+}++++SIMD_FORCE_INLINE btScalar btVector3::distance2(const btVector3& v) const+{+return (v - *this).length2();+}++SIMD_FORCE_INLINE btScalar btVector3::distance(const btVector3& v) const+{+return (v - *this).length();+}++SIMD_FORCE_INLINE btVector3 btVector3::normalized() const+{+return *this / length();+}++SIMD_FORCE_INLINE btVector3 btVector3::rotate( const btVector3& wAxis, const btScalar angle ) const+{+// wAxis must be a unit lenght vector++btVector3 o = wAxis * wAxis.dot( *this );+btVector3 x = *this - o;+btVector3 y;++y = wAxis.cross( *this );++return ( o + x * btCos( angle ) + y * btSin( angle ) );+}++class btVector4 : public btVector3+{ private:+public:++SIMD_FORCE_INLINE btVector4() {}+++SIMD_FORCE_INLINE btVector4(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)+: btVector3(x,y,z)+{+m_floats[3] = w;+}+++SIMD_FORCE_INLINE btVector4 absolute4() const+{+return btVector4(+btFabs(m_floats[0]),+btFabs(m_floats[1]),+btFabs(m_floats[2]),+btFabs(m_floats[3]));+}++++btScalar getW() const { return m_floats[3];}+++SIMD_FORCE_INLINE int maxAxis4() const+{+int maxIndex = -1;+btScalar maxVal = btScalar(-BT_LARGE_FLOAT);+if (m_floats[0] > maxVal)+{+maxIndex = 0;+maxVal = m_floats[0];+}+if (m_floats[1] > maxVal)+{+maxIndex = 1;+maxVal = m_floats[1];+}+if (m_floats[2] > maxVal)+{+maxIndex = 2;+maxVal =m_floats[2];+}+if (m_floats[3] > maxVal)+{+maxIndex = 3;+maxVal = m_floats[3];+}+++++return maxIndex;++}+++SIMD_FORCE_INLINE int minAxis4() const+{+int minIndex = -1;+btScalar minVal = btScalar(BT_LARGE_FLOAT);+if (m_floats[0] < minVal)+{+minIndex = 0;+minVal = m_floats[0];+}+if (m_floats[1] < minVal)+{+minIndex = 1;+minVal = m_floats[1];+}+if (m_floats[2] < minVal)+{+minIndex = 2;+minVal =m_floats[2];+}+if (m_floats[3] < minVal)+{+minIndex = 3;+minVal = m_floats[3];+}++return minIndex;++}+++SIMD_FORCE_INLINE int closestAxis4() const+{+return absolute4().maxAxis4();+}+++++/**@brief Set x,y,z and zero w+* @param x Value of x+* @param y Value of y+* @param z Value of z+*/+++/* void getValue(btScalar *m) const+{+m[0] = m_floats[0];+m[1] = m_floats[1];+m[2] =m_floats[2];+}+*/+/**@brief Set the values+* @param x Value of x+* @param y Value of y+* @param z Value of z+* @param w Value of w+*/+SIMD_FORCE_INLINE void setValue(const btScalar& x, const btScalar& y, const btScalar& z,const btScalar& w)+{+m_floats[0]=x;+m_floats[1]=y;+m_floats[2]=z;+m_floats[3]=w;+}+++};+++///btSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization+SIMD_FORCE_INLINE void btSwapScalarEndian(const btScalar& sourceVal, btScalar& destVal)+{+#ifdef BT_USE_DOUBLE_PRECISION+unsigned char* dest = (unsigned char*) &destVal;+unsigned char* src = (unsigned char*) &sourceVal;+dest[0] = src[7];+dest[1] = src[6];+dest[2] = src[5];+dest[3] = src[4];+dest[4] = src[3];+dest[5] = src[2];+dest[6] = src[1];+dest[7] = src[0];+#else+unsigned char* dest = (unsigned char*) &destVal;+unsigned char* src = (unsigned char*) &sourceVal;+dest[0] = src[3];+dest[1] = src[2];+dest[2] = src[1];+dest[3] = src[0];+#endif //BT_USE_DOUBLE_PRECISION+}+///btSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization+SIMD_FORCE_INLINE void btSwapVector3Endian(const btVector3& sourceVec, btVector3& destVec)+{+for (int i=0;i<4;i++)+{+btSwapScalarEndian(sourceVec[i],destVec[i]);+}++}++///btUnSwapVector3Endian swaps vector endianness, useful for network and cross-platform serialization+SIMD_FORCE_INLINE void btUnSwapVector3Endian(btVector3& vector)+{++btVector3 swappedVec;+for (int i=0;i<4;i++)+{+btSwapScalarEndian(vector[i],swappedVec[i]);+}+vector = swappedVec;+}++template <class T>+SIMD_FORCE_INLINE void btPlaneSpace1 (const T& n, T& p, T& q)+{+if (btFabs(n[2]) > SIMDSQRT12) {+// choose p in y-z plane+btScalar a = n[1]*n[1] + n[2]*n[2];+btScalar k = btRecipSqrt (a);+p[0] = 0;+p[1] = -n[2]*k;+p[2] = n[1]*k;+// set q = n x p+q[0] = a*k;+q[1] = -n[0]*p[2];+q[2] = n[0]*p[1];+}+else {+// choose p in x-y plane+btScalar a = n[0]*n[0] + n[1]*n[1];+btScalar k = btRecipSqrt (a);+p[0] = -n[1]*k;+p[1] = n[0]*k;+p[2] = 0;+// set q = n x p+q[0] = -n[2]*p[1];+q[1] = n[2]*p[0];+q[2] = a*k;+}+}+++struct btVector3FloatData+{+float m_floats[4];+};++struct btVector3DoubleData+{+double m_floats[4];++};++SIMD_FORCE_INLINE void btVector3::serializeFloat(struct btVector3FloatData& dataOut) const+{+///could also do a memcpy, check if it is worth it+for (int i=0;i<4;i++)+dataOut.m_floats[i] = float(m_floats[i]);+}++SIMD_FORCE_INLINE void btVector3::deSerializeFloat(const struct btVector3FloatData& dataIn)+{+for (int i=0;i<4;i++)+m_floats[i] = btScalar(dataIn.m_floats[i]);+}+++SIMD_FORCE_INLINE void btVector3::serializeDouble(struct btVector3DoubleData& dataOut) const+{+///could also do a memcpy, check if it is worth it+for (int i=0;i<4;i++)+dataOut.m_floats[i] = double(m_floats[i]);+}++SIMD_FORCE_INLINE void btVector3::deSerializeDouble(const struct btVector3DoubleData& dataIn)+{+for (int i=0;i<4;i++)+m_floats[i] = btScalar(dataIn.m_floats[i]);+}+++SIMD_FORCE_INLINE void btVector3::serialize(struct btVector3Data& dataOut) const+{+///could also do a memcpy, check if it is worth it+for (int i=0;i<4;i++)+dataOut.m_floats[i] = m_floats[i];+}++SIMD_FORCE_INLINE void btVector3::deSerialize(const struct btVector3Data& dataIn)+{+for (int i=0;i<4;i++)+m_floats[i] = dataIn.m_floats[i]; }  
bullet/MiniCL/MiniCLTask/MiniCLTask.h view
@@ -3,8 +3,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,32 +30,32 @@  ATTRIBUTE_ALIGNED16(struct) MiniCLTaskDesc {-	BT_DECLARE_ALIGNED_ALLOCATOR();+BT_DECLARE_ALIGNED_ALLOCATOR(); -	MiniCLTaskDesc()-	{-		for (int i=0;i<MINI_CL_MAX_ARG;i++)-		{-			m_argSizes[i]=0;-		}-	}+MiniCLTaskDesc()+{+for (int i=0;i<MINI_CL_MAX_ARG;i++)+{+m_argSizes[i]=0;+}+} -	uint32_t		m_taskId;+uint32_t m_taskId; -	uint32_t		m_firstWorkUnit;-	uint32_t		m_lastWorkUnit;+uint32_t m_firstWorkUnit;+uint32_t m_lastWorkUnit; -	MiniCLKernel*	m_kernel;+MiniCLKernel* m_kernel; -	void*			m_argData[MINI_CL_MAX_ARG];-	int				m_argSizes[MINI_CL_MAX_ARG];+void* m_argData[MINI_CL_MAX_ARG];+int m_argSizes[MINI_CL_MAX_ARG]; };  extern "C" int gMiniCLNumOutstandingTasks;  -void	processMiniCLTask(void* userPtr, void* lsMemory);-void*	createMiniCLLocalStoreMemory();+void processMiniCLTask(void* userPtr, void* lsMemory);+void* createMiniCLLocalStoreMemory();   #endif //MINICL__TASK_H
bullet/MiniCL/MiniCLTaskScheduler.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2007 Erwin Coumans  http://bulletphysics.com+Copyright (c) 2003-2007 Erwin Coumans http://bulletphysics.com  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -39,78 +39,78 @@ /// When PPU issues a task, it will look for completed task buffers /// PPU will do postprocessing, dependent on workunit output (not likely) class MiniCLTaskScheduler-{-	// track task buffers that are being used, and total busy tasks-	btAlignedObjectArray<bool>	m_taskBusy;-	btAlignedObjectArray<MiniCLTaskDesc>	m_spuSampleTaskDesc;+{ private:+// track task buffers that are being used, and total busy tasks+btAlignedObjectArray<bool> m_taskBusy;+btAlignedObjectArray<MiniCLTaskDesc> m_spuSampleTaskDesc;  -	btAlignedObjectArray<const MiniCLKernel*>	m_kernels;+btAlignedObjectArray<const MiniCLKernel*> m_kernels;  -	int   m_numBusyTasks;+int m_numBusyTasks; -	// the current task and the current entry to insert a new work unit-	int   m_currentTask;+// the current task and the current entry to insert a new work unit+int m_currentTask; -	bool m_initialized;+bool m_initialized; -	void postProcess(int taskId, int outputSize);-	-	class	btThreadSupportInterface*	m_threadInterface;+void postProcess(int taskId, int outputSize); -	int	m_maxNumOutstandingTasks;+class btThreadSupportInterface* m_threadInterface; +int m_maxNumOutstandingTasks;  + public:-	MiniCLTaskScheduler(btThreadSupportInterface*	threadInterface, int maxNumOutstandingTasks);-	-	~MiniCLTaskScheduler();-	-	///call initialize in the beginning of the frame, before addCollisionPairToTask-	void initialize();+MiniCLTaskScheduler(btThreadSupportInterface* threadInterface, int maxNumOutstandingTasks); -	void issueTask(int firstWorkUnit, int lastWorkUnit, MiniCLKernel* kernel);+~MiniCLTaskScheduler(); -	///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished-	void flush();+///call initialize in the beginning of the frame, before addCollisionPairToTask+void initialize(); -	class	btThreadSupportInterface*	getThreadSupportInterface()-	{-		return m_threadInterface;-	}+void issueTask(int firstWorkUnit, int lastWorkUnit, MiniCLKernel* kernel); -	int	findProgramCommandIdByName(const char* programName) const;+///call flush to submit potential outstanding work to SPUs and wait for all involved SPUs to be finished+void flush(); -	int getMaxNumOutstandingTasks() const-	{-		return m_maxNumOutstandingTasks;-	}+class btThreadSupportInterface* getThreadSupportInterface()+{+return m_threadInterface;+} -	void registerKernel(MiniCLKernel* kernel)-	{-		m_kernels.push_back(kernel);-	}+int findProgramCommandIdByName(const char* programName) const;++int getMaxNumOutstandingTasks() const+{+return m_maxNumOutstandingTasks;+}++void registerKernel(MiniCLKernel* kernel)+{+m_kernels.push_back(kernel);+} };  typedef void (*kernelLauncherCB)(MiniCLTaskDesc* taskDesc, int guid); -struct	MiniCLKernel+struct MiniCLKernel {-	MiniCLTaskScheduler* m_scheduler;-	-//	int	m_kernelProgramCommandId;+MiniCLTaskScheduler* m_scheduler; -	char	m_name[MINI_CL_MAX_KERNEL_NAME];-	unsigned int	m_numArgs;-	kernelLauncherCB	m_launcher;-	void* m_pCode;-	void updateLauncher();-	MiniCLKernel* registerSelf();+// int m_kernelProgramCommandId; -	void*	m_argData[MINI_CL_MAX_ARG];-	int				m_argSizes[MINI_CL_MAX_ARG];+char m_name[MINI_CL_MAX_KERNEL_NAME];+unsigned int m_numArgs;+kernelLauncherCB m_launcher;+void* m_pCode;+void updateLauncher();+MiniCLKernel* registerSelf();++void* m_argData[MINI_CL_MAX_ARG];+int m_argSizes[MINI_CL_MAX_ARG]; };  @@ -128,62 +128,62 @@  int main(unsigned long long speid, addr64 argp, addr64 envp) {-	printf("SPU is up \n");-	-	ATTRIBUTE_ALIGNED128(btSpuStatus status);-	ATTRIBUTE_ALIGNED16( SpuSampleTaskDesc taskDesc ) ;-	unsigned int received_message = Spu_Mailbox_Event_Nothing;-        bool shutdown = false;+printf("SPU is up \n"); -	cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));+ATTRIBUTE_ALIGNED128(btSpuStatus status);+ATTRIBUTE_ALIGNED16( SpuSampleTaskDesc taskDesc ) ;+unsigned int received_message = Spu_Mailbox_Event_Nothing;+bool shutdown = false; -	status.m_status = Spu_Status_Free;-	status.m_lsMemory.p = SamplelsMemoryFunc();+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -	cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-	cellDmaWaitTagStatusAll(DMA_MASK(3));-	-	-	while (!shutdown)-	{-		received_message = spu_read_in_mbox();-		+status.m_status = Spu_Status_Free;+status.m_lsMemory.p = SamplelsMemoryFunc(); -		-		switch(received_message)-		{-		case Spu_Mailbox_Event_Shutdown:-			shutdown = true;-			break; -		case Spu_Mailbox_Event_Task:-			// refresh the status+cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+++while (!shutdown)+{+received_message = spu_read_in_mbox();++++switch(received_message)+{+case Spu_Mailbox_Event_Shutdown:+shutdown = true;+break;+case Spu_Mailbox_Event_Task:+// refresh the status #ifdef DEBUG_LIBSPE2_MAINLOOP-			printf("SPU recieved Task \n");+printf("SPU recieved Task \n"); #endif //DEBUG_LIBSPE2_MAINLOOP-			cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-		-			btAssert(status.m_status==Spu_Status_Occupied);-			-			cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuSampleTaskDesc), DMA_TAG(3), 0, 0);-			cellDmaWaitTagStatusAll(DMA_MASK(3));-			-			SampleThreadFunc((void*)&taskDesc, reinterpret_cast<void*> (taskDesc.m_mainMemoryPtr) );-			break;-		case Spu_Mailbox_Event_Nothing:-		default:-			break;-		}+cellDmaGet(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3)); -		// set to status free and wait for next task-		status.m_status = Spu_Status_Free;-		cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);-		cellDmaWaitTagStatusAll(DMA_MASK(3));		-				-		-  	}-  	return 0;+btAssert(status.m_status==Spu_Status_Occupied);++cellDmaGet(&taskDesc, status.m_taskDesc.p, sizeof(SpuSampleTaskDesc), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));++SampleThreadFunc((void*)&taskDesc, reinterpret_cast<void*> (taskDesc.m_mainMemoryPtr) );+break;+case Spu_Mailbox_Event_Nothing:+default:+break;+}++// set to status free and wait for next task+status.m_status = Spu_Status_Free;+cellDmaLargePut(&status, argp.ull, sizeof(btSpuStatus), DMA_TAG(3), 0, 0);+cellDmaWaitTagStatusAll(DMA_MASK(3));+++}+return 0; } ////////////////////////////////////////////////////// #endif
bullet/MiniCL/cl.h view
@@ -1,867 +1,867 @@ /*******************************************************************************- * Copyright (c) 2008-2009 The Khronos Group Inc.- *- * Permission is hereby granted, free of charge, to any person obtaining a- * copy of this software and/or associated documentation files (the- * "Materials"), to deal in the Materials without restriction, including- * without limitation the rights to use, copy, modify, merge, publish,- * distribute, sublicense, and/or sell copies of the Materials, and to- * permit persons to whom the Materials are furnished to do so, subject to- * the following conditions:- *- * The above copyright notice and this permission notice shall be included- * in all copies or substantial portions of the Materials.- *- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.- ******************************************************************************/--#ifndef __OPENCL_CL_H-#define __OPENCL_CL_H--#ifdef __APPLE__-#include <MiniCL/cl_platform.h>-#else-#include <MiniCL/cl_platform.h>-#endif	--#ifdef __cplusplus-extern "C" {-#endif--/******************************************************************************/--typedef struct _cl_platform_id *    cl_platform_id;-typedef struct _cl_device_id *      cl_device_id;-typedef struct _cl_context *        cl_context;-typedef struct _cl_command_queue *  cl_command_queue;-typedef struct _cl_mem *            cl_mem;-typedef struct _cl_program *        cl_program;-typedef struct _cl_kernel *         cl_kernel;-typedef struct _cl_event *          cl_event;-typedef struct _cl_sampler *        cl_sampler;--typedef cl_uint             cl_bool;                     /* WARNING!  Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */ -typedef cl_ulong            cl_bitfield;-typedef cl_bitfield         cl_device_type;-typedef cl_uint             cl_platform_info;-typedef cl_uint             cl_device_info;-typedef cl_bitfield         cl_device_address_info;-typedef cl_bitfield         cl_device_fp_config;-typedef cl_uint             cl_device_mem_cache_type;-typedef cl_uint             cl_device_local_mem_type;-typedef cl_bitfield         cl_device_exec_capabilities;-typedef cl_bitfield         cl_command_queue_properties;--typedef intptr_t			cl_context_properties;-typedef cl_uint             cl_context_info;-typedef cl_uint             cl_command_queue_info;-typedef cl_uint             cl_channel_order;-typedef cl_uint             cl_channel_type;-typedef cl_bitfield         cl_mem_flags;-typedef cl_uint             cl_mem_object_type;-typedef cl_uint             cl_mem_info;-typedef cl_uint             cl_image_info;-typedef cl_uint             cl_addressing_mode;-typedef cl_uint             cl_filter_mode;-typedef cl_uint             cl_sampler_info;-typedef cl_bitfield         cl_map_flags;-typedef cl_uint             cl_program_info;-typedef cl_uint             cl_program_build_info;-typedef cl_int              cl_build_status;-typedef cl_uint             cl_kernel_info;-typedef cl_uint             cl_kernel_work_group_info;-typedef cl_uint             cl_event_info;-typedef cl_uint             cl_command_type;-typedef cl_uint             cl_profiling_info;--typedef struct _cl_image_format {-    cl_channel_order        image_channel_order;-    cl_channel_type         image_channel_data_type;-} cl_image_format;--/******************************************************************************/--// Error Codes-#define CL_SUCCESS                                  0-#define CL_DEVICE_NOT_FOUND                         -1-#define CL_DEVICE_NOT_AVAILABLE                     -2-#define CL_DEVICE_COMPILER_NOT_AVAILABLE            -3-#define CL_MEM_OBJECT_ALLOCATION_FAILURE            -4-#define CL_OUT_OF_RESOURCES                         -5-#define CL_OUT_OF_HOST_MEMORY                       -6-#define CL_PROFILING_INFO_NOT_AVAILABLE             -7-#define CL_MEM_COPY_OVERLAP                         -8-#define CL_IMAGE_FORMAT_MISMATCH                    -9-#define CL_IMAGE_FORMAT_NOT_SUPPORTED               -10-#define CL_BUILD_PROGRAM_FAILURE                    -11-#define CL_MAP_FAILURE                              -12--#define CL_INVALID_VALUE                            -30-#define CL_INVALID_DEVICE_TYPE                      -31-#define CL_INVALID_PLATFORM                         -32-#define CL_INVALID_DEVICE                           -33-#define CL_INVALID_CONTEXT                          -34-#define CL_INVALID_QUEUE_PROPERTIES                 -35-#define CL_INVALID_COMMAND_QUEUE                    -36-#define CL_INVALID_HOST_PTR                         -37-#define CL_INVALID_MEM_OBJECT                       -38-#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR          -39-#define CL_INVALID_IMAGE_SIZE                       -40-#define CL_INVALID_SAMPLER                          -41-#define CL_INVALID_BINARY                           -42-#define CL_INVALID_BUILD_OPTIONS                    -43-#define CL_INVALID_PROGRAM                          -44-#define CL_INVALID_PROGRAM_EXECUTABLE               -45-#define CL_INVALID_KERNEL_NAME                      -46-#define CL_INVALID_KERNEL_DEFINITION                -47-#define CL_INVALID_KERNEL                           -48-#define CL_INVALID_ARG_INDEX                        -49-#define CL_INVALID_ARG_VALUE                        -50-#define CL_INVALID_ARG_SIZE                         -51-#define CL_INVALID_KERNEL_ARGS                      -52-#define CL_INVALID_WORK_DIMENSION                   -53-#define CL_INVALID_WORK_GROUP_SIZE                  -54-#define CL_INVALID_WORK_ITEM_SIZE                   -55-#define CL_INVALID_GLOBAL_OFFSET                    -56-#define CL_INVALID_EVENT_WAIT_LIST                  -57-#define CL_INVALID_EVENT                            -58-#define CL_INVALID_OPERATION                        -59-#define CL_INVALID_GL_OBJECT                        -60-#define CL_INVALID_BUFFER_SIZE                      -61-#define CL_INVALID_MIP_LEVEL                        -62--// OpenCL Version-#define CL_VERSION_1_0                              1--// cl_bool-#define CL_FALSE                                    0-#define CL_TRUE                                     1--// cl_platform_info-#define CL_PLATFORM_PROFILE                         0x0900-#define CL_PLATFORM_VERSION                         0x0901-#define CL_PLATFORM_NAME                            0x0902-#define CL_PLATFORM_VENDOR                          0x0903-#define CL_PLATFORM_EXTENSIONS                      0x0904--// cl_device_type - bitfield-#define CL_DEVICE_TYPE_DEFAULT                      (1 << 0)-#define CL_DEVICE_TYPE_CPU                          (1 << 1)-#define CL_DEVICE_TYPE_GPU                          (1 << 2)-#define CL_DEVICE_TYPE_ACCELERATOR                  (1 << 3)-#define CL_DEVICE_TYPE_DEBUG						(1 << 4)-#define CL_DEVICE_TYPE_ALL                          0xFFFFFFFF---// cl_device_info-#define CL_DEVICE_TYPE                              0x1000-#define CL_DEVICE_VENDOR_ID                         0x1001-#define CL_DEVICE_MAX_COMPUTE_UNITS                 0x1002-#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS          0x1003-#define CL_DEVICE_MAX_WORK_GROUP_SIZE               0x1004-#define CL_DEVICE_MAX_WORK_ITEM_SIZES               0x1005-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR       0x1006-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT      0x1007-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT        0x1008-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG       0x1009-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT      0x100A-#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE     0x100B-#define CL_DEVICE_MAX_CLOCK_FREQUENCY               0x100C-#define CL_DEVICE_ADDRESS_BITS                      0x100D-#define CL_DEVICE_MAX_READ_IMAGE_ARGS               0x100E-#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS              0x100F-#define CL_DEVICE_MAX_MEM_ALLOC_SIZE                0x1010-#define CL_DEVICE_IMAGE2D_MAX_WIDTH                 0x1011-#define CL_DEVICE_IMAGE2D_MAX_HEIGHT                0x1012-#define CL_DEVICE_IMAGE3D_MAX_WIDTH                 0x1013-#define CL_DEVICE_IMAGE3D_MAX_HEIGHT                0x1014-#define CL_DEVICE_IMAGE3D_MAX_DEPTH                 0x1015-#define CL_DEVICE_IMAGE_SUPPORT                     0x1016-#define CL_DEVICE_MAX_PARAMETER_SIZE                0x1017-#define CL_DEVICE_MAX_SAMPLERS                      0x1018-#define CL_DEVICE_MEM_BASE_ADDR_ALIGN               0x1019-#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE          0x101A-#define CL_DEVICE_SINGLE_FP_CONFIG                  0x101B-#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE             0x101C-#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE         0x101D-#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE             0x101E-#define CL_DEVICE_GLOBAL_MEM_SIZE                   0x101F-#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE          0x1020-#define CL_DEVICE_MAX_CONSTANT_ARGS                 0x1021-#define CL_DEVICE_LOCAL_MEM_TYPE                    0x1022-#define CL_DEVICE_LOCAL_MEM_SIZE                    0x1023-#define CL_DEVICE_ERROR_CORRECTION_SUPPORT          0x1024-#define CL_DEVICE_PROFILING_TIMER_RESOLUTION        0x1025-#define CL_DEVICE_ENDIAN_LITTLE                     0x1026-#define CL_DEVICE_AVAILABLE                         0x1027-#define CL_DEVICE_COMPILER_AVAILABLE                0x1028-#define CL_DEVICE_EXECUTION_CAPABILITIES            0x1029-#define CL_DEVICE_QUEUE_PROPERTIES                  0x102A-#define CL_DEVICE_NAME                              0x102B-#define CL_DEVICE_VENDOR                            0x102C-#define CL_DRIVER_VERSION                           0x102D-#define CL_DEVICE_PROFILE                           0x102E-#define CL_DEVICE_VERSION                           0x102F-#define CL_DEVICE_EXTENSIONS                        0x1030-#define CL_DEVICE_PLATFORM                          0x1031-	-// cl_device_address_info - bitfield-#define CL_DEVICE_ADDRESS_32_BITS                   (1 << 0)-#define CL_DEVICE_ADDRESS_64_BITS                   (1 << 1)--// cl_device_fp_config - bitfield-#define CL_FP_DENORM                                (1 << 0)-#define CL_FP_INF_NAN                               (1 << 1)-#define CL_FP_ROUND_TO_NEAREST                      (1 << 2)-#define CL_FP_ROUND_TO_ZERO                         (1 << 3)-#define CL_FP_ROUND_TO_INF                          (1 << 4)-#define CL_FP_FMA                                   (1 << 5)--// cl_device_mem_cache_type-#define CL_NONE                                     0x0-#define CL_READ_ONLY_CACHE                          0x1-#define CL_READ_WRITE_CACHE                         0x2--// cl_device_local_mem_type-#define CL_LOCAL                                    0x1-#define CL_GLOBAL                                   0x2--// cl_device_exec_capabilities - bitfield-#define CL_EXEC_KERNEL                              (1 << 0)-#define CL_EXEC_NATIVE_KERNEL                       (1 << 1)--// cl_command_queue_properties - bitfield-#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE      (1 << 0)-#define CL_QUEUE_PROFILING_ENABLE                   (1 << 1)--// cl_context_info-#define CL_CONTEXT_REFERENCE_COUNT                  0x1080-#define CL_CONTEXT_NUM_DEVICES                      0x1081-#define CL_CONTEXT_DEVICES                          0x1082-#define CL_CONTEXT_PROPERTIES                       0x1083-#define CL_CONTEXT_PLATFORM                         0x1084--// cl_command_queue_info-#define CL_QUEUE_CONTEXT                            0x1090-#define CL_QUEUE_DEVICE                             0x1091-#define CL_QUEUE_REFERENCE_COUNT                    0x1092-#define CL_QUEUE_PROPERTIES                         0x1093--// cl_mem_flags - bitfield-#define CL_MEM_READ_WRITE                           (1 << 0)-#define CL_MEM_WRITE_ONLY                           (1 << 1)-#define CL_MEM_READ_ONLY                            (1 << 2)-#define CL_MEM_USE_HOST_PTR                         (1 << 3)-#define CL_MEM_ALLOC_HOST_PTR                       (1 << 4)-#define CL_MEM_COPY_HOST_PTR                        (1 << 5)--// cl_channel_order-#define CL_R                                        0x10B0-#define CL_A                                        0x10B1-#define CL_RG                                       0x10B2-#define CL_RA                                       0x10B3-#define CL_RGB                                      0x10B4-#define CL_RGBA                                     0x10B5-#define CL_BGRA                                     0x10B6-#define CL_ARGB                                     0x10B7-#define CL_INTENSITY                                0x10B8-#define CL_LUMINANCE                                0x10B9--// cl_channel_type-#define CL_SNORM_INT8                               0x10D0-#define CL_SNORM_INT16                              0x10D1-#define CL_UNORM_INT8                               0x10D2-#define CL_UNORM_INT16                              0x10D3-#define CL_UNORM_SHORT_565                          0x10D4-#define CL_UNORM_SHORT_555                          0x10D5-#define CL_UNORM_INT_101010                         0x10D6-#define CL_SIGNED_INT8                              0x10D7-#define CL_SIGNED_INT16                             0x10D8-#define CL_SIGNED_INT32                             0x10D9-#define CL_UNSIGNED_INT8                            0x10DA-#define CL_UNSIGNED_INT16                           0x10DB-#define CL_UNSIGNED_INT32                           0x10DC-#define CL_HALF_FLOAT                               0x10DD-#define CL_FLOAT                                    0x10DE--// cl_mem_object_type-#define CL_MEM_OBJECT_BUFFER                        0x10F0-#define CL_MEM_OBJECT_IMAGE2D                       0x10F1-#define CL_MEM_OBJECT_IMAGE3D                       0x10F2--// cl_mem_info-#define CL_MEM_TYPE                                 0x1100-#define CL_MEM_FLAGS                                0x1101-#define CL_MEM_SIZE                                 0x1102-#define CL_MEM_HOST_PTR                             0x1103-#define CL_MEM_MAP_COUNT                            0x1104-#define CL_MEM_REFERENCE_COUNT                      0x1105-#define CL_MEM_CONTEXT                              0x1106--// cl_image_info-#define CL_IMAGE_FORMAT                             0x1110-#define CL_IMAGE_ELEMENT_SIZE                       0x1111-#define CL_IMAGE_ROW_PITCH                          0x1112-#define CL_IMAGE_SLICE_PITCH                        0x1113-#define CL_IMAGE_WIDTH                              0x1114-#define CL_IMAGE_HEIGHT                             0x1115-#define CL_IMAGE_DEPTH                              0x1116--// cl_addressing_mode-#define CL_ADDRESS_NONE                             0x1130-#define CL_ADDRESS_CLAMP_TO_EDGE                    0x1131-#define CL_ADDRESS_CLAMP                            0x1132-#define CL_ADDRESS_REPEAT                           0x1133--// cl_filter_mode-#define CL_FILTER_NEAREST                           0x1140-#define CL_FILTER_LINEAR                            0x1141--// cl_sampler_info-#define CL_SAMPLER_REFERENCE_COUNT                  0x1150-#define CL_SAMPLER_CONTEXT                          0x1151-#define CL_SAMPLER_NORMALIZED_COORDS                0x1152-#define CL_SAMPLER_ADDRESSING_MODE                  0x1153-#define CL_SAMPLER_FILTER_MODE                      0x1154--// cl_map_flags - bitfield-#define CL_MAP_READ                                 (1 << 0)-#define CL_MAP_WRITE                                (1 << 1)--// cl_program_info-#define CL_PROGRAM_REFERENCE_COUNT                  0x1160-#define CL_PROGRAM_CONTEXT                          0x1161-#define CL_PROGRAM_NUM_DEVICES                      0x1162-#define CL_PROGRAM_DEVICES                          0x1163-#define CL_PROGRAM_SOURCE                           0x1164-#define CL_PROGRAM_BINARY_SIZES                     0x1165-#define CL_PROGRAM_BINARIES                         0x1166--// cl_program_build_info-#define CL_PROGRAM_BUILD_STATUS                     0x1181-#define CL_PROGRAM_BUILD_OPTIONS                    0x1182-#define CL_PROGRAM_BUILD_LOG                        0x1183--// cl_build_status-#define CL_BUILD_SUCCESS                            0-#define CL_BUILD_NONE                               -1-#define CL_BUILD_ERROR                              -2-#define CL_BUILD_IN_PROGRESS                        -3--// cl_kernel_info-#define CL_KERNEL_FUNCTION_NAME                     0x1190-#define CL_KERNEL_NUM_ARGS                          0x1191-#define CL_KERNEL_REFERENCE_COUNT                   0x1192-#define CL_KERNEL_CONTEXT                           0x1193-#define CL_KERNEL_PROGRAM                           0x1194--// cl_kernel_work_group_info-#define CL_KERNEL_WORK_GROUP_SIZE                   0x11B0-#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE           0x11B1-#define CL_KERNEL_LOCAL_MEM_SIZE                    0x11B2--// cl_event_info-#define CL_EVENT_COMMAND_QUEUE                      0x11D0-#define CL_EVENT_COMMAND_TYPE                       0x11D1-#define CL_EVENT_REFERENCE_COUNT                    0x11D2-#define CL_EVENT_COMMAND_EXECUTION_STATUS           0x11D3--// cl_command_type-#define CL_COMMAND_NDRANGE_KERNEL                   0x11F0-#define CL_COMMAND_TASK                             0x11F1-#define CL_COMMAND_NATIVE_KERNEL                    0x11F2-#define CL_COMMAND_READ_BUFFER                      0x11F3-#define CL_COMMAND_WRITE_BUFFER                     0x11F4-#define CL_COMMAND_COPY_BUFFER                      0x11F5-#define CL_COMMAND_READ_IMAGE                       0x11F6-#define CL_COMMAND_WRITE_IMAGE                      0x11F7-#define CL_COMMAND_COPY_IMAGE                       0x11F8-#define CL_COMMAND_COPY_IMAGE_TO_BUFFER             0x11F9-#define CL_COMMAND_COPY_BUFFER_TO_IMAGE             0x11FA-#define CL_COMMAND_MAP_BUFFER                       0x11FB-#define CL_COMMAND_MAP_IMAGE                        0x11FC-#define CL_COMMAND_UNMAP_MEM_OBJECT                 0x11FD-#define CL_COMMAND_MARKER                           0x11FE-#define CL_COMMAND_WAIT_FOR_EVENTS                  0x11FF-#define CL_COMMAND_BARRIER                          0x1200-#define CL_COMMAND_ACQUIRE_GL_OBJECTS               0x1201-#define CL_COMMAND_RELEASE_GL_OBJECTS               0x1202--// command execution status-#define CL_COMPLETE                                 0x0-#define CL_RUNNING                                  0x1-#define CL_SUBMITTED                                0x2-#define CL_QUEUED                                   0x3-  -// cl_profiling_info-#define CL_PROFILING_COMMAND_QUEUED                 0x1280-#define CL_PROFILING_COMMAND_SUBMIT                 0x1281-#define CL_PROFILING_COMMAND_START                  0x1282-#define CL_PROFILING_COMMAND_END                    0x1283--/********************************************************************************************************/--// Platform API-extern CL_API_ENTRY cl_int CL_API_CALL-clGetPlatformIDs(cl_uint          /* num_entries */,-                 cl_platform_id * /* platforms */,-                 cl_uint *        /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL -clGetPlatformInfo(cl_platform_id   /* platform */, -                  cl_platform_info /* param_name */,-                  size_t           /* param_value_size */, -                  void *           /* param_value */,-                  size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--// Device APIs-extern CL_API_ENTRY cl_int CL_API_CALL-clGetDeviceIDs(cl_platform_id   /* platform */,-               cl_device_type   /* device_type */, -               cl_uint          /* num_entries */, -               cl_device_id *   /* devices */, -               cl_uint *        /* num_devices */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetDeviceInfo(cl_device_id    /* device */,-                cl_device_info  /* param_name */, -                size_t          /* param_value_size */, -                void *          /* param_value */,-                size_t *        /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--// Context APIs  -extern CL_API_ENTRY cl_context CL_API_CALL-clCreateContext(cl_context_properties * /* properties */,-                cl_uint                 /* num_devices */,-                const cl_device_id *    /* devices */,-                void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,-                void *                  /* user_data */,-                cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_context CL_API_CALL-clCreateContextFromType(cl_context_properties * /* properties */,-                        cl_device_type          /* device_type */,-                        void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,-                        void *                  /* user_data */,-                        cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetContextInfo(cl_context         /* context */, -                 cl_context_info    /* param_name */, -                 size_t             /* param_value_size */, -                 void *             /* param_value */, -                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--// Command Queue APIs-extern CL_API_ENTRY cl_command_queue CL_API_CALL-clCreateCommandQueue(cl_context                     /* context */, -                     cl_device_id                   /* device */, -                     cl_command_queue_properties    /* properties */,-                     cl_int *                       /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clRetainCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetCommandQueueInfo(cl_command_queue      /* command_queue */,-                      cl_command_queue_info /* param_name */,-                      size_t                /* param_value_size */,-                      void *                /* param_value */,-                      size_t *              /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clSetCommandQueueProperty(cl_command_queue              /* command_queue */,-                          cl_command_queue_properties   /* properties */, -                          cl_bool                        /* enable */,-                          cl_command_queue_properties * /* old_properties */) CL_API_SUFFIX__VERSION_1_0;--// Memory Object APIs-extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateBuffer(cl_context   /* context */,-               cl_mem_flags /* flags */,-               size_t       /* size */,-               void *       /* host_ptr */,-               cl_int *     /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateImage2D(cl_context              /* context */,-                cl_mem_flags            /* flags */,-                const cl_image_format * /* image_format */,-                size_t                  /* image_width */,-                size_t                  /* image_height */,-                size_t                  /* image_row_pitch */, -                void *                  /* host_ptr */,-                cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;-                        -extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateImage3D(cl_context              /* context */,-                cl_mem_flags            /* flags */,-                const cl_image_format * /* image_format */,-                size_t                  /* image_width */, -                size_t                  /* image_height */,-                size_t                  /* image_depth */, -                size_t                  /* image_row_pitch */, -                size_t                  /* image_slice_pitch */, -                void *                  /* host_ptr */,-                cl_int *                /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;-                        -extern CL_API_ENTRY cl_int CL_API_CALL-clRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetSupportedImageFormats(cl_context           /* context */,-                           cl_mem_flags         /* flags */,-                           cl_mem_object_type   /* image_type */,-                           cl_uint              /* num_entries */,-                           cl_image_format *    /* image_formats */,-                           cl_uint *            /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;-                                    -extern CL_API_ENTRY cl_int CL_API_CALL-clGetMemObjectInfo(cl_mem           /* memobj */,-                   cl_mem_info      /* param_name */, -                   size_t           /* param_value_size */,-                   void *           /* param_value */,-                   size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetImageInfo(cl_mem           /* image */,-               cl_image_info    /* param_name */, -               size_t           /* param_value_size */,-               void *           /* param_value */,-               size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--// Sampler APIs-extern CL_API_ENTRY cl_sampler CL_API_CALL-clCreateSampler(cl_context          /* context */,-                cl_bool             /* normalized_coords */, -                cl_addressing_mode  /* addressing_mode */, -                cl_filter_mode      /* filter_mode */,-                cl_int *            /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clRetainSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetSamplerInfo(cl_sampler         /* sampler */,-                 cl_sampler_info    /* param_name */,-                 size_t             /* param_value_size */,-                 void *             /* param_value */,-                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;-                            -// Program Object APIs-extern CL_API_ENTRY cl_program CL_API_CALL-clCreateProgramWithSource(cl_context        /* context */,-                          cl_uint           /* count */,-                          const char **     /* strings */,-                          const size_t *    /* lengths */,-                          cl_int *          /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_program CL_API_CALL-clCreateProgramWithBinary(cl_context                     /* context */,-                          cl_uint                        /* num_devices */,-                          const cl_device_id *           /* device_list */,-                          const size_t *                 /* lengths */,-                          const unsigned char **         /* binaries */,-                          cl_int *                       /* binary_status */,-                          cl_int *                       /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clBuildProgram(cl_program           /* program */,-               cl_uint              /* num_devices */,-               const cl_device_id * /* device_list */,-               const char *         /* options */, -               void (*pfn_notify)(cl_program /* program */, void * /* user_data */),-               void *               /* user_data */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetProgramInfo(cl_program         /* program */,-                 cl_program_info    /* param_name */,-                 size_t             /* param_value_size */,-                 void *             /* param_value */,-                 size_t *           /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetProgramBuildInfo(cl_program            /* program */,-                      cl_device_id          /* device */,-                      cl_program_build_info /* param_name */,-                      size_t                /* param_value_size */,-                      void *                /* param_value */,-                      size_t *              /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;-                            -// Kernel Object APIs-extern CL_API_ENTRY cl_kernel CL_API_CALL-clCreateKernel(cl_program      /* program */,-               const char *    /* kernel_name */,-               cl_int *        /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clCreateKernelsInProgram(cl_program     /* program */,-                         cl_uint        /* num_kernels */,-                         cl_kernel *    /* kernels */,-                         cl_uint *      /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clRetainKernel(cl_kernel    /* kernel */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseKernel(cl_kernel   /* kernel */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clSetKernelArg(cl_kernel    /* kernel */,-               cl_uint      /* arg_index */,-               size_t       /* arg_size */,-               const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetKernelInfo(cl_kernel       /* kernel */,-                cl_kernel_info  /* param_name */,-                size_t          /* param_value_size */,-                void *          /* param_value */,-                size_t *        /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetKernelWorkGroupInfo(cl_kernel                  /* kernel */,-                         cl_device_id               /* device */,-                         cl_kernel_work_group_info  /* param_name */,-                         size_t                     /* param_value_size */,-                         void *                     /* param_value */,-                         size_t *                   /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;--// Event Object APIs-extern CL_API_ENTRY cl_int CL_API_CALL-clWaitForEvents(cl_uint             /* num_events */,-                const cl_event *    /* event_list */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clGetEventInfo(cl_event         /* event */,-               cl_event_info    /* param_name */,-               size_t           /* param_value_size */,-               void *           /* param_value */,-               size_t *         /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;-                            -extern CL_API_ENTRY cl_int CL_API_CALL-clRetainEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;--// Profiling APIs-extern CL_API_ENTRY cl_int CL_API_CALL-clGetEventProfilingInfo(cl_event            /* event */,-                        cl_profiling_info   /* param_name */,-                        size_t              /* param_value_size */,-                        void *              /* param_value */,-                        size_t *            /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;-                                -// Flush and Finish APIs-extern CL_API_ENTRY cl_int CL_API_CALL-clFlush(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clFinish(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;--// Enqueued Commands APIs-extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueReadBuffer(cl_command_queue    /* command_queue */,-                    cl_mem              /* buffer */,-                    cl_bool             /* blocking_read */,-                    size_t              /* offset */,-                    size_t              /* cb */, -                    void *              /* ptr */,-                    cl_uint             /* num_events_in_wait_list */,-                    const cl_event *    /* event_wait_list */,-                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;-                            -extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueWriteBuffer(cl_command_queue   /* command_queue */, -                     cl_mem             /* buffer */, -                     cl_bool            /* blocking_write */, -                     size_t             /* offset */, -                     size_t             /* cb */, -                     const void *       /* ptr */, -                     cl_uint            /* num_events_in_wait_list */, -                     const cl_event *   /* event_wait_list */, -                     cl_event *         /* event */) CL_API_SUFFIX__VERSION_1_0;-                            -extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueCopyBuffer(cl_command_queue    /* command_queue */, -                    cl_mem              /* src_buffer */,-                    cl_mem              /* dst_buffer */, -                    size_t              /* src_offset */,-                    size_t              /* dst_offset */,-                    size_t              /* cb */, -                    cl_uint             /* num_events_in_wait_list */,-                    const cl_event *    /* event_wait_list */,-                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;-                            -extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueReadImage(cl_command_queue     /* command_queue */,-                   cl_mem               /* image */,-                   cl_bool              /* blocking_read */, -                   const size_t *       /* origin[3] */,-                   const size_t *       /* region[3] */,-                   size_t               /* row_pitch */,-                   size_t               /* slice_pitch */, -                   void *               /* ptr */,-                   cl_uint              /* num_events_in_wait_list */,-                   const cl_event *     /* event_wait_list */,-                   cl_event *           /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueWriteImage(cl_command_queue    /* command_queue */,-                    cl_mem              /* image */,-                    cl_bool             /* blocking_write */, -                    const size_t *      /* origin[3] */,-                    const size_t *      /* region[3] */,-                    size_t              /* input_row_pitch */,-                    size_t              /* input_slice_pitch */, -                    const void *        /* ptr */,-                    cl_uint             /* num_events_in_wait_list */,-                    const cl_event *    /* event_wait_list */,-                    cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueCopyImage(cl_command_queue     /* command_queue */,-                   cl_mem               /* src_image */,-                   cl_mem               /* dst_image */, -                   const size_t *       /* src_origin[3] */,-                   const size_t *       /* dst_origin[3] */,-                   const size_t *       /* region[3] */, -                   cl_uint              /* num_events_in_wait_list */,-                   const cl_event *     /* event_wait_list */,-                   cl_event *           /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueCopyImageToBuffer(cl_command_queue /* command_queue */,-                           cl_mem           /* src_image */,-                           cl_mem           /* dst_buffer */, -                           const size_t *   /* src_origin[3] */,-                           const size_t *   /* region[3] */, -                           size_t           /* dst_offset */,-                           cl_uint          /* num_events_in_wait_list */,-                           const cl_event * /* event_wait_list */,-                           cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueCopyBufferToImage(cl_command_queue /* command_queue */,-                           cl_mem           /* src_buffer */,-                           cl_mem           /* dst_image */, -                           size_t           /* src_offset */,-                           const size_t *   /* dst_origin[3] */,-                           const size_t *   /* region[3] */, -                           cl_uint          /* num_events_in_wait_list */,-                           const cl_event * /* event_wait_list */,-                           cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY void * CL_API_CALL-clEnqueueMapBuffer(cl_command_queue /* command_queue */,-                   cl_mem           /* buffer */,-                   cl_bool          /* blocking_map */, -                   cl_map_flags     /* map_flags */,-                   size_t           /* offset */,-                   size_t           /* cb */,-                   cl_uint          /* num_events_in_wait_list */,-                   const cl_event * /* event_wait_list */,-                   cl_event *       /* event */,-                   cl_int *         /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY void * CL_API_CALL-clEnqueueMapImage(cl_command_queue  /* command_queue */,-                  cl_mem            /* image */, -                  cl_bool           /* blocking_map */, -                  cl_map_flags      /* map_flags */, -                  const size_t *    /* origin[3] */,-                  const size_t *    /* region[3] */,-                  size_t *          /* image_row_pitch */,-                  size_t *          /* image_slice_pitch */,-                  cl_uint           /* num_events_in_wait_list */,-                  const cl_event *  /* event_wait_list */,-                  cl_event *        /* event */,-                  cl_int *          /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueUnmapMemObject(cl_command_queue /* command_queue */,-                        cl_mem           /* memobj */,-                        void *           /* mapped_ptr */,-                        cl_uint          /* num_events_in_wait_list */,-                        const cl_event *  /* event_wait_list */,-                        cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueNDRangeKernel(cl_command_queue /* command_queue */,-                       cl_kernel        /* kernel */,-                       cl_uint          /* work_dim */,-                       const size_t *   /* global_work_offset */,-                       const size_t *   /* global_work_size */,-                       const size_t *   /* local_work_size */,-                       cl_uint          /* num_events_in_wait_list */,-                       const cl_event * /* event_wait_list */,-                       cl_event *       /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueTask(cl_command_queue  /* command_queue */,-              cl_kernel         /* kernel */,-              cl_uint           /* num_events_in_wait_list */,-              const cl_event *  /* event_wait_list */,-              cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueNativeKernel(cl_command_queue  /* command_queue */,-					  void (*user_func)(void *), -                      void *            /* args */,-                      size_t            /* cb_args */, -                      cl_uint           /* num_mem_objects */,-                      const cl_mem *    /* mem_list */,-                      const void **     /* args_mem_loc */,-                      cl_uint           /* num_events_in_wait_list */,-                      const cl_event *  /* event_wait_list */,-                      cl_event *        /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueMarker(cl_command_queue    /* command_queue */,-                cl_event *          /* event */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueWaitForEvents(cl_command_queue /* command_queue */,-                       cl_uint          /* num_events */,-                       const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;--extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueBarrier(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;--#ifdef __cplusplus-}-#endif--#endif  // __OPENCL_CL_H+* Copyright (c) 2008-2009 The Khronos Group Inc.+*+* Permission is hereby granted, free of charge, to any person obtaining a+* copy of this software and/or associated documentation files (the+* "Materials"), to deal in the Materials without restriction, including+* without limitation the rights to use, copy, modify, merge, publish,+* distribute, sublicense, and/or sell copies of the Materials, and to+* permit persons to whom the Materials are furnished to do so, subject to+* the following conditions:+*+* The above copyright notice and this permission notice shall be included+* in all copies or substantial portions of the Materials.+*+* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.+******************************************************************************/++#ifndef __OPENCL_CL_H+#define __OPENCL_CL_H++#ifdef __APPLE__+#include <MiniCL/cl_platform.h>+#else+#include <MiniCL/cl_platform.h>+#endif++#ifdef __cplusplus+extern "C" {+#endif++/******************************************************************************/++typedef struct _cl_platform_id * cl_platform_id;+typedef struct _cl_device_id * cl_device_id;+typedef struct _cl_context * cl_context;+typedef struct _cl_command_queue * cl_command_queue;+typedef struct _cl_mem * cl_mem;+typedef struct _cl_program * cl_program;+typedef struct _cl_kernel * cl_kernel;+typedef struct _cl_event * cl_event;+typedef struct _cl_sampler * cl_sampler;++typedef cl_uint cl_bool; /* WARNING! Unlike cl_ types in cl_platform.h, cl_bool is not guaranteed to be the same size as the bool in kernels. */+typedef cl_ulong cl_bitfield;+typedef cl_bitfield cl_device_type;+typedef cl_uint cl_platform_info;+typedef cl_uint cl_device_info;+typedef cl_bitfield cl_device_address_info;+typedef cl_bitfield cl_device_fp_config;+typedef cl_uint cl_device_mem_cache_type;+typedef cl_uint cl_device_local_mem_type;+typedef cl_bitfield cl_device_exec_capabilities;+typedef cl_bitfield cl_command_queue_properties;++typedef intptr_t cl_context_properties;+typedef cl_uint cl_context_info;+typedef cl_uint cl_command_queue_info;+typedef cl_uint cl_channel_order;+typedef cl_uint cl_channel_type;+typedef cl_bitfield cl_mem_flags;+typedef cl_uint cl_mem_object_type;+typedef cl_uint cl_mem_info;+typedef cl_uint cl_image_info;+typedef cl_uint cl_addressing_mode;+typedef cl_uint cl_filter_mode;+typedef cl_uint cl_sampler_info;+typedef cl_bitfield cl_map_flags;+typedef cl_uint cl_program_info;+typedef cl_uint cl_program_build_info;+typedef cl_int cl_build_status;+typedef cl_uint cl_kernel_info;+typedef cl_uint cl_kernel_work_group_info;+typedef cl_uint cl_event_info;+typedef cl_uint cl_command_type;+typedef cl_uint cl_profiling_info;++typedef struct _cl_image_format {+cl_channel_order image_channel_order;+cl_channel_type image_channel_data_type;+} cl_image_format;++/******************************************************************************/++// Error Codes+#define CL_SUCCESS 0+#define CL_DEVICE_NOT_FOUND -1+#define CL_DEVICE_NOT_AVAILABLE -2+#define CL_DEVICE_COMPILER_NOT_AVAILABLE -3+#define CL_MEM_OBJECT_ALLOCATION_FAILURE -4+#define CL_OUT_OF_RESOURCES -5+#define CL_OUT_OF_HOST_MEMORY -6+#define CL_PROFILING_INFO_NOT_AVAILABLE -7+#define CL_MEM_COPY_OVERLAP -8+#define CL_IMAGE_FORMAT_MISMATCH -9+#define CL_IMAGE_FORMAT_NOT_SUPPORTED -10+#define CL_BUILD_PROGRAM_FAILURE -11+#define CL_MAP_FAILURE -12++#define CL_INVALID_VALUE -30+#define CL_INVALID_DEVICE_TYPE -31+#define CL_INVALID_PLATFORM -32+#define CL_INVALID_DEVICE -33+#define CL_INVALID_CONTEXT -34+#define CL_INVALID_QUEUE_PROPERTIES -35+#define CL_INVALID_COMMAND_QUEUE -36+#define CL_INVALID_HOST_PTR -37+#define CL_INVALID_MEM_OBJECT -38+#define CL_INVALID_IMAGE_FORMAT_DESCRIPTOR -39+#define CL_INVALID_IMAGE_SIZE -40+#define CL_INVALID_SAMPLER -41+#define CL_INVALID_BINARY -42+#define CL_INVALID_BUILD_OPTIONS -43+#define CL_INVALID_PROGRAM -44+#define CL_INVALID_PROGRAM_EXECUTABLE -45+#define CL_INVALID_KERNEL_NAME -46+#define CL_INVALID_KERNEL_DEFINITION -47+#define CL_INVALID_KERNEL -48+#define CL_INVALID_ARG_INDEX -49+#define CL_INVALID_ARG_VALUE -50+#define CL_INVALID_ARG_SIZE -51+#define CL_INVALID_KERNEL_ARGS -52+#define CL_INVALID_WORK_DIMENSION -53+#define CL_INVALID_WORK_GROUP_SIZE -54+#define CL_INVALID_WORK_ITEM_SIZE -55+#define CL_INVALID_GLOBAL_OFFSET -56+#define CL_INVALID_EVENT_WAIT_LIST -57+#define CL_INVALID_EVENT -58+#define CL_INVALID_OPERATION -59+#define CL_INVALID_GL_OBJECT -60+#define CL_INVALID_BUFFER_SIZE -61+#define CL_INVALID_MIP_LEVEL -62++// OpenCL Version+#define CL_VERSION_1_0 1++// cl_bool+#define CL_FALSE 0+#define CL_TRUE 1++// cl_platform_info+#define CL_PLATFORM_PROFILE 0x0900+#define CL_PLATFORM_VERSION 0x0901+#define CL_PLATFORM_NAME 0x0902+#define CL_PLATFORM_VENDOR 0x0903+#define CL_PLATFORM_EXTENSIONS 0x0904++// cl_device_type - bitfield+#define CL_DEVICE_TYPE_DEFAULT (1 << 0)+#define CL_DEVICE_TYPE_CPU (1 << 1)+#define CL_DEVICE_TYPE_GPU (1 << 2)+#define CL_DEVICE_TYPE_ACCELERATOR (1 << 3)+#define CL_DEVICE_TYPE_DEBUG (1 << 4)+#define CL_DEVICE_TYPE_ALL 0xFFFFFFFF+++// cl_device_info+#define CL_DEVICE_TYPE 0x1000+#define CL_DEVICE_VENDOR_ID 0x1001+#define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002+#define CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS 0x1003+#define CL_DEVICE_MAX_WORK_GROUP_SIZE 0x1004+#define CL_DEVICE_MAX_WORK_ITEM_SIZES 0x1005+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR 0x1006+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT 0x1007+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT 0x1008+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG 0x1009+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT 0x100A+#define CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE 0x100B+#define CL_DEVICE_MAX_CLOCK_FREQUENCY 0x100C+#define CL_DEVICE_ADDRESS_BITS 0x100D+#define CL_DEVICE_MAX_READ_IMAGE_ARGS 0x100E+#define CL_DEVICE_MAX_WRITE_IMAGE_ARGS 0x100F+#define CL_DEVICE_MAX_MEM_ALLOC_SIZE 0x1010+#define CL_DEVICE_IMAGE2D_MAX_WIDTH 0x1011+#define CL_DEVICE_IMAGE2D_MAX_HEIGHT 0x1012+#define CL_DEVICE_IMAGE3D_MAX_WIDTH 0x1013+#define CL_DEVICE_IMAGE3D_MAX_HEIGHT 0x1014+#define CL_DEVICE_IMAGE3D_MAX_DEPTH 0x1015+#define CL_DEVICE_IMAGE_SUPPORT 0x1016+#define CL_DEVICE_MAX_PARAMETER_SIZE 0x1017+#define CL_DEVICE_MAX_SAMPLERS 0x1018+#define CL_DEVICE_MEM_BASE_ADDR_ALIGN 0x1019+#define CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE 0x101A+#define CL_DEVICE_SINGLE_FP_CONFIG 0x101B+#define CL_DEVICE_GLOBAL_MEM_CACHE_TYPE 0x101C+#define CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE 0x101D+#define CL_DEVICE_GLOBAL_MEM_CACHE_SIZE 0x101E+#define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F+#define CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE 0x1020+#define CL_DEVICE_MAX_CONSTANT_ARGS 0x1021+#define CL_DEVICE_LOCAL_MEM_TYPE 0x1022+#define CL_DEVICE_LOCAL_MEM_SIZE 0x1023+#define CL_DEVICE_ERROR_CORRECTION_SUPPORT 0x1024+#define CL_DEVICE_PROFILING_TIMER_RESOLUTION 0x1025+#define CL_DEVICE_ENDIAN_LITTLE 0x1026+#define CL_DEVICE_AVAILABLE 0x1027+#define CL_DEVICE_COMPILER_AVAILABLE 0x1028+#define CL_DEVICE_EXECUTION_CAPABILITIES 0x1029+#define CL_DEVICE_QUEUE_PROPERTIES 0x102A+#define CL_DEVICE_NAME 0x102B+#define CL_DEVICE_VENDOR 0x102C+#define CL_DRIVER_VERSION 0x102D+#define CL_DEVICE_PROFILE 0x102E+#define CL_DEVICE_VERSION 0x102F+#define CL_DEVICE_EXTENSIONS 0x1030+#define CL_DEVICE_PLATFORM 0x1031++// cl_device_address_info - bitfield+#define CL_DEVICE_ADDRESS_32_BITS (1 << 0)+#define CL_DEVICE_ADDRESS_64_BITS (1 << 1)++// cl_device_fp_config - bitfield+#define CL_FP_DENORM (1 << 0)+#define CL_FP_INF_NAN (1 << 1)+#define CL_FP_ROUND_TO_NEAREST (1 << 2)+#define CL_FP_ROUND_TO_ZERO (1 << 3)+#define CL_FP_ROUND_TO_INF (1 << 4)+#define CL_FP_FMA (1 << 5)++// cl_device_mem_cache_type+#define CL_NONE 0x0+#define CL_READ_ONLY_CACHE 0x1+#define CL_READ_WRITE_CACHE 0x2++// cl_device_local_mem_type+#define CL_LOCAL 0x1+#define CL_GLOBAL 0x2++// cl_device_exec_capabilities - bitfield+#define CL_EXEC_KERNEL (1 << 0)+#define CL_EXEC_NATIVE_KERNEL (1 << 1)++// cl_command_queue_properties - bitfield+#define CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE (1 << 0)+#define CL_QUEUE_PROFILING_ENABLE (1 << 1)++// cl_context_info+#define CL_CONTEXT_REFERENCE_COUNT 0x1080+#define CL_CONTEXT_NUM_DEVICES 0x1081+#define CL_CONTEXT_DEVICES 0x1082+#define CL_CONTEXT_PROPERTIES 0x1083+#define CL_CONTEXT_PLATFORM 0x1084++// cl_command_queue_info+#define CL_QUEUE_CONTEXT 0x1090+#define CL_QUEUE_DEVICE 0x1091+#define CL_QUEUE_REFERENCE_COUNT 0x1092+#define CL_QUEUE_PROPERTIES 0x1093++// cl_mem_flags - bitfield+#define CL_MEM_READ_WRITE (1 << 0)+#define CL_MEM_WRITE_ONLY (1 << 1)+#define CL_MEM_READ_ONLY (1 << 2)+#define CL_MEM_USE_HOST_PTR (1 << 3)+#define CL_MEM_ALLOC_HOST_PTR (1 << 4)+#define CL_MEM_COPY_HOST_PTR (1 << 5)++// cl_channel_order+#define CL_R 0x10B0+#define CL_A 0x10B1+#define CL_RG 0x10B2+#define CL_RA 0x10B3+#define CL_RGB 0x10B4+#define CL_RGBA 0x10B5+#define CL_BGRA 0x10B6+#define CL_ARGB 0x10B7+#define CL_INTENSITY 0x10B8+#define CL_LUMINANCE 0x10B9++// cl_channel_type+#define CL_SNORM_INT8 0x10D0+#define CL_SNORM_INT16 0x10D1+#define CL_UNORM_INT8 0x10D2+#define CL_UNORM_INT16 0x10D3+#define CL_UNORM_SHORT_565 0x10D4+#define CL_UNORM_SHORT_555 0x10D5+#define CL_UNORM_INT_101010 0x10D6+#define CL_SIGNED_INT8 0x10D7+#define CL_SIGNED_INT16 0x10D8+#define CL_SIGNED_INT32 0x10D9+#define CL_UNSIGNED_INT8 0x10DA+#define CL_UNSIGNED_INT16 0x10DB+#define CL_UNSIGNED_INT32 0x10DC+#define CL_HALF_FLOAT 0x10DD+#define CL_FLOAT 0x10DE++// cl_mem_object_type+#define CL_MEM_OBJECT_BUFFER 0x10F0+#define CL_MEM_OBJECT_IMAGE2D 0x10F1+#define CL_MEM_OBJECT_IMAGE3D 0x10F2++// cl_mem_info+#define CL_MEM_TYPE 0x1100+#define CL_MEM_FLAGS 0x1101+#define CL_MEM_SIZE 0x1102+#define CL_MEM_HOST_PTR 0x1103+#define CL_MEM_MAP_COUNT 0x1104+#define CL_MEM_REFERENCE_COUNT 0x1105+#define CL_MEM_CONTEXT 0x1106++// cl_image_info+#define CL_IMAGE_FORMAT 0x1110+#define CL_IMAGE_ELEMENT_SIZE 0x1111+#define CL_IMAGE_ROW_PITCH 0x1112+#define CL_IMAGE_SLICE_PITCH 0x1113+#define CL_IMAGE_WIDTH 0x1114+#define CL_IMAGE_HEIGHT 0x1115+#define CL_IMAGE_DEPTH 0x1116++// cl_addressing_mode+#define CL_ADDRESS_NONE 0x1130+#define CL_ADDRESS_CLAMP_TO_EDGE 0x1131+#define CL_ADDRESS_CLAMP 0x1132+#define CL_ADDRESS_REPEAT 0x1133++// cl_filter_mode+#define CL_FILTER_NEAREST 0x1140+#define CL_FILTER_LINEAR 0x1141++// cl_sampler_info+#define CL_SAMPLER_REFERENCE_COUNT 0x1150+#define CL_SAMPLER_CONTEXT 0x1151+#define CL_SAMPLER_NORMALIZED_COORDS 0x1152+#define CL_SAMPLER_ADDRESSING_MODE 0x1153+#define CL_SAMPLER_FILTER_MODE 0x1154++// cl_map_flags - bitfield+#define CL_MAP_READ (1 << 0)+#define CL_MAP_WRITE (1 << 1)++// cl_program_info+#define CL_PROGRAM_REFERENCE_COUNT 0x1160+#define CL_PROGRAM_CONTEXT 0x1161+#define CL_PROGRAM_NUM_DEVICES 0x1162+#define CL_PROGRAM_DEVICES 0x1163+#define CL_PROGRAM_SOURCE 0x1164+#define CL_PROGRAM_BINARY_SIZES 0x1165+#define CL_PROGRAM_BINARIES 0x1166++// cl_program_build_info+#define CL_PROGRAM_BUILD_STATUS 0x1181+#define CL_PROGRAM_BUILD_OPTIONS 0x1182+#define CL_PROGRAM_BUILD_LOG 0x1183++// cl_build_status+#define CL_BUILD_SUCCESS 0+#define CL_BUILD_NONE -1+#define CL_BUILD_ERROR -2+#define CL_BUILD_IN_PROGRESS -3++// cl_kernel_info+#define CL_KERNEL_FUNCTION_NAME 0x1190+#define CL_KERNEL_NUM_ARGS 0x1191+#define CL_KERNEL_REFERENCE_COUNT 0x1192+#define CL_KERNEL_CONTEXT 0x1193+#define CL_KERNEL_PROGRAM 0x1194++// cl_kernel_work_group_info+#define CL_KERNEL_WORK_GROUP_SIZE 0x11B0+#define CL_KERNEL_COMPILE_WORK_GROUP_SIZE 0x11B1+#define CL_KERNEL_LOCAL_MEM_SIZE 0x11B2++// cl_event_info+#define CL_EVENT_COMMAND_QUEUE 0x11D0+#define CL_EVENT_COMMAND_TYPE 0x11D1+#define CL_EVENT_REFERENCE_COUNT 0x11D2+#define CL_EVENT_COMMAND_EXECUTION_STATUS 0x11D3++// cl_command_type+#define CL_COMMAND_NDRANGE_KERNEL 0x11F0+#define CL_COMMAND_TASK 0x11F1+#define CL_COMMAND_NATIVE_KERNEL 0x11F2+#define CL_COMMAND_READ_BUFFER 0x11F3+#define CL_COMMAND_WRITE_BUFFER 0x11F4+#define CL_COMMAND_COPY_BUFFER 0x11F5+#define CL_COMMAND_READ_IMAGE 0x11F6+#define CL_COMMAND_WRITE_IMAGE 0x11F7+#define CL_COMMAND_COPY_IMAGE 0x11F8+#define CL_COMMAND_COPY_IMAGE_TO_BUFFER 0x11F9+#define CL_COMMAND_COPY_BUFFER_TO_IMAGE 0x11FA+#define CL_COMMAND_MAP_BUFFER 0x11FB+#define CL_COMMAND_MAP_IMAGE 0x11FC+#define CL_COMMAND_UNMAP_MEM_OBJECT 0x11FD+#define CL_COMMAND_MARKER 0x11FE+#define CL_COMMAND_WAIT_FOR_EVENTS 0x11FF+#define CL_COMMAND_BARRIER 0x1200+#define CL_COMMAND_ACQUIRE_GL_OBJECTS 0x1201+#define CL_COMMAND_RELEASE_GL_OBJECTS 0x1202++// command execution status+#define CL_COMPLETE 0x0+#define CL_RUNNING 0x1+#define CL_SUBMITTED 0x2+#define CL_QUEUED 0x3++// cl_profiling_info+#define CL_PROFILING_COMMAND_QUEUED 0x1280+#define CL_PROFILING_COMMAND_SUBMIT 0x1281+#define CL_PROFILING_COMMAND_START 0x1282+#define CL_PROFILING_COMMAND_END 0x1283++/********************************************************************************************************/++// Platform API+extern CL_API_ENTRY cl_int CL_API_CALL+clGetPlatformIDs(cl_uint /* num_entries */,+cl_platform_id * /* platforms */,+cl_uint * /* num_platforms */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetPlatformInfo(cl_platform_id /* platform */,+cl_platform_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Device APIs+extern CL_API_ENTRY cl_int CL_API_CALL+clGetDeviceIDs(cl_platform_id /* platform */,+cl_device_type /* device_type */,+cl_uint /* num_entries */,+cl_device_id * /* devices */,+cl_uint * /* num_devices */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetDeviceInfo(cl_device_id /* device */,+cl_device_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Context APIs+extern CL_API_ENTRY cl_context CL_API_CALL+clCreateContext(cl_context_properties * /* properties */,+cl_uint /* num_devices */,+const cl_device_id * /* devices */,+void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,+void * /* user_data */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_context CL_API_CALL+clCreateContextFromType(cl_context_properties * /* properties */,+cl_device_type /* device_type */,+void (*pfn_notify)(const char *, const void *, size_t, void *) /* pfn_notify */,+void * /* user_data */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseContext(cl_context /* context */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetContextInfo(cl_context /* context */,+cl_context_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Command Queue APIs+extern CL_API_ENTRY cl_command_queue CL_API_CALL+clCreateCommandQueue(cl_context /* context */,+cl_device_id /* device */,+cl_command_queue_properties /* properties */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseCommandQueue(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetCommandQueueInfo(cl_command_queue /* command_queue */,+cl_command_queue_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clSetCommandQueueProperty(cl_command_queue /* command_queue */,+cl_command_queue_properties /* properties */,+cl_bool /* enable */,+cl_command_queue_properties * /* old_properties */) CL_API_SUFFIX__VERSION_1_0;++// Memory Object APIs+extern CL_API_ENTRY cl_mem CL_API_CALL+clCreateBuffer(cl_context /* context */,+cl_mem_flags /* flags */,+size_t /* size */,+void * /* host_ptr */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_mem CL_API_CALL+clCreateImage2D(cl_context /* context */,+cl_mem_flags /* flags */,+const cl_image_format * /* image_format */,+size_t /* image_width */,+size_t /* image_height */,+size_t /* image_row_pitch */,+void * /* host_ptr */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_mem CL_API_CALL+clCreateImage3D(cl_context /* context */,+cl_mem_flags /* flags */,+const cl_image_format * /* image_format */,+size_t /* image_width */,+size_t /* image_height */,+size_t /* image_depth */,+size_t /* image_row_pitch */,+size_t /* image_slice_pitch */,+void * /* host_ptr */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseMemObject(cl_mem /* memobj */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetSupportedImageFormats(cl_context /* context */,+cl_mem_flags /* flags */,+cl_mem_object_type /* image_type */,+cl_uint /* num_entries */,+cl_image_format * /* image_formats */,+cl_uint * /* num_image_formats */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetMemObjectInfo(cl_mem /* memobj */,+cl_mem_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetImageInfo(cl_mem /* image */,+cl_image_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Sampler APIs+extern CL_API_ENTRY cl_sampler CL_API_CALL+clCreateSampler(cl_context /* context */,+cl_bool /* normalized_coords */,+cl_addressing_mode /* addressing_mode */,+cl_filter_mode /* filter_mode */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseSampler(cl_sampler /* sampler */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetSamplerInfo(cl_sampler /* sampler */,+cl_sampler_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Program Object APIs+extern CL_API_ENTRY cl_program CL_API_CALL+clCreateProgramWithSource(cl_context /* context */,+cl_uint /* count */,+const char ** /* strings */,+const size_t * /* lengths */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_program CL_API_CALL+clCreateProgramWithBinary(cl_context /* context */,+cl_uint /* num_devices */,+const cl_device_id * /* device_list */,+const size_t * /* lengths */,+const unsigned char ** /* binaries */,+cl_int * /* binary_status */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseProgram(cl_program /* program */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clBuildProgram(cl_program /* program */,+cl_uint /* num_devices */,+const cl_device_id * /* device_list */,+const char * /* options */,+void (*pfn_notify)(cl_program /* program */, void * /* user_data */),+void * /* user_data */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clUnloadCompiler(void) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetProgramInfo(cl_program /* program */,+cl_program_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetProgramBuildInfo(cl_program /* program */,+cl_device_id /* device */,+cl_program_build_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Kernel Object APIs+extern CL_API_ENTRY cl_kernel CL_API_CALL+clCreateKernel(cl_program /* program */,+const char * /* kernel_name */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clCreateKernelsInProgram(cl_program /* program */,+cl_uint /* num_kernels */,+cl_kernel * /* kernels */,+cl_uint * /* num_kernels_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseKernel(cl_kernel /* kernel */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clSetKernelArg(cl_kernel /* kernel */,+cl_uint /* arg_index */,+size_t /* arg_size */,+const void * /* arg_value */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetKernelInfo(cl_kernel /* kernel */,+cl_kernel_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetKernelWorkGroupInfo(cl_kernel /* kernel */,+cl_device_id /* device */,+cl_kernel_work_group_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Event Object APIs+extern CL_API_ENTRY cl_int CL_API_CALL+clWaitForEvents(cl_uint /* num_events */,+const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clGetEventInfo(cl_event /* event */,+cl_event_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clRetainEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clReleaseEvent(cl_event /* event */) CL_API_SUFFIX__VERSION_1_0;++// Profiling APIs+extern CL_API_ENTRY cl_int CL_API_CALL+clGetEventProfilingInfo(cl_event /* event */,+cl_profiling_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;++// Flush and Finish APIs+extern CL_API_ENTRY cl_int CL_API_CALL+clFlush(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clFinish(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;++// Enqueued Commands APIs+extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueReadBuffer(cl_command_queue /* command_queue */,+cl_mem /* buffer */,+cl_bool /* blocking_read */,+size_t /* offset */,+size_t /* cb */,+void * /* ptr */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueWriteBuffer(cl_command_queue /* command_queue */,+cl_mem /* buffer */,+cl_bool /* blocking_write */,+size_t /* offset */,+size_t /* cb */,+const void * /* ptr */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueCopyBuffer(cl_command_queue /* command_queue */,+cl_mem /* src_buffer */,+cl_mem /* dst_buffer */,+size_t /* src_offset */,+size_t /* dst_offset */,+size_t /* cb */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueReadImage(cl_command_queue /* command_queue */,+cl_mem /* image */,+cl_bool /* blocking_read */,+const size_t * /* origin[3] */,+const size_t * /* region[3] */,+size_t /* row_pitch */,+size_t /* slice_pitch */,+void * /* ptr */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueWriteImage(cl_command_queue /* command_queue */,+cl_mem /* image */,+cl_bool /* blocking_write */,+const size_t * /* origin[3] */,+const size_t * /* region[3] */,+size_t /* input_row_pitch */,+size_t /* input_slice_pitch */,+const void * /* ptr */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueCopyImage(cl_command_queue /* command_queue */,+cl_mem /* src_image */,+cl_mem /* dst_image */,+const size_t * /* src_origin[3] */,+const size_t * /* dst_origin[3] */,+const size_t * /* region[3] */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueCopyImageToBuffer(cl_command_queue /* command_queue */,+cl_mem /* src_image */,+cl_mem /* dst_buffer */,+const size_t * /* src_origin[3] */,+const size_t * /* region[3] */,+size_t /* dst_offset */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueCopyBufferToImage(cl_command_queue /* command_queue */,+cl_mem /* src_buffer */,+cl_mem /* dst_image */,+size_t /* src_offset */,+const size_t * /* dst_origin[3] */,+const size_t * /* region[3] */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY void * CL_API_CALL+clEnqueueMapBuffer(cl_command_queue /* command_queue */,+cl_mem /* buffer */,+cl_bool /* blocking_map */,+cl_map_flags /* map_flags */,+size_t /* offset */,+size_t /* cb */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY void * CL_API_CALL+clEnqueueMapImage(cl_command_queue /* command_queue */,+cl_mem /* image */,+cl_bool /* blocking_map */,+cl_map_flags /* map_flags */,+const size_t * /* origin[3] */,+const size_t * /* region[3] */,+size_t * /* image_row_pitch */,+size_t * /* image_slice_pitch */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueUnmapMemObject(cl_command_queue /* command_queue */,+cl_mem /* memobj */,+void * /* mapped_ptr */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueNDRangeKernel(cl_command_queue /* command_queue */,+cl_kernel /* kernel */,+cl_uint /* work_dim */,+const size_t * /* global_work_offset */,+const size_t * /* global_work_size */,+const size_t * /* local_work_size */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueTask(cl_command_queue /* command_queue */,+cl_kernel /* kernel */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueNativeKernel(cl_command_queue /* command_queue */,+void (*user_func)(void *),+void * /* args */,+size_t /* cb_args */,+cl_uint /* num_mem_objects */,+const cl_mem * /* mem_list */,+const void ** /* args_mem_loc */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueMarker(cl_command_queue /* command_queue */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueWaitForEvents(cl_command_queue /* command_queue */,+cl_uint /* num_events */,+const cl_event * /* event_list */) CL_API_SUFFIX__VERSION_1_0;++extern CL_API_ENTRY cl_int CL_API_CALL+clEnqueueBarrier(cl_command_queue /* command_queue */) CL_API_SUFFIX__VERSION_1_0;++#ifdef __cplusplus+}+#endif++#endif // __OPENCL_CL_H 
bullet/MiniCL/cl_MiniCL_Defs.h view
@@ -3,8 +3,8 @@  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -23,181 +23,181 @@ #define __kernel #define __global #define __local-#define get_global_id(a)	__guid_arg-#define get_local_id(a)		((__guid_arg) % gMiniCLNumOutstandingTasks)-#define get_local_size(a)	(gMiniCLNumOutstandingTasks)-#define get_group_id(a)		((__guid_arg) / gMiniCLNumOutstandingTasks)+#define get_global_id(a) __guid_arg+#define get_local_id(a) ((__guid_arg) % gMiniCLNumOutstandingTasks)+#define get_local_size(a) (gMiniCLNumOutstandingTasks)+#define get_group_id(a) ((__guid_arg) / gMiniCLNumOutstandingTasks)  static unsigned int as_uint(float val) { return *((unsigned int*)&val); }  -#define CLK_LOCAL_MEM_FENCE		0x01-#define CLK_GLOBAL_MEM_FENCE	0x02+#define CLK_LOCAL_MEM_FENCE 0x01+#define CLK_GLOBAL_MEM_FENCE 0x02  static void barrier(unsigned int a) {-	// TODO : implement+// TODO : implement }  //ATTRIBUTE_ALIGNED16(struct) float8 struct float8 {-	float s0;-	float s1;-	float s2;-	float s3;-	float s4;-	float s5;-	float s6;-	float s7;+float s0;+float s1;+float s2;+float s3;+float s4;+float s5;+float s6;+float s7; -	float8(float scalar)-	{-		s0=s1=s2=s3=s4=s5=s6=s7=scalar;-	}+float8(float scalar)+{+s0=s1=s2=s3=s4=s5=s6=s7=scalar;+} };  //ATTRIBUTE_ALIGNED16(struct) float4 struct float4 {-	float x,y,z,w;-	float4() {}-	float4(float v) -	{-		x = y = z = w = v; -	}-	float4 operator*(const float4& other)-	{-		float4 tmp;-		tmp.x = x*other.x;-		tmp.y = y*other.y;-		tmp.z = z*other.z;-		tmp.w = w*other.w;-		return tmp;-	}+float x,y,z,w;+float4() {}+float4(float v)+{+x = y = z = w = v;+}+float4 operator*(const float4& other)+{+float4 tmp;+tmp.x = x*other.x;+tmp.y = y*other.y;+tmp.z = z*other.z;+tmp.w = w*other.w;+return tmp;+} -	float4 operator*(const float& other)-	{-		float4 tmp;-		tmp.x = x*other;-		tmp.y = y*other;-		tmp.z = z*other;-		tmp.w = w*other;-		return tmp;-	}+float4 operator*(const float& other)+{+float4 tmp;+tmp.x = x*other;+tmp.y = y*other;+tmp.z = z*other;+tmp.w = w*other;+return tmp;+} -	 -	float4& operator+=(const float4& other)-	{-		x += other.x;-		y += other.y;-		z += other.z;-		w += other.w;-		return *this;-	} -	float4& operator-=(const float4& other)-	{-		x -= other.x;-		y -= other.y;-		z -= other.z;-		w -= other.w;-		return *this;-	}+float4& operator+=(const float4& other)+{+x += other.x;+y += other.y;+z += other.z;+w += other.w;+return *this;+} -	float4& operator *=(float scalar)-	{-		x *= scalar;-		y *= scalar;-		z *= scalar;-		w *= scalar;-		return (*this);-	}+float4& operator-=(const float4& other)+{+x -= other.x;+y -= other.y;+z -= other.z;+w -= other.w;+return *this;+} -	-	-	-	+float4& operator *=(float scalar)+{+x *= scalar;+y *= scalar;+z *= scalar;+w *= scalar;+return (*this);+}+++++ };  static float4 fabs(const float4& a) {-	float4 tmp;-	tmp.x = a.x < 0.f ? 0.f  : a.x;-	tmp.y = a.y < 0.f ? 0.f  : a.y;-	tmp.z = a.z < 0.f ? 0.f  : a.z;-	tmp.w = a.w < 0.f ? 0.f  : a.w;-	return tmp;+float4 tmp;+tmp.x = a.x < 0.f ? 0.f : a.x;+tmp.y = a.y < 0.f ? 0.f : a.y;+tmp.z = a.z < 0.f ? 0.f : a.z;+tmp.w = a.w < 0.f ? 0.f : a.w;+return tmp; } static float4 operator+(const float4& a,const float4& b) {-	float4 tmp;-	tmp.x = a.x + b.x;-	tmp.y = a.y + b.y;-	tmp.z = a.z + b.z;-	tmp.w = a.w + b.w;-	return tmp;+float4 tmp;+tmp.x = a.x + b.x;+tmp.y = a.y + b.y;+tmp.z = a.z + b.z;+tmp.w = a.w + b.w;+return tmp; }   static float8 operator+(const float8& a,const float8& b) {-	float8 tmp(0);-	tmp.s0  = a.s0 + b.s0;-	tmp.s1  = a.s1 + b.s1;-	tmp.s2  = a.s2 + b.s2;-	tmp.s3  = a.s3 + b.s3;-	tmp.s4  = a.s4 + b.s4;-	tmp.s5  = a.s5 + b.s5;-	tmp.s6  = a.s6 + b.s6;-	tmp.s7  = a.s7 + b.s7;-	return tmp;+float8 tmp(0);+tmp.s0 = a.s0 + b.s0;+tmp.s1 = a.s1 + b.s1;+tmp.s2 = a.s2 + b.s2;+tmp.s3 = a.s3 + b.s3;+tmp.s4 = a.s4 + b.s4;+tmp.s5 = a.s5 + b.s5;+tmp.s6 = a.s6 + b.s6;+tmp.s7 = a.s7 + b.s7;+return tmp; }   static float4 operator-(const float4& a,const float4& b) {-	float4 tmp;-	tmp.x = a.x - b.x;-	tmp.y = a.y - b.y;-	tmp.z = a.z - b.z;-	tmp.w = a.w - b.w;-	return tmp;+float4 tmp;+tmp.x = a.x - b.x;+tmp.y = a.y - b.y;+tmp.z = a.z - b.z;+tmp.w = a.w - b.w;+return tmp; }  static float8 operator-(const float8& a,const float8& b) {-	float8 tmp(0);-	tmp.s0  = a.s0 - b.s0;-	tmp.s1  = a.s1 - b.s1;-	tmp.s2  = a.s2 - b.s2;-	tmp.s3  = a.s3 - b.s3;-	tmp.s4  = a.s4 - b.s4;-	tmp.s5  = a.s5 - b.s5;-	tmp.s6  = a.s6 - b.s6;-	tmp.s7  = a.s7 - b.s7;-	return tmp;+float8 tmp(0);+tmp.s0 = a.s0 - b.s0;+tmp.s1 = a.s1 - b.s1;+tmp.s2 = a.s2 - b.s2;+tmp.s3 = a.s3 - b.s3;+tmp.s4 = a.s4 - b.s4;+tmp.s5 = a.s5 - b.s5;+tmp.s6 = a.s6 - b.s6;+tmp.s7 = a.s7 - b.s7;+return tmp; }  static float4 operator*(float a,const float4& b) {-	float4 tmp;-	tmp.x = a * b.x;-	tmp.y = a * b.y;-	tmp.z = a * b.z;-	tmp.w = a * b.w;-	return tmp;+float4 tmp;+tmp.x = a * b.x;+tmp.y = a * b.y;+tmp.z = a * b.z;+tmp.w = a * b.w;+return tmp; }  static float4 operator/(const float4& b,float a) {-	float4 tmp;-	tmp.x = b.x/a;-	tmp.y = b.y/a;-	tmp.z = b.z/a;-	tmp.w = b.w/a;-	return tmp;+float4 tmp;+tmp.x = b.x/a;+tmp.y = b.y/a;+tmp.z = b.z/a;+tmp.w = b.w/a;+return tmp; }  @@ -205,69 +205,69 @@  static float dot(const float4&a ,const float4& b) {-	float4 tmp;-	tmp.x = a.x*b.x;-	tmp.y = a.y*b.y;-	tmp.z = a.z*b.z;-	tmp.w = a.w*b.w;-	return tmp.x+tmp.y+tmp.z+tmp.w;+float4 tmp;+tmp.x = a.x*b.x;+tmp.y = a.y*b.y;+tmp.z = a.z*b.z;+tmp.w = a.w*b.w;+return tmp.x+tmp.y+tmp.z+tmp.w; }  static float length(const float4&a) {-	float l = sqrtf(a.x*a.x+a.y*a.y+a.z*a.z);-	return l;+float l = sqrtf(a.x*a.x+a.y*a.y+a.z*a.z);+return l; }  static float4 normalize(const float4&a) {-	float4 tmp;-	float l = length(a);-	tmp = 1.f/l*a;-	return tmp;+float4 tmp;+float l = length(a);+tmp = 1.f/l*a;+return tmp; }    static float4 cross(const float4&a ,const float4& b) {-	float4 tmp;-	tmp.x =  a.y*b.z - a.z*b.y;-	tmp.y = -a.x*b.z + a.z*b.x;-	tmp.z =  a.x*b.y - a.y*b.x;-	tmp.w = 0.f;-	return tmp;+float4 tmp;+tmp.x = a.y*b.z - a.z*b.y;+tmp.y = -a.x*b.z + a.z*b.x;+tmp.z = a.x*b.y - a.y*b.x;+tmp.w = 0.f;+return tmp; } -static float max(float a, float b) +static float max(float a, float b) {-	return (a >= b) ? a : b;+return (a >= b) ? a : b; }  -static float min(float a, float b) +static float min(float a, float b) {-	return (a <= b) ? a : b;+return (a <= b) ? a : b; } -static float fmax(float a, float b) +static float fmax(float a, float b) {-	return (a >= b) ? a : b;+return (a >= b) ? a : b; } -static float fmin(float a, float b) +static float fmin(float a, float b) {-	return (a <= b) ? a : b;+return (a <= b) ? a : b; }  struct int2 {-	int x,y;+int x,y; };  struct uint2 {-	unsigned int x,y;+unsigned int x,y; };  //typedef int2 uint2;@@ -276,40 +276,40 @@  struct int4 {-	int x,y,z,w;+int x,y,z,w; };  struct uint4 {-	unsigned int x,y,z,w;-	uint4() {}-	uint4(uint val) { x = y = z = w = val; }-	uint4& operator+=(const uint4& other)-	{-		x += other.x;-		y += other.y;-		z += other.z;-		w += other.w;-		return *this;-	}+unsigned int x,y,z,w;+uint4() {}+uint4(uint val) { x = y = z = w = val; }+uint4& operator+=(const uint4& other)+{+x += other.x;+y += other.y;+z += other.z;+w += other.w;+return *this;+} }; static uint4 operator+(const uint4& a,const uint4& b) {-	uint4 tmp;-	tmp.x = a.x + b.x;-	tmp.y = a.y + b.y;-	tmp.z = a.z + b.z;-	tmp.w = a.w + b.w;-	return tmp;+uint4 tmp;+tmp.x = a.x + b.x;+tmp.y = a.y + b.y;+tmp.z = a.z + b.z;+tmp.w = a.w + b.w;+return tmp; } static uint4 operator-(const uint4& a,const uint4& b) {-	uint4 tmp;-	tmp.x = a.x - b.x;-	tmp.y = a.y - b.y;-	tmp.z = a.z - b.z;-	tmp.w = a.w - b.w;-	return tmp;+uint4 tmp;+tmp.x = a.x - b.x;+tmp.y = a.y - b.y;+tmp.z = a.z - b.z;+tmp.w = a.w - b.w;+return tmp; }  #define native_sqrt sqrtf@@ -324,6 +324,6 @@ #define as_int(a) (*((int*)&(a)))  extern "C" int gMiniCLNumOutstandingTasks;-//	extern "C" void __kernel_func();+// extern "C" void __kernel_func();  
bullet/MiniCL/cl_gl.h view
@@ -1,25 +1,25 @@ /**********************************************************************************- * Copyright (c) 2008-2009 The Khronos Group Inc.- *- * Permission is hereby granted, free of charge, to any person obtaining a- * copy of this software and/or associated documentation files (the- * "Materials"), to deal in the Materials without restriction, including- * without limitation the rights to use, copy, modify, merge, publish,- * distribute, sublicense, and/or sell copies of the Materials, and to- * permit persons to whom the Materials are furnished to do so, subject to- * the following conditions:- *- * The above copyright notice and this permission notice shall be included- * in all copies or substantial portions of the Materials.- *- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.- **********************************************************************************/+* Copyright (c) 2008-2009 The Khronos Group Inc.+*+* Permission is hereby granted, free of charge, to any person obtaining a+* copy of this software and/or associated documentation files (the+* "Materials"), to deal in the Materials without restriction, including+* without limitation the rights to use, copy, modify, merge, publish,+* distribute, sublicense, and/or sell copies of the Materials, and to+* permit persons to whom the Materials are furnished to do so, subject to+* the following conditions:+*+* The above copyright notice and this permission notice shall be included+* in all copies or substantial portions of the Materials.+*+* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.+**********************************************************************************/  #ifndef __OPENCL_CL_GL_H #define __OPENCL_CL_GL_H@@ -28,86 +28,86 @@ #include <OpenCL/cl_platform.h> #else #include <MiniCL/cl_platform.h>-#endif	+#endif  #ifdef __cplusplus extern "C" { #endif -// NOTE:  Make sure that appropriate GL header file is included separately+// NOTE: Make sure that appropriate GL header file is included separately -typedef cl_uint     cl_gl_object_type;-typedef cl_uint     cl_gl_texture_info;-typedef cl_uint     cl_gl_platform_info;+typedef cl_uint cl_gl_object_type;+typedef cl_uint cl_gl_texture_info;+typedef cl_uint cl_gl_platform_info;  // cl_gl_object_type-#define CL_GL_OBJECT_BUFFER             0x2000-#define CL_GL_OBJECT_TEXTURE2D          0x2001-#define CL_GL_OBJECT_TEXTURE3D          0x2002-#define CL_GL_OBJECT_RENDERBUFFER       0x2003+#define CL_GL_OBJECT_BUFFER 0x2000+#define CL_GL_OBJECT_TEXTURE2D 0x2001+#define CL_GL_OBJECT_TEXTURE3D 0x2002+#define CL_GL_OBJECT_RENDERBUFFER 0x2003  // cl_gl_texture_info-#define CL_GL_TEXTURE_TARGET            0x2004-#define CL_GL_MIPMAP_LEVEL              0x2005+#define CL_GL_TEXTURE_TARGET 0x2004+#define CL_GL_MIPMAP_LEVEL 0x2005  extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateFromGLBuffer(cl_context     /* context */,-                     cl_mem_flags   /* flags */,-                     GLuint         /* bufobj */,-                     int *          /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;+clCreateFromGLBuffer(cl_context /* context */,+cl_mem_flags /* flags */,+GLuint /* bufobj */,+int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateFromGLTexture2D(cl_context      /* context */,-                        cl_mem_flags    /* flags */,-                        GLenum          /* target */,-                        GLint           /* miplevel */,-                        GLuint          /* texture */,-                        cl_int *        /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;+clCreateFromGLTexture2D(cl_context /* context */,+cl_mem_flags /* flags */,+GLenum /* target */,+GLint /* miplevel */,+GLuint /* texture */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateFromGLTexture3D(cl_context      /* context */,-                        cl_mem_flags    /* flags */,-                        GLenum          /* target */,-                        GLint           /* miplevel */,-                        GLuint          /* texture */,-                        cl_int *        /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;+clCreateFromGLTexture3D(cl_context /* context */,+cl_mem_flags /* flags */,+GLenum /* target */,+GLint /* miplevel */,+GLuint /* texture */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_mem CL_API_CALL-clCreateFromGLRenderbuffer(cl_context   /* context */,-                           cl_mem_flags /* flags */,-                           GLuint       /* renderbuffer */,-                           cl_int *     /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;+clCreateFromGLRenderbuffer(cl_context /* context */,+cl_mem_flags /* flags */,+GLuint /* renderbuffer */,+cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_int CL_API_CALL-clGetGLObjectInfo(cl_mem                /* memobj */,-                  cl_gl_object_type *   /* gl_object_type */,-                  GLuint *              /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;-                  +clGetGLObjectInfo(cl_mem /* memobj */,+cl_gl_object_type * /* gl_object_type */,+GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;+ extern CL_API_ENTRY cl_int CL_API_CALL-clGetGLTextureInfo(cl_mem               /* memobj */,-                   cl_gl_texture_info   /* param_name */,-                   size_t               /* param_value_size */,-                   void *               /* param_value */,-                   size_t *             /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;+clGetGLTextureInfo(cl_mem /* memobj */,+cl_gl_texture_info /* param_name */,+size_t /* param_value_size */,+void * /* param_value */,+size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueAcquireGLObjects(cl_command_queue      /* command_queue */,-                          cl_uint               /* num_objects */,-                          const cl_mem *        /* mem_objects */,-                          cl_uint               /* num_events_in_wait_list */,-                          const cl_event *      /* event_wait_list */,-                          cl_event *            /* event */) CL_API_SUFFIX__VERSION_1_0;+clEnqueueAcquireGLObjects(cl_command_queue /* command_queue */,+cl_uint /* num_objects */,+const cl_mem * /* mem_objects */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;  extern CL_API_ENTRY cl_int CL_API_CALL-clEnqueueReleaseGLObjects(cl_command_queue      /* command_queue */,-                          cl_uint               /* num_objects */,-                          const cl_mem *        /* mem_objects */,-                          cl_uint               /* num_events_in_wait_list */,-                          const cl_event *      /* event_wait_list */,-                          cl_event *            /* event */) CL_API_SUFFIX__VERSION_1_0;+clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */,+cl_uint /* num_objects */,+const cl_mem * /* mem_objects */,+cl_uint /* num_events_in_wait_list */,+const cl_event * /* event_wait_list */,+cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;  #ifdef __cplusplus } #endif -#endif  // __OPENCL_CL_GL_H+#endif // __OPENCL_CL_GL_H
bullet/MiniCL/cl_platform.h view
@@ -1,42 +1,42 @@ /**********************************************************************************- * Copyright (c) 2008-2009 The Khronos Group Inc.- *- * Permission is hereby granted, free of charge, to any person obtaining a- * copy of this software and/or associated documentation files (the- * "Materials"), to deal in the Materials without restriction, including- * without limitation the rights to use, copy, modify, merge, publish,- * distribute, sublicense, and/or sell copies of the Materials, and to- * permit persons to whom the Materials are furnished to do so, subject to- * the following conditions:- *- * The above copyright notice and this permission notice shall be included- * in all copies or substantial portions of the Materials.- *- * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE- * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.- **********************************************************************************/+* Copyright (c) 2008-2009 The Khronos Group Inc.+*+* Permission is hereby granted, free of charge, to any person obtaining a+* copy of this software and/or associated documentation files (the+* "Materials"), to deal in the Materials without restriction, including+* without limitation the rights to use, copy, modify, merge, publish,+* distribute, sublicense, and/or sell copies of the Materials, and to+* permit persons to whom the Materials are furnished to do so, subject to+* the following conditions:+*+* The above copyright notice and this permission notice shall be included+* in all copies or substantial portions of the Materials.+*+* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.+**********************************************************************************/  #ifndef __CL_PLATFORM_H #define __CL_PLATFORM_H -#define CL_PLATFORM_MINI_CL  0x12345+#define CL_PLATFORM_MINI_CL 0x12345  struct MiniCLKernelDesc {-	MiniCLKernelDesc(void* pCode, char* pName);+MiniCLKernelDesc(void* pCode, const char* pName); };  #define MINICL_REGISTER(__kernel_func) static MiniCLKernelDesc __kernel_func##Desc((void*)__kernel_func, #__kernel_func);   #ifdef __APPLE__-    /* Contains #defines for AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER below */-    #include <AvailabilityMacros.h>+/* Contains #defines for AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER below */+#include <AvailabilityMacros.h> #endif  #ifdef __cplusplus@@ -46,204 +46,204 @@ #define CL_API_ENTRY #define CL_API_CALL #ifdef __APPLE__-#define CL_API_SUFFIX__VERSION_1_0 //  AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER-#define CL_EXTENSION_WEAK_LINK       __attribute__((weak_import))       +#define CL_API_SUFFIX__VERSION_1_0 // AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER+#define CL_EXTENSION_WEAK_LINK __attribute__((weak_import)) #else #define CL_API_SUFFIX__VERSION_1_0-#define CL_EXTENSION_WEAK_LINK                         +#define CL_EXTENSION_WEAK_LINK #endif  #if defined (_WIN32) && ! defined (__MINGW32__)-typedef signed   __int8  int8_t;-typedef unsigned __int8  uint8_t;-typedef signed   __int16 int16_t;+typedef signed __int8 int8_t;+typedef unsigned __int8 uint8_t;+typedef signed __int16 int16_t; typedef unsigned __int16 uint16_t;-typedef signed   __int32 int32_t;+typedef signed __int32 int32_t; typedef unsigned __int32 uint32_t;-typedef signed   __int64 int64_t;+typedef signed __int64 int64_t; typedef unsigned __int64 uint64_t; -typedef int8_t          cl_char;-typedef uint8_t         cl_uchar;-typedef int16_t         cl_short    ;-typedef uint16_t        cl_ushort   ;-typedef int32_t         cl_int      ;-typedef uint32_t        cl_uint     ;-typedef int64_t         cl_long     ;-typedef uint64_t        cl_ulong    ;+typedef int8_t cl_char;+typedef uint8_t cl_uchar;+typedef int16_t cl_short ;+typedef uint16_t cl_ushort ;+typedef int32_t cl_int ;+typedef uint32_t cl_uint ;+typedef int64_t cl_long ;+typedef uint64_t cl_ulong ; -typedef uint16_t        cl_half     ;-typedef float           cl_float    ;-typedef double          cl_double   ;+typedef uint16_t cl_half ;+typedef float cl_float ;+typedef double cl_double ;  -typedef int8_t          cl_char2[2]     ;-typedef int8_t          cl_char4[4]     ;-typedef int8_t          cl_char8[8]     ;-typedef int8_t          cl_char16[16]   ;-typedef uint8_t         cl_uchar2[2]    ;-typedef uint8_t         cl_uchar4[4]    ;-typedef uint8_t         cl_uchar8[8]    ;-typedef uint8_t         cl_uchar16[16]  ;+typedef int8_t cl_char2[2] ;+typedef int8_t cl_char4[4] ;+typedef int8_t cl_char8[8] ;+typedef int8_t cl_char16[16] ;+typedef uint8_t cl_uchar2[2] ;+typedef uint8_t cl_uchar4[4] ;+typedef uint8_t cl_uchar8[8] ;+typedef uint8_t cl_uchar16[16] ; -typedef int16_t         cl_short2[2]     ;-typedef int16_t         cl_short4[4]     ;-typedef int16_t         cl_short8[8]     ;-typedef int16_t         cl_short16[16]   ;-typedef uint16_t        cl_ushort2[2]    ;-typedef uint16_t        cl_ushort4[4]    ;-typedef uint16_t        cl_ushort8[8]    ;-typedef uint16_t        cl_ushort16[16]  ;+typedef int16_t cl_short2[2] ;+typedef int16_t cl_short4[4] ;+typedef int16_t cl_short8[8] ;+typedef int16_t cl_short16[16] ;+typedef uint16_t cl_ushort2[2] ;+typedef uint16_t cl_ushort4[4] ;+typedef uint16_t cl_ushort8[8] ;+typedef uint16_t cl_ushort16[16] ; -typedef int32_t         cl_int2[2]     ;-typedef int32_t         cl_int4[4]     ;-typedef int32_t         cl_int8[8]     ;-typedef int32_t         cl_int16[16]    ;-typedef uint32_t        cl_uint2[2]     ;-typedef uint32_t        cl_uint4[4]     ;-typedef uint32_t        cl_uint8[8]     ;-typedef uint32_t        cl_uint16[16]   ;+typedef int32_t cl_int2[2] ;+typedef int32_t cl_int4[4] ;+typedef int32_t cl_int8[8] ;+typedef int32_t cl_int16[16] ;+typedef uint32_t cl_uint2[2] ;+typedef uint32_t cl_uint4[4] ;+typedef uint32_t cl_uint8[8] ;+typedef uint32_t cl_uint16[16] ; -typedef int64_t         cl_long2[2]     ;-typedef int64_t         cl_long4[4]     ;-typedef int64_t         cl_long8[8]     ;-typedef int64_t         cl_long16[16]   ;-typedef uint64_t        cl_ulong2[2]    ;-typedef uint64_t        cl_ulong4[4]    ;-typedef uint64_t        cl_ulong8[8]    ;-typedef uint64_t        cl_ulong16[16]  ;+typedef int64_t cl_long2[2] ;+typedef int64_t cl_long4[4] ;+typedef int64_t cl_long8[8] ;+typedef int64_t cl_long16[16] ;+typedef uint64_t cl_ulong2[2] ;+typedef uint64_t cl_ulong4[4] ;+typedef uint64_t cl_ulong8[8] ;+typedef uint64_t cl_ulong16[16] ; -typedef float           cl_float2[2]    ;-typedef float           cl_float4[4]    ;-typedef float           cl_float8[8]    ;-typedef float           cl_float16[16]  ;+typedef float cl_float2[2] ;+typedef float cl_float4[4] ;+typedef float cl_float8[8] ;+typedef float cl_float16[16] ; -typedef double          cl_double2[2]   ;-typedef double          cl_double4[4]   ;-typedef double          cl_double8[8]   ;-typedef double          cl_double16[16] ;+typedef double cl_double2[2] ;+typedef double cl_double4[4] ;+typedef double cl_double8[8] ;+typedef double cl_double16[16] ;   #else #include <stdint.h> -/* scalar types  */-typedef int8_t          cl_char;-typedef uint8_t         cl_uchar;-typedef int16_t         cl_short    __attribute__((aligned(2)));-typedef uint16_t        cl_ushort   __attribute__((aligned(2)));-typedef int32_t         cl_int      __attribute__((aligned(4)));-typedef uint32_t        cl_uint     __attribute__((aligned(4)));-typedef int64_t         cl_long     __attribute__((aligned(8)));-typedef uint64_t        cl_ulong    __attribute__((aligned(8)));+/* scalar types */+typedef int8_t cl_char;+typedef uint8_t cl_uchar;+typedef int16_t cl_short __attribute__((aligned(2)));+typedef uint16_t cl_ushort __attribute__((aligned(2)));+typedef int32_t cl_int __attribute__((aligned(4)));+typedef uint32_t cl_uint __attribute__((aligned(4)));+typedef int64_t cl_long __attribute__((aligned(8)));+typedef uint64_t cl_ulong __attribute__((aligned(8))); -typedef uint16_t        cl_half     __attribute__((aligned(2)));-typedef float           cl_float    __attribute__((aligned(4)));-typedef double          cl_double   __attribute__((aligned(8)));+typedef uint16_t cl_half __attribute__((aligned(2)));+typedef float cl_float __attribute__((aligned(4)));+typedef double cl_double __attribute__((aligned(8)));   /*- * Vector types - *- *  Note:   OpenCL requires that all types be naturally aligned. - *          This means that vector types must be naturally aligned.- *          For example, a vector of four floats must be aligned to- *          a 16 byte boundary (calculated as 4 * the natural 4-byte - *          alignment of the float).  The alignment qualifiers here- *          will only function properly if your compiler supports them- *          and if you don't actively work to defeat them.  For example,- *          in order for a cl_float4 to be 16 byte aligned in a struct,- *          the start of the struct must itself be 16-byte aligned. - *- *          Maintaining proper alignment is the user's responsibility.- */-typedef int8_t          cl_char2[2]     __attribute__((aligned(2)));-typedef int8_t          cl_char4[4]     __attribute__((aligned(4)));-typedef int8_t          cl_char8[8]     __attribute__((aligned(8)));-typedef int8_t          cl_char16[16]   __attribute__((aligned(16)));-typedef uint8_t         cl_uchar2[2]    __attribute__((aligned(2)));-typedef uint8_t         cl_uchar4[4]    __attribute__((aligned(4)));-typedef uint8_t         cl_uchar8[8]    __attribute__((aligned(8)));-typedef uint8_t         cl_uchar16[16]  __attribute__((aligned(16)));+* Vector types+*+* Note: OpenCL requires that all types be naturally aligned.+* This means that vector types must be naturally aligned.+* For example, a vector of four floats must be aligned to+* a 16 byte boundary (calculated as 4 * the natural 4-byte+* alignment of the float). The alignment qualifiers here+* will only function properly if your compiler supports them+* and if you don't actively work to defeat them. For example,+* in order for a cl_float4 to be 16 byte aligned in a struct,+* the start of the struct must itself be 16-byte aligned.+*+* Maintaining proper alignment is the user's responsibility.+*/+typedef int8_t cl_char2[2] __attribute__((aligned(2)));+typedef int8_t cl_char4[4] __attribute__((aligned(4)));+typedef int8_t cl_char8[8] __attribute__((aligned(8)));+typedef int8_t cl_char16[16] __attribute__((aligned(16)));+typedef uint8_t cl_uchar2[2] __attribute__((aligned(2)));+typedef uint8_t cl_uchar4[4] __attribute__((aligned(4)));+typedef uint8_t cl_uchar8[8] __attribute__((aligned(8)));+typedef uint8_t cl_uchar16[16] __attribute__((aligned(16))); -typedef int16_t         cl_short2[2]     __attribute__((aligned(4)));-typedef int16_t         cl_short4[4]     __attribute__((aligned(8)));-typedef int16_t         cl_short8[8]     __attribute__((aligned(16)));-typedef int16_t         cl_short16[16]   __attribute__((aligned(32)));-typedef uint16_t        cl_ushort2[2]    __attribute__((aligned(4)));-typedef uint16_t        cl_ushort4[4]    __attribute__((aligned(8)));-typedef uint16_t        cl_ushort8[8]    __attribute__((aligned(16)));-typedef uint16_t        cl_ushort16[16]  __attribute__((aligned(32)));+typedef int16_t cl_short2[2] __attribute__((aligned(4)));+typedef int16_t cl_short4[4] __attribute__((aligned(8)));+typedef int16_t cl_short8[8] __attribute__((aligned(16)));+typedef int16_t cl_short16[16] __attribute__((aligned(32)));+typedef uint16_t cl_ushort2[2] __attribute__((aligned(4)));+typedef uint16_t cl_ushort4[4] __attribute__((aligned(8)));+typedef uint16_t cl_ushort8[8] __attribute__((aligned(16)));+typedef uint16_t cl_ushort16[16] __attribute__((aligned(32))); -typedef int32_t         cl_int2[2]      __attribute__((aligned(8)));-typedef int32_t         cl_int4[4]      __attribute__((aligned(16)));-typedef int32_t         cl_int8[8]      __attribute__((aligned(32)));-typedef int32_t         cl_int16[16]    __attribute__((aligned(64)));-typedef uint32_t        cl_uint2[2]     __attribute__((aligned(8)));-typedef uint32_t        cl_uint4[4]     __attribute__((aligned(16)));-typedef uint32_t        cl_uint8[8]     __attribute__((aligned(32)));-typedef uint32_t        cl_uint16[16]   __attribute__((aligned(64)));+typedef int32_t cl_int2[2] __attribute__((aligned(8)));+typedef int32_t cl_int4[4] __attribute__((aligned(16)));+typedef int32_t cl_int8[8] __attribute__((aligned(32)));+typedef int32_t cl_int16[16] __attribute__((aligned(64)));+typedef uint32_t cl_uint2[2] __attribute__((aligned(8)));+typedef uint32_t cl_uint4[4] __attribute__((aligned(16)));+typedef uint32_t cl_uint8[8] __attribute__((aligned(32)));+typedef uint32_t cl_uint16[16] __attribute__((aligned(64))); -typedef int64_t         cl_long2[2]     __attribute__((aligned(16)));-typedef int64_t         cl_long4[4]     __attribute__((aligned(32)));-typedef int64_t         cl_long8[8]     __attribute__((aligned(64)));-typedef int64_t         cl_long16[16]   __attribute__((aligned(128)));-typedef uint64_t        cl_ulong2[2]    __attribute__((aligned(16)));-typedef uint64_t        cl_ulong4[4]    __attribute__((aligned(32)));-typedef uint64_t        cl_ulong8[8]    __attribute__((aligned(64)));-typedef uint64_t        cl_ulong16[16]  __attribute__((aligned(128)));+typedef int64_t cl_long2[2] __attribute__((aligned(16)));+typedef int64_t cl_long4[4] __attribute__((aligned(32)));+typedef int64_t cl_long8[8] __attribute__((aligned(64)));+typedef int64_t cl_long16[16] __attribute__((aligned(128)));+typedef uint64_t cl_ulong2[2] __attribute__((aligned(16)));+typedef uint64_t cl_ulong4[4] __attribute__((aligned(32)));+typedef uint64_t cl_ulong8[8] __attribute__((aligned(64)));+typedef uint64_t cl_ulong16[16] __attribute__((aligned(128))); -typedef float           cl_float2[2]    __attribute__((aligned(8)));-typedef float           cl_float4[4]    __attribute__((aligned(16)));-typedef float           cl_float8[8]    __attribute__((aligned(32)));-typedef float           cl_float16[16]  __attribute__((aligned(64)));+typedef float cl_float2[2] __attribute__((aligned(8)));+typedef float cl_float4[4] __attribute__((aligned(16)));+typedef float cl_float8[8] __attribute__((aligned(32)));+typedef float cl_float16[16] __attribute__((aligned(64))); -typedef double          cl_double2[2]   __attribute__((aligned(16)));-typedef double          cl_double4[4]   __attribute__((aligned(32)));-typedef double          cl_double8[8]   __attribute__((aligned(64)));-typedef double          cl_double16[16] __attribute__((aligned(128)));+typedef double cl_double2[2] __attribute__((aligned(16)));+typedef double cl_double4[4] __attribute__((aligned(32)));+typedef double cl_double8[8] __attribute__((aligned(64)));+typedef double cl_double16[16] __attribute__((aligned(128))); #endif  #include <stddef.h>  /* and a few goodies to go with them */-#define CL_CHAR_BIT         8-#define CL_SCHAR_MAX        127-#define CL_SCHAR_MIN        (-127-1)-#define CL_CHAR_MAX         CL_SCHAR_MAX-#define CL_CHAR_MIN         CL_SCHAR_MIN-#define CL_UCHAR_MAX        255-#define CL_SHRT_MAX         32767-#define CL_SHRT_MIN         (-32767-1)-#define CL_USHRT_MAX        65535-#define CL_INT_MAX          2147483647-#define CL_INT_MIN          (-2147483647-1)-#define CL_UINT_MAX         0xffffffffU-#define CL_LONG_MAX         ((cl_long) 0x7FFFFFFFFFFFFFFFLL)-#define CL_LONG_MIN         ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)-#define CL_ULONG_MAX        ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL)+#define CL_CHAR_BIT 8+#define CL_SCHAR_MAX 127+#define CL_SCHAR_MIN (-127-1)+#define CL_CHAR_MAX CL_SCHAR_MAX+#define CL_CHAR_MIN CL_SCHAR_MIN+#define CL_UCHAR_MAX 255+#define CL_SHRT_MAX 32767+#define CL_SHRT_MIN (-32767-1)+#define CL_USHRT_MAX 65535+#define CL_INT_MAX 2147483647+#define CL_INT_MIN (-2147483647-1)+#define CL_UINT_MAX 0xffffffffU+#define CL_LONG_MAX ((cl_long) 0x7FFFFFFFFFFFFFFFLL)+#define CL_LONG_MIN ((cl_long) -0x7FFFFFFFFFFFFFFFLL - 1LL)+#define CL_ULONG_MAX ((cl_ulong) 0xFFFFFFFFFFFFFFFFULL) -#define CL_FLT_DIG          6-#define CL_FLT_MANT_DIG     24-#define CL_FLT_MAX_10_EXP   +38-#define CL_FLT_MAX_EXP      +128-#define CL_FLT_MIN_10_EXP   -37-#define CL_FLT_MIN_EXP      -125-#define CL_FLT_RADIX        2-#define CL_FLT_MAX          0x1.fffffep127f-#define CL_FLT_MIN          0x1.0p-126f-#define CL_FLT_EPSILON      0x1.0p-23f+#define CL_FLT_DIG 6+#define CL_FLT_MANT_DIG 24+#define CL_FLT_MAX_10_EXP +38+#define CL_FLT_MAX_EXP +128+#define CL_FLT_MIN_10_EXP -37+#define CL_FLT_MIN_EXP -125+#define CL_FLT_RADIX 2+#define CL_FLT_MAX 0x1.fffffep127f+#define CL_FLT_MIN 0x1.0p-126f+#define CL_FLT_EPSILON 0x1.0p-23f -#define CL_DBL_DIG          15-#define CL_DBL_MANT_DIG     53-#define CL_DBL_MAX_10_EXP   +308-#define CL_DBL_MAX_EXP      +1024-#define CL_DBL_MIN_10_EXP   -307-#define CL_DBL_MIN_EXP      -1021-#define CL_DBL_RADIX        2-#define CL_DBL_MAX          0x1.fffffffffffffp1023-#define CL_DBL_MIN          0x1.0p-1022-#define CL_DBL_EPSILON      0x1.0p-52+#define CL_DBL_DIG 15+#define CL_DBL_MANT_DIG 53+#define CL_DBL_MAX_10_EXP +308+#define CL_DBL_MAX_EXP +1024+#define CL_DBL_MIN_10_EXP -307+#define CL_DBL_MIN_EXP -1021+#define CL_DBL_RADIX 2+#define CL_DBL_MAX 0x1.fffffffffffffp1023+#define CL_DBL_MIN 0x1.0p-1022+#define CL_DBL_EPSILON 0x1.0p-52  /* There are no vector types for half */ @@ -251,4 +251,4 @@ } #endif -#endif  // __CL_PLATFORM_H+#endif // __CL_PLATFORM_H
bullet/btBulletCollisionCommon.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
bullet/btBulletDynamicsCommon.h view
@@ -1,11 +1,11 @@ /* Bullet Continuous Collision Detection and Physics Library-Copyright (c) 2003-2006 Erwin Coumans  http://continuousphysics.com/Bullet/+Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -20,7 +20,6 @@ #include "btBulletCollisionCommon.h"  #include "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h"-#include "BulletDynamics/Dynamics/btContinuousDynamicsWorld.h"  #include "BulletDynamics/Dynamics/btSimpleDynamicsWorld.h" #include "BulletDynamics/Dynamics/btRigidBody.h"
bullet/vectormath/scalar/boolInVec.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -27,52 +27,52 @@ //  class boolInVec-{+{ private: private:-    unsigned int mData;+unsigned int mData;  public:-    // Default constructor; does no initialization-    //-    inline boolInVec( ) { };+// Default constructor; does no initialization+//+inline boolInVec( ) { }; -    // Construct from a value converted from float-    //-    inline boolInVec(floatInVec vec);+// Construct from a value converted from float+//+inline boolInVec(floatInVec vec); -    // Explicit cast from bool-    //-    explicit inline boolInVec(bool scalar);+// Explicit cast from bool+//+explicit inline boolInVec(bool scalar); -    // Explicit cast to bool-    //-    inline bool getAsBool() const;+// Explicit cast to bool+//+inline bool getAsBool() const;  #ifndef _VECTORMATH_NO_SCALAR_CAST-    // Implicit cast to bool-    //-    inline operator bool() const;+// Implicit cast to bool+//+inline operator bool() const; #endif -    // Boolean negation operator-    //-    inline const boolInVec operator ! () const;+// Boolean negation operator+//+inline const boolInVec operator ! () const; -    // Assignment operator-    //-    inline boolInVec& operator = (boolInVec vec);+// Assignment operator+//+inline boolInVec& operator = (boolInVec vec); -    // Boolean and assignment operator-    //-    inline boolInVec& operator &= (boolInVec vec);+// Boolean and assignment operator+//+inline boolInVec& operator &= (boolInVec vec); -    // Boolean exclusive or assignment operator-    //-    inline boolInVec& operator ^= (boolInVec vec);+// Boolean exclusive or assignment operator+//+inline boolInVec& operator ^= (boolInVec vec); -    // Boolean or assignment operator-    //-    inline boolInVec& operator |= (boolInVec vec);+// Boolean or assignment operator+//+inline boolInVec& operator |= (boolInVec vec);  }; @@ -115,27 +115,27 @@ inline boolInVec::boolInVec(floatInVec vec) {-    *this = (vec != floatInVec(0.0f));+*this = (vec != floatInVec(0.0f)); }  inline boolInVec::boolInVec(bool scalar) {-    mData = -(int)scalar;+mData = -(int)scalar; }  inline bool boolInVec::getAsBool() const {-    return (mData > 0);+return (mData > 0); }  #ifndef _VECTORMATH_NO_SCALAR_CAST inline boolInVec::operator bool() const {-    return getAsBool();+return getAsBool(); } #endif @@ -143,81 +143,81 @@ const boolInVec boolInVec::operator ! () const {-    return boolInVec(!mData);+return boolInVec(!mData); }  inline boolInVec& boolInVec::operator = (boolInVec vec) {-    mData = vec.mData;-    return *this;+mData = vec.mData;+return *this; }  inline boolInVec& boolInVec::operator &= (boolInVec vec) {-    *this = *this & vec;-    return *this;+*this = *this & vec;+return *this; }  inline boolInVec& boolInVec::operator ^= (boolInVec vec) {-    *this = *this ^ vec;-    return *this;+*this = *this ^ vec;+return *this; }  inline boolInVec& boolInVec::operator |= (boolInVec vec) {-    *this = *this | vec;-    return *this;+*this = *this | vec;+return *this; }  inline const boolInVec operator == (boolInVec vec0, boolInVec vec1) {-    return boolInVec(vec0.getAsBool() == vec1.getAsBool());+return boolInVec(vec0.getAsBool() == vec1.getAsBool()); }  inline const boolInVec operator != (boolInVec vec0, boolInVec vec1) {-    return !(vec0 == vec1);+return !(vec0 == vec1); }  inline const boolInVec operator & (boolInVec vec0, boolInVec vec1) {-    return boolInVec(vec0.getAsBool() & vec1.getAsBool());+return boolInVec(vec0.getAsBool() & vec1.getAsBool()); }  inline const boolInVec operator | (boolInVec vec0, boolInVec vec1) {-    return boolInVec(vec0.getAsBool() | vec1.getAsBool());+return boolInVec(vec0.getAsBool() | vec1.getAsBool()); }  inline const boolInVec operator ^ (boolInVec vec0, boolInVec vec1) {-    return boolInVec(vec0.getAsBool() ^ vec1.getAsBool());+return boolInVec(vec0.getAsBool() ^ vec1.getAsBool()); }  inline const boolInVec select(boolInVec vec0, boolInVec vec1, boolInVec select_vec1) {-    return (select_vec1.getAsBool() == 0) ? vec0 : vec1;+return (select_vec1.getAsBool() == 0) ? vec0 : vec1; }  } // namespace Vectormath
bullet/vectormath/scalar/floatInVec.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -28,72 +28,72 @@ // A class representing a scalar float value contained in a vector register // This class does not support fastmath class floatInVec-{+{ private: private:-    float mData;+float mData;  public:-    // Default constructor; does no initialization-    //-    inline floatInVec( ) { };+// Default constructor; does no initialization+//+inline floatInVec( ) { }; -    // Construct from a value converted from bool-    //-    inline floatInVec(boolInVec vec);+// Construct from a value converted from bool+//+inline floatInVec(boolInVec vec); -    // Explicit cast from float-    //-    explicit inline floatInVec(float scalar);+// Explicit cast from float+//+explicit inline floatInVec(float scalar); -    // Explicit cast to float-    //-    inline float getAsFloat() const;+// Explicit cast to float+//+inline float getAsFloat() const;  #ifndef _VECTORMATH_NO_SCALAR_CAST-    // Implicit cast to float-    //-    inline operator float() const;+// Implicit cast to float+//+inline operator float() const; #endif -    // Post increment (add 1.0f)-    //-    inline const floatInVec operator ++ (int);+// Post increment (add 1.0f)+//+inline const floatInVec operator ++ (int); -    // Post decrement (subtract 1.0f)-    //-    inline const floatInVec operator -- (int);+// Post decrement (subtract 1.0f)+//+inline const floatInVec operator -- (int); -    // Pre increment (add 1.0f)-    //-    inline floatInVec& operator ++ ();+// Pre increment (add 1.0f)+//+inline floatInVec& operator ++ (); -    // Pre decrement (subtract 1.0f)-    //-    inline floatInVec& operator -- ();+// Pre decrement (subtract 1.0f)+//+inline floatInVec& operator -- (); -    // Negation operator-    //-    inline const floatInVec operator - () const;+// Negation operator+//+inline const floatInVec operator - () const; -    // Assignment operator-    //-    inline floatInVec& operator = (floatInVec vec);+// Assignment operator+//+inline floatInVec& operator = (floatInVec vec); -    // Multiplication assignment operator-    //-    inline floatInVec& operator *= (floatInVec vec);+// Multiplication assignment operator+//+inline floatInVec& operator *= (floatInVec vec); -    // Division assignment operator-    //-    inline floatInVec& operator /= (floatInVec vec);+// Division assignment operator+//+inline floatInVec& operator /= (floatInVec vec); -    // Addition assignment operator-    //-    inline floatInVec& operator += (floatInVec vec);+// Addition assignment operator+//+inline floatInVec& operator += (floatInVec vec); -    // Subtraction assignment operator-    //-    inline floatInVec& operator -= (floatInVec vec);+// Subtraction assignment operator+//+inline floatInVec& operator -= (floatInVec vec);  }; @@ -156,27 +156,27 @@ inline floatInVec::floatInVec(boolInVec vec) {-    mData = float(vec.getAsBool());+mData = float(vec.getAsBool()); }  inline floatInVec::floatInVec(float scalar) {-    mData = scalar;+mData = scalar; }  inline float floatInVec::getAsFloat() const {-    return mData;+return mData; }  #ifndef _VECTORMATH_NO_SCALAR_CAST inline floatInVec::operator float() const {-    return getAsFloat();+return getAsFloat(); } #endif @@ -184,158 +184,158 @@ const floatInVec floatInVec::operator ++ (int) {-    float olddata = mData;-    operator ++();-    return floatInVec(olddata);+float olddata = mData;+operator ++();+return floatInVec(olddata); }  inline const floatInVec floatInVec::operator -- (int) {-    float olddata = mData;-    operator --();-    return floatInVec(olddata);+float olddata = mData;+operator --();+return floatInVec(olddata); }  inline floatInVec& floatInVec::operator ++ () {-    *this += floatInVec(1.0f);-    return *this;+*this += floatInVec(1.0f);+return *this; }  inline floatInVec& floatInVec::operator -- () {-    *this -= floatInVec(1.0f);-    return *this;+*this -= floatInVec(1.0f);+return *this; }  inline const floatInVec floatInVec::operator - () const {-    return floatInVec(-mData);+return floatInVec(-mData); }  inline floatInVec& floatInVec::operator = (floatInVec vec) {-    mData = vec.mData;-    return *this;+mData = vec.mData;+return *this; }  inline floatInVec& floatInVec::operator *= (floatInVec vec) {-    *this = *this * vec;-    return *this;+*this = *this * vec;+return *this; }  inline floatInVec& floatInVec::operator /= (floatInVec vec) {-    *this = *this / vec;-    return *this;+*this = *this / vec;+return *this; }  inline floatInVec& floatInVec::operator += (floatInVec vec) {-    *this = *this + vec;-    return *this;+*this = *this + vec;+return *this; }  inline floatInVec& floatInVec::operator -= (floatInVec vec) {-    *this = *this - vec;-    return *this;+*this = *this - vec;+return *this; }  inline const floatInVec operator * (floatInVec vec0, floatInVec vec1) {-    return floatInVec(vec0.getAsFloat() * vec1.getAsFloat());+return floatInVec(vec0.getAsFloat() * vec1.getAsFloat()); }  inline const floatInVec operator / (floatInVec num, floatInVec den) {-    return floatInVec(num.getAsFloat() / den.getAsFloat());+return floatInVec(num.getAsFloat() / den.getAsFloat()); }  inline const floatInVec operator + (floatInVec vec0, floatInVec vec1) {-    return floatInVec(vec0.getAsFloat() + vec1.getAsFloat());+return floatInVec(vec0.getAsFloat() + vec1.getAsFloat()); }  inline const floatInVec operator - (floatInVec vec0, floatInVec vec1) {-    return floatInVec(vec0.getAsFloat() - vec1.getAsFloat());+return floatInVec(vec0.getAsFloat() - vec1.getAsFloat()); }  inline const boolInVec operator < (floatInVec vec0, floatInVec vec1) {-    return boolInVec(vec0.getAsFloat() < vec1.getAsFloat());+return boolInVec(vec0.getAsFloat() < vec1.getAsFloat()); }  inline const boolInVec operator <= (floatInVec vec0, floatInVec vec1) {-    return !(vec0 > vec1);+return !(vec0 > vec1); }  inline const boolInVec operator > (floatInVec vec0, floatInVec vec1) {-    return boolInVec(vec0.getAsFloat() > vec1.getAsFloat());+return boolInVec(vec0.getAsFloat() > vec1.getAsFloat()); }  inline const boolInVec operator >= (floatInVec vec0, floatInVec vec1) {-    return !(vec0 < vec1);+return !(vec0 < vec1); }  inline const boolInVec operator == (floatInVec vec0, floatInVec vec1) {-    return boolInVec(vec0.getAsFloat() == vec1.getAsFloat());+return boolInVec(vec0.getAsFloat() == vec1.getAsFloat()); }  inline const boolInVec operator != (floatInVec vec0, floatInVec vec1) {-    return !(vec0 == vec1);+return !(vec0 == vec1); }  inline const floatInVec select(floatInVec vec0, floatInVec vec1, boolInVec select_vec1) {-    return (select_vec1.getAsBool() == 0) ? vec0 : vec1;+return (select_vec1.getAsBool() == 0) ? vec0 : vec1; }  } // namespace Vectormath
bullet/vectormath/scalar/mat_aos.h view
@@ -1,1627 +1,1627 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.--*/--#ifndef _VECTORMATH_MAT_AOS_CPP_H-#define _VECTORMATH_MAT_AOS_CPP_H--namespace Vectormath {-namespace Aos {--//------------------------------------------------------------------------------// Constants--#define _VECTORMATH_PI_OVER_2 1.570796327f--//------------------------------------------------------------------------------// Definitions--inline Matrix3::Matrix3( const Matrix3 & mat )-{-    mCol0 = mat.mCol0;-    mCol1 = mat.mCol1;-    mCol2 = mat.mCol2;-}--inline Matrix3::Matrix3( float scalar )-{-    mCol0 = Vector3( scalar );-    mCol1 = Vector3( scalar );-    mCol2 = Vector3( scalar );-}--inline Matrix3::Matrix3( const Quat & unitQuat )-{-    float qx, qy, qz, qw, qx2, qy2, qz2, qxqx2, qyqy2, qzqz2, qxqy2, qyqz2, qzqw2, qxqz2, qyqw2, qxqw2;-    qx = unitQuat.getX();-    qy = unitQuat.getY();-    qz = unitQuat.getZ();-    qw = unitQuat.getW();-    qx2 = ( qx + qx );-    qy2 = ( qy + qy );-    qz2 = ( qz + qz );-    qxqx2 = ( qx * qx2 );-    qxqy2 = ( qx * qy2 );-    qxqz2 = ( qx * qz2 );-    qxqw2 = ( qw * qx2 );-    qyqy2 = ( qy * qy2 );-    qyqz2 = ( qy * qz2 );-    qyqw2 = ( qw * qy2 );-    qzqz2 = ( qz * qz2 );-    qzqw2 = ( qw * qz2 );-    mCol0 = Vector3( ( ( 1.0f - qyqy2 ) - qzqz2 ), ( qxqy2 + qzqw2 ), ( qxqz2 - qyqw2 ) );-    mCol1 = Vector3( ( qxqy2 - qzqw2 ), ( ( 1.0f - qxqx2 ) - qzqz2 ), ( qyqz2 + qxqw2 ) );-    mCol2 = Vector3( ( qxqz2 + qyqw2 ), ( qyqz2 - qxqw2 ), ( ( 1.0f - qxqx2 ) - qyqy2 ) );-}--inline Matrix3::Matrix3( const Vector3 & _col0, const Vector3 & _col1, const Vector3 & _col2 )-{-    mCol0 = _col0;-    mCol1 = _col1;-    mCol2 = _col2;-}--inline Matrix3 & Matrix3::setCol0( const Vector3 & _col0 )-{-    mCol0 = _col0;-    return *this;-}--inline Matrix3 & Matrix3::setCol1( const Vector3 & _col1 )-{-    mCol1 = _col1;-    return *this;-}--inline Matrix3 & Matrix3::setCol2( const Vector3 & _col2 )-{-    mCol2 = _col2;-    return *this;-}--inline Matrix3 & Matrix3::setCol( int col, const Vector3 & vec )-{-    *(&mCol0 + col) = vec;-    return *this;-}--inline Matrix3 & Matrix3::setRow( int row, const Vector3 & vec )-{-    mCol0.setElem( row, vec.getElem( 0 ) );-    mCol1.setElem( row, vec.getElem( 1 ) );-    mCol2.setElem( row, vec.getElem( 2 ) );-    return *this;-}--inline Matrix3 & Matrix3::setElem( int col, int row, float val )-{-    Vector3 tmpV3_0;-    tmpV3_0 = this->getCol( col );-    tmpV3_0.setElem( row, val );-    this->setCol( col, tmpV3_0 );-    return *this;-}--inline float Matrix3::getElem( int col, int row ) const-{-    return this->getCol( col ).getElem( row );-}--inline const Vector3 Matrix3::getCol0( ) const-{-    return mCol0;-}--inline const Vector3 Matrix3::getCol1( ) const-{-    return mCol1;-}--inline const Vector3 Matrix3::getCol2( ) const-{-    return mCol2;-}--inline const Vector3 Matrix3::getCol( int col ) const-{-    return *(&mCol0 + col);-}--inline const Vector3 Matrix3::getRow( int row ) const-{-    return Vector3( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ) );-}--inline Vector3 & Matrix3::operator []( int col )-{-    return *(&mCol0 + col);-}--inline const Vector3 Matrix3::operator []( int col ) const-{-    return *(&mCol0 + col);-}--inline Matrix3 & Matrix3::operator =( const Matrix3 & mat )-{-    mCol0 = mat.mCol0;-    mCol1 = mat.mCol1;-    mCol2 = mat.mCol2;-    return *this;-}--inline const Matrix3 transpose( const Matrix3 & mat )-{-    return Matrix3(-        Vector3( mat.getCol0().getX(), mat.getCol1().getX(), mat.getCol2().getX() ),-        Vector3( mat.getCol0().getY(), mat.getCol1().getY(), mat.getCol2().getY() ),-        Vector3( mat.getCol0().getZ(), mat.getCol1().getZ(), mat.getCol2().getZ() )-    );-}--inline const Matrix3 inverse( const Matrix3 & mat )-{-    Vector3 tmp0, tmp1, tmp2;-    float detinv;-    tmp0 = cross( mat.getCol1(), mat.getCol2() );-    tmp1 = cross( mat.getCol2(), mat.getCol0() );-    tmp2 = cross( mat.getCol0(), mat.getCol1() );-    detinv = ( 1.0f / dot( mat.getCol2(), tmp2 ) );-    return Matrix3(-        Vector3( ( tmp0.getX() * detinv ), ( tmp1.getX() * detinv ), ( tmp2.getX() * detinv ) ),-        Vector3( ( tmp0.getY() * detinv ), ( tmp1.getY() * detinv ), ( tmp2.getY() * detinv ) ),-        Vector3( ( tmp0.getZ() * detinv ), ( tmp1.getZ() * detinv ), ( tmp2.getZ() * detinv ) )-    );-}--inline float determinant( const Matrix3 & mat )-{-    return dot( mat.getCol2(), cross( mat.getCol0(), mat.getCol1() ) );-}--inline const Matrix3 Matrix3::operator +( const Matrix3 & mat ) const-{-    return Matrix3(-        ( mCol0 + mat.mCol0 ),-        ( mCol1 + mat.mCol1 ),-        ( mCol2 + mat.mCol2 )-    );-}--inline const Matrix3 Matrix3::operator -( const Matrix3 & mat ) const-{-    return Matrix3(-        ( mCol0 - mat.mCol0 ),-        ( mCol1 - mat.mCol1 ),-        ( mCol2 - mat.mCol2 )-    );-}--inline Matrix3 & Matrix3::operator +=( const Matrix3 & mat )-{-    *this = *this + mat;-    return *this;-}--inline Matrix3 & Matrix3::operator -=( const Matrix3 & mat )-{-    *this = *this - mat;-    return *this;-}--inline const Matrix3 Matrix3::operator -( ) const-{-    return Matrix3(-        ( -mCol0 ),-        ( -mCol1 ),-        ( -mCol2 )-    );-}--inline const Matrix3 absPerElem( const Matrix3 & mat )-{-    return Matrix3(-        absPerElem( mat.getCol0() ),-        absPerElem( mat.getCol1() ),-        absPerElem( mat.getCol2() )-    );-}--inline const Matrix3 Matrix3::operator *( float scalar ) const-{-    return Matrix3(-        ( mCol0 * scalar ),-        ( mCol1 * scalar ),-        ( mCol2 * scalar )-    );-}--inline Matrix3 & Matrix3::operator *=( float scalar )-{-    *this = *this * scalar;-    return *this;-}--inline const Matrix3 operator *( float scalar, const Matrix3 & mat )-{-    return mat * scalar;-}--inline const Vector3 Matrix3::operator *( const Vector3 & vec ) const-{-    return Vector3(-        ( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),-        ( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),-        ( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) )-    );-}--inline const Matrix3 Matrix3::operator *( const Matrix3 & mat ) const-{-    return Matrix3(-        ( *this * mat.mCol0 ),-        ( *this * mat.mCol1 ),-        ( *this * mat.mCol2 )-    );-}--inline Matrix3 & Matrix3::operator *=( const Matrix3 & mat )-{-    *this = *this * mat;-    return *this;-}--inline const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 )-{-    return Matrix3(-        mulPerElem( mat0.getCol0(), mat1.getCol0() ),-        mulPerElem( mat0.getCol1(), mat1.getCol1() ),-        mulPerElem( mat0.getCol2(), mat1.getCol2() )-    );-}--inline const Matrix3 Matrix3::identity( )-{-    return Matrix3(-        Vector3::xAxis( ),-        Vector3::yAxis( ),-        Vector3::zAxis( )-    );-}--inline const Matrix3 Matrix3::rotationX( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix3(-        Vector3::xAxis( ),-        Vector3( 0.0f, c, s ),-        Vector3( 0.0f, -s, c )-    );-}--inline const Matrix3 Matrix3::rotationY( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix3(-        Vector3( c, 0.0f, -s ),-        Vector3::yAxis( ),-        Vector3( s, 0.0f, c )-    );-}--inline const Matrix3 Matrix3::rotationZ( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix3(-        Vector3( c, s, 0.0f ),-        Vector3( -s, c, 0.0f ),-        Vector3::zAxis( )-    );-}--inline const Matrix3 Matrix3::rotationZYX( const Vector3 & radiansXYZ )-{-    float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;-    sX = sinf( radiansXYZ.getX() );-    cX = cosf( radiansXYZ.getX() );-    sY = sinf( radiansXYZ.getY() );-    cY = cosf( radiansXYZ.getY() );-    sZ = sinf( radiansXYZ.getZ() );-    cZ = cosf( radiansXYZ.getZ() );-    tmp0 = ( cZ * sY );-    tmp1 = ( sZ * sY );-    return Matrix3(-        Vector3( ( cZ * cY ), ( sZ * cY ), -sY ),-        Vector3( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ) ),-        Vector3( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ) )-    );-}--inline const Matrix3 Matrix3::rotation( float radians, const Vector3 & unitVec )-{-    float x, y, z, s, c, oneMinusC, xy, yz, zx;-    s = sinf( radians );-    c = cosf( radians );-    x = unitVec.getX();-    y = unitVec.getY();-    z = unitVec.getZ();-    xy = ( x * y );-    yz = ( y * z );-    zx = ( z * x );-    oneMinusC = ( 1.0f - c );-    return Matrix3(-        Vector3( ( ( ( x * x ) * oneMinusC ) + c ), ( ( xy * oneMinusC ) + ( z * s ) ), ( ( zx * oneMinusC ) - ( y * s ) ) ),-        Vector3( ( ( xy * oneMinusC ) - ( z * s ) ), ( ( ( y * y ) * oneMinusC ) + c ), ( ( yz * oneMinusC ) + ( x * s ) ) ),-        Vector3( ( ( zx * oneMinusC ) + ( y * s ) ), ( ( yz * oneMinusC ) - ( x * s ) ), ( ( ( z * z ) * oneMinusC ) + c ) )-    );-}--inline const Matrix3 Matrix3::rotation( const Quat & unitQuat )-{-    return Matrix3( unitQuat );-}--inline const Matrix3 Matrix3::scale( const Vector3 & scaleVec )-{-    return Matrix3(-        Vector3( scaleVec.getX(), 0.0f, 0.0f ),-        Vector3( 0.0f, scaleVec.getY(), 0.0f ),-        Vector3( 0.0f, 0.0f, scaleVec.getZ() )-    );-}--inline const Matrix3 appendScale( const Matrix3 & mat, const Vector3 & scaleVec )-{-    return Matrix3(-        ( mat.getCol0() * scaleVec.getX( ) ),-        ( mat.getCol1() * scaleVec.getY( ) ),-        ( mat.getCol2() * scaleVec.getZ( ) )-    );-}--inline const Matrix3 prependScale( const Vector3 & scaleVec, const Matrix3 & mat )-{-    return Matrix3(-        mulPerElem( mat.getCol0(), scaleVec ),-        mulPerElem( mat.getCol1(), scaleVec ),-        mulPerElem( mat.getCol2(), scaleVec )-    );-}--inline const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 )-{-    return Matrix3(-        select( mat0.getCol0(), mat1.getCol0(), select1 ),-        select( mat0.getCol1(), mat1.getCol1(), select1 ),-        select( mat0.getCol2(), mat1.getCol2(), select1 )-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Matrix3 & mat )-{-    print( mat.getRow( 0 ) );-    print( mat.getRow( 1 ) );-    print( mat.getRow( 2 ) );-}--inline void print( const Matrix3 & mat, const char * name )-{-    printf("%s:\n", name);-    print( mat );-}--#endif--inline Matrix4::Matrix4( const Matrix4 & mat )-{-    mCol0 = mat.mCol0;-    mCol1 = mat.mCol1;-    mCol2 = mat.mCol2;-    mCol3 = mat.mCol3;-}--inline Matrix4::Matrix4( float scalar )-{-    mCol0 = Vector4( scalar );-    mCol1 = Vector4( scalar );-    mCol2 = Vector4( scalar );-    mCol3 = Vector4( scalar );-}--inline Matrix4::Matrix4( const Transform3 & mat )-{-    mCol0 = Vector4( mat.getCol0(), 0.0f );-    mCol1 = Vector4( mat.getCol1(), 0.0f );-    mCol2 = Vector4( mat.getCol2(), 0.0f );-    mCol3 = Vector4( mat.getCol3(), 1.0f );-}--inline Matrix4::Matrix4( const Vector4 & _col0, const Vector4 & _col1, const Vector4 & _col2, const Vector4 & _col3 )-{-    mCol0 = _col0;-    mCol1 = _col1;-    mCol2 = _col2;-    mCol3 = _col3;-}--inline Matrix4::Matrix4( const Matrix3 & mat, const Vector3 & translateVec )-{-    mCol0 = Vector4( mat.getCol0(), 0.0f );-    mCol1 = Vector4( mat.getCol1(), 0.0f );-    mCol2 = Vector4( mat.getCol2(), 0.0f );-    mCol3 = Vector4( translateVec, 1.0f );-}--inline Matrix4::Matrix4( const Quat & unitQuat, const Vector3 & translateVec )-{-    Matrix3 mat;-    mat = Matrix3( unitQuat );-    mCol0 = Vector4( mat.getCol0(), 0.0f );-    mCol1 = Vector4( mat.getCol1(), 0.0f );-    mCol2 = Vector4( mat.getCol2(), 0.0f );-    mCol3 = Vector4( translateVec, 1.0f );-}--inline Matrix4 & Matrix4::setCol0( const Vector4 & _col0 )-{-    mCol0 = _col0;-    return *this;-}--inline Matrix4 & Matrix4::setCol1( const Vector4 & _col1 )-{-    mCol1 = _col1;-    return *this;-}--inline Matrix4 & Matrix4::setCol2( const Vector4 & _col2 )-{-    mCol2 = _col2;-    return *this;-}--inline Matrix4 & Matrix4::setCol3( const Vector4 & _col3 )-{-    mCol3 = _col3;-    return *this;-}--inline Matrix4 & Matrix4::setCol( int col, const Vector4 & vec )-{-    *(&mCol0 + col) = vec;-    return *this;-}--inline Matrix4 & Matrix4::setRow( int row, const Vector4 & vec )-{-    mCol0.setElem( row, vec.getElem( 0 ) );-    mCol1.setElem( row, vec.getElem( 1 ) );-    mCol2.setElem( row, vec.getElem( 2 ) );-    mCol3.setElem( row, vec.getElem( 3 ) );-    return *this;-}--inline Matrix4 & Matrix4::setElem( int col, int row, float val )-{-    Vector4 tmpV3_0;-    tmpV3_0 = this->getCol( col );-    tmpV3_0.setElem( row, val );-    this->setCol( col, tmpV3_0 );-    return *this;-}--inline float Matrix4::getElem( int col, int row ) const-{-    return this->getCol( col ).getElem( row );-}--inline const Vector4 Matrix4::getCol0( ) const-{-    return mCol0;-}--inline const Vector4 Matrix4::getCol1( ) const-{-    return mCol1;-}--inline const Vector4 Matrix4::getCol2( ) const-{-    return mCol2;-}--inline const Vector4 Matrix4::getCol3( ) const-{-    return mCol3;-}--inline const Vector4 Matrix4::getCol( int col ) const-{-    return *(&mCol0 + col);-}--inline const Vector4 Matrix4::getRow( int row ) const-{-    return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );-}--inline Vector4 & Matrix4::operator []( int col )-{-    return *(&mCol0 + col);-}--inline const Vector4 Matrix4::operator []( int col ) const-{-    return *(&mCol0 + col);-}--inline Matrix4 & Matrix4::operator =( const Matrix4 & mat )-{-    mCol0 = mat.mCol0;-    mCol1 = mat.mCol1;-    mCol2 = mat.mCol2;-    mCol3 = mat.mCol3;-    return *this;-}--inline const Matrix4 transpose( const Matrix4 & mat )-{-    return Matrix4(-        Vector4( mat.getCol0().getX(), mat.getCol1().getX(), mat.getCol2().getX(), mat.getCol3().getX() ),-        Vector4( mat.getCol0().getY(), mat.getCol1().getY(), mat.getCol2().getY(), mat.getCol3().getY() ),-        Vector4( mat.getCol0().getZ(), mat.getCol1().getZ(), mat.getCol2().getZ(), mat.getCol3().getZ() ),-        Vector4( mat.getCol0().getW(), mat.getCol1().getW(), mat.getCol2().getW(), mat.getCol3().getW() )-    );-}--inline const Matrix4 inverse( const Matrix4 & mat )-{-    Vector4 res0, res1, res2, res3;-    float mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, detInv;-    mA = mat.getCol0().getX();-    mB = mat.getCol0().getY();-    mC = mat.getCol0().getZ();-    mD = mat.getCol0().getW();-    mE = mat.getCol1().getX();-    mF = mat.getCol1().getY();-    mG = mat.getCol1().getZ();-    mH = mat.getCol1().getW();-    mI = mat.getCol2().getX();-    mJ = mat.getCol2().getY();-    mK = mat.getCol2().getZ();-    mL = mat.getCol2().getW();-    mM = mat.getCol3().getX();-    mN = mat.getCol3().getY();-    mO = mat.getCol3().getZ();-    mP = mat.getCol3().getW();-    tmp0 = ( ( mK * mD ) - ( mC * mL ) );-    tmp1 = ( ( mO * mH ) - ( mG * mP ) );-    tmp2 = ( ( mB * mK ) - ( mJ * mC ) );-    tmp3 = ( ( mF * mO ) - ( mN * mG ) );-    tmp4 = ( ( mJ * mD ) - ( mB * mL ) );-    tmp5 = ( ( mN * mH ) - ( mF * mP ) );-    res0.setX( ( ( ( mJ * tmp1 ) - ( mL * tmp3 ) ) - ( mK * tmp5 ) ) );-    res0.setY( ( ( ( mN * tmp0 ) - ( mP * tmp2 ) ) - ( mO * tmp4 ) ) );-    res0.setZ( ( ( ( mD * tmp3 ) + ( mC * tmp5 ) ) - ( mB * tmp1 ) ) );-    res0.setW( ( ( ( mH * tmp2 ) + ( mG * tmp4 ) ) - ( mF * tmp0 ) ) );-    detInv = ( 1.0f / ( ( ( ( mA * res0.getX() ) + ( mE * res0.getY() ) ) + ( mI * res0.getZ() ) ) + ( mM * res0.getW() ) ) );-    res1.setX( ( mI * tmp1 ) );-    res1.setY( ( mM * tmp0 ) );-    res1.setZ( ( mA * tmp1 ) );-    res1.setW( ( mE * tmp0 ) );-    res3.setX( ( mI * tmp3 ) );-    res3.setY( ( mM * tmp2 ) );-    res3.setZ( ( mA * tmp3 ) );-    res3.setW( ( mE * tmp2 ) );-    res2.setX( ( mI * tmp5 ) );-    res2.setY( ( mM * tmp4 ) );-    res2.setZ( ( mA * tmp5 ) );-    res2.setW( ( mE * tmp4 ) );-    tmp0 = ( ( mI * mB ) - ( mA * mJ ) );-    tmp1 = ( ( mM * mF ) - ( mE * mN ) );-    tmp2 = ( ( mI * mD ) - ( mA * mL ) );-    tmp3 = ( ( mM * mH ) - ( mE * mP ) );-    tmp4 = ( ( mI * mC ) - ( mA * mK ) );-    tmp5 = ( ( mM * mG ) - ( mE * mO ) );-    res2.setX( ( ( ( mL * tmp1 ) - ( mJ * tmp3 ) ) + res2.getX() ) );-    res2.setY( ( ( ( mP * tmp0 ) - ( mN * tmp2 ) ) + res2.getY() ) );-    res2.setZ( ( ( ( mB * tmp3 ) - ( mD * tmp1 ) ) - res2.getZ() ) );-    res2.setW( ( ( ( mF * tmp2 ) - ( mH * tmp0 ) ) - res2.getW() ) );-    res3.setX( ( ( ( mJ * tmp5 ) - ( mK * tmp1 ) ) + res3.getX() ) );-    res3.setY( ( ( ( mN * tmp4 ) - ( mO * tmp0 ) ) + res3.getY() ) );-    res3.setZ( ( ( ( mC * tmp1 ) - ( mB * tmp5 ) ) - res3.getZ() ) );-    res3.setW( ( ( ( mG * tmp0 ) - ( mF * tmp4 ) ) - res3.getW() ) );-    res1.setX( ( ( ( mK * tmp3 ) - ( mL * tmp5 ) ) - res1.getX() ) );-    res1.setY( ( ( ( mO * tmp2 ) - ( mP * tmp4 ) ) - res1.getY() ) );-    res1.setZ( ( ( ( mD * tmp5 ) - ( mC * tmp3 ) ) + res1.getZ() ) );-    res1.setW( ( ( ( mH * tmp4 ) - ( mG * tmp2 ) ) + res1.getW() ) );-    return Matrix4(-        ( res0 * detInv ),-        ( res1 * detInv ),-        ( res2 * detInv ),-        ( res3 * detInv )-    );-}--inline const Matrix4 affineInverse( const Matrix4 & mat )-{-    Transform3 affineMat;-    affineMat.setCol0( mat.getCol0().getXYZ( ) );-    affineMat.setCol1( mat.getCol1().getXYZ( ) );-    affineMat.setCol2( mat.getCol2().getXYZ( ) );-    affineMat.setCol3( mat.getCol3().getXYZ( ) );-    return Matrix4( inverse( affineMat ) );-}--inline const Matrix4 orthoInverse( const Matrix4 & mat )-{-    Transform3 affineMat;-    affineMat.setCol0( mat.getCol0().getXYZ( ) );-    affineMat.setCol1( mat.getCol1().getXYZ( ) );-    affineMat.setCol2( mat.getCol2().getXYZ( ) );-    affineMat.setCol3( mat.getCol3().getXYZ( ) );-    return Matrix4( orthoInverse( affineMat ) );-}--inline float determinant( const Matrix4 & mat )-{-    float dx, dy, dz, dw, mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;-    mA = mat.getCol0().getX();-    mB = mat.getCol0().getY();-    mC = mat.getCol0().getZ();-    mD = mat.getCol0().getW();-    mE = mat.getCol1().getX();-    mF = mat.getCol1().getY();-    mG = mat.getCol1().getZ();-    mH = mat.getCol1().getW();-    mI = mat.getCol2().getX();-    mJ = mat.getCol2().getY();-    mK = mat.getCol2().getZ();-    mL = mat.getCol2().getW();-    mM = mat.getCol3().getX();-    mN = mat.getCol3().getY();-    mO = mat.getCol3().getZ();-    mP = mat.getCol3().getW();-    tmp0 = ( ( mK * mD ) - ( mC * mL ) );-    tmp1 = ( ( mO * mH ) - ( mG * mP ) );-    tmp2 = ( ( mB * mK ) - ( mJ * mC ) );-    tmp3 = ( ( mF * mO ) - ( mN * mG ) );-    tmp4 = ( ( mJ * mD ) - ( mB * mL ) );-    tmp5 = ( ( mN * mH ) - ( mF * mP ) );-    dx = ( ( ( mJ * tmp1 ) - ( mL * tmp3 ) ) - ( mK * tmp5 ) );-    dy = ( ( ( mN * tmp0 ) - ( mP * tmp2 ) ) - ( mO * tmp4 ) );-    dz = ( ( ( mD * tmp3 ) + ( mC * tmp5 ) ) - ( mB * tmp1 ) );-    dw = ( ( ( mH * tmp2 ) + ( mG * tmp4 ) ) - ( mF * tmp0 ) );-    return ( ( ( ( mA * dx ) + ( mE * dy ) ) + ( mI * dz ) ) + ( mM * dw ) );-}--inline const Matrix4 Matrix4::operator +( const Matrix4 & mat ) const-{-    return Matrix4(-        ( mCol0 + mat.mCol0 ),-        ( mCol1 + mat.mCol1 ),-        ( mCol2 + mat.mCol2 ),-        ( mCol3 + mat.mCol3 )-    );-}--inline const Matrix4 Matrix4::operator -( const Matrix4 & mat ) const-{-    return Matrix4(-        ( mCol0 - mat.mCol0 ),-        ( mCol1 - mat.mCol1 ),-        ( mCol2 - mat.mCol2 ),-        ( mCol3 - mat.mCol3 )-    );-}--inline Matrix4 & Matrix4::operator +=( const Matrix4 & mat )-{-    *this = *this + mat;-    return *this;-}--inline Matrix4 & Matrix4::operator -=( const Matrix4 & mat )-{-    *this = *this - mat;-    return *this;-}--inline const Matrix4 Matrix4::operator -( ) const-{-    return Matrix4(-        ( -mCol0 ),-        ( -mCol1 ),-        ( -mCol2 ),-        ( -mCol3 )-    );-}--inline const Matrix4 absPerElem( const Matrix4 & mat )-{-    return Matrix4(-        absPerElem( mat.getCol0() ),-        absPerElem( mat.getCol1() ),-        absPerElem( mat.getCol2() ),-        absPerElem( mat.getCol3() )-    );-}--inline const Matrix4 Matrix4::operator *( float scalar ) const-{-    return Matrix4(-        ( mCol0 * scalar ),-        ( mCol1 * scalar ),-        ( mCol2 * scalar ),-        ( mCol3 * scalar )-    );-}--inline Matrix4 & Matrix4::operator *=( float scalar )-{-    *this = *this * scalar;-    return *this;-}--inline const Matrix4 operator *( float scalar, const Matrix4 & mat )-{-    return mat * scalar;-}--inline const Vector4 Matrix4::operator *( const Vector4 & vec ) const-{-    return Vector4(-        ( ( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ) + ( mCol3.getX() * vec.getW() ) ),-        ( ( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ) + ( mCol3.getY() * vec.getW() ) ),-        ( ( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) ) + ( mCol3.getZ() * vec.getW() ) ),-        ( ( ( ( mCol0.getW() * vec.getX() ) + ( mCol1.getW() * vec.getY() ) ) + ( mCol2.getW() * vec.getZ() ) ) + ( mCol3.getW() * vec.getW() ) )-    );-}--inline const Vector4 Matrix4::operator *( const Vector3 & vec ) const-{-    return Vector4(-        ( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),-        ( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),-        ( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) ),-        ( ( ( mCol0.getW() * vec.getX() ) + ( mCol1.getW() * vec.getY() ) ) + ( mCol2.getW() * vec.getZ() ) )-    );-}--inline const Vector4 Matrix4::operator *( const Point3 & pnt ) const-{-    return Vector4(-        ( ( ( ( mCol0.getX() * pnt.getX() ) + ( mCol1.getX() * pnt.getY() ) ) + ( mCol2.getX() * pnt.getZ() ) ) + mCol3.getX() ),-        ( ( ( ( mCol0.getY() * pnt.getX() ) + ( mCol1.getY() * pnt.getY() ) ) + ( mCol2.getY() * pnt.getZ() ) ) + mCol3.getY() ),-        ( ( ( ( mCol0.getZ() * pnt.getX() ) + ( mCol1.getZ() * pnt.getY() ) ) + ( mCol2.getZ() * pnt.getZ() ) ) + mCol3.getZ() ),-        ( ( ( ( mCol0.getW() * pnt.getX() ) + ( mCol1.getW() * pnt.getY() ) ) + ( mCol2.getW() * pnt.getZ() ) ) + mCol3.getW() )-    );-}--inline const Matrix4 Matrix4::operator *( const Matrix4 & mat ) const-{-    return Matrix4(-        ( *this * mat.mCol0 ),-        ( *this * mat.mCol1 ),-        ( *this * mat.mCol2 ),-        ( *this * mat.mCol3 )-    );-}--inline Matrix4 & Matrix4::operator *=( const Matrix4 & mat )-{-    *this = *this * mat;-    return *this;-}--inline const Matrix4 Matrix4::operator *( const Transform3 & tfrm ) const-{-    return Matrix4(-        ( *this * tfrm.getCol0() ),-        ( *this * tfrm.getCol1() ),-        ( *this * tfrm.getCol2() ),-        ( *this * Point3( tfrm.getCol3() ) )-    );-}--inline Matrix4 & Matrix4::operator *=( const Transform3 & tfrm )-{-    *this = *this * tfrm;-    return *this;-}--inline const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 )-{-    return Matrix4(-        mulPerElem( mat0.getCol0(), mat1.getCol0() ),-        mulPerElem( mat0.getCol1(), mat1.getCol1() ),-        mulPerElem( mat0.getCol2(), mat1.getCol2() ),-        mulPerElem( mat0.getCol3(), mat1.getCol3() )-    );-}--inline const Matrix4 Matrix4::identity( )-{-    return Matrix4(-        Vector4::xAxis( ),-        Vector4::yAxis( ),-        Vector4::zAxis( ),-        Vector4::wAxis( )-    );-}--inline Matrix4 & Matrix4::setUpper3x3( const Matrix3 & mat3 )-{-    mCol0.setXYZ( mat3.getCol0() );-    mCol1.setXYZ( mat3.getCol1() );-    mCol2.setXYZ( mat3.getCol2() );-    return *this;-}--inline const Matrix3 Matrix4::getUpper3x3( ) const-{-    return Matrix3(-        mCol0.getXYZ( ),-        mCol1.getXYZ( ),-        mCol2.getXYZ( )-    );-}--inline Matrix4 & Matrix4::setTranslation( const Vector3 & translateVec )-{-    mCol3.setXYZ( translateVec );-    return *this;-}--inline const Vector3 Matrix4::getTranslation( ) const-{-    return mCol3.getXYZ( );-}--inline const Matrix4 Matrix4::rotationX( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix4(-        Vector4::xAxis( ),-        Vector4( 0.0f, c, s, 0.0f ),-        Vector4( 0.0f, -s, c, 0.0f ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 Matrix4::rotationY( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix4(-        Vector4( c, 0.0f, -s, 0.0f ),-        Vector4::yAxis( ),-        Vector4( s, 0.0f, c, 0.0f ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 Matrix4::rotationZ( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Matrix4(-        Vector4( c, s, 0.0f, 0.0f ),-        Vector4( -s, c, 0.0f, 0.0f ),-        Vector4::zAxis( ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 Matrix4::rotationZYX( const Vector3 & radiansXYZ )-{-    float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;-    sX = sinf( radiansXYZ.getX() );-    cX = cosf( radiansXYZ.getX() );-    sY = sinf( radiansXYZ.getY() );-    cY = cosf( radiansXYZ.getY() );-    sZ = sinf( radiansXYZ.getZ() );-    cZ = cosf( radiansXYZ.getZ() );-    tmp0 = ( cZ * sY );-    tmp1 = ( sZ * sY );-    return Matrix4(-        Vector4( ( cZ * cY ), ( sZ * cY ), -sY, 0.0f ),-        Vector4( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ), 0.0f ),-        Vector4( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ), 0.0f ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 Matrix4::rotation( float radians, const Vector3 & unitVec )-{-    float x, y, z, s, c, oneMinusC, xy, yz, zx;-    s = sinf( radians );-    c = cosf( radians );-    x = unitVec.getX();-    y = unitVec.getY();-    z = unitVec.getZ();-    xy = ( x * y );-    yz = ( y * z );-    zx = ( z * x );-    oneMinusC = ( 1.0f - c );-    return Matrix4(-        Vector4( ( ( ( x * x ) * oneMinusC ) + c ), ( ( xy * oneMinusC ) + ( z * s ) ), ( ( zx * oneMinusC ) - ( y * s ) ), 0.0f ),-        Vector4( ( ( xy * oneMinusC ) - ( z * s ) ), ( ( ( y * y ) * oneMinusC ) + c ), ( ( yz * oneMinusC ) + ( x * s ) ), 0.0f ),-        Vector4( ( ( zx * oneMinusC ) + ( y * s ) ), ( ( yz * oneMinusC ) - ( x * s ) ), ( ( ( z * z ) * oneMinusC ) + c ), 0.0f ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 Matrix4::rotation( const Quat & unitQuat )-{-    return Matrix4( Transform3::rotation( unitQuat ) );-}--inline const Matrix4 Matrix4::scale( const Vector3 & scaleVec )-{-    return Matrix4(-        Vector4( scaleVec.getX(), 0.0f, 0.0f, 0.0f ),-        Vector4( 0.0f, scaleVec.getY(), 0.0f, 0.0f ),-        Vector4( 0.0f, 0.0f, scaleVec.getZ(), 0.0f ),-        Vector4::wAxis( )-    );-}--inline const Matrix4 appendScale( const Matrix4 & mat, const Vector3 & scaleVec )-{-    return Matrix4(-        ( mat.getCol0() * scaleVec.getX( ) ),-        ( mat.getCol1() * scaleVec.getY( ) ),-        ( mat.getCol2() * scaleVec.getZ( ) ),-        mat.getCol3()-    );-}--inline const Matrix4 prependScale( const Vector3 & scaleVec, const Matrix4 & mat )-{-    Vector4 scale4;-    scale4 = Vector4( scaleVec, 1.0f );-    return Matrix4(-        mulPerElem( mat.getCol0(), scale4 ),-        mulPerElem( mat.getCol1(), scale4 ),-        mulPerElem( mat.getCol2(), scale4 ),-        mulPerElem( mat.getCol3(), scale4 )-    );-}--inline const Matrix4 Matrix4::translation( const Vector3 & translateVec )-{-    return Matrix4(-        Vector4::xAxis( ),-        Vector4::yAxis( ),-        Vector4::zAxis( ),-        Vector4( translateVec, 1.0f )-    );-}--inline const Matrix4 Matrix4::lookAt( const Point3 & eyePos, const Point3 & lookAtPos, const Vector3 & upVec )-{-    Matrix4 m4EyeFrame;-    Vector3 v3X, v3Y, v3Z;-    v3Y = normalize( upVec );-    v3Z = normalize( ( eyePos - lookAtPos ) );-    v3X = normalize( cross( v3Y, v3Z ) );-    v3Y = cross( v3Z, v3X );-    m4EyeFrame = Matrix4( Vector4( v3X ), Vector4( v3Y ), Vector4( v3Z ), Vector4( eyePos ) );-    return orthoInverse( m4EyeFrame );-}--inline const Matrix4 Matrix4::perspective( float fovyRadians, float aspect, float zNear, float zFar )-{-    float f, rangeInv;-    f = tanf( ( (float)( _VECTORMATH_PI_OVER_2 ) - ( 0.5f * fovyRadians ) ) );-    rangeInv = ( 1.0f / ( zNear - zFar ) );-    return Matrix4(-        Vector4( ( f / aspect ), 0.0f, 0.0f, 0.0f ),-        Vector4( 0.0f, f, 0.0f, 0.0f ),-        Vector4( 0.0f, 0.0f, ( ( zNear + zFar ) * rangeInv ), -1.0f ),-        Vector4( 0.0f, 0.0f, ( ( ( zNear * zFar ) * rangeInv ) * 2.0f ), 0.0f )-    );-}--inline const Matrix4 Matrix4::frustum( float left, float right, float bottom, float top, float zNear, float zFar )-{-    float sum_rl, sum_tb, sum_nf, inv_rl, inv_tb, inv_nf, n2;-    sum_rl = ( right + left );-    sum_tb = ( top + bottom );-    sum_nf = ( zNear + zFar );-    inv_rl = ( 1.0f / ( right - left ) );-    inv_tb = ( 1.0f / ( top - bottom ) );-    inv_nf = ( 1.0f / ( zNear - zFar ) );-    n2 = ( zNear + zNear );-    return Matrix4(-        Vector4( ( n2 * inv_rl ), 0.0f, 0.0f, 0.0f ),-        Vector4( 0.0f, ( n2 * inv_tb ), 0.0f, 0.0f ),-        Vector4( ( sum_rl * inv_rl ), ( sum_tb * inv_tb ), ( sum_nf * inv_nf ), -1.0f ),-        Vector4( 0.0f, 0.0f, ( ( n2 * inv_nf ) * zFar ), 0.0f )-    );-}--inline const Matrix4 Matrix4::orthographic( float left, float right, float bottom, float top, float zNear, float zFar )-{-    float sum_rl, sum_tb, sum_nf, inv_rl, inv_tb, inv_nf;-    sum_rl = ( right + left );-    sum_tb = ( top + bottom );-    sum_nf = ( zNear + zFar );-    inv_rl = ( 1.0f / ( right - left ) );-    inv_tb = ( 1.0f / ( top - bottom ) );-    inv_nf = ( 1.0f / ( zNear - zFar ) );-    return Matrix4(-        Vector4( ( inv_rl + inv_rl ), 0.0f, 0.0f, 0.0f ),-        Vector4( 0.0f, ( inv_tb + inv_tb ), 0.0f, 0.0f ),-        Vector4( 0.0f, 0.0f, ( inv_nf + inv_nf ), 0.0f ),-        Vector4( ( -sum_rl * inv_rl ), ( -sum_tb * inv_tb ), ( sum_nf * inv_nf ), 1.0f )-    );-}--inline const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 )-{-    return Matrix4(-        select( mat0.getCol0(), mat1.getCol0(), select1 ),-        select( mat0.getCol1(), mat1.getCol1(), select1 ),-        select( mat0.getCol2(), mat1.getCol2(), select1 ),-        select( mat0.getCol3(), mat1.getCol3(), select1 )-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Matrix4 & mat )-{-    print( mat.getRow( 0 ) );-    print( mat.getRow( 1 ) );-    print( mat.getRow( 2 ) );-    print( mat.getRow( 3 ) );-}--inline void print( const Matrix4 & mat, const char * name )-{-    printf("%s:\n", name);-    print( mat );-}--#endif--inline Transform3::Transform3( const Transform3 & tfrm )-{-    mCol0 = tfrm.mCol0;-    mCol1 = tfrm.mCol1;-    mCol2 = tfrm.mCol2;-    mCol3 = tfrm.mCol3;-}--inline Transform3::Transform3( float scalar )-{-    mCol0 = Vector3( scalar );-    mCol1 = Vector3( scalar );-    mCol2 = Vector3( scalar );-    mCol3 = Vector3( scalar );-}--inline Transform3::Transform3( const Vector3 & _col0, const Vector3 & _col1, const Vector3 & _col2, const Vector3 & _col3 )-{-    mCol0 = _col0;-    mCol1 = _col1;-    mCol2 = _col2;-    mCol3 = _col3;-}--inline Transform3::Transform3( const Matrix3 & tfrm, const Vector3 & translateVec )-{-    this->setUpper3x3( tfrm );-    this->setTranslation( translateVec );-}--inline Transform3::Transform3( const Quat & unitQuat, const Vector3 & translateVec )-{-    this->setUpper3x3( Matrix3( unitQuat ) );-    this->setTranslation( translateVec );-}--inline Transform3 & Transform3::setCol0( const Vector3 & _col0 )-{-    mCol0 = _col0;-    return *this;-}--inline Transform3 & Transform3::setCol1( const Vector3 & _col1 )-{-    mCol1 = _col1;-    return *this;-}--inline Transform3 & Transform3::setCol2( const Vector3 & _col2 )-{-    mCol2 = _col2;-    return *this;-}--inline Transform3 & Transform3::setCol3( const Vector3 & _col3 )-{-    mCol3 = _col3;-    return *this;-}--inline Transform3 & Transform3::setCol( int col, const Vector3 & vec )-{-    *(&mCol0 + col) = vec;-    return *this;-}--inline Transform3 & Transform3::setRow( int row, const Vector4 & vec )-{-    mCol0.setElem( row, vec.getElem( 0 ) );-    mCol1.setElem( row, vec.getElem( 1 ) );-    mCol2.setElem( row, vec.getElem( 2 ) );-    mCol3.setElem( row, vec.getElem( 3 ) );-    return *this;-}--inline Transform3 & Transform3::setElem( int col, int row, float val )-{-    Vector3 tmpV3_0;-    tmpV3_0 = this->getCol( col );-    tmpV3_0.setElem( row, val );-    this->setCol( col, tmpV3_0 );-    return *this;-}--inline float Transform3::getElem( int col, int row ) const-{-    return this->getCol( col ).getElem( row );-}--inline const Vector3 Transform3::getCol0( ) const-{-    return mCol0;-}--inline const Vector3 Transform3::getCol1( ) const-{-    return mCol1;-}--inline const Vector3 Transform3::getCol2( ) const-{-    return mCol2;-}--inline const Vector3 Transform3::getCol3( ) const-{-    return mCol3;-}--inline const Vector3 Transform3::getCol( int col ) const-{-    return *(&mCol0 + col);-}--inline const Vector4 Transform3::getRow( int row ) const-{-    return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );-}--inline Vector3 & Transform3::operator []( int col )-{-    return *(&mCol0 + col);-}--inline const Vector3 Transform3::operator []( int col ) const-{-    return *(&mCol0 + col);-}--inline Transform3 & Transform3::operator =( const Transform3 & tfrm )-{-    mCol0 = tfrm.mCol0;-    mCol1 = tfrm.mCol1;-    mCol2 = tfrm.mCol2;-    mCol3 = tfrm.mCol3;-    return *this;-}--inline const Transform3 inverse( const Transform3 & tfrm )-{-    Vector3 tmp0, tmp1, tmp2, inv0, inv1, inv2;-    float detinv;-    tmp0 = cross( tfrm.getCol1(), tfrm.getCol2() );-    tmp1 = cross( tfrm.getCol2(), tfrm.getCol0() );-    tmp2 = cross( tfrm.getCol0(), tfrm.getCol1() );-    detinv = ( 1.0f / dot( tfrm.getCol2(), tmp2 ) );-    inv0 = Vector3( ( tmp0.getX() * detinv ), ( tmp1.getX() * detinv ), ( tmp2.getX() * detinv ) );-    inv1 = Vector3( ( tmp0.getY() * detinv ), ( tmp1.getY() * detinv ), ( tmp2.getY() * detinv ) );-    inv2 = Vector3( ( tmp0.getZ() * detinv ), ( tmp1.getZ() * detinv ), ( tmp2.getZ() * detinv ) );-    return Transform3(-        inv0,-        inv1,-        inv2,-        Vector3( ( -( ( inv0 * tfrm.getCol3().getX() ) + ( ( inv1 * tfrm.getCol3().getY() ) + ( inv2 * tfrm.getCol3().getZ() ) ) ) ) )-    );-}--inline const Transform3 orthoInverse( const Transform3 & tfrm )-{-    Vector3 inv0, inv1, inv2;-    inv0 = Vector3( tfrm.getCol0().getX(), tfrm.getCol1().getX(), tfrm.getCol2().getX() );-    inv1 = Vector3( tfrm.getCol0().getY(), tfrm.getCol1().getY(), tfrm.getCol2().getY() );-    inv2 = Vector3( tfrm.getCol0().getZ(), tfrm.getCol1().getZ(), tfrm.getCol2().getZ() );-    return Transform3(-        inv0,-        inv1,-        inv2,-        Vector3( ( -( ( inv0 * tfrm.getCol3().getX() ) + ( ( inv1 * tfrm.getCol3().getY() ) + ( inv2 * tfrm.getCol3().getZ() ) ) ) ) )-    );-}--inline const Transform3 absPerElem( const Transform3 & tfrm )-{-    return Transform3(-        absPerElem( tfrm.getCol0() ),-        absPerElem( tfrm.getCol1() ),-        absPerElem( tfrm.getCol2() ),-        absPerElem( tfrm.getCol3() )-    );-}--inline const Vector3 Transform3::operator *( const Vector3 & vec ) const-{-    return Vector3(-        ( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),-        ( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),-        ( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) )-    );-}--inline const Point3 Transform3::operator *( const Point3 & pnt ) const-{-    return Point3(-        ( ( ( ( mCol0.getX() * pnt.getX() ) + ( mCol1.getX() * pnt.getY() ) ) + ( mCol2.getX() * pnt.getZ() ) ) + mCol3.getX() ),-        ( ( ( ( mCol0.getY() * pnt.getX() ) + ( mCol1.getY() * pnt.getY() ) ) + ( mCol2.getY() * pnt.getZ() ) ) + mCol3.getY() ),-        ( ( ( ( mCol0.getZ() * pnt.getX() ) + ( mCol1.getZ() * pnt.getY() ) ) + ( mCol2.getZ() * pnt.getZ() ) ) + mCol3.getZ() )-    );-}--inline const Transform3 Transform3::operator *( const Transform3 & tfrm ) const-{-    return Transform3(-        ( *this * tfrm.mCol0 ),-        ( *this * tfrm.mCol1 ),-        ( *this * tfrm.mCol2 ),-        Vector3( ( *this * Point3( tfrm.mCol3 ) ) )-    );-}--inline Transform3 & Transform3::operator *=( const Transform3 & tfrm )-{-    *this = *this * tfrm;-    return *this;-}--inline const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 )-{-    return Transform3(-        mulPerElem( tfrm0.getCol0(), tfrm1.getCol0() ),-        mulPerElem( tfrm0.getCol1(), tfrm1.getCol1() ),-        mulPerElem( tfrm0.getCol2(), tfrm1.getCol2() ),-        mulPerElem( tfrm0.getCol3(), tfrm1.getCol3() )-    );-}--inline const Transform3 Transform3::identity( )-{-    return Transform3(-        Vector3::xAxis( ),-        Vector3::yAxis( ),-        Vector3::zAxis( ),-        Vector3( 0.0f )-    );-}--inline Transform3 & Transform3::setUpper3x3( const Matrix3 & tfrm )-{-    mCol0 = tfrm.getCol0();-    mCol1 = tfrm.getCol1();-    mCol2 = tfrm.getCol2();-    return *this;-}--inline const Matrix3 Transform3::getUpper3x3( ) const-{-    return Matrix3( mCol0, mCol1, mCol2 );-}--inline Transform3 & Transform3::setTranslation( const Vector3 & translateVec )-{-    mCol3 = translateVec;-    return *this;-}--inline const Vector3 Transform3::getTranslation( ) const-{-    return mCol3;-}--inline const Transform3 Transform3::rotationX( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Transform3(-        Vector3::xAxis( ),-        Vector3( 0.0f, c, s ),-        Vector3( 0.0f, -s, c ),-        Vector3( 0.0f )-    );-}--inline const Transform3 Transform3::rotationY( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Transform3(-        Vector3( c, 0.0f, -s ),-        Vector3::yAxis( ),-        Vector3( s, 0.0f, c ),-        Vector3( 0.0f )-    );-}--inline const Transform3 Transform3::rotationZ( float radians )-{-    float s, c;-    s = sinf( radians );-    c = cosf( radians );-    return Transform3(-        Vector3( c, s, 0.0f ),-        Vector3( -s, c, 0.0f ),-        Vector3::zAxis( ),-        Vector3( 0.0f )-    );-}--inline const Transform3 Transform3::rotationZYX( const Vector3 & radiansXYZ )-{-    float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;-    sX = sinf( radiansXYZ.getX() );-    cX = cosf( radiansXYZ.getX() );-    sY = sinf( radiansXYZ.getY() );-    cY = cosf( radiansXYZ.getY() );-    sZ = sinf( radiansXYZ.getZ() );-    cZ = cosf( radiansXYZ.getZ() );-    tmp0 = ( cZ * sY );-    tmp1 = ( sZ * sY );-    return Transform3(-        Vector3( ( cZ * cY ), ( sZ * cY ), -sY ),-        Vector3( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ) ),-        Vector3( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ) ),-        Vector3( 0.0f )-    );-}--inline const Transform3 Transform3::rotation( float radians, const Vector3 & unitVec )-{-    return Transform3( Matrix3::rotation( radians, unitVec ), Vector3( 0.0f ) );-}--inline const Transform3 Transform3::rotation( const Quat & unitQuat )-{-    return Transform3( Matrix3( unitQuat ), Vector3( 0.0f ) );-}--inline const Transform3 Transform3::scale( const Vector3 & scaleVec )-{-    return Transform3(-        Vector3( scaleVec.getX(), 0.0f, 0.0f ),-        Vector3( 0.0f, scaleVec.getY(), 0.0f ),-        Vector3( 0.0f, 0.0f, scaleVec.getZ() ),-        Vector3( 0.0f )-    );-}--inline const Transform3 appendScale( const Transform3 & tfrm, const Vector3 & scaleVec )-{-    return Transform3(-        ( tfrm.getCol0() * scaleVec.getX( ) ),-        ( tfrm.getCol1() * scaleVec.getY( ) ),-        ( tfrm.getCol2() * scaleVec.getZ( ) ),-        tfrm.getCol3()-    );-}--inline const Transform3 prependScale( const Vector3 & scaleVec, const Transform3 & tfrm )-{-    return Transform3(-        mulPerElem( tfrm.getCol0(), scaleVec ),-        mulPerElem( tfrm.getCol1(), scaleVec ),-        mulPerElem( tfrm.getCol2(), scaleVec ),-        mulPerElem( tfrm.getCol3(), scaleVec )-    );-}--inline const Transform3 Transform3::translation( const Vector3 & translateVec )-{-    return Transform3(-        Vector3::xAxis( ),-        Vector3::yAxis( ),-        Vector3::zAxis( ),-        translateVec-    );-}--inline const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 )-{-    return Transform3(-        select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),-        select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),-        select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),-        select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Transform3 & tfrm )-{-    print( tfrm.getRow( 0 ) );-    print( tfrm.getRow( 1 ) );-    print( tfrm.getRow( 2 ) );-}--inline void print( const Transform3 & tfrm, const char * name )-{-    printf("%s:\n", name);-    print( tfrm );-}--#endif--inline Quat::Quat( const Matrix3 & tfrm )-{-    float trace, radicand, scale, xx, yx, zx, xy, yy, zy, xz, yz, zz, tmpx, tmpy, tmpz, tmpw, qx, qy, qz, qw;-    int negTrace, ZgtX, ZgtY, YgtX;-    int largestXorY, largestYorZ, largestZorX;--    xx = tfrm.getCol0().getX();-    yx = tfrm.getCol0().getY();-    zx = tfrm.getCol0().getZ();-    xy = tfrm.getCol1().getX();-    yy = tfrm.getCol1().getY();-    zy = tfrm.getCol1().getZ();-    xz = tfrm.getCol2().getX();-    yz = tfrm.getCol2().getY();-    zz = tfrm.getCol2().getZ();--    trace = ( ( xx + yy ) + zz );--    negTrace = ( trace < 0.0f );-    ZgtX = zz > xx;-    ZgtY = zz > yy;-    YgtX = yy > xx;-    largestXorY = ( !ZgtX || !ZgtY ) && negTrace;-    largestYorZ = ( YgtX || ZgtX ) && negTrace;-    largestZorX = ( ZgtY || !YgtX ) && negTrace;-    -    if ( largestXorY )-    {-        zz = -zz;-        xy = -xy;-    }-    if ( largestYorZ )-    {-        xx = -xx;-        yz = -yz;-    }-    if ( largestZorX )-    {-        yy = -yy;-        zx = -zx;-    }--    radicand = ( ( ( xx + yy ) + zz ) + 1.0f );-    scale = ( 0.5f * ( 1.0f / sqrtf( radicand ) ) );--    tmpx = ( ( zy - yz ) * scale );-    tmpy = ( ( xz - zx ) * scale );-    tmpz = ( ( yx - xy ) * scale );-    tmpw = ( radicand * scale );-    qx = tmpx;-    qy = tmpy;-    qz = tmpz;-    qw = tmpw;--    if ( largestXorY )-    {-        qx = tmpw;-        qy = tmpz;-        qz = tmpy;-        qw = tmpx;-    }-    if ( largestYorZ )-    {-        tmpx = qx;-        tmpz = qz;-        qx = qy;-        qy = tmpx;-        qz = qw;-        qw = tmpz;-    }--    mX = qx;-    mY = qy;-    mZ = qz;-    mW = qw;-}--inline const Matrix3 outer( const Vector3 & tfrm0, const Vector3 & tfrm1 )-{-    return Matrix3(-        ( tfrm0 * tfrm1.getX( ) ),-        ( tfrm0 * tfrm1.getY( ) ),-        ( tfrm0 * tfrm1.getZ( ) )-    );-}--inline const Matrix4 outer( const Vector4 & tfrm0, const Vector4 & tfrm1 )-{-    return Matrix4(-        ( tfrm0 * tfrm1.getX( ) ),-        ( tfrm0 * tfrm1.getY( ) ),-        ( tfrm0 * tfrm1.getZ( ) ),-        ( tfrm0 * tfrm1.getW( ) )-    );-}--inline const Vector3 rowMul( const Vector3 & vec, const Matrix3 & mat )-{-    return Vector3(-        ( ( ( vec.getX() * mat.getCol0().getX() ) + ( vec.getY() * mat.getCol0().getY() ) ) + ( vec.getZ() * mat.getCol0().getZ() ) ),-        ( ( ( vec.getX() * mat.getCol1().getX() ) + ( vec.getY() * mat.getCol1().getY() ) ) + ( vec.getZ() * mat.getCol1().getZ() ) ),-        ( ( ( vec.getX() * mat.getCol2().getX() ) + ( vec.getY() * mat.getCol2().getY() ) ) + ( vec.getZ() * mat.getCol2().getZ() ) )-    );-}--inline const Matrix3 crossMatrix( const Vector3 & vec )-{-    return Matrix3(-        Vector3( 0.0f, vec.getZ(), -vec.getY() ),-        Vector3( -vec.getZ(), 0.0f, vec.getX() ),-        Vector3( vec.getY(), -vec.getX(), 0.0f )-    );-}--inline const Matrix3 crossMatrixMul( const Vector3 & vec, const Matrix3 & mat )-{-    return Matrix3( cross( vec, mat.getCol0() ), cross( vec, mat.getCol1() ), cross( vec, mat.getCol2() ) );+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.++*/++#ifndef _VECTORMATH_MAT_AOS_CPP_H+#define _VECTORMATH_MAT_AOS_CPP_H++namespace Vectormath {+namespace Aos {++//-----------------------------------------------------------------------------+// Constants++#define _VECTORMATH_PI_OVER_2 1.570796327f++//-----------------------------------------------------------------------------+// Definitions++inline Matrix3::Matrix3( const Matrix3 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+}++inline Matrix3::Matrix3( float scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+}++inline Matrix3::Matrix3( const Quat & unitQuat )+{+float qx, qy, qz, qw, qx2, qy2, qz2, qxqx2, qyqy2, qzqz2, qxqy2, qyqz2, qzqw2, qxqz2, qyqw2, qxqw2;+qx = unitQuat.getX();+qy = unitQuat.getY();+qz = unitQuat.getZ();+qw = unitQuat.getW();+qx2 = ( qx + qx );+qy2 = ( qy + qy );+qz2 = ( qz + qz );+qxqx2 = ( qx * qx2 );+qxqy2 = ( qx * qy2 );+qxqz2 = ( qx * qz2 );+qxqw2 = ( qw * qx2 );+qyqy2 = ( qy * qy2 );+qyqz2 = ( qy * qz2 );+qyqw2 = ( qw * qy2 );+qzqz2 = ( qz * qz2 );+qzqw2 = ( qw * qz2 );+mCol0 = Vector3( ( ( 1.0f - qyqy2 ) - qzqz2 ), ( qxqy2 + qzqw2 ), ( qxqz2 - qyqw2 ) );+mCol1 = Vector3( ( qxqy2 - qzqw2 ), ( ( 1.0f - qxqx2 ) - qzqz2 ), ( qyqz2 + qxqw2 ) );+mCol2 = Vector3( ( qxqz2 + qyqw2 ), ( qyqz2 - qxqw2 ), ( ( 1.0f - qxqx2 ) - qyqy2 ) );+}++inline Matrix3::Matrix3( const Vector3 & _col0, const Vector3 & _col1, const Vector3 & _col2 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+}++inline Matrix3 & Matrix3::setCol0( const Vector3 & _col0 )+{+mCol0 = _col0;+return *this;+}++inline Matrix3 & Matrix3::setCol1( const Vector3 & _col1 )+{+mCol1 = _col1;+return *this;+}++inline Matrix3 & Matrix3::setCol2( const Vector3 & _col2 )+{+mCol2 = _col2;+return *this;+}++inline Matrix3 & Matrix3::setCol( int col, const Vector3 & vec )+{+*(&mCol0 + col) = vec;+return *this;+}++inline Matrix3 & Matrix3::setRow( int row, const Vector3 & vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+return *this;+}++inline Matrix3 & Matrix3::setElem( int col, int row, float val )+{+Vector3 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++inline float Matrix3::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++inline const Vector3 Matrix3::getCol0( ) const+{+return mCol0;+}++inline const Vector3 Matrix3::getCol1( ) const+{+return mCol1;+}++inline const Vector3 Matrix3::getCol2( ) const+{+return mCol2;+}++inline const Vector3 Matrix3::getCol( int col ) const+{+return *(&mCol0 + col);+}++inline const Vector3 Matrix3::getRow( int row ) const+{+return Vector3( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ) );+}++inline Vector3 & Matrix3::operator []( int col )+{+return *(&mCol0 + col);+}++inline const Vector3 Matrix3::operator []( int col ) const+{+return *(&mCol0 + col);+}++inline Matrix3 & Matrix3::operator =( const Matrix3 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+return *this;+}++inline const Matrix3 transpose( const Matrix3 & mat )+{+return Matrix3(+Vector3( mat.getCol0().getX(), mat.getCol1().getX(), mat.getCol2().getX() ),+Vector3( mat.getCol0().getY(), mat.getCol1().getY(), mat.getCol2().getY() ),+Vector3( mat.getCol0().getZ(), mat.getCol1().getZ(), mat.getCol2().getZ() )+);+}++inline const Matrix3 inverse( const Matrix3 & mat )+{+Vector3 tmp0, tmp1, tmp2;+float detinv;+tmp0 = cross( mat.getCol1(), mat.getCol2() );+tmp1 = cross( mat.getCol2(), mat.getCol0() );+tmp2 = cross( mat.getCol0(), mat.getCol1() );+detinv = ( 1.0f / dot( mat.getCol2(), tmp2 ) );+return Matrix3(+Vector3( ( tmp0.getX() * detinv ), ( tmp1.getX() * detinv ), ( tmp2.getX() * detinv ) ),+Vector3( ( tmp0.getY() * detinv ), ( tmp1.getY() * detinv ), ( tmp2.getY() * detinv ) ),+Vector3( ( tmp0.getZ() * detinv ), ( tmp1.getZ() * detinv ), ( tmp2.getZ() * detinv ) )+);+}++inline float determinant( const Matrix3 & mat )+{+return dot( mat.getCol2(), cross( mat.getCol0(), mat.getCol1() ) );+}++inline const Matrix3 Matrix3::operator +( const Matrix3 & mat ) const+{+return Matrix3(+( mCol0 + mat.mCol0 ),+( mCol1 + mat.mCol1 ),+( mCol2 + mat.mCol2 )+);+}++inline const Matrix3 Matrix3::operator -( const Matrix3 & mat ) const+{+return Matrix3(+( mCol0 - mat.mCol0 ),+( mCol1 - mat.mCol1 ),+( mCol2 - mat.mCol2 )+);+}++inline Matrix3 & Matrix3::operator +=( const Matrix3 & mat )+{+*this = *this + mat;+return *this;+}++inline Matrix3 & Matrix3::operator -=( const Matrix3 & mat )+{+*this = *this - mat;+return *this;+}++inline const Matrix3 Matrix3::operator -( ) const+{+return Matrix3(+( -mCol0 ),+( -mCol1 ),+( -mCol2 )+);+}++inline const Matrix3 absPerElem( const Matrix3 & mat )+{+return Matrix3(+absPerElem( mat.getCol0() ),+absPerElem( mat.getCol1() ),+absPerElem( mat.getCol2() )+);+}++inline const Matrix3 Matrix3::operator *( float scalar ) const+{+return Matrix3(+( mCol0 * scalar ),+( mCol1 * scalar ),+( mCol2 * scalar )+);+}++inline Matrix3 & Matrix3::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++inline const Matrix3 operator *( float scalar, const Matrix3 & mat )+{+return mat * scalar;+}++inline const Vector3 Matrix3::operator *( const Vector3 & vec ) const+{+return Vector3(+( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),+( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),+( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) )+);+}++inline const Matrix3 Matrix3::operator *( const Matrix3 & mat ) const+{+return Matrix3(+( *this * mat.mCol0 ),+( *this * mat.mCol1 ),+( *this * mat.mCol2 )+);+}++inline Matrix3 & Matrix3::operator *=( const Matrix3 & mat )+{+*this = *this * mat;+return *this;+}++inline const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 )+{+return Matrix3(+mulPerElem( mat0.getCol0(), mat1.getCol0() ),+mulPerElem( mat0.getCol1(), mat1.getCol1() ),+mulPerElem( mat0.getCol2(), mat1.getCol2() )+);+}++inline const Matrix3 Matrix3::identity( )+{+return Matrix3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( )+);+}++inline const Matrix3 Matrix3::rotationX( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix3(+Vector3::xAxis( ),+Vector3( 0.0f, c, s ),+Vector3( 0.0f, -s, c )+);+}++inline const Matrix3 Matrix3::rotationY( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix3(+Vector3( c, 0.0f, -s ),+Vector3::yAxis( ),+Vector3( s, 0.0f, c )+);+}++inline const Matrix3 Matrix3::rotationZ( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix3(+Vector3( c, s, 0.0f ),+Vector3( -s, c, 0.0f ),+Vector3::zAxis( )+);+}++inline const Matrix3 Matrix3::rotationZYX( const Vector3 & radiansXYZ )+{+float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;+sX = sinf( radiansXYZ.getX() );+cX = cosf( radiansXYZ.getX() );+sY = sinf( radiansXYZ.getY() );+cY = cosf( radiansXYZ.getY() );+sZ = sinf( radiansXYZ.getZ() );+cZ = cosf( radiansXYZ.getZ() );+tmp0 = ( cZ * sY );+tmp1 = ( sZ * sY );+return Matrix3(+Vector3( ( cZ * cY ), ( sZ * cY ), -sY ),+Vector3( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ) ),+Vector3( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ) )+);+}++inline const Matrix3 Matrix3::rotation( float radians, const Vector3 & unitVec )+{+float x, y, z, s, c, oneMinusC, xy, yz, zx;+s = sinf( radians );+c = cosf( radians );+x = unitVec.getX();+y = unitVec.getY();+z = unitVec.getZ();+xy = ( x * y );+yz = ( y * z );+zx = ( z * x );+oneMinusC = ( 1.0f - c );+return Matrix3(+Vector3( ( ( ( x * x ) * oneMinusC ) + c ), ( ( xy * oneMinusC ) + ( z * s ) ), ( ( zx * oneMinusC ) - ( y * s ) ) ),+Vector3( ( ( xy * oneMinusC ) - ( z * s ) ), ( ( ( y * y ) * oneMinusC ) + c ), ( ( yz * oneMinusC ) + ( x * s ) ) ),+Vector3( ( ( zx * oneMinusC ) + ( y * s ) ), ( ( yz * oneMinusC ) - ( x * s ) ), ( ( ( z * z ) * oneMinusC ) + c ) )+);+}++inline const Matrix3 Matrix3::rotation( const Quat & unitQuat )+{+return Matrix3( unitQuat );+}++inline const Matrix3 Matrix3::scale( const Vector3 & scaleVec )+{+return Matrix3(+Vector3( scaleVec.getX(), 0.0f, 0.0f ),+Vector3( 0.0f, scaleVec.getY(), 0.0f ),+Vector3( 0.0f, 0.0f, scaleVec.getZ() )+);+}++inline const Matrix3 appendScale( const Matrix3 & mat, const Vector3 & scaleVec )+{+return Matrix3(+( mat.getCol0() * scaleVec.getX( ) ),+( mat.getCol1() * scaleVec.getY( ) ),+( mat.getCol2() * scaleVec.getZ( ) )+);+}++inline const Matrix3 prependScale( const Vector3 & scaleVec, const Matrix3 & mat )+{+return Matrix3(+mulPerElem( mat.getCol0(), scaleVec ),+mulPerElem( mat.getCol1(), scaleVec ),+mulPerElem( mat.getCol2(), scaleVec )+);+}++inline const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 )+{+return Matrix3(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Matrix3 & mat )+{+print( mat.getRow( 0 ) );+print( mat.getRow( 1 ) );+print( mat.getRow( 2 ) );+}++inline void print( const Matrix3 & mat, const char * name )+{+printf("%s:\n", name);+print( mat );+}++#endif++inline Matrix4::Matrix4( const Matrix4 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+mCol3 = mat.mCol3;+}++inline Matrix4::Matrix4( float scalar )+{+mCol0 = Vector4( scalar );+mCol1 = Vector4( scalar );+mCol2 = Vector4( scalar );+mCol3 = Vector4( scalar );+}++inline Matrix4::Matrix4( const Transform3 & mat )+{+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( mat.getCol3(), 1.0f );+}++inline Matrix4::Matrix4( const Vector4 & _col0, const Vector4 & _col1, const Vector4 & _col2, const Vector4 & _col3 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+mCol3 = _col3;+}++inline Matrix4::Matrix4( const Matrix3 & mat, const Vector3 & translateVec )+{+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( translateVec, 1.0f );+}++inline Matrix4::Matrix4( const Quat & unitQuat, const Vector3 & translateVec )+{+Matrix3 mat;+mat = Matrix3( unitQuat );+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( translateVec, 1.0f );+}++inline Matrix4 & Matrix4::setCol0( const Vector4 & _col0 )+{+mCol0 = _col0;+return *this;+}++inline Matrix4 & Matrix4::setCol1( const Vector4 & _col1 )+{+mCol1 = _col1;+return *this;+}++inline Matrix4 & Matrix4::setCol2( const Vector4 & _col2 )+{+mCol2 = _col2;+return *this;+}++inline Matrix4 & Matrix4::setCol3( const Vector4 & _col3 )+{+mCol3 = _col3;+return *this;+}++inline Matrix4 & Matrix4::setCol( int col, const Vector4 & vec )+{+*(&mCol0 + col) = vec;+return *this;+}++inline Matrix4 & Matrix4::setRow( int row, const Vector4 & vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+mCol3.setElem( row, vec.getElem( 3 ) );+return *this;+}++inline Matrix4 & Matrix4::setElem( int col, int row, float val )+{+Vector4 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++inline float Matrix4::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++inline const Vector4 Matrix4::getCol0( ) const+{+return mCol0;+}++inline const Vector4 Matrix4::getCol1( ) const+{+return mCol1;+}++inline const Vector4 Matrix4::getCol2( ) const+{+return mCol2;+}++inline const Vector4 Matrix4::getCol3( ) const+{+return mCol3;+}++inline const Vector4 Matrix4::getCol( int col ) const+{+return *(&mCol0 + col);+}++inline const Vector4 Matrix4::getRow( int row ) const+{+return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );+}++inline Vector4 & Matrix4::operator []( int col )+{+return *(&mCol0 + col);+}++inline const Vector4 Matrix4::operator []( int col ) const+{+return *(&mCol0 + col);+}++inline Matrix4 & Matrix4::operator =( const Matrix4 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+mCol3 = mat.mCol3;+return *this;+}++inline const Matrix4 transpose( const Matrix4 & mat )+{+return Matrix4(+Vector4( mat.getCol0().getX(), mat.getCol1().getX(), mat.getCol2().getX(), mat.getCol3().getX() ),+Vector4( mat.getCol0().getY(), mat.getCol1().getY(), mat.getCol2().getY(), mat.getCol3().getY() ),+Vector4( mat.getCol0().getZ(), mat.getCol1().getZ(), mat.getCol2().getZ(), mat.getCol3().getZ() ),+Vector4( mat.getCol0().getW(), mat.getCol1().getW(), mat.getCol2().getW(), mat.getCol3().getW() )+);+}++inline const Matrix4 inverse( const Matrix4 & mat )+{+Vector4 res0, res1, res2, res3;+float mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, detInv;+mA = mat.getCol0().getX();+mB = mat.getCol0().getY();+mC = mat.getCol0().getZ();+mD = mat.getCol0().getW();+mE = mat.getCol1().getX();+mF = mat.getCol1().getY();+mG = mat.getCol1().getZ();+mH = mat.getCol1().getW();+mI = mat.getCol2().getX();+mJ = mat.getCol2().getY();+mK = mat.getCol2().getZ();+mL = mat.getCol2().getW();+mM = mat.getCol3().getX();+mN = mat.getCol3().getY();+mO = mat.getCol3().getZ();+mP = mat.getCol3().getW();+tmp0 = ( ( mK * mD ) - ( mC * mL ) );+tmp1 = ( ( mO * mH ) - ( mG * mP ) );+tmp2 = ( ( mB * mK ) - ( mJ * mC ) );+tmp3 = ( ( mF * mO ) - ( mN * mG ) );+tmp4 = ( ( mJ * mD ) - ( mB * mL ) );+tmp5 = ( ( mN * mH ) - ( mF * mP ) );+res0.setX( ( ( ( mJ * tmp1 ) - ( mL * tmp3 ) ) - ( mK * tmp5 ) ) );+res0.setY( ( ( ( mN * tmp0 ) - ( mP * tmp2 ) ) - ( mO * tmp4 ) ) );+res0.setZ( ( ( ( mD * tmp3 ) + ( mC * tmp5 ) ) - ( mB * tmp1 ) ) );+res0.setW( ( ( ( mH * tmp2 ) + ( mG * tmp4 ) ) - ( mF * tmp0 ) ) );+detInv = ( 1.0f / ( ( ( ( mA * res0.getX() ) + ( mE * res0.getY() ) ) + ( mI * res0.getZ() ) ) + ( mM * res0.getW() ) ) );+res1.setX( ( mI * tmp1 ) );+res1.setY( ( mM * tmp0 ) );+res1.setZ( ( mA * tmp1 ) );+res1.setW( ( mE * tmp0 ) );+res3.setX( ( mI * tmp3 ) );+res3.setY( ( mM * tmp2 ) );+res3.setZ( ( mA * tmp3 ) );+res3.setW( ( mE * tmp2 ) );+res2.setX( ( mI * tmp5 ) );+res2.setY( ( mM * tmp4 ) );+res2.setZ( ( mA * tmp5 ) );+res2.setW( ( mE * tmp4 ) );+tmp0 = ( ( mI * mB ) - ( mA * mJ ) );+tmp1 = ( ( mM * mF ) - ( mE * mN ) );+tmp2 = ( ( mI * mD ) - ( mA * mL ) );+tmp3 = ( ( mM * mH ) - ( mE * mP ) );+tmp4 = ( ( mI * mC ) - ( mA * mK ) );+tmp5 = ( ( mM * mG ) - ( mE * mO ) );+res2.setX( ( ( ( mL * tmp1 ) - ( mJ * tmp3 ) ) + res2.getX() ) );+res2.setY( ( ( ( mP * tmp0 ) - ( mN * tmp2 ) ) + res2.getY() ) );+res2.setZ( ( ( ( mB * tmp3 ) - ( mD * tmp1 ) ) - res2.getZ() ) );+res2.setW( ( ( ( mF * tmp2 ) - ( mH * tmp0 ) ) - res2.getW() ) );+res3.setX( ( ( ( mJ * tmp5 ) - ( mK * tmp1 ) ) + res3.getX() ) );+res3.setY( ( ( ( mN * tmp4 ) - ( mO * tmp0 ) ) + res3.getY() ) );+res3.setZ( ( ( ( mC * tmp1 ) - ( mB * tmp5 ) ) - res3.getZ() ) );+res3.setW( ( ( ( mG * tmp0 ) - ( mF * tmp4 ) ) - res3.getW() ) );+res1.setX( ( ( ( mK * tmp3 ) - ( mL * tmp5 ) ) - res1.getX() ) );+res1.setY( ( ( ( mO * tmp2 ) - ( mP * tmp4 ) ) - res1.getY() ) );+res1.setZ( ( ( ( mD * tmp5 ) - ( mC * tmp3 ) ) + res1.getZ() ) );+res1.setW( ( ( ( mH * tmp4 ) - ( mG * tmp2 ) ) + res1.getW() ) );+return Matrix4(+( res0 * detInv ),+( res1 * detInv ),+( res2 * detInv ),+( res3 * detInv )+);+}++inline const Matrix4 affineInverse( const Matrix4 & mat )+{+Transform3 affineMat;+affineMat.setCol0( mat.getCol0().getXYZ( ) );+affineMat.setCol1( mat.getCol1().getXYZ( ) );+affineMat.setCol2( mat.getCol2().getXYZ( ) );+affineMat.setCol3( mat.getCol3().getXYZ( ) );+return Matrix4( inverse( affineMat ) );+}++inline const Matrix4 orthoInverse( const Matrix4 & mat )+{+Transform3 affineMat;+affineMat.setCol0( mat.getCol0().getXYZ( ) );+affineMat.setCol1( mat.getCol1().getXYZ( ) );+affineMat.setCol2( mat.getCol2().getXYZ( ) );+affineMat.setCol3( mat.getCol3().getXYZ( ) );+return Matrix4( orthoInverse( affineMat ) );+}++inline float determinant( const Matrix4 & mat )+{+float dx, dy, dz, dw, mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;+mA = mat.getCol0().getX();+mB = mat.getCol0().getY();+mC = mat.getCol0().getZ();+mD = mat.getCol0().getW();+mE = mat.getCol1().getX();+mF = mat.getCol1().getY();+mG = mat.getCol1().getZ();+mH = mat.getCol1().getW();+mI = mat.getCol2().getX();+mJ = mat.getCol2().getY();+mK = mat.getCol2().getZ();+mL = mat.getCol2().getW();+mM = mat.getCol3().getX();+mN = mat.getCol3().getY();+mO = mat.getCol3().getZ();+mP = mat.getCol3().getW();+tmp0 = ( ( mK * mD ) - ( mC * mL ) );+tmp1 = ( ( mO * mH ) - ( mG * mP ) );+tmp2 = ( ( mB * mK ) - ( mJ * mC ) );+tmp3 = ( ( mF * mO ) - ( mN * mG ) );+tmp4 = ( ( mJ * mD ) - ( mB * mL ) );+tmp5 = ( ( mN * mH ) - ( mF * mP ) );+dx = ( ( ( mJ * tmp1 ) - ( mL * tmp3 ) ) - ( mK * tmp5 ) );+dy = ( ( ( mN * tmp0 ) - ( mP * tmp2 ) ) - ( mO * tmp4 ) );+dz = ( ( ( mD * tmp3 ) + ( mC * tmp5 ) ) - ( mB * tmp1 ) );+dw = ( ( ( mH * tmp2 ) + ( mG * tmp4 ) ) - ( mF * tmp0 ) );+return ( ( ( ( mA * dx ) + ( mE * dy ) ) + ( mI * dz ) ) + ( mM * dw ) );+}++inline const Matrix4 Matrix4::operator +( const Matrix4 & mat ) const+{+return Matrix4(+( mCol0 + mat.mCol0 ),+( mCol1 + mat.mCol1 ),+( mCol2 + mat.mCol2 ),+( mCol3 + mat.mCol3 )+);+}++inline const Matrix4 Matrix4::operator -( const Matrix4 & mat ) const+{+return Matrix4(+( mCol0 - mat.mCol0 ),+( mCol1 - mat.mCol1 ),+( mCol2 - mat.mCol2 ),+( mCol3 - mat.mCol3 )+);+}++inline Matrix4 & Matrix4::operator +=( const Matrix4 & mat )+{+*this = *this + mat;+return *this;+}++inline Matrix4 & Matrix4::operator -=( const Matrix4 & mat )+{+*this = *this - mat;+return *this;+}++inline const Matrix4 Matrix4::operator -( ) const+{+return Matrix4(+( -mCol0 ),+( -mCol1 ),+( -mCol2 ),+( -mCol3 )+);+}++inline const Matrix4 absPerElem( const Matrix4 & mat )+{+return Matrix4(+absPerElem( mat.getCol0() ),+absPerElem( mat.getCol1() ),+absPerElem( mat.getCol2() ),+absPerElem( mat.getCol3() )+);+}++inline const Matrix4 Matrix4::operator *( float scalar ) const+{+return Matrix4(+( mCol0 * scalar ),+( mCol1 * scalar ),+( mCol2 * scalar ),+( mCol3 * scalar )+);+}++inline Matrix4 & Matrix4::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++inline const Matrix4 operator *( float scalar, const Matrix4 & mat )+{+return mat * scalar;+}++inline const Vector4 Matrix4::operator *( const Vector4 & vec ) const+{+return Vector4(+( ( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ) + ( mCol3.getX() * vec.getW() ) ),+( ( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ) + ( mCol3.getY() * vec.getW() ) ),+( ( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) ) + ( mCol3.getZ() * vec.getW() ) ),+( ( ( ( mCol0.getW() * vec.getX() ) + ( mCol1.getW() * vec.getY() ) ) + ( mCol2.getW() * vec.getZ() ) ) + ( mCol3.getW() * vec.getW() ) )+);+}++inline const Vector4 Matrix4::operator *( const Vector3 & vec ) const+{+return Vector4(+( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),+( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),+( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) ),+( ( ( mCol0.getW() * vec.getX() ) + ( mCol1.getW() * vec.getY() ) ) + ( mCol2.getW() * vec.getZ() ) )+);+}++inline const Vector4 Matrix4::operator *( const Point3 & pnt ) const+{+return Vector4(+( ( ( ( mCol0.getX() * pnt.getX() ) + ( mCol1.getX() * pnt.getY() ) ) + ( mCol2.getX() * pnt.getZ() ) ) + mCol3.getX() ),+( ( ( ( mCol0.getY() * pnt.getX() ) + ( mCol1.getY() * pnt.getY() ) ) + ( mCol2.getY() * pnt.getZ() ) ) + mCol3.getY() ),+( ( ( ( mCol0.getZ() * pnt.getX() ) + ( mCol1.getZ() * pnt.getY() ) ) + ( mCol2.getZ() * pnt.getZ() ) ) + mCol3.getZ() ),+( ( ( ( mCol0.getW() * pnt.getX() ) + ( mCol1.getW() * pnt.getY() ) ) + ( mCol2.getW() * pnt.getZ() ) ) + mCol3.getW() )+);+}++inline const Matrix4 Matrix4::operator *( const Matrix4 & mat ) const+{+return Matrix4(+( *this * mat.mCol0 ),+( *this * mat.mCol1 ),+( *this * mat.mCol2 ),+( *this * mat.mCol3 )+);+}++inline Matrix4 & Matrix4::operator *=( const Matrix4 & mat )+{+*this = *this * mat;+return *this;+}++inline const Matrix4 Matrix4::operator *( const Transform3 & tfrm ) const+{+return Matrix4(+( *this * tfrm.getCol0() ),+( *this * tfrm.getCol1() ),+( *this * tfrm.getCol2() ),+( *this * Point3( tfrm.getCol3() ) )+);+}++inline Matrix4 & Matrix4::operator *=( const Transform3 & tfrm )+{+*this = *this * tfrm;+return *this;+}++inline const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 )+{+return Matrix4(+mulPerElem( mat0.getCol0(), mat1.getCol0() ),+mulPerElem( mat0.getCol1(), mat1.getCol1() ),+mulPerElem( mat0.getCol2(), mat1.getCol2() ),+mulPerElem( mat0.getCol3(), mat1.getCol3() )+);+}++inline const Matrix4 Matrix4::identity( )+{+return Matrix4(+Vector4::xAxis( ),+Vector4::yAxis( ),+Vector4::zAxis( ),+Vector4::wAxis( )+);+}++inline Matrix4 & Matrix4::setUpper3x3( const Matrix3 & mat3 )+{+mCol0.setXYZ( mat3.getCol0() );+mCol1.setXYZ( mat3.getCol1() );+mCol2.setXYZ( mat3.getCol2() );+return *this;+}++inline const Matrix3 Matrix4::getUpper3x3( ) const+{+return Matrix3(+mCol0.getXYZ( ),+mCol1.getXYZ( ),+mCol2.getXYZ( )+);+}++inline Matrix4 & Matrix4::setTranslation( const Vector3 & translateVec )+{+mCol3.setXYZ( translateVec );+return *this;+}++inline const Vector3 Matrix4::getTranslation( ) const+{+return mCol3.getXYZ( );+}++inline const Matrix4 Matrix4::rotationX( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix4(+Vector4::xAxis( ),+Vector4( 0.0f, c, s, 0.0f ),+Vector4( 0.0f, -s, c, 0.0f ),+Vector4::wAxis( )+);+}++inline const Matrix4 Matrix4::rotationY( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix4(+Vector4( c, 0.0f, -s, 0.0f ),+Vector4::yAxis( ),+Vector4( s, 0.0f, c, 0.0f ),+Vector4::wAxis( )+);+}++inline const Matrix4 Matrix4::rotationZ( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Matrix4(+Vector4( c, s, 0.0f, 0.0f ),+Vector4( -s, c, 0.0f, 0.0f ),+Vector4::zAxis( ),+Vector4::wAxis( )+);+}++inline const Matrix4 Matrix4::rotationZYX( const Vector3 & radiansXYZ )+{+float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;+sX = sinf( radiansXYZ.getX() );+cX = cosf( radiansXYZ.getX() );+sY = sinf( radiansXYZ.getY() );+cY = cosf( radiansXYZ.getY() );+sZ = sinf( radiansXYZ.getZ() );+cZ = cosf( radiansXYZ.getZ() );+tmp0 = ( cZ * sY );+tmp1 = ( sZ * sY );+return Matrix4(+Vector4( ( cZ * cY ), ( sZ * cY ), -sY, 0.0f ),+Vector4( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ), 0.0f ),+Vector4( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ), 0.0f ),+Vector4::wAxis( )+);+}++inline const Matrix4 Matrix4::rotation( float radians, const Vector3 & unitVec )+{+float x, y, z, s, c, oneMinusC, xy, yz, zx;+s = sinf( radians );+c = cosf( radians );+x = unitVec.getX();+y = unitVec.getY();+z = unitVec.getZ();+xy = ( x * y );+yz = ( y * z );+zx = ( z * x );+oneMinusC = ( 1.0f - c );+return Matrix4(+Vector4( ( ( ( x * x ) * oneMinusC ) + c ), ( ( xy * oneMinusC ) + ( z * s ) ), ( ( zx * oneMinusC ) - ( y * s ) ), 0.0f ),+Vector4( ( ( xy * oneMinusC ) - ( z * s ) ), ( ( ( y * y ) * oneMinusC ) + c ), ( ( yz * oneMinusC ) + ( x * s ) ), 0.0f ),+Vector4( ( ( zx * oneMinusC ) + ( y * s ) ), ( ( yz * oneMinusC ) - ( x * s ) ), ( ( ( z * z ) * oneMinusC ) + c ), 0.0f ),+Vector4::wAxis( )+);+}++inline const Matrix4 Matrix4::rotation( const Quat & unitQuat )+{+return Matrix4( Transform3::rotation( unitQuat ) );+}++inline const Matrix4 Matrix4::scale( const Vector3 & scaleVec )+{+return Matrix4(+Vector4( scaleVec.getX(), 0.0f, 0.0f, 0.0f ),+Vector4( 0.0f, scaleVec.getY(), 0.0f, 0.0f ),+Vector4( 0.0f, 0.0f, scaleVec.getZ(), 0.0f ),+Vector4::wAxis( )+);+}++inline const Matrix4 appendScale( const Matrix4 & mat, const Vector3 & scaleVec )+{+return Matrix4(+( mat.getCol0() * scaleVec.getX( ) ),+( mat.getCol1() * scaleVec.getY( ) ),+( mat.getCol2() * scaleVec.getZ( ) ),+mat.getCol3()+);+}++inline const Matrix4 prependScale( const Vector3 & scaleVec, const Matrix4 & mat )+{+Vector4 scale4;+scale4 = Vector4( scaleVec, 1.0f );+return Matrix4(+mulPerElem( mat.getCol0(), scale4 ),+mulPerElem( mat.getCol1(), scale4 ),+mulPerElem( mat.getCol2(), scale4 ),+mulPerElem( mat.getCol3(), scale4 )+);+}++inline const Matrix4 Matrix4::translation( const Vector3 & translateVec )+{+return Matrix4(+Vector4::xAxis( ),+Vector4::yAxis( ),+Vector4::zAxis( ),+Vector4( translateVec, 1.0f )+);+}++inline const Matrix4 Matrix4::lookAt( const Point3 & eyePos, const Point3 & lookAtPos, const Vector3 & upVec )+{+Matrix4 m4EyeFrame;+Vector3 v3X, v3Y, v3Z;+v3Y = normalize( upVec );+v3Z = normalize( ( eyePos - lookAtPos ) );+v3X = normalize( cross( v3Y, v3Z ) );+v3Y = cross( v3Z, v3X );+m4EyeFrame = Matrix4( Vector4( v3X ), Vector4( v3Y ), Vector4( v3Z ), Vector4( eyePos ) );+return orthoInverse( m4EyeFrame );+}++inline const Matrix4 Matrix4::perspective( float fovyRadians, float aspect, float zNear, float zFar )+{+float f, rangeInv;+f = tanf( ( (float)( _VECTORMATH_PI_OVER_2 ) - ( 0.5f * fovyRadians ) ) );+rangeInv = ( 1.0f / ( zNear - zFar ) );+return Matrix4(+Vector4( ( f / aspect ), 0.0f, 0.0f, 0.0f ),+Vector4( 0.0f, f, 0.0f, 0.0f ),+Vector4( 0.0f, 0.0f, ( ( zNear + zFar ) * rangeInv ), -1.0f ),+Vector4( 0.0f, 0.0f, ( ( ( zNear * zFar ) * rangeInv ) * 2.0f ), 0.0f )+);+}++inline const Matrix4 Matrix4::frustum( float left, float right, float bottom, float top, float zNear, float zFar )+{+float sum_rl, sum_tb, sum_nf, inv_rl, inv_tb, inv_nf, n2;+sum_rl = ( right + left );+sum_tb = ( top + bottom );+sum_nf = ( zNear + zFar );+inv_rl = ( 1.0f / ( right - left ) );+inv_tb = ( 1.0f / ( top - bottom ) );+inv_nf = ( 1.0f / ( zNear - zFar ) );+n2 = ( zNear + zNear );+return Matrix4(+Vector4( ( n2 * inv_rl ), 0.0f, 0.0f, 0.0f ),+Vector4( 0.0f, ( n2 * inv_tb ), 0.0f, 0.0f ),+Vector4( ( sum_rl * inv_rl ), ( sum_tb * inv_tb ), ( sum_nf * inv_nf ), -1.0f ),+Vector4( 0.0f, 0.0f, ( ( n2 * inv_nf ) * zFar ), 0.0f )+);+}++inline const Matrix4 Matrix4::orthographic( float left, float right, float bottom, float top, float zNear, float zFar )+{+float sum_rl, sum_tb, sum_nf, inv_rl, inv_tb, inv_nf;+sum_rl = ( right + left );+sum_tb = ( top + bottom );+sum_nf = ( zNear + zFar );+inv_rl = ( 1.0f / ( right - left ) );+inv_tb = ( 1.0f / ( top - bottom ) );+inv_nf = ( 1.0f / ( zNear - zFar ) );+return Matrix4(+Vector4( ( inv_rl + inv_rl ), 0.0f, 0.0f, 0.0f ),+Vector4( 0.0f, ( inv_tb + inv_tb ), 0.0f, 0.0f ),+Vector4( 0.0f, 0.0f, ( inv_nf + inv_nf ), 0.0f ),+Vector4( ( -sum_rl * inv_rl ), ( -sum_tb * inv_tb ), ( sum_nf * inv_nf ), 1.0f )+);+}++inline const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 )+{+return Matrix4(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 ),+select( mat0.getCol3(), mat1.getCol3(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Matrix4 & mat )+{+print( mat.getRow( 0 ) );+print( mat.getRow( 1 ) );+print( mat.getRow( 2 ) );+print( mat.getRow( 3 ) );+}++inline void print( const Matrix4 & mat, const char * name )+{+printf("%s:\n", name);+print( mat );+}++#endif++inline Transform3::Transform3( const Transform3 & tfrm )+{+mCol0 = tfrm.mCol0;+mCol1 = tfrm.mCol1;+mCol2 = tfrm.mCol2;+mCol3 = tfrm.mCol3;+}++inline Transform3::Transform3( float scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+mCol3 = Vector3( scalar );+}++inline Transform3::Transform3( const Vector3 & _col0, const Vector3 & _col1, const Vector3 & _col2, const Vector3 & _col3 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+mCol3 = _col3;+}++inline Transform3::Transform3( const Matrix3 & tfrm, const Vector3 & translateVec )+{+this->setUpper3x3( tfrm );+this->setTranslation( translateVec );+}++inline Transform3::Transform3( const Quat & unitQuat, const Vector3 & translateVec )+{+this->setUpper3x3( Matrix3( unitQuat ) );+this->setTranslation( translateVec );+}++inline Transform3 & Transform3::setCol0( const Vector3 & _col0 )+{+mCol0 = _col0;+return *this;+}++inline Transform3 & Transform3::setCol1( const Vector3 & _col1 )+{+mCol1 = _col1;+return *this;+}++inline Transform3 & Transform3::setCol2( const Vector3 & _col2 )+{+mCol2 = _col2;+return *this;+}++inline Transform3 & Transform3::setCol3( const Vector3 & _col3 )+{+mCol3 = _col3;+return *this;+}++inline Transform3 & Transform3::setCol( int col, const Vector3 & vec )+{+*(&mCol0 + col) = vec;+return *this;+}++inline Transform3 & Transform3::setRow( int row, const Vector4 & vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+mCol3.setElem( row, vec.getElem( 3 ) );+return *this;+}++inline Transform3 & Transform3::setElem( int col, int row, float val )+{+Vector3 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++inline float Transform3::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++inline const Vector3 Transform3::getCol0( ) const+{+return mCol0;+}++inline const Vector3 Transform3::getCol1( ) const+{+return mCol1;+}++inline const Vector3 Transform3::getCol2( ) const+{+return mCol2;+}++inline const Vector3 Transform3::getCol3( ) const+{+return mCol3;+}++inline const Vector3 Transform3::getCol( int col ) const+{+return *(&mCol0 + col);+}++inline const Vector4 Transform3::getRow( int row ) const+{+return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );+}++inline Vector3 & Transform3::operator []( int col )+{+return *(&mCol0 + col);+}++inline const Vector3 Transform3::operator []( int col ) const+{+return *(&mCol0 + col);+}++inline Transform3 & Transform3::operator =( const Transform3 & tfrm )+{+mCol0 = tfrm.mCol0;+mCol1 = tfrm.mCol1;+mCol2 = tfrm.mCol2;+mCol3 = tfrm.mCol3;+return *this;+}++inline const Transform3 inverse( const Transform3 & tfrm )+{+Vector3 tmp0, tmp1, tmp2, inv0, inv1, inv2;+float detinv;+tmp0 = cross( tfrm.getCol1(), tfrm.getCol2() );+tmp1 = cross( tfrm.getCol2(), tfrm.getCol0() );+tmp2 = cross( tfrm.getCol0(), tfrm.getCol1() );+detinv = ( 1.0f / dot( tfrm.getCol2(), tmp2 ) );+inv0 = Vector3( ( tmp0.getX() * detinv ), ( tmp1.getX() * detinv ), ( tmp2.getX() * detinv ) );+inv1 = Vector3( ( tmp0.getY() * detinv ), ( tmp1.getY() * detinv ), ( tmp2.getY() * detinv ) );+inv2 = Vector3( ( tmp0.getZ() * detinv ), ( tmp1.getZ() * detinv ), ( tmp2.getZ() * detinv ) );+return Transform3(+inv0,+inv1,+inv2,+Vector3( ( -( ( inv0 * tfrm.getCol3().getX() ) + ( ( inv1 * tfrm.getCol3().getY() ) + ( inv2 * tfrm.getCol3().getZ() ) ) ) ) )+);+}++inline const Transform3 orthoInverse( const Transform3 & tfrm )+{+Vector3 inv0, inv1, inv2;+inv0 = Vector3( tfrm.getCol0().getX(), tfrm.getCol1().getX(), tfrm.getCol2().getX() );+inv1 = Vector3( tfrm.getCol0().getY(), tfrm.getCol1().getY(), tfrm.getCol2().getY() );+inv2 = Vector3( tfrm.getCol0().getZ(), tfrm.getCol1().getZ(), tfrm.getCol2().getZ() );+return Transform3(+inv0,+inv1,+inv2,+Vector3( ( -( ( inv0 * tfrm.getCol3().getX() ) + ( ( inv1 * tfrm.getCol3().getY() ) + ( inv2 * tfrm.getCol3().getZ() ) ) ) ) )+);+}++inline const Transform3 absPerElem( const Transform3 & tfrm )+{+return Transform3(+absPerElem( tfrm.getCol0() ),+absPerElem( tfrm.getCol1() ),+absPerElem( tfrm.getCol2() ),+absPerElem( tfrm.getCol3() )+);+}++inline const Vector3 Transform3::operator *( const Vector3 & vec ) const+{+return Vector3(+( ( ( mCol0.getX() * vec.getX() ) + ( mCol1.getX() * vec.getY() ) ) + ( mCol2.getX() * vec.getZ() ) ),+( ( ( mCol0.getY() * vec.getX() ) + ( mCol1.getY() * vec.getY() ) ) + ( mCol2.getY() * vec.getZ() ) ),+( ( ( mCol0.getZ() * vec.getX() ) + ( mCol1.getZ() * vec.getY() ) ) + ( mCol2.getZ() * vec.getZ() ) )+);+}++inline const Point3 Transform3::operator *( const Point3 & pnt ) const+{+return Point3(+( ( ( ( mCol0.getX() * pnt.getX() ) + ( mCol1.getX() * pnt.getY() ) ) + ( mCol2.getX() * pnt.getZ() ) ) + mCol3.getX() ),+( ( ( ( mCol0.getY() * pnt.getX() ) + ( mCol1.getY() * pnt.getY() ) ) + ( mCol2.getY() * pnt.getZ() ) ) + mCol3.getY() ),+( ( ( ( mCol0.getZ() * pnt.getX() ) + ( mCol1.getZ() * pnt.getY() ) ) + ( mCol2.getZ() * pnt.getZ() ) ) + mCol3.getZ() )+);+}++inline const Transform3 Transform3::operator *( const Transform3 & tfrm ) const+{+return Transform3(+( *this * tfrm.mCol0 ),+( *this * tfrm.mCol1 ),+( *this * tfrm.mCol2 ),+Vector3( ( *this * Point3( tfrm.mCol3 ) ) )+);+}++inline Transform3 & Transform3::operator *=( const Transform3 & tfrm )+{+*this = *this * tfrm;+return *this;+}++inline const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 )+{+return Transform3(+mulPerElem( tfrm0.getCol0(), tfrm1.getCol0() ),+mulPerElem( tfrm0.getCol1(), tfrm1.getCol1() ),+mulPerElem( tfrm0.getCol2(), tfrm1.getCol2() ),+mulPerElem( tfrm0.getCol3(), tfrm1.getCol3() )+);+}++inline const Transform3 Transform3::identity( )+{+return Transform3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( ),+Vector3( 0.0f )+);+}++inline Transform3 & Transform3::setUpper3x3( const Matrix3 & tfrm )+{+mCol0 = tfrm.getCol0();+mCol1 = tfrm.getCol1();+mCol2 = tfrm.getCol2();+return *this;+}++inline const Matrix3 Transform3::getUpper3x3( ) const+{+return Matrix3( mCol0, mCol1, mCol2 );+}++inline Transform3 & Transform3::setTranslation( const Vector3 & translateVec )+{+mCol3 = translateVec;+return *this;+}++inline const Vector3 Transform3::getTranslation( ) const+{+return mCol3;+}++inline const Transform3 Transform3::rotationX( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Transform3(+Vector3::xAxis( ),+Vector3( 0.0f, c, s ),+Vector3( 0.0f, -s, c ),+Vector3( 0.0f )+);+}++inline const Transform3 Transform3::rotationY( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Transform3(+Vector3( c, 0.0f, -s ),+Vector3::yAxis( ),+Vector3( s, 0.0f, c ),+Vector3( 0.0f )+);+}++inline const Transform3 Transform3::rotationZ( float radians )+{+float s, c;+s = sinf( radians );+c = cosf( radians );+return Transform3(+Vector3( c, s, 0.0f ),+Vector3( -s, c, 0.0f ),+Vector3::zAxis( ),+Vector3( 0.0f )+);+}++inline const Transform3 Transform3::rotationZYX( const Vector3 & radiansXYZ )+{+float sX, cX, sY, cY, sZ, cZ, tmp0, tmp1;+sX = sinf( radiansXYZ.getX() );+cX = cosf( radiansXYZ.getX() );+sY = sinf( radiansXYZ.getY() );+cY = cosf( radiansXYZ.getY() );+sZ = sinf( radiansXYZ.getZ() );+cZ = cosf( radiansXYZ.getZ() );+tmp0 = ( cZ * sY );+tmp1 = ( sZ * sY );+return Transform3(+Vector3( ( cZ * cY ), ( sZ * cY ), -sY ),+Vector3( ( ( tmp0 * sX ) - ( sZ * cX ) ), ( ( tmp1 * sX ) + ( cZ * cX ) ), ( cY * sX ) ),+Vector3( ( ( tmp0 * cX ) + ( sZ * sX ) ), ( ( tmp1 * cX ) - ( cZ * sX ) ), ( cY * cX ) ),+Vector3( 0.0f )+);+}++inline const Transform3 Transform3::rotation( float radians, const Vector3 & unitVec )+{+return Transform3( Matrix3::rotation( radians, unitVec ), Vector3( 0.0f ) );+}++inline const Transform3 Transform3::rotation( const Quat & unitQuat )+{+return Transform3( Matrix3( unitQuat ), Vector3( 0.0f ) );+}++inline const Transform3 Transform3::scale( const Vector3 & scaleVec )+{+return Transform3(+Vector3( scaleVec.getX(), 0.0f, 0.0f ),+Vector3( 0.0f, scaleVec.getY(), 0.0f ),+Vector3( 0.0f, 0.0f, scaleVec.getZ() ),+Vector3( 0.0f )+);+}++inline const Transform3 appendScale( const Transform3 & tfrm, const Vector3 & scaleVec )+{+return Transform3(+( tfrm.getCol0() * scaleVec.getX( ) ),+( tfrm.getCol1() * scaleVec.getY( ) ),+( tfrm.getCol2() * scaleVec.getZ( ) ),+tfrm.getCol3()+);+}++inline const Transform3 prependScale( const Vector3 & scaleVec, const Transform3 & tfrm )+{+return Transform3(+mulPerElem( tfrm.getCol0(), scaleVec ),+mulPerElem( tfrm.getCol1(), scaleVec ),+mulPerElem( tfrm.getCol2(), scaleVec ),+mulPerElem( tfrm.getCol3(), scaleVec )+);+}++inline const Transform3 Transform3::translation( const Vector3 & translateVec )+{+return Transform3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( ),+translateVec+);+}++inline const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 )+{+return Transform3(+select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),+select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),+select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),+select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Transform3 & tfrm )+{+print( tfrm.getRow( 0 ) );+print( tfrm.getRow( 1 ) );+print( tfrm.getRow( 2 ) );+}++inline void print( const Transform3 & tfrm, const char * name )+{+printf("%s:\n", name);+print( tfrm );+}++#endif++inline Quat::Quat( const Matrix3 & tfrm )+{+float trace, radicand, scale, xx, yx, zx, xy, yy, zy, xz, yz, zz, tmpx, tmpy, tmpz, tmpw, qx, qy, qz, qw;+int negTrace, ZgtX, ZgtY, YgtX;+int largestXorY, largestYorZ, largestZorX;++xx = tfrm.getCol0().getX();+yx = tfrm.getCol0().getY();+zx = tfrm.getCol0().getZ();+xy = tfrm.getCol1().getX();+yy = tfrm.getCol1().getY();+zy = tfrm.getCol1().getZ();+xz = tfrm.getCol2().getX();+yz = tfrm.getCol2().getY();+zz = tfrm.getCol2().getZ();++trace = ( ( xx + yy ) + zz );++negTrace = ( trace < 0.0f );+ZgtX = zz > xx;+ZgtY = zz > yy;+YgtX = yy > xx;+largestXorY = ( !ZgtX || !ZgtY ) && negTrace;+largestYorZ = ( YgtX || ZgtX ) && negTrace;+largestZorX = ( ZgtY || !YgtX ) && negTrace;++if ( largestXorY )+{+zz = -zz;+xy = -xy;+}+if ( largestYorZ )+{+xx = -xx;+yz = -yz;+}+if ( largestZorX )+{+yy = -yy;+zx = -zx;+}++radicand = ( ( ( xx + yy ) + zz ) + 1.0f );+scale = ( 0.5f * ( 1.0f / sqrtf( radicand ) ) );++tmpx = ( ( zy - yz ) * scale );+tmpy = ( ( xz - zx ) * scale );+tmpz = ( ( yx - xy ) * scale );+tmpw = ( radicand * scale );+qx = tmpx;+qy = tmpy;+qz = tmpz;+qw = tmpw;++if ( largestXorY )+{+qx = tmpw;+qy = tmpz;+qz = tmpy;+qw = tmpx;+}+if ( largestYorZ )+{+tmpx = qx;+tmpz = qz;+qx = qy;+qy = tmpx;+qz = qw;+qw = tmpz;+}++mX = qx;+mY = qy;+mZ = qz;+mW = qw;+}++inline const Matrix3 outer( const Vector3 & tfrm0, const Vector3 & tfrm1 )+{+return Matrix3(+( tfrm0 * tfrm1.getX( ) ),+( tfrm0 * tfrm1.getY( ) ),+( tfrm0 * tfrm1.getZ( ) )+);+}++inline const Matrix4 outer( const Vector4 & tfrm0, const Vector4 & tfrm1 )+{+return Matrix4(+( tfrm0 * tfrm1.getX( ) ),+( tfrm0 * tfrm1.getY( ) ),+( tfrm0 * tfrm1.getZ( ) ),+( tfrm0 * tfrm1.getW( ) )+);+}++inline const Vector3 rowMul( const Vector3 & vec, const Matrix3 & mat )+{+return Vector3(+( ( ( vec.getX() * mat.getCol0().getX() ) + ( vec.getY() * mat.getCol0().getY() ) ) + ( vec.getZ() * mat.getCol0().getZ() ) ),+( ( ( vec.getX() * mat.getCol1().getX() ) + ( vec.getY() * mat.getCol1().getY() ) ) + ( vec.getZ() * mat.getCol1().getZ() ) ),+( ( ( vec.getX() * mat.getCol2().getX() ) + ( vec.getY() * mat.getCol2().getY() ) ) + ( vec.getZ() * mat.getCol2().getZ() ) )+);+}++inline const Matrix3 crossMatrix( const Vector3 & vec )+{+return Matrix3(+Vector3( 0.0f, vec.getZ(), -vec.getY() ),+Vector3( -vec.getZ(), 0.0f, vec.getX() ),+Vector3( vec.getY(), -vec.getX(), 0.0f )+);+}++inline const Matrix3 crossMatrixMul( const Vector3 & vec, const Matrix3 & mat )+{+return Matrix3( cross( vec, mat.getCol0() ), cross( vec, mat.getCol1() ), cross( vec, mat.getCol2() ) ); }  } // namespace Aos
bullet/vectormath/scalar/quat_aos.h view
@@ -1,11 +1,11 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.  This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, +Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.@@ -30,399 +30,399 @@  inline Quat::Quat( const Quat & quat ) {-    mX = quat.mX;-    mY = quat.mY;-    mZ = quat.mZ;-    mW = quat.mW;+mX = quat.mX;+mY = quat.mY;+mZ = quat.mZ;+mW = quat.mW; }  inline Quat::Quat( float _x, float _y, float _z, float _w ) {-    mX = _x;-    mY = _y;-    mZ = _z;-    mW = _w;+mX = _x;+mY = _y;+mZ = _z;+mW = _w; }  inline Quat::Quat( const Vector3 & xyz, float _w ) {-    this->setXYZ( xyz );-    this->setW( _w );+this->setXYZ( xyz );+this->setW( _w ); }  inline Quat::Quat( const Vector4 & vec ) {-    mX = vec.getX();-    mY = vec.getY();-    mZ = vec.getZ();-    mW = vec.getW();+mX = vec.getX();+mY = vec.getY();+mZ = vec.getZ();+mW = vec.getW(); }  inline Quat::Quat( float scalar ) {-    mX = scalar;-    mY = scalar;-    mZ = scalar;-    mW = scalar;+mX = scalar;+mY = scalar;+mZ = scalar;+mW = scalar; }  inline const Quat Quat::identity( ) {-    return Quat( 0.0f, 0.0f, 0.0f, 1.0f );+return Quat( 0.0f, 0.0f, 0.0f, 1.0f ); }  inline const Quat lerp( float t, const Quat & quat0, const Quat & quat1 ) {-    return ( quat0 + ( ( quat1 - quat0 ) * t ) );+return ( quat0 + ( ( quat1 - quat0 ) * t ) ); }  inline const Quat slerp( float t, const Quat & unitQuat0, const Quat & unitQuat1 ) {-    Quat start;-    float recipSinAngle, scale0, scale1, cosAngle, angle;-    cosAngle = dot( unitQuat0, unitQuat1 );-    if ( cosAngle < 0.0f ) {-        cosAngle = -cosAngle;-        start = ( -unitQuat0 );-    } else {-        start = unitQuat0;-    }-    if ( cosAngle < _VECTORMATH_SLERP_TOL ) {-        angle = acosf( cosAngle );-        recipSinAngle = ( 1.0f / sinf( angle ) );-        scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );-        scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );-    } else {-        scale0 = ( 1.0f - t );-        scale1 = t;-    }-    return ( ( start * scale0 ) + ( unitQuat1 * scale1 ) );+Quat start;+float recipSinAngle, scale0, scale1, cosAngle, angle;+cosAngle = dot( unitQuat0, unitQuat1 );+if ( cosAngle < 0.0f ) {+cosAngle = -cosAngle;+start = ( -unitQuat0 );+} else {+start = unitQuat0; }+if ( cosAngle < _VECTORMATH_SLERP_TOL ) {+angle = acosf( cosAngle );+recipSinAngle = ( 1.0f / sinf( angle ) );+scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );+scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );+} else {+scale0 = ( 1.0f - t );+scale1 = t;+}+return ( ( start * scale0 ) + ( unitQuat1 * scale1 ) );+}  inline const Quat squad( float t, const Quat & unitQuat0, const Quat & unitQuat1, const Quat & unitQuat2, const Quat & unitQuat3 ) {-    Quat tmp0, tmp1;-    tmp0 = slerp( t, unitQuat0, unitQuat3 );-    tmp1 = slerp( t, unitQuat1, unitQuat2 );-    return slerp( ( ( 2.0f * t ) * ( 1.0f - t ) ), tmp0, tmp1 );+Quat tmp0, tmp1;+tmp0 = slerp( t, unitQuat0, unitQuat3 );+tmp1 = slerp( t, unitQuat1, unitQuat2 );+return slerp( ( ( 2.0f * t ) * ( 1.0f - t ) ), tmp0, tmp1 ); }  inline void loadXYZW( Quat & quat, const float * fptr ) {-    quat = Quat( fptr[0], fptr[1], fptr[2], fptr[3] );+quat = Quat( fptr[0], fptr[1], fptr[2], fptr[3] ); }  inline void storeXYZW( const Quat & quat, float * fptr ) {-    fptr[0] = quat.getX();-    fptr[1] = quat.getY();-    fptr[2] = quat.getZ();-    fptr[3] = quat.getW();+fptr[0] = quat.getX();+fptr[1] = quat.getY();+fptr[2] = quat.getZ();+fptr[3] = quat.getW(); }  inline Quat & Quat::operator =( const Quat & quat ) {-    mX = quat.mX;-    mY = quat.mY;-    mZ = quat.mZ;-    mW = quat.mW;-    return *this;+mX = quat.mX;+mY = quat.mY;+mZ = quat.mZ;+mW = quat.mW;+return *this; }  inline Quat & Quat::setXYZ( const Vector3 & vec ) {-    mX = vec.getX();-    mY = vec.getY();-    mZ = vec.getZ();-    return *this;+mX = vec.getX();+mY = vec.getY();+mZ = vec.getZ();+return *this; }  inline const Vector3 Quat::getXYZ( ) const {-    return Vector3( mX, mY, mZ );+return Vector3( mX, mY, mZ ); }  inline Quat & Quat::setX( float _x ) {-    mX = _x;-    return *this;+mX = _x;+return *this; }  inline float Quat::getX( ) const {-    return mX;+return mX; }  inline Quat & Quat::setY( float _y ) {-    mY = _y;-    return *this;+mY = _y;+return *this; }  inline float Quat::getY( ) const {-    return mY;+return mY; }  inline Quat & Quat::setZ( float _z ) {-    mZ = _z;-    return *this;+mZ = _z;+return *this; }  inline float Quat::getZ( ) const {-    return mZ;+return mZ; }  inline Quat & Quat::setW( float _w ) {-    mW = _w;-    return *this;+mW = _w;+return *this; }  inline float Quat::getW( ) const {-    return mW;+return mW; }  inline Quat & Quat::setElem( int idx, float value ) {-    *(&mX + idx) = value;-    return *this;+*(&mX + idx) = value;+return *this; }  inline float Quat::getElem( int idx ) const {-    return *(&mX + idx);+return *(&mX + idx); }  inline float & Quat::operator []( int idx ) {-    return *(&mX + idx);+return *(&mX + idx); }  inline float Quat::operator []( int idx ) const {-    return *(&mX + idx);+return *(&mX + idx); }  inline const Quat Quat::operator +( const Quat & quat ) const {-    return Quat(-        ( mX + quat.mX ),-        ( mY + quat.mY ),-        ( mZ + quat.mZ ),-        ( mW + quat.mW )-    );+return Quat(+( mX + quat.mX ),+( mY + quat.mY ),+( mZ + quat.mZ ),+( mW + quat.mW )+); }  inline const Quat Quat::operator -( const Quat & quat ) const {-    return Quat(-        ( mX - quat.mX ),-        ( mY - quat.mY ),-        ( mZ - quat.mZ ),-        ( mW - quat.mW )-    );+return Quat(+( mX - quat.mX ),+( mY - quat.mY ),+( mZ - quat.mZ ),+( mW - quat.mW )+); }  inline const Quat Quat::operator *( float scalar ) const {-    return Quat(-        ( mX * scalar ),-        ( mY * scalar ),-        ( mZ * scalar ),-        ( mW * scalar )-    );+return Quat(+( mX * scalar ),+( mY * scalar ),+( mZ * scalar ),+( mW * scalar )+); }  inline Quat & Quat::operator +=( const Quat & quat ) {-    *this = *this + quat;-    return *this;+*this = *this + quat;+return *this; }  inline Quat & Quat::operator -=( const Quat & quat ) {-    *this = *this - quat;-    return *this;+*this = *this - quat;+return *this; }  inline Quat & Quat::operator *=( float scalar ) {-    *this = *this * scalar;-    return *this;+*this = *this * scalar;+return *this; }  inline const Quat Quat::operator /( float scalar ) const {-    return Quat(-        ( mX / scalar ),-        ( mY / scalar ),-        ( mZ / scalar ),-        ( mW / scalar )-    );+return Quat(+( mX / scalar ),+( mY / scalar ),+( mZ / scalar ),+( mW / scalar )+); }  inline Quat & Quat::operator /=( float scalar ) {-    *this = *this / scalar;-    return *this;+*this = *this / scalar;+return *this; }  inline const Quat Quat::operator -( ) const {-    return Quat(-        -mX,-        -mY,-        -mZ,-        -mW-    );+return Quat(+-mX,+-mY,+-mZ,+-mW+); }  inline const Quat operator *( float scalar, const Quat & quat ) {-    return quat * scalar;+return quat * scalar; }  inline float dot( const Quat & quat0, const Quat & quat1 ) {-    float result;-    result = ( quat0.getX() * quat1.getX() );-    result = ( result + ( quat0.getY() * quat1.getY() ) );-    result = ( result + ( quat0.getZ() * quat1.getZ() ) );-    result = ( result + ( quat0.getW() * quat1.getW() ) );-    return result;+float result;+result = ( quat0.getX() * quat1.getX() );+result = ( result + ( quat0.getY() * quat1.getY() ) );+result = ( result + ( quat0.getZ() * quat1.getZ() ) );+result = ( result + ( quat0.getW() * quat1.getW() ) );+return result; }  inline float norm( const Quat & quat ) {-    float result;-    result = ( quat.getX() * quat.getX() );-    result = ( result + ( quat.getY() * quat.getY() ) );-    result = ( result + ( quat.getZ() * quat.getZ() ) );-    result = ( result + ( quat.getW() * quat.getW() ) );-    return result;+float result;+result = ( quat.getX() * quat.getX() );+result = ( result + ( quat.getY() * quat.getY() ) );+result = ( result + ( quat.getZ() * quat.getZ() ) );+result = ( result + ( quat.getW() * quat.getW() ) );+return result; }  inline float length( const Quat & quat ) {-    return ::sqrtf( norm( quat ) );+return ::sqrtf( norm( quat ) ); }  inline const Quat normalize( const Quat & quat ) {-    float lenSqr, lenInv;-    lenSqr = norm( quat );-    lenInv = ( 1.0f / sqrtf( lenSqr ) );-    return Quat(-        ( quat.getX() * lenInv ),-        ( quat.getY() * lenInv ),-        ( quat.getZ() * lenInv ),-        ( quat.getW() * lenInv )-    );+float lenSqr, lenInv;+lenSqr = norm( quat );+lenInv = ( 1.0f / sqrtf( lenSqr ) );+return Quat(+( quat.getX() * lenInv ),+( quat.getY() * lenInv ),+( quat.getZ() * lenInv ),+( quat.getW() * lenInv )+); }  inline const Quat Quat::rotation( const Vector3 & unitVec0, const Vector3 & unitVec1 ) {-    float cosHalfAngleX2, recipCosHalfAngleX2;-    cosHalfAngleX2 = sqrtf( ( 2.0f * ( 1.0f + dot( unitVec0, unitVec1 ) ) ) );-    recipCosHalfAngleX2 = ( 1.0f / cosHalfAngleX2 );-    return Quat( ( cross( unitVec0, unitVec1 ) * recipCosHalfAngleX2 ), ( cosHalfAngleX2 * 0.5f ) );+float cosHalfAngleX2, recipCosHalfAngleX2;+cosHalfAngleX2 = sqrtf( ( 2.0f * ( 1.0f + dot( unitVec0, unitVec1 ) ) ) );+recipCosHalfAngleX2 = ( 1.0f / cosHalfAngleX2 );+return Quat( ( cross( unitVec0, unitVec1 ) * recipCosHalfAngleX2 ), ( cosHalfAngleX2 * 0.5f ) ); }  inline const Quat Quat::rotation( float radians, const Vector3 & unitVec ) {-    float s, c, angle;-    angle = ( radians * 0.5f );-    s = sinf( angle );-    c = cosf( angle );-    return Quat( ( unitVec * s ), c );+float s, c, angle;+angle = ( radians * 0.5f );+s = sinf( angle );+c = cosf( angle );+return Quat( ( unitVec * s ), c ); }  inline const Quat Quat::rotationX( float radians ) {-    float s, c, angle;-    angle = ( radians * 0.5f );-    s = sinf( angle );-    c = cosf( angle );-    return Quat( s, 0.0f, 0.0f, c );+float s, c, angle;+angle = ( radians * 0.5f );+s = sinf( angle );+c = cosf( angle );+return Quat( s, 0.0f, 0.0f, c ); }  inline const Quat Quat::rotationY( float radians ) {-    float s, c, angle;-    angle = ( radians * 0.5f );-    s = sinf( angle );-    c = cosf( angle );-    return Quat( 0.0f, s, 0.0f, c );+float s, c, angle;+angle = ( radians * 0.5f );+s = sinf( angle );+c = cosf( angle );+return Quat( 0.0f, s, 0.0f, c ); }  inline const Quat Quat::rotationZ( float radians ) {-    float s, c, angle;-    angle = ( radians * 0.5f );-    s = sinf( angle );-    c = cosf( angle );-    return Quat( 0.0f, 0.0f, s, c );+float s, c, angle;+angle = ( radians * 0.5f );+s = sinf( angle );+c = cosf( angle );+return Quat( 0.0f, 0.0f, s, c ); }  inline const Quat Quat::operator *( const Quat & quat ) const {-    return Quat(-        ( ( ( ( mW * quat.mX ) + ( mX * quat.mW ) ) + ( mY * quat.mZ ) ) - ( mZ * quat.mY ) ),-        ( ( ( ( mW * quat.mY ) + ( mY * quat.mW ) ) + ( mZ * quat.mX ) ) - ( mX * quat.mZ ) ),-        ( ( ( ( mW * quat.mZ ) + ( mZ * quat.mW ) ) + ( mX * quat.mY ) ) - ( mY * quat.mX ) ),-        ( ( ( ( mW * quat.mW ) - ( mX * quat.mX ) ) - ( mY * quat.mY ) ) - ( mZ * quat.mZ ) )-    );+return Quat(+( ( ( ( mW * quat.mX ) + ( mX * quat.mW ) ) + ( mY * quat.mZ ) ) - ( mZ * quat.mY ) ),+( ( ( ( mW * quat.mY ) + ( mY * quat.mW ) ) + ( mZ * quat.mX ) ) - ( mX * quat.mZ ) ),+( ( ( ( mW * quat.mZ ) + ( mZ * quat.mW ) ) + ( mX * quat.mY ) ) - ( mY * quat.mX ) ),+( ( ( ( mW * quat.mW ) - ( mX * quat.mX ) ) - ( mY * quat.mY ) ) - ( mZ * quat.mZ ) )+); }  inline Quat & Quat::operator *=( const Quat & quat ) {-    *this = *this * quat;-    return *this;+*this = *this * quat;+return *this; }  inline const Vector3 rotate( const Quat & quat, const Vector3 & vec ) {-    float tmpX, tmpY, tmpZ, tmpW;-    tmpX = ( ( ( quat.getW() * vec.getX() ) + ( quat.getY() * vec.getZ() ) ) - ( quat.getZ() * vec.getY() ) );-    tmpY = ( ( ( quat.getW() * vec.getY() ) + ( quat.getZ() * vec.getX() ) ) - ( quat.getX() * vec.getZ() ) );-    tmpZ = ( ( ( quat.getW() * vec.getZ() ) + ( quat.getX() * vec.getY() ) ) - ( quat.getY() * vec.getX() ) );-    tmpW = ( ( ( quat.getX() * vec.getX() ) + ( quat.getY() * vec.getY() ) ) + ( quat.getZ() * vec.getZ() ) );-    return Vector3(-        ( ( ( ( tmpW * quat.getX() ) + ( tmpX * quat.getW() ) ) - ( tmpY * quat.getZ() ) ) + ( tmpZ * quat.getY() ) ),-        ( ( ( ( tmpW * quat.getY() ) + ( tmpY * quat.getW() ) ) - ( tmpZ * quat.getX() ) ) + ( tmpX * quat.getZ() ) ),-        ( ( ( ( tmpW * quat.getZ() ) + ( tmpZ * quat.getW() ) ) - ( tmpX * quat.getY() ) ) + ( tmpY * quat.getX() ) )-    );+float tmpX, tmpY, tmpZ, tmpW;+tmpX = ( ( ( quat.getW() * vec.getX() ) + ( quat.getY() * vec.getZ() ) ) - ( quat.getZ() * vec.getY() ) );+tmpY = ( ( ( quat.getW() * vec.getY() ) + ( quat.getZ() * vec.getX() ) ) - ( quat.getX() * vec.getZ() ) );+tmpZ = ( ( ( quat.getW() * vec.getZ() ) + ( quat.getX() * vec.getY() ) ) - ( quat.getY() * vec.getX() ) );+tmpW = ( ( ( quat.getX() * vec.getX() ) + ( quat.getY() * vec.getY() ) ) + ( quat.getZ() * vec.getZ() ) );+return Vector3(+( ( ( ( tmpW * quat.getX() ) + ( tmpX * quat.getW() ) ) - ( tmpY * quat.getZ() ) ) + ( tmpZ * quat.getY() ) ),+( ( ( ( tmpW * quat.getY() ) + ( tmpY * quat.getW() ) ) - ( tmpZ * quat.getX() ) ) + ( tmpX * quat.getZ() ) ),+( ( ( ( tmpW * quat.getZ() ) + ( tmpZ * quat.getW() ) ) - ( tmpX * quat.getY() ) ) + ( tmpY * quat.getX() ) )+); }  inline const Quat conj( const Quat & quat ) {-    return Quat( -quat.getX(), -quat.getY(), -quat.getZ(), quat.getW() );+return Quat( -quat.getX(), -quat.getY(), -quat.getZ(), quat.getW() ); }  inline const Quat select( const Quat & quat0, const Quat & quat1, bool select1 ) {-    return Quat(-        ( select1 )? quat1.getX() : quat0.getX(),-        ( select1 )? quat1.getY() : quat0.getY(),-        ( select1 )? quat1.getZ() : quat0.getZ(),-        ( select1 )? quat1.getW() : quat0.getW()-    );+return Quat(+( select1 )? quat1.getX() : quat0.getX(),+( select1 )? quat1.getY() : quat0.getY(),+( select1 )? quat1.getZ() : quat0.getZ(),+( select1 )? quat1.getW() : quat0.getW()+); }  #ifdef _VECTORMATH_DEBUG  inline void print( const Quat & quat ) {-    printf( "( %f %f %f %f )\n", quat.getX(), quat.getY(), quat.getZ(), quat.getW() );+printf( "( %f %f %f %f )\n", quat.getX(), quat.getY(), quat.getZ(), quat.getW() ); }  inline void print( const Quat & quat, const char * name ) {-    printf( "%s: ( %f %f %f %f )\n", name, quat.getX(), quat.getY(), quat.getZ(), quat.getW() );+printf( "%s: ( %f %f %f %f )\n", name, quat.getX(), quat.getY(), quat.getZ(), quat.getW() ); }  #endif
bullet/vectormath/scalar/vec_aos.h view
@@ -1,1421 +1,1421 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.--*/--#ifndef _VECTORMATH_VEC_AOS_CPP_H-#define _VECTORMATH_VEC_AOS_CPP_H--//------------------------------------------------------------------------------// Constants--#define _VECTORMATH_SLERP_TOL 0.999f--//------------------------------------------------------------------------------// Definitions--#ifndef _VECTORMATH_INTERNAL_FUNCTIONS-#define _VECTORMATH_INTERNAL_FUNCTIONS--#endif--namespace Vectormath {-namespace Aos {--inline Vector3::Vector3( const Vector3 & vec )-{-    mX = vec.mX;-    mY = vec.mY;-    mZ = vec.mZ;-}--inline Vector3::Vector3( float _x, float _y, float _z )-{-    mX = _x;-    mY = _y;-    mZ = _z;-}--inline Vector3::Vector3( const Point3 & pnt )-{-    mX = pnt.getX();-    mY = pnt.getY();-    mZ = pnt.getZ();-}--inline Vector3::Vector3( float scalar )-{-    mX = scalar;-    mY = scalar;-    mZ = scalar;-}--inline const Vector3 Vector3::xAxis( )-{-    return Vector3( 1.0f, 0.0f, 0.0f );-}--inline const Vector3 Vector3::yAxis( )-{-    return Vector3( 0.0f, 1.0f, 0.0f );-}--inline const Vector3 Vector3::zAxis( )-{-    return Vector3( 0.0f, 0.0f, 1.0f );-}--inline const Vector3 lerp( float t, const Vector3 & vec0, const Vector3 & vec1 )-{-    return ( vec0 + ( ( vec1 - vec0 ) * t ) );-}--inline const Vector3 slerp( float t, const Vector3 & unitVec0, const Vector3 & unitVec1 )-{-    float recipSinAngle, scale0, scale1, cosAngle, angle;-    cosAngle = dot( unitVec0, unitVec1 );-    if ( cosAngle < _VECTORMATH_SLERP_TOL ) {-        angle = acosf( cosAngle );-        recipSinAngle = ( 1.0f / sinf( angle ) );-        scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );-        scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );-    } else {-        scale0 = ( 1.0f - t );-        scale1 = t;-    }-    return ( ( unitVec0 * scale0 ) + ( unitVec1 * scale1 ) );-}--inline void loadXYZ( Vector3 & vec, const float * fptr )-{-    vec = Vector3( fptr[0], fptr[1], fptr[2] );-}--inline void storeXYZ( const Vector3 & vec, float * fptr )-{-    fptr[0] = vec.getX();-    fptr[1] = vec.getY();-    fptr[2] = vec.getZ();-}--inline void loadHalfFloats( Vector3 & vec, const unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 3; i++) {-        unsigned short fp16 = hfptr[i];-        unsigned int sign = fp16 >> 15;-        unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);-        unsigned int mantissa = fp16 & ((1 << 10) - 1);--        if (exponent == 0) {-            // zero-            mantissa = 0;--        } else if (exponent == 31) {-            // infinity or nan -> infinity-            exponent = 255;-	    mantissa = 0;--        } else {-            exponent += 127 - 15;-            mantissa <<= 13;-        }--        Data32 d;-        d.u32 = (sign << 31) | (exponent << 23) | mantissa;-        vec[i] = d.f32;-    }-}--inline void storeHalfFloats( const Vector3 & vec, unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 3; i++) {-        Data32 d;-        d.f32 = vec[i];--        unsigned int sign = d.u32 >> 31;-        unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);-        unsigned int mantissa = d.u32 & ((1 << 23) - 1);;--        if (exponent == 0) {-            // zero or denorm -> zero-            mantissa = 0;--        } else if (exponent == 255 && mantissa != 0) {-            // nan -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent >= 127 - 15 + 31) {-            // overflow or infinity -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent <= 127 - 15) {-            // underflow -> zero-            exponent = 0;-            mantissa = 0;--        } else {-            exponent -= 127 - 15;-            mantissa >>= 13;-        }--        hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);-    }-}--inline Vector3 & Vector3::operator =( const Vector3 & vec )-{-    mX = vec.mX;-    mY = vec.mY;-    mZ = vec.mZ;-    return *this;-}--inline Vector3 & Vector3::setX( float _x )-{-    mX = _x;-    return *this;-}--inline float Vector3::getX( ) const-{-    return mX;-}--inline Vector3 & Vector3::setY( float _y )-{-    mY = _y;-    return *this;-}--inline float Vector3::getY( ) const-{-    return mY;-}--inline Vector3 & Vector3::setZ( float _z )-{-    mZ = _z;-    return *this;-}--inline float Vector3::getZ( ) const-{-    return mZ;-}--inline Vector3 & Vector3::setElem( int idx, float value )-{-    *(&mX + idx) = value;-    return *this;-}--inline float Vector3::getElem( int idx ) const-{-    return *(&mX + idx);-}--inline float & Vector3::operator []( int idx )-{-    return *(&mX + idx);-}--inline float Vector3::operator []( int idx ) const-{-    return *(&mX + idx);-}--inline const Vector3 Vector3::operator +( const Vector3 & vec ) const-{-    return Vector3(-        ( mX + vec.mX ),-        ( mY + vec.mY ),-        ( mZ + vec.mZ )-    );-}--inline const Vector3 Vector3::operator -( const Vector3 & vec ) const-{-    return Vector3(-        ( mX - vec.mX ),-        ( mY - vec.mY ),-        ( mZ - vec.mZ )-    );-}--inline const Point3 Vector3::operator +( const Point3 & pnt ) const-{-    return Point3(-        ( mX + pnt.getX() ),-        ( mY + pnt.getY() ),-        ( mZ + pnt.getZ() )-    );-}--inline const Vector3 Vector3::operator *( float scalar ) const-{-    return Vector3(-        ( mX * scalar ),-        ( mY * scalar ),-        ( mZ * scalar )-    );-}--inline Vector3 & Vector3::operator +=( const Vector3 & vec )-{-    *this = *this + vec;-    return *this;-}--inline Vector3 & Vector3::operator -=( const Vector3 & vec )-{-    *this = *this - vec;-    return *this;-}--inline Vector3 & Vector3::operator *=( float scalar )-{-    *this = *this * scalar;-    return *this;-}--inline const Vector3 Vector3::operator /( float scalar ) const-{-    return Vector3(-        ( mX / scalar ),-        ( mY / scalar ),-        ( mZ / scalar )-    );-}--inline Vector3 & Vector3::operator /=( float scalar )-{-    *this = *this / scalar;-    return *this;-}--inline const Vector3 Vector3::operator -( ) const-{-    return Vector3(-        -mX,-        -mY,-        -mZ-    );-}--inline const Vector3 operator *( float scalar, const Vector3 & vec )-{-    return vec * scalar;-}--inline const Vector3 mulPerElem( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        ( vec0.getX() * vec1.getX() ),-        ( vec0.getY() * vec1.getY() ),-        ( vec0.getZ() * vec1.getZ() )-    );-}--inline const Vector3 divPerElem( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        ( vec0.getX() / vec1.getX() ),-        ( vec0.getY() / vec1.getY() ),-        ( vec0.getZ() / vec1.getZ() )-    );-}--inline const Vector3 recipPerElem( const Vector3 & vec )-{-    return Vector3(-        ( 1.0f / vec.getX() ),-        ( 1.0f / vec.getY() ),-        ( 1.0f / vec.getZ() )-    );-}--inline const Vector3 sqrtPerElem( const Vector3 & vec )-{-    return Vector3(-        sqrtf( vec.getX() ),-        sqrtf( vec.getY() ),-        sqrtf( vec.getZ() )-    );-}--inline const Vector3 rsqrtPerElem( const Vector3 & vec )-{-    return Vector3(-        ( 1.0f / sqrtf( vec.getX() ) ),-        ( 1.0f / sqrtf( vec.getY() ) ),-        ( 1.0f / sqrtf( vec.getZ() ) )-    );-}--inline const Vector3 absPerElem( const Vector3 & vec )-{-    return Vector3(-        fabsf( vec.getX() ),-        fabsf( vec.getY() ),-        fabsf( vec.getZ() )-    );-}--inline const Vector3 copySignPerElem( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        ( vec1.getX() < 0.0f )? -fabsf( vec0.getX() ) : fabsf( vec0.getX() ),-        ( vec1.getY() < 0.0f )? -fabsf( vec0.getY() ) : fabsf( vec0.getY() ),-        ( vec1.getZ() < 0.0f )? -fabsf( vec0.getZ() ) : fabsf( vec0.getZ() )-    );-}--inline const Vector3 maxPerElem( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        (vec0.getX() > vec1.getX())? vec0.getX() : vec1.getX(),-        (vec0.getY() > vec1.getY())? vec0.getY() : vec1.getY(),-        (vec0.getZ() > vec1.getZ())? vec0.getZ() : vec1.getZ()-    );-}--inline float maxElem( const Vector3 & vec )-{-    float result;-    result = (vec.getX() > vec.getY())? vec.getX() : vec.getY();-    result = (vec.getZ() > result)? vec.getZ() : result;-    return result;-}--inline const Vector3 minPerElem( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        (vec0.getX() < vec1.getX())? vec0.getX() : vec1.getX(),-        (vec0.getY() < vec1.getY())? vec0.getY() : vec1.getY(),-        (vec0.getZ() < vec1.getZ())? vec0.getZ() : vec1.getZ()-    );-}--inline float minElem( const Vector3 & vec )-{-    float result;-    result = (vec.getX() < vec.getY())? vec.getX() : vec.getY();-    result = (vec.getZ() < result)? vec.getZ() : result;-    return result;-}--inline float sum( const Vector3 & vec )-{-    float result;-    result = ( vec.getX() + vec.getY() );-    result = ( result + vec.getZ() );-    return result;-}--inline float dot( const Vector3 & vec0, const Vector3 & vec1 )-{-    float result;-    result = ( vec0.getX() * vec1.getX() );-    result = ( result + ( vec0.getY() * vec1.getY() ) );-    result = ( result + ( vec0.getZ() * vec1.getZ() ) );-    return result;-}--inline float lengthSqr( const Vector3 & vec )-{-    float result;-    result = ( vec.getX() * vec.getX() );-    result = ( result + ( vec.getY() * vec.getY() ) );-    result = ( result + ( vec.getZ() * vec.getZ() ) );-    return result;-}--inline float length( const Vector3 & vec )-{-    return ::sqrtf( lengthSqr( vec ) );-}--inline const Vector3 normalize( const Vector3 & vec )-{-    float lenSqr, lenInv;-    lenSqr = lengthSqr( vec );-    lenInv = ( 1.0f / sqrtf( lenSqr ) );-    return Vector3(-        ( vec.getX() * lenInv ),-        ( vec.getY() * lenInv ),-        ( vec.getZ() * lenInv )-    );-}--inline const Vector3 cross( const Vector3 & vec0, const Vector3 & vec1 )-{-    return Vector3(-        ( ( vec0.getY() * vec1.getZ() ) - ( vec0.getZ() * vec1.getY() ) ),-        ( ( vec0.getZ() * vec1.getX() ) - ( vec0.getX() * vec1.getZ() ) ),-        ( ( vec0.getX() * vec1.getY() ) - ( vec0.getY() * vec1.getX() ) )-    );-}--inline const Vector3 select( const Vector3 & vec0, const Vector3 & vec1, bool select1 )-{-    return Vector3(-        ( select1 )? vec1.getX() : vec0.getX(),-        ( select1 )? vec1.getY() : vec0.getY(),-        ( select1 )? vec1.getZ() : vec0.getZ()-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Vector3 & vec )-{-    printf( "( %f %f %f )\n", vec.getX(), vec.getY(), vec.getZ() );-}--inline void print( const Vector3 & vec, const char * name )-{-    printf( "%s: ( %f %f %f )\n", name, vec.getX(), vec.getY(), vec.getZ() );-}--#endif--inline Vector4::Vector4( const Vector4 & vec )-{-    mX = vec.mX;-    mY = vec.mY;-    mZ = vec.mZ;-    mW = vec.mW;-}--inline Vector4::Vector4( float _x, float _y, float _z, float _w )-{-    mX = _x;-    mY = _y;-    mZ = _z;-    mW = _w;-}--inline Vector4::Vector4( const Vector3 & xyz, float _w )-{-    this->setXYZ( xyz );-    this->setW( _w );-}--inline Vector4::Vector4( const Vector3 & vec )-{-    mX = vec.getX();-    mY = vec.getY();-    mZ = vec.getZ();-    mW = 0.0f;-}--inline Vector4::Vector4( const Point3 & pnt )-{-    mX = pnt.getX();-    mY = pnt.getY();-    mZ = pnt.getZ();-    mW = 1.0f;-}--inline Vector4::Vector4( const Quat & quat )-{-    mX = quat.getX();-    mY = quat.getY();-    mZ = quat.getZ();-    mW = quat.getW();-}--inline Vector4::Vector4( float scalar )-{-    mX = scalar;-    mY = scalar;-    mZ = scalar;-    mW = scalar;-}--inline const Vector4 Vector4::xAxis( )-{-    return Vector4( 1.0f, 0.0f, 0.0f, 0.0f );-}--inline const Vector4 Vector4::yAxis( )-{-    return Vector4( 0.0f, 1.0f, 0.0f, 0.0f );-}--inline const Vector4 Vector4::zAxis( )-{-    return Vector4( 0.0f, 0.0f, 1.0f, 0.0f );-}--inline const Vector4 Vector4::wAxis( )-{-    return Vector4( 0.0f, 0.0f, 0.0f, 1.0f );-}--inline const Vector4 lerp( float t, const Vector4 & vec0, const Vector4 & vec1 )-{-    return ( vec0 + ( ( vec1 - vec0 ) * t ) );-}--inline const Vector4 slerp( float t, const Vector4 & unitVec0, const Vector4 & unitVec1 )-{-    float recipSinAngle, scale0, scale1, cosAngle, angle;-    cosAngle = dot( unitVec0, unitVec1 );-    if ( cosAngle < _VECTORMATH_SLERP_TOL ) {-        angle = acosf( cosAngle );-        recipSinAngle = ( 1.0f / sinf( angle ) );-        scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );-        scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );-    } else {-        scale0 = ( 1.0f - t );-        scale1 = t;-    }-    return ( ( unitVec0 * scale0 ) + ( unitVec1 * scale1 ) );-}--inline void loadXYZW( Vector4 & vec, const float * fptr )-{-    vec = Vector4( fptr[0], fptr[1], fptr[2], fptr[3] );-}--inline void storeXYZW( const Vector4 & vec, float * fptr )-{-    fptr[0] = vec.getX();-    fptr[1] = vec.getY();-    fptr[2] = vec.getZ();-    fptr[3] = vec.getW();-}--inline void loadHalfFloats( Vector4 & vec, const unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 4; i++) {-        unsigned short fp16 = hfptr[i];-        unsigned int sign = fp16 >> 15;-        unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);-        unsigned int mantissa = fp16 & ((1 << 10) - 1);--        if (exponent == 0) {-            // zero-            mantissa = 0;--        } else if (exponent == 31) {-            // infinity or nan -> infinity-            exponent = 255;-	    mantissa = 0;--        } else {-            exponent += 127 - 15;-            mantissa <<= 13;-        }--        Data32 d;-        d.u32 = (sign << 31) | (exponent << 23) | mantissa;-        vec[i] = d.f32;-    }-}--inline void storeHalfFloats( const Vector4 & vec, unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 4; i++) {-        Data32 d;-        d.f32 = vec[i];--        unsigned int sign = d.u32 >> 31;-        unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);-        unsigned int mantissa = d.u32 & ((1 << 23) - 1);;--        if (exponent == 0) {-            // zero or denorm -> zero-            mantissa = 0;--        } else if (exponent == 255 && mantissa != 0) {-            // nan -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent >= 127 - 15 + 31) {-            // overflow or infinity -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent <= 127 - 15) {-            // underflow -> zero-            exponent = 0;-            mantissa = 0;--        } else {-            exponent -= 127 - 15;-            mantissa >>= 13;-        }--        hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);-    }-}--inline Vector4 & Vector4::operator =( const Vector4 & vec )-{-    mX = vec.mX;-    mY = vec.mY;-    mZ = vec.mZ;-    mW = vec.mW;-    return *this;-}--inline Vector4 & Vector4::setXYZ( const Vector3 & vec )-{-    mX = vec.getX();-    mY = vec.getY();-    mZ = vec.getZ();-    return *this;-}--inline const Vector3 Vector4::getXYZ( ) const-{-    return Vector3( mX, mY, mZ );-}--inline Vector4 & Vector4::setX( float _x )-{-    mX = _x;-    return *this;-}--inline float Vector4::getX( ) const-{-    return mX;-}--inline Vector4 & Vector4::setY( float _y )-{-    mY = _y;-    return *this;-}--inline float Vector4::getY( ) const-{-    return mY;-}--inline Vector4 & Vector4::setZ( float _z )-{-    mZ = _z;-    return *this;-}--inline float Vector4::getZ( ) const-{-    return mZ;-}--inline Vector4 & Vector4::setW( float _w )-{-    mW = _w;-    return *this;-}--inline float Vector4::getW( ) const-{-    return mW;-}--inline Vector4 & Vector4::setElem( int idx, float value )-{-    *(&mX + idx) = value;-    return *this;-}--inline float Vector4::getElem( int idx ) const-{-    return *(&mX + idx);-}--inline float & Vector4::operator []( int idx )-{-    return *(&mX + idx);-}--inline float Vector4::operator []( int idx ) const-{-    return *(&mX + idx);-}--inline const Vector4 Vector4::operator +( const Vector4 & vec ) const-{-    return Vector4(-        ( mX + vec.mX ),-        ( mY + vec.mY ),-        ( mZ + vec.mZ ),-        ( mW + vec.mW )-    );-}--inline const Vector4 Vector4::operator -( const Vector4 & vec ) const-{-    return Vector4(-        ( mX - vec.mX ),-        ( mY - vec.mY ),-        ( mZ - vec.mZ ),-        ( mW - vec.mW )-    );-}--inline const Vector4 Vector4::operator *( float scalar ) const-{-    return Vector4(-        ( mX * scalar ),-        ( mY * scalar ),-        ( mZ * scalar ),-        ( mW * scalar )-    );-}--inline Vector4 & Vector4::operator +=( const Vector4 & vec )-{-    *this = *this + vec;-    return *this;-}--inline Vector4 & Vector4::operator -=( const Vector4 & vec )-{-    *this = *this - vec;-    return *this;-}--inline Vector4 & Vector4::operator *=( float scalar )-{-    *this = *this * scalar;-    return *this;-}--inline const Vector4 Vector4::operator /( float scalar ) const-{-    return Vector4(-        ( mX / scalar ),-        ( mY / scalar ),-        ( mZ / scalar ),-        ( mW / scalar )-    );-}--inline Vector4 & Vector4::operator /=( float scalar )-{-    *this = *this / scalar;-    return *this;-}--inline const Vector4 Vector4::operator -( ) const-{-    return Vector4(-        -mX,-        -mY,-        -mZ,-        -mW-    );-}--inline const Vector4 operator *( float scalar, const Vector4 & vec )-{-    return vec * scalar;-}--inline const Vector4 mulPerElem( const Vector4 & vec0, const Vector4 & vec1 )-{-    return Vector4(-        ( vec0.getX() * vec1.getX() ),-        ( vec0.getY() * vec1.getY() ),-        ( vec0.getZ() * vec1.getZ() ),-        ( vec0.getW() * vec1.getW() )-    );-}--inline const Vector4 divPerElem( const Vector4 & vec0, const Vector4 & vec1 )-{-    return Vector4(-        ( vec0.getX() / vec1.getX() ),-        ( vec0.getY() / vec1.getY() ),-        ( vec0.getZ() / vec1.getZ() ),-        ( vec0.getW() / vec1.getW() )-    );-}--inline const Vector4 recipPerElem( const Vector4 & vec )-{-    return Vector4(-        ( 1.0f / vec.getX() ),-        ( 1.0f / vec.getY() ),-        ( 1.0f / vec.getZ() ),-        ( 1.0f / vec.getW() )-    );-}--inline const Vector4 sqrtPerElem( const Vector4 & vec )-{-    return Vector4(-        sqrtf( vec.getX() ),-        sqrtf( vec.getY() ),-        sqrtf( vec.getZ() ),-        sqrtf( vec.getW() )-    );-}--inline const Vector4 rsqrtPerElem( const Vector4 & vec )-{-    return Vector4(-        ( 1.0f / sqrtf( vec.getX() ) ),-        ( 1.0f / sqrtf( vec.getY() ) ),-        ( 1.0f / sqrtf( vec.getZ() ) ),-        ( 1.0f / sqrtf( vec.getW() ) )-    );-}--inline const Vector4 absPerElem( const Vector4 & vec )-{-    return Vector4(-        fabsf( vec.getX() ),-        fabsf( vec.getY() ),-        fabsf( vec.getZ() ),-        fabsf( vec.getW() )-    );-}--inline const Vector4 copySignPerElem( const Vector4 & vec0, const Vector4 & vec1 )-{-    return Vector4(-        ( vec1.getX() < 0.0f )? -fabsf( vec0.getX() ) : fabsf( vec0.getX() ),-        ( vec1.getY() < 0.0f )? -fabsf( vec0.getY() ) : fabsf( vec0.getY() ),-        ( vec1.getZ() < 0.0f )? -fabsf( vec0.getZ() ) : fabsf( vec0.getZ() ),-        ( vec1.getW() < 0.0f )? -fabsf( vec0.getW() ) : fabsf( vec0.getW() )-    );-}--inline const Vector4 maxPerElem( const Vector4 & vec0, const Vector4 & vec1 )-{-    return Vector4(-        (vec0.getX() > vec1.getX())? vec0.getX() : vec1.getX(),-        (vec0.getY() > vec1.getY())? vec0.getY() : vec1.getY(),-        (vec0.getZ() > vec1.getZ())? vec0.getZ() : vec1.getZ(),-        (vec0.getW() > vec1.getW())? vec0.getW() : vec1.getW()-    );-}--inline float maxElem( const Vector4 & vec )-{-    float result;-    result = (vec.getX() > vec.getY())? vec.getX() : vec.getY();-    result = (vec.getZ() > result)? vec.getZ() : result;-    result = (vec.getW() > result)? vec.getW() : result;-    return result;-}--inline const Vector4 minPerElem( const Vector4 & vec0, const Vector4 & vec1 )-{-    return Vector4(-        (vec0.getX() < vec1.getX())? vec0.getX() : vec1.getX(),-        (vec0.getY() < vec1.getY())? vec0.getY() : vec1.getY(),-        (vec0.getZ() < vec1.getZ())? vec0.getZ() : vec1.getZ(),-        (vec0.getW() < vec1.getW())? vec0.getW() : vec1.getW()-    );-}--inline float minElem( const Vector4 & vec )-{-    float result;-    result = (vec.getX() < vec.getY())? vec.getX() : vec.getY();-    result = (vec.getZ() < result)? vec.getZ() : result;-    result = (vec.getW() < result)? vec.getW() : result;-    return result;-}--inline float sum( const Vector4 & vec )-{-    float result;-    result = ( vec.getX() + vec.getY() );-    result = ( result + vec.getZ() );-    result = ( result + vec.getW() );-    return result;-}--inline float dot( const Vector4 & vec0, const Vector4 & vec1 )-{-    float result;-    result = ( vec0.getX() * vec1.getX() );-    result = ( result + ( vec0.getY() * vec1.getY() ) );-    result = ( result + ( vec0.getZ() * vec1.getZ() ) );-    result = ( result + ( vec0.getW() * vec1.getW() ) );-    return result;-}--inline float lengthSqr( const Vector4 & vec )-{-    float result;-    result = ( vec.getX() * vec.getX() );-    result = ( result + ( vec.getY() * vec.getY() ) );-    result = ( result + ( vec.getZ() * vec.getZ() ) );-    result = ( result + ( vec.getW() * vec.getW() ) );-    return result;-}--inline float length( const Vector4 & vec )-{-    return ::sqrtf( lengthSqr( vec ) );-}--inline const Vector4 normalize( const Vector4 & vec )-{-    float lenSqr, lenInv;-    lenSqr = lengthSqr( vec );-    lenInv = ( 1.0f / sqrtf( lenSqr ) );-    return Vector4(-        ( vec.getX() * lenInv ),-        ( vec.getY() * lenInv ),-        ( vec.getZ() * lenInv ),-        ( vec.getW() * lenInv )-    );-}--inline const Vector4 select( const Vector4 & vec0, const Vector4 & vec1, bool select1 )-{-    return Vector4(-        ( select1 )? vec1.getX() : vec0.getX(),-        ( select1 )? vec1.getY() : vec0.getY(),-        ( select1 )? vec1.getZ() : vec0.getZ(),-        ( select1 )? vec1.getW() : vec0.getW()-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Vector4 & vec )-{-    printf( "( %f %f %f %f )\n", vec.getX(), vec.getY(), vec.getZ(), vec.getW() );-}--inline void print( const Vector4 & vec, const char * name )-{-    printf( "%s: ( %f %f %f %f )\n", name, vec.getX(), vec.getY(), vec.getZ(), vec.getW() );-}--#endif--inline Point3::Point3( const Point3 & pnt )-{-    mX = pnt.mX;-    mY = pnt.mY;-    mZ = pnt.mZ;-}--inline Point3::Point3( float _x, float _y, float _z )-{-    mX = _x;-    mY = _y;-    mZ = _z;-}--inline Point3::Point3( const Vector3 & vec )-{-    mX = vec.getX();-    mY = vec.getY();-    mZ = vec.getZ();-}--inline Point3::Point3( float scalar )-{-    mX = scalar;-    mY = scalar;-    mZ = scalar;-}--inline const Point3 lerp( float t, const Point3 & pnt0, const Point3 & pnt1 )-{-    return ( pnt0 + ( ( pnt1 - pnt0 ) * t ) );-}--inline void loadXYZ( Point3 & pnt, const float * fptr )-{-    pnt = Point3( fptr[0], fptr[1], fptr[2] );-}--inline void storeXYZ( const Point3 & pnt, float * fptr )-{-    fptr[0] = pnt.getX();-    fptr[1] = pnt.getY();-    fptr[2] = pnt.getZ();-}--inline void loadHalfFloats( Point3 & vec, const unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 3; i++) {-        unsigned short fp16 = hfptr[i];-        unsigned int sign = fp16 >> 15;-        unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);-        unsigned int mantissa = fp16 & ((1 << 10) - 1);--        if (exponent == 0) {-            // zero-            mantissa = 0;--        } else if (exponent == 31) {-            // infinity or nan -> infinity-            exponent = 255;-	    mantissa = 0;--        } else {-            exponent += 127 - 15;-            mantissa <<= 13;-        }--        Data32 d;-        d.u32 = (sign << 31) | (exponent << 23) | mantissa;-        vec[i] = d.f32;-    }-}--inline void storeHalfFloats( const Point3 & vec, unsigned short * hfptr )-{-    union Data32 {-        unsigned int u32;-        float f32;-    };--    for (int i = 0; i < 3; i++) {-        Data32 d;-        d.f32 = vec[i];--        unsigned int sign = d.u32 >> 31;-        unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);-        unsigned int mantissa = d.u32 & ((1 << 23) - 1);;--        if (exponent == 0) {-            // zero or denorm -> zero-            mantissa = 0;--        } else if (exponent == 255 && mantissa != 0) {-            // nan -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent >= 127 - 15 + 31) {-            // overflow or infinity -> infinity-            exponent = 31;-            mantissa = 0;--        } else if (exponent <= 127 - 15) {-            // underflow -> zero-            exponent = 0;-            mantissa = 0;--        } else {-            exponent -= 127 - 15;-            mantissa >>= 13;-        }--        hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);-    }-}--inline Point3 & Point3::operator =( const Point3 & pnt )-{-    mX = pnt.mX;-    mY = pnt.mY;-    mZ = pnt.mZ;-    return *this;-}--inline Point3 & Point3::setX( float _x )-{-    mX = _x;-    return *this;-}--inline float Point3::getX( ) const-{-    return mX;-}--inline Point3 & Point3::setY( float _y )-{-    mY = _y;-    return *this;-}--inline float Point3::getY( ) const-{-    return mY;-}--inline Point3 & Point3::setZ( float _z )-{-    mZ = _z;-    return *this;-}--inline float Point3::getZ( ) const-{-    return mZ;-}--inline Point3 & Point3::setElem( int idx, float value )-{-    *(&mX + idx) = value;-    return *this;-}--inline float Point3::getElem( int idx ) const-{-    return *(&mX + idx);-}--inline float & Point3::operator []( int idx )-{-    return *(&mX + idx);-}--inline float Point3::operator []( int idx ) const-{-    return *(&mX + idx);-}--inline const Vector3 Point3::operator -( const Point3 & pnt ) const-{-    return Vector3(-        ( mX - pnt.mX ),-        ( mY - pnt.mY ),-        ( mZ - pnt.mZ )-    );-}--inline const Point3 Point3::operator +( const Vector3 & vec ) const-{-    return Point3(-        ( mX + vec.getX() ),-        ( mY + vec.getY() ),-        ( mZ + vec.getZ() )-    );-}--inline const Point3 Point3::operator -( const Vector3 & vec ) const-{-    return Point3(-        ( mX - vec.getX() ),-        ( mY - vec.getY() ),-        ( mZ - vec.getZ() )-    );-}--inline Point3 & Point3::operator +=( const Vector3 & vec )-{-    *this = *this + vec;-    return *this;-}--inline Point3 & Point3::operator -=( const Vector3 & vec )-{-    *this = *this - vec;-    return *this;-}--inline const Point3 mulPerElem( const Point3 & pnt0, const Point3 & pnt1 )-{-    return Point3(-        ( pnt0.getX() * pnt1.getX() ),-        ( pnt0.getY() * pnt1.getY() ),-        ( pnt0.getZ() * pnt1.getZ() )-    );-}--inline const Point3 divPerElem( const Point3 & pnt0, const Point3 & pnt1 )-{-    return Point3(-        ( pnt0.getX() / pnt1.getX() ),-        ( pnt0.getY() / pnt1.getY() ),-        ( pnt0.getZ() / pnt1.getZ() )-    );-}--inline const Point3 recipPerElem( const Point3 & pnt )-{-    return Point3(-        ( 1.0f / pnt.getX() ),-        ( 1.0f / pnt.getY() ),-        ( 1.0f / pnt.getZ() )-    );-}--inline const Point3 sqrtPerElem( const Point3 & pnt )-{-    return Point3(-        sqrtf( pnt.getX() ),-        sqrtf( pnt.getY() ),-        sqrtf( pnt.getZ() )-    );-}--inline const Point3 rsqrtPerElem( const Point3 & pnt )-{-    return Point3(-        ( 1.0f / sqrtf( pnt.getX() ) ),-        ( 1.0f / sqrtf( pnt.getY() ) ),-        ( 1.0f / sqrtf( pnt.getZ() ) )-    );-}--inline const Point3 absPerElem( const Point3 & pnt )-{-    return Point3(-        fabsf( pnt.getX() ),-        fabsf( pnt.getY() ),-        fabsf( pnt.getZ() )-    );-}--inline const Point3 copySignPerElem( const Point3 & pnt0, const Point3 & pnt1 )-{-    return Point3(-        ( pnt1.getX() < 0.0f )? -fabsf( pnt0.getX() ) : fabsf( pnt0.getX() ),-        ( pnt1.getY() < 0.0f )? -fabsf( pnt0.getY() ) : fabsf( pnt0.getY() ),-        ( pnt1.getZ() < 0.0f )? -fabsf( pnt0.getZ() ) : fabsf( pnt0.getZ() )-    );-}--inline const Point3 maxPerElem( const Point3 & pnt0, const Point3 & pnt1 )-{-    return Point3(-        (pnt0.getX() > pnt1.getX())? pnt0.getX() : pnt1.getX(),-        (pnt0.getY() > pnt1.getY())? pnt0.getY() : pnt1.getY(),-        (pnt0.getZ() > pnt1.getZ())? pnt0.getZ() : pnt1.getZ()-    );-}--inline float maxElem( const Point3 & pnt )-{-    float result;-    result = (pnt.getX() > pnt.getY())? pnt.getX() : pnt.getY();-    result = (pnt.getZ() > result)? pnt.getZ() : result;-    return result;-}--inline const Point3 minPerElem( const Point3 & pnt0, const Point3 & pnt1 )-{-    return Point3(-        (pnt0.getX() < pnt1.getX())? pnt0.getX() : pnt1.getX(),-        (pnt0.getY() < pnt1.getY())? pnt0.getY() : pnt1.getY(),-        (pnt0.getZ() < pnt1.getZ())? pnt0.getZ() : pnt1.getZ()-    );-}--inline float minElem( const Point3 & pnt )-{-    float result;-    result = (pnt.getX() < pnt.getY())? pnt.getX() : pnt.getY();-    result = (pnt.getZ() < result)? pnt.getZ() : result;-    return result;-}--inline float sum( const Point3 & pnt )-{-    float result;-    result = ( pnt.getX() + pnt.getY() );-    result = ( result + pnt.getZ() );-    return result;-}--inline const Point3 scale( const Point3 & pnt, float scaleVal )-{-    return mulPerElem( pnt, Point3( scaleVal ) );-}--inline const Point3 scale( const Point3 & pnt, const Vector3 & scaleVec )-{-    return mulPerElem( pnt, Point3( scaleVec ) );-}--inline float projection( const Point3 & pnt, const Vector3 & unitVec )-{-    float result;-    result = ( pnt.getX() * unitVec.getX() );-    result = ( result + ( pnt.getY() * unitVec.getY() ) );-    result = ( result + ( pnt.getZ() * unitVec.getZ() ) );-    return result;-}--inline float distSqrFromOrigin( const Point3 & pnt )-{-    return lengthSqr( Vector3( pnt ) );-}--inline float distFromOrigin( const Point3 & pnt )-{-    return length( Vector3( pnt ) );-}--inline float distSqr( const Point3 & pnt0, const Point3 & pnt1 )-{-    return lengthSqr( ( pnt1 - pnt0 ) );-}--inline float dist( const Point3 & pnt0, const Point3 & pnt1 )-{-    return length( ( pnt1 - pnt0 ) );-}--inline const Point3 select( const Point3 & pnt0, const Point3 & pnt1, bool select1 )-{-    return Point3(-        ( select1 )? pnt1.getX() : pnt0.getX(),-        ( select1 )? pnt1.getY() : pnt0.getY(),-        ( select1 )? pnt1.getZ() : pnt0.getZ()-    );-}--#ifdef _VECTORMATH_DEBUG--inline void print( const Point3 & pnt )-{-    printf( "( %f %f %f )\n", pnt.getX(), pnt.getY(), pnt.getZ() );-}--inline void print( const Point3 & pnt, const char * name )-{-    printf( "%s: ( %f %f %f )\n", name, pnt.getX(), pnt.getY(), pnt.getZ() );+Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.++*/++#ifndef _VECTORMATH_VEC_AOS_CPP_H+#define _VECTORMATH_VEC_AOS_CPP_H++//-----------------------------------------------------------------------------+// Constants++#define _VECTORMATH_SLERP_TOL 0.999f++//-----------------------------------------------------------------------------+// Definitions++#ifndef _VECTORMATH_INTERNAL_FUNCTIONS+#define _VECTORMATH_INTERNAL_FUNCTIONS++#endif++namespace Vectormath {+namespace Aos {++inline Vector3::Vector3( const Vector3 & vec )+{+mX = vec.mX;+mY = vec.mY;+mZ = vec.mZ;+}++inline Vector3::Vector3( float _x, float _y, float _z )+{+mX = _x;+mY = _y;+mZ = _z;+}++inline Vector3::Vector3( const Point3 & pnt )+{+mX = pnt.getX();+mY = pnt.getY();+mZ = pnt.getZ();+}++inline Vector3::Vector3( float scalar )+{+mX = scalar;+mY = scalar;+mZ = scalar;+}++inline const Vector3 Vector3::xAxis( )+{+return Vector3( 1.0f, 0.0f, 0.0f );+}++inline const Vector3 Vector3::yAxis( )+{+return Vector3( 0.0f, 1.0f, 0.0f );+}++inline const Vector3 Vector3::zAxis( )+{+return Vector3( 0.0f, 0.0f, 1.0f );+}++inline const Vector3 lerp( float t, const Vector3 & vec0, const Vector3 & vec1 )+{+return ( vec0 + ( ( vec1 - vec0 ) * t ) );+}++inline const Vector3 slerp( float t, const Vector3 & unitVec0, const Vector3 & unitVec1 )+{+float recipSinAngle, scale0, scale1, cosAngle, angle;+cosAngle = dot( unitVec0, unitVec1 );+if ( cosAngle < _VECTORMATH_SLERP_TOL ) {+angle = acosf( cosAngle );+recipSinAngle = ( 1.0f / sinf( angle ) );+scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );+scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );+} else {+scale0 = ( 1.0f - t );+scale1 = t;+}+return ( ( unitVec0 * scale0 ) + ( unitVec1 * scale1 ) );+}++inline void loadXYZ( Vector3 & vec, const float * fptr )+{+vec = Vector3( fptr[0], fptr[1], fptr[2] );+}++inline void storeXYZ( const Vector3 & vec, float * fptr )+{+fptr[0] = vec.getX();+fptr[1] = vec.getY();+fptr[2] = vec.getZ();+}++inline void loadHalfFloats( Vector3 & vec, const unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 3; i++) {+unsigned short fp16 = hfptr[i];+unsigned int sign = fp16 >> 15;+unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);+unsigned int mantissa = fp16 & ((1 << 10) - 1);++if (exponent == 0) {+// zero+mantissa = 0;++} else if (exponent == 31) {+// infinity or nan -> infinity+exponent = 255;+mantissa = 0;++} else {+exponent += 127 - 15;+mantissa <<= 13;+}++Data32 d;+d.u32 = (sign << 31) | (exponent << 23) | mantissa;+vec[i] = d.f32;+}+}++inline void storeHalfFloats( const Vector3 & vec, unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 3; i++) {+Data32 d;+d.f32 = vec[i];++unsigned int sign = d.u32 >> 31;+unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);+unsigned int mantissa = d.u32 & ((1 << 23) - 1);;++if (exponent == 0) {+// zero or denorm -> zero+mantissa = 0;++} else if (exponent == 255 && mantissa != 0) {+// nan -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent >= 127 - 15 + 31) {+// overflow or infinity -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent <= 127 - 15) {+// underflow -> zero+exponent = 0;+mantissa = 0;++} else {+exponent -= 127 - 15;+mantissa >>= 13;+}++hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);+}+}++inline Vector3 & Vector3::operator =( const Vector3 & vec )+{+mX = vec.mX;+mY = vec.mY;+mZ = vec.mZ;+return *this;+}++inline Vector3 & Vector3::setX( float _x )+{+mX = _x;+return *this;+}++inline float Vector3::getX( ) const+{+return mX;+}++inline Vector3 & Vector3::setY( float _y )+{+mY = _y;+return *this;+}++inline float Vector3::getY( ) const+{+return mY;+}++inline Vector3 & Vector3::setZ( float _z )+{+mZ = _z;+return *this;+}++inline float Vector3::getZ( ) const+{+return mZ;+}++inline Vector3 & Vector3::setElem( int idx, float value )+{+*(&mX + idx) = value;+return *this;+}++inline float Vector3::getElem( int idx ) const+{+return *(&mX + idx);+}++inline float & Vector3::operator []( int idx )+{+return *(&mX + idx);+}++inline float Vector3::operator []( int idx ) const+{+return *(&mX + idx);+}++inline const Vector3 Vector3::operator +( const Vector3 & vec ) const+{+return Vector3(+( mX + vec.mX ),+( mY + vec.mY ),+( mZ + vec.mZ )+);+}++inline const Vector3 Vector3::operator -( const Vector3 & vec ) const+{+return Vector3(+( mX - vec.mX ),+( mY - vec.mY ),+( mZ - vec.mZ )+);+}++inline const Point3 Vector3::operator +( const Point3 & pnt ) const+{+return Point3(+( mX + pnt.getX() ),+( mY + pnt.getY() ),+( mZ + pnt.getZ() )+);+}++inline const Vector3 Vector3::operator *( float scalar ) const+{+return Vector3(+( mX * scalar ),+( mY * scalar ),+( mZ * scalar )+);+}++inline Vector3 & Vector3::operator +=( const Vector3 & vec )+{+*this = *this + vec;+return *this;+}++inline Vector3 & Vector3::operator -=( const Vector3 & vec )+{+*this = *this - vec;+return *this;+}++inline Vector3 & Vector3::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++inline const Vector3 Vector3::operator /( float scalar ) const+{+return Vector3(+( mX / scalar ),+( mY / scalar ),+( mZ / scalar )+);+}++inline Vector3 & Vector3::operator /=( float scalar )+{+*this = *this / scalar;+return *this;+}++inline const Vector3 Vector3::operator -( ) const+{+return Vector3(+-mX,+-mY,+-mZ+);+}++inline const Vector3 operator *( float scalar, const Vector3 & vec )+{+return vec * scalar;+}++inline const Vector3 mulPerElem( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+( vec0.getX() * vec1.getX() ),+( vec0.getY() * vec1.getY() ),+( vec0.getZ() * vec1.getZ() )+);+}++inline const Vector3 divPerElem( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+( vec0.getX() / vec1.getX() ),+( vec0.getY() / vec1.getY() ),+( vec0.getZ() / vec1.getZ() )+);+}++inline const Vector3 recipPerElem( const Vector3 & vec )+{+return Vector3(+( 1.0f / vec.getX() ),+( 1.0f / vec.getY() ),+( 1.0f / vec.getZ() )+);+}++inline const Vector3 sqrtPerElem( const Vector3 & vec )+{+return Vector3(+sqrtf( vec.getX() ),+sqrtf( vec.getY() ),+sqrtf( vec.getZ() )+);+}++inline const Vector3 rsqrtPerElem( const Vector3 & vec )+{+return Vector3(+( 1.0f / sqrtf( vec.getX() ) ),+( 1.0f / sqrtf( vec.getY() ) ),+( 1.0f / sqrtf( vec.getZ() ) )+);+}++inline const Vector3 absPerElem( const Vector3 & vec )+{+return Vector3(+fabsf( vec.getX() ),+fabsf( vec.getY() ),+fabsf( vec.getZ() )+);+}++inline const Vector3 copySignPerElem( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+( vec1.getX() < 0.0f )? -fabsf( vec0.getX() ) : fabsf( vec0.getX() ),+( vec1.getY() < 0.0f )? -fabsf( vec0.getY() ) : fabsf( vec0.getY() ),+( vec1.getZ() < 0.0f )? -fabsf( vec0.getZ() ) : fabsf( vec0.getZ() )+);+}++inline const Vector3 maxPerElem( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+(vec0.getX() > vec1.getX())? vec0.getX() : vec1.getX(),+(vec0.getY() > vec1.getY())? vec0.getY() : vec1.getY(),+(vec0.getZ() > vec1.getZ())? vec0.getZ() : vec1.getZ()+);+}++inline float maxElem( const Vector3 & vec )+{+float result;+result = (vec.getX() > vec.getY())? vec.getX() : vec.getY();+result = (vec.getZ() > result)? vec.getZ() : result;+return result;+}++inline const Vector3 minPerElem( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+(vec0.getX() < vec1.getX())? vec0.getX() : vec1.getX(),+(vec0.getY() < vec1.getY())? vec0.getY() : vec1.getY(),+(vec0.getZ() < vec1.getZ())? vec0.getZ() : vec1.getZ()+);+}++inline float minElem( const Vector3 & vec )+{+float result;+result = (vec.getX() < vec.getY())? vec.getX() : vec.getY();+result = (vec.getZ() < result)? vec.getZ() : result;+return result;+}++inline float sum( const Vector3 & vec )+{+float result;+result = ( vec.getX() + vec.getY() );+result = ( result + vec.getZ() );+return result;+}++inline float dot( const Vector3 & vec0, const Vector3 & vec1 )+{+float result;+result = ( vec0.getX() * vec1.getX() );+result = ( result + ( vec0.getY() * vec1.getY() ) );+result = ( result + ( vec0.getZ() * vec1.getZ() ) );+return result;+}++inline float lengthSqr( const Vector3 & vec )+{+float result;+result = ( vec.getX() * vec.getX() );+result = ( result + ( vec.getY() * vec.getY() ) );+result = ( result + ( vec.getZ() * vec.getZ() ) );+return result;+}++inline float length( const Vector3 & vec )+{+return ::sqrtf( lengthSqr( vec ) );+}++inline const Vector3 normalize( const Vector3 & vec )+{+float lenSqr, lenInv;+lenSqr = lengthSqr( vec );+lenInv = ( 1.0f / sqrtf( lenSqr ) );+return Vector3(+( vec.getX() * lenInv ),+( vec.getY() * lenInv ),+( vec.getZ() * lenInv )+);+}++inline const Vector3 cross( const Vector3 & vec0, const Vector3 & vec1 )+{+return Vector3(+( ( vec0.getY() * vec1.getZ() ) - ( vec0.getZ() * vec1.getY() ) ),+( ( vec0.getZ() * vec1.getX() ) - ( vec0.getX() * vec1.getZ() ) ),+( ( vec0.getX() * vec1.getY() ) - ( vec0.getY() * vec1.getX() ) )+);+}++inline const Vector3 select( const Vector3 & vec0, const Vector3 & vec1, bool select1 )+{+return Vector3(+( select1 )? vec1.getX() : vec0.getX(),+( select1 )? vec1.getY() : vec0.getY(),+( select1 )? vec1.getZ() : vec0.getZ()+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Vector3 & vec )+{+printf( "( %f %f %f )\n", vec.getX(), vec.getY(), vec.getZ() );+}++inline void print( const Vector3 & vec, const char * name )+{+printf( "%s: ( %f %f %f )\n", name, vec.getX(), vec.getY(), vec.getZ() );+}++#endif++inline Vector4::Vector4( const Vector4 & vec )+{+mX = vec.mX;+mY = vec.mY;+mZ = vec.mZ;+mW = vec.mW;+}++inline Vector4::Vector4( float _x, float _y, float _z, float _w )+{+mX = _x;+mY = _y;+mZ = _z;+mW = _w;+}++inline Vector4::Vector4( const Vector3 & xyz, float _w )+{+this->setXYZ( xyz );+this->setW( _w );+}++inline Vector4::Vector4( const Vector3 & vec )+{+mX = vec.getX();+mY = vec.getY();+mZ = vec.getZ();+mW = 0.0f;+}++inline Vector4::Vector4( const Point3 & pnt )+{+mX = pnt.getX();+mY = pnt.getY();+mZ = pnt.getZ();+mW = 1.0f;+}++inline Vector4::Vector4( const Quat & quat )+{+mX = quat.getX();+mY = quat.getY();+mZ = quat.getZ();+mW = quat.getW();+}++inline Vector4::Vector4( float scalar )+{+mX = scalar;+mY = scalar;+mZ = scalar;+mW = scalar;+}++inline const Vector4 Vector4::xAxis( )+{+return Vector4( 1.0f, 0.0f, 0.0f, 0.0f );+}++inline const Vector4 Vector4::yAxis( )+{+return Vector4( 0.0f, 1.0f, 0.0f, 0.0f );+}++inline const Vector4 Vector4::zAxis( )+{+return Vector4( 0.0f, 0.0f, 1.0f, 0.0f );+}++inline const Vector4 Vector4::wAxis( )+{+return Vector4( 0.0f, 0.0f, 0.0f, 1.0f );+}++inline const Vector4 lerp( float t, const Vector4 & vec0, const Vector4 & vec1 )+{+return ( vec0 + ( ( vec1 - vec0 ) * t ) );+}++inline const Vector4 slerp( float t, const Vector4 & unitVec0, const Vector4 & unitVec1 )+{+float recipSinAngle, scale0, scale1, cosAngle, angle;+cosAngle = dot( unitVec0, unitVec1 );+if ( cosAngle < _VECTORMATH_SLERP_TOL ) {+angle = acosf( cosAngle );+recipSinAngle = ( 1.0f / sinf( angle ) );+scale0 = ( sinf( ( ( 1.0f - t ) * angle ) ) * recipSinAngle );+scale1 = ( sinf( ( t * angle ) ) * recipSinAngle );+} else {+scale0 = ( 1.0f - t );+scale1 = t;+}+return ( ( unitVec0 * scale0 ) + ( unitVec1 * scale1 ) );+}++inline void loadXYZW( Vector4 & vec, const float * fptr )+{+vec = Vector4( fptr[0], fptr[1], fptr[2], fptr[3] );+}++inline void storeXYZW( const Vector4 & vec, float * fptr )+{+fptr[0] = vec.getX();+fptr[1] = vec.getY();+fptr[2] = vec.getZ();+fptr[3] = vec.getW();+}++inline void loadHalfFloats( Vector4 & vec, const unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 4; i++) {+unsigned short fp16 = hfptr[i];+unsigned int sign = fp16 >> 15;+unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);+unsigned int mantissa = fp16 & ((1 << 10) - 1);++if (exponent == 0) {+// zero+mantissa = 0;++} else if (exponent == 31) {+// infinity or nan -> infinity+exponent = 255;+mantissa = 0;++} else {+exponent += 127 - 15;+mantissa <<= 13;+}++Data32 d;+d.u32 = (sign << 31) | (exponent << 23) | mantissa;+vec[i] = d.f32;+}+}++inline void storeHalfFloats( const Vector4 & vec, unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 4; i++) {+Data32 d;+d.f32 = vec[i];++unsigned int sign = d.u32 >> 31;+unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);+unsigned int mantissa = d.u32 & ((1 << 23) - 1);;++if (exponent == 0) {+// zero or denorm -> zero+mantissa = 0;++} else if (exponent == 255 && mantissa != 0) {+// nan -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent >= 127 - 15 + 31) {+// overflow or infinity -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent <= 127 - 15) {+// underflow -> zero+exponent = 0;+mantissa = 0;++} else {+exponent -= 127 - 15;+mantissa >>= 13;+}++hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);+}+}++inline Vector4 & Vector4::operator =( const Vector4 & vec )+{+mX = vec.mX;+mY = vec.mY;+mZ = vec.mZ;+mW = vec.mW;+return *this;+}++inline Vector4 & Vector4::setXYZ( const Vector3 & vec )+{+mX = vec.getX();+mY = vec.getY();+mZ = vec.getZ();+return *this;+}++inline const Vector3 Vector4::getXYZ( ) const+{+return Vector3( mX, mY, mZ );+}++inline Vector4 & Vector4::setX( float _x )+{+mX = _x;+return *this;+}++inline float Vector4::getX( ) const+{+return mX;+}++inline Vector4 & Vector4::setY( float _y )+{+mY = _y;+return *this;+}++inline float Vector4::getY( ) const+{+return mY;+}++inline Vector4 & Vector4::setZ( float _z )+{+mZ = _z;+return *this;+}++inline float Vector4::getZ( ) const+{+return mZ;+}++inline Vector4 & Vector4::setW( float _w )+{+mW = _w;+return *this;+}++inline float Vector4::getW( ) const+{+return mW;+}++inline Vector4 & Vector4::setElem( int idx, float value )+{+*(&mX + idx) = value;+return *this;+}++inline float Vector4::getElem( int idx ) const+{+return *(&mX + idx);+}++inline float & Vector4::operator []( int idx )+{+return *(&mX + idx);+}++inline float Vector4::operator []( int idx ) const+{+return *(&mX + idx);+}++inline const Vector4 Vector4::operator +( const Vector4 & vec ) const+{+return Vector4(+( mX + vec.mX ),+( mY + vec.mY ),+( mZ + vec.mZ ),+( mW + vec.mW )+);+}++inline const Vector4 Vector4::operator -( const Vector4 & vec ) const+{+return Vector4(+( mX - vec.mX ),+( mY - vec.mY ),+( mZ - vec.mZ ),+( mW - vec.mW )+);+}++inline const Vector4 Vector4::operator *( float scalar ) const+{+return Vector4(+( mX * scalar ),+( mY * scalar ),+( mZ * scalar ),+( mW * scalar )+);+}++inline Vector4 & Vector4::operator +=( const Vector4 & vec )+{+*this = *this + vec;+return *this;+}++inline Vector4 & Vector4::operator -=( const Vector4 & vec )+{+*this = *this - vec;+return *this;+}++inline Vector4 & Vector4::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++inline const Vector4 Vector4::operator /( float scalar ) const+{+return Vector4(+( mX / scalar ),+( mY / scalar ),+( mZ / scalar ),+( mW / scalar )+);+}++inline Vector4 & Vector4::operator /=( float scalar )+{+*this = *this / scalar;+return *this;+}++inline const Vector4 Vector4::operator -( ) const+{+return Vector4(+-mX,+-mY,+-mZ,+-mW+);+}++inline const Vector4 operator *( float scalar, const Vector4 & vec )+{+return vec * scalar;+}++inline const Vector4 mulPerElem( const Vector4 & vec0, const Vector4 & vec1 )+{+return Vector4(+( vec0.getX() * vec1.getX() ),+( vec0.getY() * vec1.getY() ),+( vec0.getZ() * vec1.getZ() ),+( vec0.getW() * vec1.getW() )+);+}++inline const Vector4 divPerElem( const Vector4 & vec0, const Vector4 & vec1 )+{+return Vector4(+( vec0.getX() / vec1.getX() ),+( vec0.getY() / vec1.getY() ),+( vec0.getZ() / vec1.getZ() ),+( vec0.getW() / vec1.getW() )+);+}++inline const Vector4 recipPerElem( const Vector4 & vec )+{+return Vector4(+( 1.0f / vec.getX() ),+( 1.0f / vec.getY() ),+( 1.0f / vec.getZ() ),+( 1.0f / vec.getW() )+);+}++inline const Vector4 sqrtPerElem( const Vector4 & vec )+{+return Vector4(+sqrtf( vec.getX() ),+sqrtf( vec.getY() ),+sqrtf( vec.getZ() ),+sqrtf( vec.getW() )+);+}++inline const Vector4 rsqrtPerElem( const Vector4 & vec )+{+return Vector4(+( 1.0f / sqrtf( vec.getX() ) ),+( 1.0f / sqrtf( vec.getY() ) ),+( 1.0f / sqrtf( vec.getZ() ) ),+( 1.0f / sqrtf( vec.getW() ) )+);+}++inline const Vector4 absPerElem( const Vector4 & vec )+{+return Vector4(+fabsf( vec.getX() ),+fabsf( vec.getY() ),+fabsf( vec.getZ() ),+fabsf( vec.getW() )+);+}++inline const Vector4 copySignPerElem( const Vector4 & vec0, const Vector4 & vec1 )+{+return Vector4(+( vec1.getX() < 0.0f )? -fabsf( vec0.getX() ) : fabsf( vec0.getX() ),+( vec1.getY() < 0.0f )? -fabsf( vec0.getY() ) : fabsf( vec0.getY() ),+( vec1.getZ() < 0.0f )? -fabsf( vec0.getZ() ) : fabsf( vec0.getZ() ),+( vec1.getW() < 0.0f )? -fabsf( vec0.getW() ) : fabsf( vec0.getW() )+);+}++inline const Vector4 maxPerElem( const Vector4 & vec0, const Vector4 & vec1 )+{+return Vector4(+(vec0.getX() > vec1.getX())? vec0.getX() : vec1.getX(),+(vec0.getY() > vec1.getY())? vec0.getY() : vec1.getY(),+(vec0.getZ() > vec1.getZ())? vec0.getZ() : vec1.getZ(),+(vec0.getW() > vec1.getW())? vec0.getW() : vec1.getW()+);+}++inline float maxElem( const Vector4 & vec )+{+float result;+result = (vec.getX() > vec.getY())? vec.getX() : vec.getY();+result = (vec.getZ() > result)? vec.getZ() : result;+result = (vec.getW() > result)? vec.getW() : result;+return result;+}++inline const Vector4 minPerElem( const Vector4 & vec0, const Vector4 & vec1 )+{+return Vector4(+(vec0.getX() < vec1.getX())? vec0.getX() : vec1.getX(),+(vec0.getY() < vec1.getY())? vec0.getY() : vec1.getY(),+(vec0.getZ() < vec1.getZ())? vec0.getZ() : vec1.getZ(),+(vec0.getW() < vec1.getW())? vec0.getW() : vec1.getW()+);+}++inline float minElem( const Vector4 & vec )+{+float result;+result = (vec.getX() < vec.getY())? vec.getX() : vec.getY();+result = (vec.getZ() < result)? vec.getZ() : result;+result = (vec.getW() < result)? vec.getW() : result;+return result;+}++inline float sum( const Vector4 & vec )+{+float result;+result = ( vec.getX() + vec.getY() );+result = ( result + vec.getZ() );+result = ( result + vec.getW() );+return result;+}++inline float dot( const Vector4 & vec0, const Vector4 & vec1 )+{+float result;+result = ( vec0.getX() * vec1.getX() );+result = ( result + ( vec0.getY() * vec1.getY() ) );+result = ( result + ( vec0.getZ() * vec1.getZ() ) );+result = ( result + ( vec0.getW() * vec1.getW() ) );+return result;+}++inline float lengthSqr( const Vector4 & vec )+{+float result;+result = ( vec.getX() * vec.getX() );+result = ( result + ( vec.getY() * vec.getY() ) );+result = ( result + ( vec.getZ() * vec.getZ() ) );+result = ( result + ( vec.getW() * vec.getW() ) );+return result;+}++inline float length( const Vector4 & vec )+{+return ::sqrtf( lengthSqr( vec ) );+}++inline const Vector4 normalize( const Vector4 & vec )+{+float lenSqr, lenInv;+lenSqr = lengthSqr( vec );+lenInv = ( 1.0f / sqrtf( lenSqr ) );+return Vector4(+( vec.getX() * lenInv ),+( vec.getY() * lenInv ),+( vec.getZ() * lenInv ),+( vec.getW() * lenInv )+);+}++inline const Vector4 select( const Vector4 & vec0, const Vector4 & vec1, bool select1 )+{+return Vector4(+( select1 )? vec1.getX() : vec0.getX(),+( select1 )? vec1.getY() : vec0.getY(),+( select1 )? vec1.getZ() : vec0.getZ(),+( select1 )? vec1.getW() : vec0.getW()+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Vector4 & vec )+{+printf( "( %f %f %f %f )\n", vec.getX(), vec.getY(), vec.getZ(), vec.getW() );+}++inline void print( const Vector4 & vec, const char * name )+{+printf( "%s: ( %f %f %f %f )\n", name, vec.getX(), vec.getY(), vec.getZ(), vec.getW() );+}++#endif++inline Point3::Point3( const Point3 & pnt )+{+mX = pnt.mX;+mY = pnt.mY;+mZ = pnt.mZ;+}++inline Point3::Point3( float _x, float _y, float _z )+{+mX = _x;+mY = _y;+mZ = _z;+}++inline Point3::Point3( const Vector3 & vec )+{+mX = vec.getX();+mY = vec.getY();+mZ = vec.getZ();+}++inline Point3::Point3( float scalar )+{+mX = scalar;+mY = scalar;+mZ = scalar;+}++inline const Point3 lerp( float t, const Point3 & pnt0, const Point3 & pnt1 )+{+return ( pnt0 + ( ( pnt1 - pnt0 ) * t ) );+}++inline void loadXYZ( Point3 & pnt, const float * fptr )+{+pnt = Point3( fptr[0], fptr[1], fptr[2] );+}++inline void storeXYZ( const Point3 & pnt, float * fptr )+{+fptr[0] = pnt.getX();+fptr[1] = pnt.getY();+fptr[2] = pnt.getZ();+}++inline void loadHalfFloats( Point3 & vec, const unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 3; i++) {+unsigned short fp16 = hfptr[i];+unsigned int sign = fp16 >> 15;+unsigned int exponent = (fp16 >> 10) & ((1 << 5) - 1);+unsigned int mantissa = fp16 & ((1 << 10) - 1);++if (exponent == 0) {+// zero+mantissa = 0;++} else if (exponent == 31) {+// infinity or nan -> infinity+exponent = 255;+mantissa = 0;++} else {+exponent += 127 - 15;+mantissa <<= 13;+}++Data32 d;+d.u32 = (sign << 31) | (exponent << 23) | mantissa;+vec[i] = d.f32;+}+}++inline void storeHalfFloats( const Point3 & vec, unsigned short * hfptr )+{+union Data32 {+unsigned int u32;+float f32;+};++for (int i = 0; i < 3; i++) {+Data32 d;+d.f32 = vec[i];++unsigned int sign = d.u32 >> 31;+unsigned int exponent = (d.u32 >> 23) & ((1 << 8) - 1);+unsigned int mantissa = d.u32 & ((1 << 23) - 1);;++if (exponent == 0) {+// zero or denorm -> zero+mantissa = 0;++} else if (exponent == 255 && mantissa != 0) {+// nan -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent >= 127 - 15 + 31) {+// overflow or infinity -> infinity+exponent = 31;+mantissa = 0;++} else if (exponent <= 127 - 15) {+// underflow -> zero+exponent = 0;+mantissa = 0;++} else {+exponent -= 127 - 15;+mantissa >>= 13;+}++hfptr[i] = (unsigned short)((sign << 15) | (exponent << 10) | mantissa);+}+}++inline Point3 & Point3::operator =( const Point3 & pnt )+{+mX = pnt.mX;+mY = pnt.mY;+mZ = pnt.mZ;+return *this;+}++inline Point3 & Point3::setX( float _x )+{+mX = _x;+return *this;+}++inline float Point3::getX( ) const+{+return mX;+}++inline Point3 & Point3::setY( float _y )+{+mY = _y;+return *this;+}++inline float Point3::getY( ) const+{+return mY;+}++inline Point3 & Point3::setZ( float _z )+{+mZ = _z;+return *this;+}++inline float Point3::getZ( ) const+{+return mZ;+}++inline Point3 & Point3::setElem( int idx, float value )+{+*(&mX + idx) = value;+return *this;+}++inline float Point3::getElem( int idx ) const+{+return *(&mX + idx);+}++inline float & Point3::operator []( int idx )+{+return *(&mX + idx);+}++inline float Point3::operator []( int idx ) const+{+return *(&mX + idx);+}++inline const Vector3 Point3::operator -( const Point3 & pnt ) const+{+return Vector3(+( mX - pnt.mX ),+( mY - pnt.mY ),+( mZ - pnt.mZ )+);+}++inline const Point3 Point3::operator +( const Vector3 & vec ) const+{+return Point3(+( mX + vec.getX() ),+( mY + vec.getY() ),+( mZ + vec.getZ() )+);+}++inline const Point3 Point3::operator -( const Vector3 & vec ) const+{+return Point3(+( mX - vec.getX() ),+( mY - vec.getY() ),+( mZ - vec.getZ() )+);+}++inline Point3 & Point3::operator +=( const Vector3 & vec )+{+*this = *this + vec;+return *this;+}++inline Point3 & Point3::operator -=( const Vector3 & vec )+{+*this = *this - vec;+return *this;+}++inline const Point3 mulPerElem( const Point3 & pnt0, const Point3 & pnt1 )+{+return Point3(+( pnt0.getX() * pnt1.getX() ),+( pnt0.getY() * pnt1.getY() ),+( pnt0.getZ() * pnt1.getZ() )+);+}++inline const Point3 divPerElem( const Point3 & pnt0, const Point3 & pnt1 )+{+return Point3(+( pnt0.getX() / pnt1.getX() ),+( pnt0.getY() / pnt1.getY() ),+( pnt0.getZ() / pnt1.getZ() )+);+}++inline const Point3 recipPerElem( const Point3 & pnt )+{+return Point3(+( 1.0f / pnt.getX() ),+( 1.0f / pnt.getY() ),+( 1.0f / pnt.getZ() )+);+}++inline const Point3 sqrtPerElem( const Point3 & pnt )+{+return Point3(+sqrtf( pnt.getX() ),+sqrtf( pnt.getY() ),+sqrtf( pnt.getZ() )+);+}++inline const Point3 rsqrtPerElem( const Point3 & pnt )+{+return Point3(+( 1.0f / sqrtf( pnt.getX() ) ),+( 1.0f / sqrtf( pnt.getY() ) ),+( 1.0f / sqrtf( pnt.getZ() ) )+);+}++inline const Point3 absPerElem( const Point3 & pnt )+{+return Point3(+fabsf( pnt.getX() ),+fabsf( pnt.getY() ),+fabsf( pnt.getZ() )+);+}++inline const Point3 copySignPerElem( const Point3 & pnt0, const Point3 & pnt1 )+{+return Point3(+( pnt1.getX() < 0.0f )? -fabsf( pnt0.getX() ) : fabsf( pnt0.getX() ),+( pnt1.getY() < 0.0f )? -fabsf( pnt0.getY() ) : fabsf( pnt0.getY() ),+( pnt1.getZ() < 0.0f )? -fabsf( pnt0.getZ() ) : fabsf( pnt0.getZ() )+);+}++inline const Point3 maxPerElem( const Point3 & pnt0, const Point3 & pnt1 )+{+return Point3(+(pnt0.getX() > pnt1.getX())? pnt0.getX() : pnt1.getX(),+(pnt0.getY() > pnt1.getY())? pnt0.getY() : pnt1.getY(),+(pnt0.getZ() > pnt1.getZ())? pnt0.getZ() : pnt1.getZ()+);+}++inline float maxElem( const Point3 & pnt )+{+float result;+result = (pnt.getX() > pnt.getY())? pnt.getX() : pnt.getY();+result = (pnt.getZ() > result)? pnt.getZ() : result;+return result;+}++inline const Point3 minPerElem( const Point3 & pnt0, const Point3 & pnt1 )+{+return Point3(+(pnt0.getX() < pnt1.getX())? pnt0.getX() : pnt1.getX(),+(pnt0.getY() < pnt1.getY())? pnt0.getY() : pnt1.getY(),+(pnt0.getZ() < pnt1.getZ())? pnt0.getZ() : pnt1.getZ()+);+}++inline float minElem( const Point3 & pnt )+{+float result;+result = (pnt.getX() < pnt.getY())? pnt.getX() : pnt.getY();+result = (pnt.getZ() < result)? pnt.getZ() : result;+return result;+}++inline float sum( const Point3 & pnt )+{+float result;+result = ( pnt.getX() + pnt.getY() );+result = ( result + pnt.getZ() );+return result;+}++inline const Point3 scale( const Point3 & pnt, float scaleVal )+{+return mulPerElem( pnt, Point3( scaleVal ) );+}++inline const Point3 scale( const Point3 & pnt, const Vector3 & scaleVec )+{+return mulPerElem( pnt, Point3( scaleVec ) );+}++inline float projection( const Point3 & pnt, const Vector3 & unitVec )+{+float result;+result = ( pnt.getX() * unitVec.getX() );+result = ( result + ( pnt.getY() * unitVec.getY() ) );+result = ( result + ( pnt.getZ() * unitVec.getZ() ) );+return result;+}++inline float distSqrFromOrigin( const Point3 & pnt )+{+return lengthSqr( Vector3( pnt ) );+}++inline float distFromOrigin( const Point3 & pnt )+{+return length( Vector3( pnt ) );+}++inline float distSqr( const Point3 & pnt0, const Point3 & pnt1 )+{+return lengthSqr( ( pnt1 - pnt0 ) );+}++inline float dist( const Point3 & pnt0, const Point3 & pnt1 )+{+return length( ( pnt1 - pnt0 ) );+}++inline const Point3 select( const Point3 & pnt0, const Point3 & pnt1, bool select1 )+{+return Point3(+( select1 )? pnt1.getX() : pnt0.getX(),+( select1 )? pnt1.getY() : pnt0.getY(),+( select1 )? pnt1.getZ() : pnt0.getZ()+);+}++#ifdef _VECTORMATH_DEBUG++inline void print( const Point3 & pnt )+{+printf( "( %f %f %f )\n", pnt.getX(), pnt.getY(), pnt.getZ() );+}++inline void print( const Point3 & pnt, const char * name )+{+printf( "%s: ( %f %f %f )\n", name, pnt.getX(), pnt.getY(), pnt.getZ() ); }  #endif
bullet/vectormath/scalar/vectormath_aos.h view
@@ -1,1863 +1,1863 @@ /*-   Copyright (C) 2009 Sony Computer Entertainment Inc.-   All rights reserved.--This software is provided 'as-is', without any express or implied warranty.-In no event will the authors be held liable for any damages arising from the use of this software.-Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions:--1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.-2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.-3. This notice may not be removed or altered from any source distribution.--*/--#ifndef _VECTORMATH_AOS_CPP_H-#define _VECTORMATH_AOS_CPP_H--#include <math.h>--#ifdef _VECTORMATH_DEBUG-#include <stdio.h>-#endif--namespace Vectormath {--namespace Aos {--//------------------------------------------------------------------------------// Forward Declarations-//--class Vector3;-class Vector4;-class Point3;-class Quat;-class Matrix3;-class Matrix4;-class Transform3;--// A 3-D vector in array-of-structures format-//-class Vector3-{-    float mX;-    float mY;-    float mZ;-#ifndef __GNUC__-    float d;-#endif--public:-    // Default constructor; does no initialization-    // -    inline Vector3( ) { };--    // Copy a 3-D vector-    // -    inline Vector3( const Vector3 & vec );--    // Construct a 3-D vector from x, y, and z elements-    // -    inline Vector3( float x, float y, float z );--    // Copy elements from a 3-D point into a 3-D vector-    // -    explicit inline Vector3( const Point3 & pnt );--    // Set all elements of a 3-D vector to the same scalar value-    // -    explicit inline Vector3( float scalar );--    // Assign one 3-D vector to another-    // -    inline Vector3 & operator =( const Vector3 & vec );--    // Set the x element of a 3-D vector-    // -    inline Vector3 & setX( float x );--    // Set the y element of a 3-D vector-    // -    inline Vector3 & setY( float y );--    // Set the z element of a 3-D vector-    // -    inline Vector3 & setZ( float z );--    // Get the x element of a 3-D vector-    // -    inline float getX( ) const;--    // Get the y element of a 3-D vector-    // -    inline float getY( ) const;--    // Get the z element of a 3-D vector-    // -    inline float getZ( ) const;--    // Set an x, y, or z element of a 3-D vector by index-    // -    inline Vector3 & setElem( int idx, float value );--    // Get an x, y, or z element of a 3-D vector by index-    // -    inline float getElem( int idx ) const;--    // Subscripting operator to set or get an element-    // -    inline float & operator []( int idx );--    // Subscripting operator to get an element-    // -    inline float operator []( int idx ) const;--    // Add two 3-D vectors-    // -    inline const Vector3 operator +( const Vector3 & vec ) const;--    // Subtract a 3-D vector from another 3-D vector-    // -    inline const Vector3 operator -( const Vector3 & vec ) const;--    // Add a 3-D vector to a 3-D point-    // -    inline const Point3 operator +( const Point3 & pnt ) const;--    // Multiply a 3-D vector by a scalar-    // -    inline const Vector3 operator *( float scalar ) const;--    // Divide a 3-D vector by a scalar-    // -    inline const Vector3 operator /( float scalar ) const;--    // Perform compound assignment and addition with a 3-D vector-    // -    inline Vector3 & operator +=( const Vector3 & vec );--    // Perform compound assignment and subtraction by a 3-D vector-    // -    inline Vector3 & operator -=( const Vector3 & vec );--    // Perform compound assignment and multiplication by a scalar-    // -    inline Vector3 & operator *=( float scalar );--    // Perform compound assignment and division by a scalar-    // -    inline Vector3 & operator /=( float scalar );--    // Negate all elements of a 3-D vector-    // -    inline const Vector3 operator -( ) const;--    // Construct x axis-    // -    static inline const Vector3 xAxis( );--    // Construct y axis-    // -    static inline const Vector3 yAxis( );--    // Construct z axis-    // -    static inline const Vector3 zAxis( );--}-#ifdef __GNUC__-__attribute__ ((aligned(16)))-#endif-;--// Multiply a 3-D vector by a scalar-// -inline const Vector3 operator *( float scalar, const Vector3 & vec );--// Multiply two 3-D vectors per element-// -inline const Vector3 mulPerElem( const Vector3 & vec0, const Vector3 & vec1 );--// Divide two 3-D vectors per element-// NOTE: -// Floating-point behavior matches standard library function divf4.-// -inline const Vector3 divPerElem( const Vector3 & vec0, const Vector3 & vec1 );--// Compute the reciprocal of a 3-D vector per element-// NOTE: -// Floating-point behavior matches standard library function recipf4.-// -inline const Vector3 recipPerElem( const Vector3 & vec );--// Compute the square root of a 3-D vector per element-// NOTE: -// Floating-point behavior matches standard library function sqrtf4.-// -inline const Vector3 sqrtPerElem( const Vector3 & vec );--// Compute the reciprocal square root of a 3-D vector per element-// NOTE: -// Floating-point behavior matches standard library function rsqrtf4.-// -inline const Vector3 rsqrtPerElem( const Vector3 & vec );--// Compute the absolute value of a 3-D vector per element-// -inline const Vector3 absPerElem( const Vector3 & vec );--// Copy sign from one 3-D vector to another, per element-// -inline const Vector3 copySignPerElem( const Vector3 & vec0, const Vector3 & vec1 );--// Maximum of two 3-D vectors per element-// -inline const Vector3 maxPerElem( const Vector3 & vec0, const Vector3 & vec1 );--// Minimum of two 3-D vectors per element-// -inline const Vector3 minPerElem( const Vector3 & vec0, const Vector3 & vec1 );--// Maximum element of a 3-D vector-// -inline float maxElem( const Vector3 & vec );--// Minimum element of a 3-D vector-// -inline float minElem( const Vector3 & vec );--// Compute the sum of all elements of a 3-D vector-// -inline float sum( const Vector3 & vec );--// Compute the dot product of two 3-D vectors-// -inline float dot( const Vector3 & vec0, const Vector3 & vec1 );--// Compute the square of the length of a 3-D vector-// -inline float lengthSqr( const Vector3 & vec );--// Compute the length of a 3-D vector-// -inline float length( const Vector3 & vec );--// Normalize a 3-D vector-// NOTE: -// The result is unpredictable when all elements of vec are at or near zero.-// -inline const Vector3 normalize( const Vector3 & vec );--// Compute cross product of two 3-D vectors-// -inline const Vector3 cross( const Vector3 & vec0, const Vector3 & vec1 );--// Outer product of two 3-D vectors-// -inline const Matrix3 outer( const Vector3 & vec0, const Vector3 & vec1 );--// Pre-multiply a row vector by a 3x3 matrix-// -inline const Vector3 rowMul( const Vector3 & vec, const Matrix3 & mat );--// Cross-product matrix of a 3-D vector-// -inline const Matrix3 crossMatrix( const Vector3 & vec );--// Create cross-product matrix and multiply-// NOTE: -// Faster than separately creating a cross-product matrix and multiplying.-// -inline const Matrix3 crossMatrixMul( const Vector3 & vec, const Matrix3 & mat );--// Linear interpolation between two 3-D vectors-// NOTE: -// Does not clamp t between 0 and 1.-// -inline const Vector3 lerp( float t, const Vector3 & vec0, const Vector3 & vec1 );--// Spherical linear interpolation between two 3-D vectors-// NOTE: -// The result is unpredictable if the vectors point in opposite directions.-// Does not clamp t between 0 and 1.-// -inline const Vector3 slerp( float t, const Vector3 & unitVec0, const Vector3 & unitVec1 );--// Conditionally select between two 3-D vectors-// -inline const Vector3 select( const Vector3 & vec0, const Vector3 & vec1, bool select1 );--// Load x, y, and z elements from the first three words of a float array.-// -// -inline void loadXYZ( Vector3 & vec, const float * fptr );--// Store x, y, and z elements of a 3-D vector in the first three words of a float array.-// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed-// -inline void storeXYZ( const Vector3 & vec, float * fptr );--// Load three-half-floats as a 3-D vector-// NOTE: -// This transformation does not support either denormalized numbers or NaNs.-// -inline void loadHalfFloats( Vector3 & vec, const unsigned short * hfptr );--// Store a 3-D vector as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.-// NOTE: -// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.-// -inline void storeHalfFloats( const Vector3 & vec, unsigned short * hfptr );--#ifdef _VECTORMATH_DEBUG--// Print a 3-D vector-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Vector3 & vec );--// Print a 3-D vector and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Vector3 & vec, const char * name );--#endif--// A 4-D vector in array-of-structures format-//-class Vector4-{-    float mX;-    float mY;-    float mZ;-    float mW;--public:-    // Default constructor; does no initialization-    // -    inline Vector4( ) { };--    // Copy a 4-D vector-    // -    inline Vector4( const Vector4 & vec );--    // Construct a 4-D vector from x, y, z, and w elements-    // -    inline Vector4( float x, float y, float z, float w );--    // Construct a 4-D vector from a 3-D vector and a scalar-    // -    inline Vector4( const Vector3 & xyz, float w );--    // Copy x, y, and z from a 3-D vector into a 4-D vector, and set w to 0-    // -    explicit inline Vector4( const Vector3 & vec );--    // Copy x, y, and z from a 3-D point into a 4-D vector, and set w to 1-    // -    explicit inline Vector4( const Point3 & pnt );--    // Copy elements from a quaternion into a 4-D vector-    // -    explicit inline Vector4( const Quat & quat );--    // Set all elements of a 4-D vector to the same scalar value-    // -    explicit inline Vector4( float scalar );--    // Assign one 4-D vector to another-    // -    inline Vector4 & operator =( const Vector4 & vec );--    // Set the x, y, and z elements of a 4-D vector-    // NOTE: -    // This function does not change the w element.-    // -    inline Vector4 & setXYZ( const Vector3 & vec );--    // Get the x, y, and z elements of a 4-D vector-    // -    inline const Vector3 getXYZ( ) const;--    // Set the x element of a 4-D vector-    // -    inline Vector4 & setX( float x );--    // Set the y element of a 4-D vector-    // -    inline Vector4 & setY( float y );--    // Set the z element of a 4-D vector-    // -    inline Vector4 & setZ( float z );--    // Set the w element of a 4-D vector-    // -    inline Vector4 & setW( float w );--    // Get the x element of a 4-D vector-    // -    inline float getX( ) const;--    // Get the y element of a 4-D vector-    // -    inline float getY( ) const;--    // Get the z element of a 4-D vector-    // -    inline float getZ( ) const;--    // Get the w element of a 4-D vector-    // -    inline float getW( ) const;--    // Set an x, y, z, or w element of a 4-D vector by index-    // -    inline Vector4 & setElem( int idx, float value );--    // Get an x, y, z, or w element of a 4-D vector by index-    // -    inline float getElem( int idx ) const;--    // Subscripting operator to set or get an element-    // -    inline float & operator []( int idx );--    // Subscripting operator to get an element-    // -    inline float operator []( int idx ) const;--    // Add two 4-D vectors-    // -    inline const Vector4 operator +( const Vector4 & vec ) const;--    // Subtract a 4-D vector from another 4-D vector-    // -    inline const Vector4 operator -( const Vector4 & vec ) const;--    // Multiply a 4-D vector by a scalar-    // -    inline const Vector4 operator *( float scalar ) const;--    // Divide a 4-D vector by a scalar-    // -    inline const Vector4 operator /( float scalar ) const;--    // Perform compound assignment and addition with a 4-D vector-    // -    inline Vector4 & operator +=( const Vector4 & vec );--    // Perform compound assignment and subtraction by a 4-D vector-    // -    inline Vector4 & operator -=( const Vector4 & vec );--    // Perform compound assignment and multiplication by a scalar-    // -    inline Vector4 & operator *=( float scalar );--    // Perform compound assignment and division by a scalar-    // -    inline Vector4 & operator /=( float scalar );--    // Negate all elements of a 4-D vector-    // -    inline const Vector4 operator -( ) const;--    // Construct x axis-    // -    static inline const Vector4 xAxis( );--    // Construct y axis-    // -    static inline const Vector4 yAxis( );--    // Construct z axis-    // -    static inline const Vector4 zAxis( );--    // Construct w axis-    // -    static inline const Vector4 wAxis( );--}-#ifdef __GNUC__-__attribute__ ((aligned(16)))-#endif-;--// Multiply a 4-D vector by a scalar-// -inline const Vector4 operator *( float scalar, const Vector4 & vec );--// Multiply two 4-D vectors per element-// -inline const Vector4 mulPerElem( const Vector4 & vec0, const Vector4 & vec1 );--// Divide two 4-D vectors per element-// NOTE: -// Floating-point behavior matches standard library function divf4.-// -inline const Vector4 divPerElem( const Vector4 & vec0, const Vector4 & vec1 );--// Compute the reciprocal of a 4-D vector per element-// NOTE: -// Floating-point behavior matches standard library function recipf4.-// -inline const Vector4 recipPerElem( const Vector4 & vec );--// Compute the square root of a 4-D vector per element-// NOTE: -// Floating-point behavior matches standard library function sqrtf4.-// -inline const Vector4 sqrtPerElem( const Vector4 & vec );--// Compute the reciprocal square root of a 4-D vector per element-// NOTE: -// Floating-point behavior matches standard library function rsqrtf4.-// -inline const Vector4 rsqrtPerElem( const Vector4 & vec );--// Compute the absolute value of a 4-D vector per element-// -inline const Vector4 absPerElem( const Vector4 & vec );--// Copy sign from one 4-D vector to another, per element-// -inline const Vector4 copySignPerElem( const Vector4 & vec0, const Vector4 & vec1 );--// Maximum of two 4-D vectors per element-// -inline const Vector4 maxPerElem( const Vector4 & vec0, const Vector4 & vec1 );--// Minimum of two 4-D vectors per element-// -inline const Vector4 minPerElem( const Vector4 & vec0, const Vector4 & vec1 );--// Maximum element of a 4-D vector-// -inline float maxElem( const Vector4 & vec );--// Minimum element of a 4-D vector-// -inline float minElem( const Vector4 & vec );--// Compute the sum of all elements of a 4-D vector-// -inline float sum( const Vector4 & vec );--// Compute the dot product of two 4-D vectors-// -inline float dot( const Vector4 & vec0, const Vector4 & vec1 );--// Compute the square of the length of a 4-D vector-// -inline float lengthSqr( const Vector4 & vec );--// Compute the length of a 4-D vector-// -inline float length( const Vector4 & vec );--// Normalize a 4-D vector-// NOTE: -// The result is unpredictable when all elements of vec are at or near zero.-// -inline const Vector4 normalize( const Vector4 & vec );--// Outer product of two 4-D vectors-// -inline const Matrix4 outer( const Vector4 & vec0, const Vector4 & vec1 );--// Linear interpolation between two 4-D vectors-// NOTE: -// Does not clamp t between 0 and 1.-// -inline const Vector4 lerp( float t, const Vector4 & vec0, const Vector4 & vec1 );--// Spherical linear interpolation between two 4-D vectors-// NOTE: -// The result is unpredictable if the vectors point in opposite directions.-// Does not clamp t between 0 and 1.-// -inline const Vector4 slerp( float t, const Vector4 & unitVec0, const Vector4 & unitVec1 );--// Conditionally select between two 4-D vectors-// -inline const Vector4 select( const Vector4 & vec0, const Vector4 & vec1, bool select1 );--// Load x, y, z, and w elements from the first four words of a float array.-// -// -inline void loadXYZW( Vector4 & vec, const float * fptr );--// Store x, y, z, and w elements of a 4-D vector in the first four words of a float array.-// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed-// -inline void storeXYZW( const Vector4 & vec, float * fptr );--// Load four-half-floats as a 4-D vector-// NOTE: -// This transformation does not support either denormalized numbers or NaNs.-// -inline void loadHalfFloats( Vector4 & vec, const unsigned short * hfptr );--// Store a 4-D vector as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.-// NOTE: -// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.-// -inline void storeHalfFloats( const Vector4 & vec, unsigned short * hfptr );--#ifdef _VECTORMATH_DEBUG--// Print a 4-D vector-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Vector4 & vec );--// Print a 4-D vector and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Vector4 & vec, const char * name );--#endif--// A 3-D point in array-of-structures format-//-class Point3-{-    float mX;-    float mY;-    float mZ;-#ifndef __GNUC__-    float d;-#endif--public:-    // Default constructor; does no initialization-    // -    inline Point3( ) { };--    // Copy a 3-D point-    // -    inline Point3( const Point3 & pnt );--    // Construct a 3-D point from x, y, and z elements-    // -    inline Point3( float x, float y, float z );--    // Copy elements from a 3-D vector into a 3-D point-    // -    explicit inline Point3( const Vector3 & vec );--    // Set all elements of a 3-D point to the same scalar value-    // -    explicit inline Point3( float scalar );--    // Assign one 3-D point to another-    // -    inline Point3 & operator =( const Point3 & pnt );--    // Set the x element of a 3-D point-    // -    inline Point3 & setX( float x );--    // Set the y element of a 3-D point-    // -    inline Point3 & setY( float y );--    // Set the z element of a 3-D point-    // -    inline Point3 & setZ( float z );--    // Get the x element of a 3-D point-    // -    inline float getX( ) const;--    // Get the y element of a 3-D point-    // -    inline float getY( ) const;--    // Get the z element of a 3-D point-    // -    inline float getZ( ) const;--    // Set an x, y, or z element of a 3-D point by index-    // -    inline Point3 & setElem( int idx, float value );--    // Get an x, y, or z element of a 3-D point by index-    // -    inline float getElem( int idx ) const;--    // Subscripting operator to set or get an element-    // -    inline float & operator []( int idx );--    // Subscripting operator to get an element-    // -    inline float operator []( int idx ) const;--    // Subtract a 3-D point from another 3-D point-    // -    inline const Vector3 operator -( const Point3 & pnt ) const;--    // Add a 3-D point to a 3-D vector-    // -    inline const Point3 operator +( const Vector3 & vec ) const;--    // Subtract a 3-D vector from a 3-D point-    // -    inline const Point3 operator -( const Vector3 & vec ) const;--    // Perform compound assignment and addition with a 3-D vector-    // -    inline Point3 & operator +=( const Vector3 & vec );--    // Perform compound assignment and subtraction by a 3-D vector-    // -    inline Point3 & operator -=( const Vector3 & vec );--}-#ifdef __GNUC__-__attribute__ ((aligned(16)))-#endif-;--// Multiply two 3-D points per element-// -inline const Point3 mulPerElem( const Point3 & pnt0, const Point3 & pnt1 );--// Divide two 3-D points per element-// NOTE: -// Floating-point behavior matches standard library function divf4.-// -inline const Point3 divPerElem( const Point3 & pnt0, const Point3 & pnt1 );--// Compute the reciprocal of a 3-D point per element-// NOTE: -// Floating-point behavior matches standard library function recipf4.-// -inline const Point3 recipPerElem( const Point3 & pnt );--// Compute the square root of a 3-D point per element-// NOTE: -// Floating-point behavior matches standard library function sqrtf4.-// -inline const Point3 sqrtPerElem( const Point3 & pnt );--// Compute the reciprocal square root of a 3-D point per element-// NOTE: -// Floating-point behavior matches standard library function rsqrtf4.-// -inline const Point3 rsqrtPerElem( const Point3 & pnt );--// Compute the absolute value of a 3-D point per element-// -inline const Point3 absPerElem( const Point3 & pnt );--// Copy sign from one 3-D point to another, per element-// -inline const Point3 copySignPerElem( const Point3 & pnt0, const Point3 & pnt1 );--// Maximum of two 3-D points per element-// -inline const Point3 maxPerElem( const Point3 & pnt0, const Point3 & pnt1 );--// Minimum of two 3-D points per element-// -inline const Point3 minPerElem( const Point3 & pnt0, const Point3 & pnt1 );--// Maximum element of a 3-D point-// -inline float maxElem( const Point3 & pnt );--// Minimum element of a 3-D point-// -inline float minElem( const Point3 & pnt );--// Compute the sum of all elements of a 3-D point-// -inline float sum( const Point3 & pnt );--// Apply uniform scale to a 3-D point-// -inline const Point3 scale( const Point3 & pnt, float scaleVal );--// Apply non-uniform scale to a 3-D point-// -inline const Point3 scale( const Point3 & pnt, const Vector3 & scaleVec );--// Scalar projection of a 3-D point on a unit-length 3-D vector-// -inline float projection( const Point3 & pnt, const Vector3 & unitVec );--// Compute the square of the distance of a 3-D point from the coordinate-system origin-// -inline float distSqrFromOrigin( const Point3 & pnt );--// Compute the distance of a 3-D point from the coordinate-system origin-// -inline float distFromOrigin( const Point3 & pnt );--// Compute the square of the distance between two 3-D points-// -inline float distSqr( const Point3 & pnt0, const Point3 & pnt1 );--// Compute the distance between two 3-D points-// -inline float dist( const Point3 & pnt0, const Point3 & pnt1 );--// Linear interpolation between two 3-D points-// NOTE: -// Does not clamp t between 0 and 1.-// -inline const Point3 lerp( float t, const Point3 & pnt0, const Point3 & pnt1 );--// Conditionally select between two 3-D points-// -inline const Point3 select( const Point3 & pnt0, const Point3 & pnt1, bool select1 );--// Load x, y, and z elements from the first three words of a float array.-// -// -inline void loadXYZ( Point3 & pnt, const float * fptr );--// Store x, y, and z elements of a 3-D point in the first three words of a float array.-// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed-// -inline void storeXYZ( const Point3 & pnt, float * fptr );--// Load three-half-floats as a 3-D point-// NOTE: -// This transformation does not support either denormalized numbers or NaNs.-// -inline void loadHalfFloats( Point3 & pnt, const unsigned short * hfptr );--// Store a 3-D point as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.-// NOTE: -// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.-// -inline void storeHalfFloats( const Point3 & pnt, unsigned short * hfptr );--#ifdef _VECTORMATH_DEBUG--// Print a 3-D point-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Point3 & pnt );--// Print a 3-D point and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Point3 & pnt, const char * name );--#endif--// A quaternion in array-of-structures format-//-class Quat-{-    float mX;-    float mY;-    float mZ;-    float mW;--public:-    // Default constructor; does no initialization-    // -    inline Quat( ) { };--    // Copy a quaternion-    // -    inline Quat( const Quat & quat );--    // Construct a quaternion from x, y, z, and w elements-    // -    inline Quat( float x, float y, float z, float w );--    // Construct a quaternion from a 3-D vector and a scalar-    // -    inline Quat( const Vector3 & xyz, float w );--    // Copy elements from a 4-D vector into a quaternion-    // -    explicit inline Quat( const Vector4 & vec );--    // Convert a rotation matrix to a unit-length quaternion-    // -    explicit inline Quat( const Matrix3 & rotMat );--    // Set all elements of a quaternion to the same scalar value-    // -    explicit inline Quat( float scalar );--    // Assign one quaternion to another-    // -    inline Quat & operator =( const Quat & quat );--    // Set the x, y, and z elements of a quaternion-    // NOTE: -    // This function does not change the w element.-    // -    inline Quat & setXYZ( const Vector3 & vec );--    // Get the x, y, and z elements of a quaternion-    // -    inline const Vector3 getXYZ( ) const;--    // Set the x element of a quaternion-    // -    inline Quat & setX( float x );--    // Set the y element of a quaternion-    // -    inline Quat & setY( float y );--    // Set the z element of a quaternion-    // -    inline Quat & setZ( float z );--    // Set the w element of a quaternion-    // -    inline Quat & setW( float w );--    // Get the x element of a quaternion-    // -    inline float getX( ) const;--    // Get the y element of a quaternion-    // -    inline float getY( ) const;--    // Get the z element of a quaternion-    // -    inline float getZ( ) const;--    // Get the w element of a quaternion-    // -    inline float getW( ) const;--    // Set an x, y, z, or w element of a quaternion by index-    // -    inline Quat & setElem( int idx, float value );--    // Get an x, y, z, or w element of a quaternion by index-    // -    inline float getElem( int idx ) const;--    // Subscripting operator to set or get an element-    // -    inline float & operator []( int idx );--    // Subscripting operator to get an element-    // -    inline float operator []( int idx ) const;--    // Add two quaternions-    // -    inline const Quat operator +( const Quat & quat ) const;--    // Subtract a quaternion from another quaternion-    // -    inline const Quat operator -( const Quat & quat ) const;--    // Multiply two quaternions-    // -    inline const Quat operator *( const Quat & quat ) const;--    // Multiply a quaternion by a scalar-    // -    inline const Quat operator *( float scalar ) const;--    // Divide a quaternion by a scalar-    // -    inline const Quat operator /( float scalar ) const;--    // Perform compound assignment and addition with a quaternion-    // -    inline Quat & operator +=( const Quat & quat );--    // Perform compound assignment and subtraction by a quaternion-    // -    inline Quat & operator -=( const Quat & quat );--    // Perform compound assignment and multiplication by a quaternion-    // -    inline Quat & operator *=( const Quat & quat );--    // Perform compound assignment and multiplication by a scalar-    // -    inline Quat & operator *=( float scalar );--    // Perform compound assignment and division by a scalar-    // -    inline Quat & operator /=( float scalar );--    // Negate all elements of a quaternion-    // -    inline const Quat operator -( ) const;--    // Construct an identity quaternion-    // -    static inline const Quat identity( );--    // Construct a quaternion to rotate between two unit-length 3-D vectors-    // NOTE: -    // The result is unpredictable if unitVec0 and unitVec1 point in opposite directions.-    // -    static inline const Quat rotation( const Vector3 & unitVec0, const Vector3 & unitVec1 );--    // Construct a quaternion to rotate around a unit-length 3-D vector-    // -    static inline const Quat rotation( float radians, const Vector3 & unitVec );--    // Construct a quaternion to rotate around the x axis-    // -    static inline const Quat rotationX( float radians );--    // Construct a quaternion to rotate around the y axis-    // -    static inline const Quat rotationY( float radians );--    // Construct a quaternion to rotate around the z axis-    // -    static inline const Quat rotationZ( float radians );--}-#ifdef __GNUC__-__attribute__ ((aligned(16)))-#endif-;--// Multiply a quaternion by a scalar-// -inline const Quat operator *( float scalar, const Quat & quat );--// Compute the conjugate of a quaternion-// -inline const Quat conj( const Quat & quat );--// Use a unit-length quaternion to rotate a 3-D vector-// -inline const Vector3 rotate( const Quat & unitQuat, const Vector3 & vec );--// Compute the dot product of two quaternions-// -inline float dot( const Quat & quat0, const Quat & quat1 );--// Compute the norm of a quaternion-// -inline float norm( const Quat & quat );--// Compute the length of a quaternion-// -inline float length( const Quat & quat );--// Normalize a quaternion-// NOTE: -// The result is unpredictable when all elements of quat are at or near zero.-// -inline const Quat normalize( const Quat & quat );--// Linear interpolation between two quaternions-// NOTE: -// Does not clamp t between 0 and 1.-// -inline const Quat lerp( float t, const Quat & quat0, const Quat & quat1 );--// Spherical linear interpolation between two quaternions-// NOTE: -// Interpolates along the shortest path between orientations.-// Does not clamp t between 0 and 1.-// -inline const Quat slerp( float t, const Quat & unitQuat0, const Quat & unitQuat1 );--// Spherical quadrangle interpolation-// -inline const Quat squad( float t, const Quat & unitQuat0, const Quat & unitQuat1, const Quat & unitQuat2, const Quat & unitQuat3 );--// Conditionally select between two quaternions-// -inline const Quat select( const Quat & quat0, const Quat & quat1, bool select1 );--// Load x, y, z, and w elements from the first four words of a float array.-// -// -inline void loadXYZW( Quat & quat, const float * fptr );--// Store x, y, z, and w elements of a quaternion in the first four words of a float array.-// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed-// -inline void storeXYZW( const Quat & quat, float * fptr );--#ifdef _VECTORMATH_DEBUG--// Print a quaternion-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Quat & quat );--// Print a quaternion and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Quat & quat, const char * name );--#endif--// A 3x3 matrix in array-of-structures format-//-class Matrix3-{-    Vector3 mCol0;-    Vector3 mCol1;-    Vector3 mCol2;--public:-    // Default constructor; does no initialization-    // -    inline Matrix3( ) { };--    // Copy a 3x3 matrix-    // -    inline Matrix3( const Matrix3 & mat );--    // Construct a 3x3 matrix containing the specified columns-    // -    inline Matrix3( const Vector3 & col0, const Vector3 & col1, const Vector3 & col2 );--    // Construct a 3x3 rotation matrix from a unit-length quaternion-    // -    explicit inline Matrix3( const Quat & unitQuat );--    // Set all elements of a 3x3 matrix to the same scalar value-    // -    explicit inline Matrix3( float scalar );--    // Assign one 3x3 matrix to another-    // -    inline Matrix3 & operator =( const Matrix3 & mat );--    // Set column 0 of a 3x3 matrix-    // -    inline Matrix3 & setCol0( const Vector3 & col0 );--    // Set column 1 of a 3x3 matrix-    // -    inline Matrix3 & setCol1( const Vector3 & col1 );--    // Set column 2 of a 3x3 matrix-    // -    inline Matrix3 & setCol2( const Vector3 & col2 );--    // Get column 0 of a 3x3 matrix-    // -    inline const Vector3 getCol0( ) const;--    // Get column 1 of a 3x3 matrix-    // -    inline const Vector3 getCol1( ) const;--    // Get column 2 of a 3x3 matrix-    // -    inline const Vector3 getCol2( ) const;--    // Set the column of a 3x3 matrix referred to by the specified index-    // -    inline Matrix3 & setCol( int col, const Vector3 & vec );--    // Set the row of a 3x3 matrix referred to by the specified index-    // -    inline Matrix3 & setRow( int row, const Vector3 & vec );--    // Get the column of a 3x3 matrix referred to by the specified index-    // -    inline const Vector3 getCol( int col ) const;--    // Get the row of a 3x3 matrix referred to by the specified index-    // -    inline const Vector3 getRow( int row ) const;--    // Subscripting operator to set or get a column-    // -    inline Vector3 & operator []( int col );--    // Subscripting operator to get a column-    // -    inline const Vector3 operator []( int col ) const;--    // Set the element of a 3x3 matrix referred to by column and row indices-    // -    inline Matrix3 & setElem( int col, int row, float val );--    // Get the element of a 3x3 matrix referred to by column and row indices-    // -    inline float getElem( int col, int row ) const;--    // Add two 3x3 matrices-    // -    inline const Matrix3 operator +( const Matrix3 & mat ) const;--    // Subtract a 3x3 matrix from another 3x3 matrix-    // -    inline const Matrix3 operator -( const Matrix3 & mat ) const;--    // Negate all elements of a 3x3 matrix-    // -    inline const Matrix3 operator -( ) const;--    // Multiply a 3x3 matrix by a scalar-    // -    inline const Matrix3 operator *( float scalar ) const;--    // Multiply a 3x3 matrix by a 3-D vector-    // -    inline const Vector3 operator *( const Vector3 & vec ) const;--    // Multiply two 3x3 matrices-    // -    inline const Matrix3 operator *( const Matrix3 & mat ) const;--    // Perform compound assignment and addition with a 3x3 matrix-    // -    inline Matrix3 & operator +=( const Matrix3 & mat );--    // Perform compound assignment and subtraction by a 3x3 matrix-    // -    inline Matrix3 & operator -=( const Matrix3 & mat );--    // Perform compound assignment and multiplication by a scalar-    // -    inline Matrix3 & operator *=( float scalar );--    // Perform compound assignment and multiplication by a 3x3 matrix-    // -    inline Matrix3 & operator *=( const Matrix3 & mat );--    // Construct an identity 3x3 matrix-    // -    static inline const Matrix3 identity( );--    // Construct a 3x3 matrix to rotate around the x axis-    // -    static inline const Matrix3 rotationX( float radians );--    // Construct a 3x3 matrix to rotate around the y axis-    // -    static inline const Matrix3 rotationY( float radians );--    // Construct a 3x3 matrix to rotate around the z axis-    // -    static inline const Matrix3 rotationZ( float radians );--    // Construct a 3x3 matrix to rotate around the x, y, and z axes-    // -    static inline const Matrix3 rotationZYX( const Vector3 & radiansXYZ );--    // Construct a 3x3 matrix to rotate around a unit-length 3-D vector-    // -    static inline const Matrix3 rotation( float radians, const Vector3 & unitVec );--    // Construct a rotation matrix from a unit-length quaternion-    // -    static inline const Matrix3 rotation( const Quat & unitQuat );--    // Construct a 3x3 matrix to perform scaling-    // -    static inline const Matrix3 scale( const Vector3 & scaleVec );--};-// Multiply a 3x3 matrix by a scalar-// -inline const Matrix3 operator *( float scalar, const Matrix3 & mat );--// Append (post-multiply) a scale transformation to a 3x3 matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Matrix3 appendScale( const Matrix3 & mat, const Vector3 & scaleVec );--// Prepend (pre-multiply) a scale transformation to a 3x3 matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Matrix3 prependScale( const Vector3 & scaleVec, const Matrix3 & mat );--// Multiply two 3x3 matrices per element-// -inline const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 );--// Compute the absolute value of a 3x3 matrix per element-// -inline const Matrix3 absPerElem( const Matrix3 & mat );--// Transpose of a 3x3 matrix-// -inline const Matrix3 transpose( const Matrix3 & mat );--// Compute the inverse of a 3x3 matrix-// NOTE: -// Result is unpredictable when the determinant of mat is equal to or near 0.-// -inline const Matrix3 inverse( const Matrix3 & mat );--// Determinant of a 3x3 matrix-// -inline float determinant( const Matrix3 & mat );--// Conditionally select between two 3x3 matrices-// -inline const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 );--#ifdef _VECTORMATH_DEBUG--// Print a 3x3 matrix-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Matrix3 & mat );--// Print a 3x3 matrix and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Matrix3 & mat, const char * name );--#endif--// A 4x4 matrix in array-of-structures format-//-class Matrix4-{-    Vector4 mCol0;-    Vector4 mCol1;-    Vector4 mCol2;-    Vector4 mCol3;--public:-    // Default constructor; does no initialization-    // -    inline Matrix4( ) { };--    // Copy a 4x4 matrix-    // -    inline Matrix4( const Matrix4 & mat );--    // Construct a 4x4 matrix containing the specified columns-    // -    inline Matrix4( const Vector4 & col0, const Vector4 & col1, const Vector4 & col2, const Vector4 & col3 );--    // Construct a 4x4 matrix from a 3x4 transformation matrix-    // -    explicit inline Matrix4( const Transform3 & mat );--    // Construct a 4x4 matrix from a 3x3 matrix and a 3-D vector-    // -    inline Matrix4( const Matrix3 & mat, const Vector3 & translateVec );--    // Construct a 4x4 matrix from a unit-length quaternion and a 3-D vector-    // -    inline Matrix4( const Quat & unitQuat, const Vector3 & translateVec );--    // Set all elements of a 4x4 matrix to the same scalar value-    // -    explicit inline Matrix4( float scalar );--    // Assign one 4x4 matrix to another-    // -    inline Matrix4 & operator =( const Matrix4 & mat );--    // Set the upper-left 3x3 submatrix-    // NOTE: -    // This function does not change the bottom row elements.-    // -    inline Matrix4 & setUpper3x3( const Matrix3 & mat3 );--    // Get the upper-left 3x3 submatrix of a 4x4 matrix-    // -    inline const Matrix3 getUpper3x3( ) const;--    // Set translation component-    // NOTE: -    // This function does not change the bottom row elements.-    // -    inline Matrix4 & setTranslation( const Vector3 & translateVec );--    // Get the translation component of a 4x4 matrix-    // -    inline const Vector3 getTranslation( ) const;--    // Set column 0 of a 4x4 matrix-    // -    inline Matrix4 & setCol0( const Vector4 & col0 );--    // Set column 1 of a 4x4 matrix-    // -    inline Matrix4 & setCol1( const Vector4 & col1 );--    // Set column 2 of a 4x4 matrix-    // -    inline Matrix4 & setCol2( const Vector4 & col2 );--    // Set column 3 of a 4x4 matrix-    // -    inline Matrix4 & setCol3( const Vector4 & col3 );--    // Get column 0 of a 4x4 matrix-    // -    inline const Vector4 getCol0( ) const;--    // Get column 1 of a 4x4 matrix-    // -    inline const Vector4 getCol1( ) const;--    // Get column 2 of a 4x4 matrix-    // -    inline const Vector4 getCol2( ) const;--    // Get column 3 of a 4x4 matrix-    // -    inline const Vector4 getCol3( ) const;--    // Set the column of a 4x4 matrix referred to by the specified index-    // -    inline Matrix4 & setCol( int col, const Vector4 & vec );--    // Set the row of a 4x4 matrix referred to by the specified index-    // -    inline Matrix4 & setRow( int row, const Vector4 & vec );--    // Get the column of a 4x4 matrix referred to by the specified index-    // -    inline const Vector4 getCol( int col ) const;--    // Get the row of a 4x4 matrix referred to by the specified index-    // -    inline const Vector4 getRow( int row ) const;--    // Subscripting operator to set or get a column-    // -    inline Vector4 & operator []( int col );--    // Subscripting operator to get a column-    // -    inline const Vector4 operator []( int col ) const;--    // Set the element of a 4x4 matrix referred to by column and row indices-    // -    inline Matrix4 & setElem( int col, int row, float val );--    // Get the element of a 4x4 matrix referred to by column and row indices-    // -    inline float getElem( int col, int row ) const;--    // Add two 4x4 matrices-    // -    inline const Matrix4 operator +( const Matrix4 & mat ) const;--    // Subtract a 4x4 matrix from another 4x4 matrix-    // -    inline const Matrix4 operator -( const Matrix4 & mat ) const;--    // Negate all elements of a 4x4 matrix-    // -    inline const Matrix4 operator -( ) const;--    // Multiply a 4x4 matrix by a scalar-    // -    inline const Matrix4 operator *( float scalar ) const;--    // Multiply a 4x4 matrix by a 4-D vector-    // -    inline const Vector4 operator *( const Vector4 & vec ) const;--    // Multiply a 4x4 matrix by a 3-D vector-    // -    inline const Vector4 operator *( const Vector3 & vec ) const;--    // Multiply a 4x4 matrix by a 3-D point-    // -    inline const Vector4 operator *( const Point3 & pnt ) const;--    // Multiply two 4x4 matrices-    // -    inline const Matrix4 operator *( const Matrix4 & mat ) const;--    // Multiply a 4x4 matrix by a 3x4 transformation matrix-    // -    inline const Matrix4 operator *( const Transform3 & tfrm ) const;--    // Perform compound assignment and addition with a 4x4 matrix-    // -    inline Matrix4 & operator +=( const Matrix4 & mat );--    // Perform compound assignment and subtraction by a 4x4 matrix-    // -    inline Matrix4 & operator -=( const Matrix4 & mat );--    // Perform compound assignment and multiplication by a scalar-    // -    inline Matrix4 & operator *=( float scalar );--    // Perform compound assignment and multiplication by a 4x4 matrix-    // -    inline Matrix4 & operator *=( const Matrix4 & mat );--    // Perform compound assignment and multiplication by a 3x4 transformation matrix-    // -    inline Matrix4 & operator *=( const Transform3 & tfrm );--    // Construct an identity 4x4 matrix-    // -    static inline const Matrix4 identity( );--    // Construct a 4x4 matrix to rotate around the x axis-    // -    static inline const Matrix4 rotationX( float radians );--    // Construct a 4x4 matrix to rotate around the y axis-    // -    static inline const Matrix4 rotationY( float radians );--    // Construct a 4x4 matrix to rotate around the z axis-    // -    static inline const Matrix4 rotationZ( float radians );--    // Construct a 4x4 matrix to rotate around the x, y, and z axes-    // -    static inline const Matrix4 rotationZYX( const Vector3 & radiansXYZ );--    // Construct a 4x4 matrix to rotate around a unit-length 3-D vector-    // -    static inline const Matrix4 rotation( float radians, const Vector3 & unitVec );--    // Construct a rotation matrix from a unit-length quaternion-    // -    static inline const Matrix4 rotation( const Quat & unitQuat );--    // Construct a 4x4 matrix to perform scaling-    // -    static inline const Matrix4 scale( const Vector3 & scaleVec );--    // Construct a 4x4 matrix to perform translation-    // -    static inline const Matrix4 translation( const Vector3 & translateVec );--    // Construct viewing matrix based on eye position, position looked at, and up direction-    // -    static inline const Matrix4 lookAt( const Point3 & eyePos, const Point3 & lookAtPos, const Vector3 & upVec );--    // Construct a perspective projection matrix-    // -    static inline const Matrix4 perspective( float fovyRadians, float aspect, float zNear, float zFar );--    // Construct a perspective projection matrix based on frustum-    // -    static inline const Matrix4 frustum( float left, float right, float bottom, float top, float zNear, float zFar );--    // Construct an orthographic projection matrix-    // -    static inline const Matrix4 orthographic( float left, float right, float bottom, float top, float zNear, float zFar );--};-// Multiply a 4x4 matrix by a scalar-// -inline const Matrix4 operator *( float scalar, const Matrix4 & mat );--// Append (post-multiply) a scale transformation to a 4x4 matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Matrix4 appendScale( const Matrix4 & mat, const Vector3 & scaleVec );--// Prepend (pre-multiply) a scale transformation to a 4x4 matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Matrix4 prependScale( const Vector3 & scaleVec, const Matrix4 & mat );--// Multiply two 4x4 matrices per element-// -inline const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 );--// Compute the absolute value of a 4x4 matrix per element-// -inline const Matrix4 absPerElem( const Matrix4 & mat );--// Transpose of a 4x4 matrix-// -inline const Matrix4 transpose( const Matrix4 & mat );--// Compute the inverse of a 4x4 matrix-// NOTE: -// Result is unpredictable when the determinant of mat is equal to or near 0.-// -inline const Matrix4 inverse( const Matrix4 & mat );--// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix-// NOTE: -// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.  The result is unpredictable when the determinant of mat is equal to or near 0.-// -inline const Matrix4 affineInverse( const Matrix4 & mat );--// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix with an orthogonal upper-left 3x3 submatrix-// NOTE: -// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.-// -inline const Matrix4 orthoInverse( const Matrix4 & mat );--// Determinant of a 4x4 matrix-// -inline float determinant( const Matrix4 & mat );--// Conditionally select between two 4x4 matrices-// -inline const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 );--#ifdef _VECTORMATH_DEBUG--// Print a 4x4 matrix-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Matrix4 & mat );--// Print a 4x4 matrix and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Matrix4 & mat, const char * name );--#endif--// A 3x4 transformation matrix in array-of-structures format-//-class Transform3-{-    Vector3 mCol0;-    Vector3 mCol1;-    Vector3 mCol2;-    Vector3 mCol3;--public:-    // Default constructor; does no initialization-    // -    inline Transform3( ) { };--    // Copy a 3x4 transformation matrix-    // -    inline Transform3( const Transform3 & tfrm );--    // Construct a 3x4 transformation matrix containing the specified columns-    // -    inline Transform3( const Vector3 & col0, const Vector3 & col1, const Vector3 & col2, const Vector3 & col3 );--    // Construct a 3x4 transformation matrix from a 3x3 matrix and a 3-D vector-    // -    inline Transform3( const Matrix3 & tfrm, const Vector3 & translateVec );--    // Construct a 3x4 transformation matrix from a unit-length quaternion and a 3-D vector-    // -    inline Transform3( const Quat & unitQuat, const Vector3 & translateVec );--    // Set all elements of a 3x4 transformation matrix to the same scalar value-    // -    explicit inline Transform3( float scalar );--    // Assign one 3x4 transformation matrix to another-    // -    inline Transform3 & operator =( const Transform3 & tfrm );--    // Set the upper-left 3x3 submatrix-    // -    inline Transform3 & setUpper3x3( const Matrix3 & mat3 );--    // Get the upper-left 3x3 submatrix of a 3x4 transformation matrix-    // -    inline const Matrix3 getUpper3x3( ) const;--    // Set translation component-    // -    inline Transform3 & setTranslation( const Vector3 & translateVec );--    // Get the translation component of a 3x4 transformation matrix-    // -    inline const Vector3 getTranslation( ) const;--    // Set column 0 of a 3x4 transformation matrix-    // -    inline Transform3 & setCol0( const Vector3 & col0 );--    // Set column 1 of a 3x4 transformation matrix-    // -    inline Transform3 & setCol1( const Vector3 & col1 );--    // Set column 2 of a 3x4 transformation matrix-    // -    inline Transform3 & setCol2( const Vector3 & col2 );--    // Set column 3 of a 3x4 transformation matrix-    // -    inline Transform3 & setCol3( const Vector3 & col3 );--    // Get column 0 of a 3x4 transformation matrix-    // -    inline const Vector3 getCol0( ) const;--    // Get column 1 of a 3x4 transformation matrix-    // -    inline const Vector3 getCol1( ) const;--    // Get column 2 of a 3x4 transformation matrix-    // -    inline const Vector3 getCol2( ) const;--    // Get column 3 of a 3x4 transformation matrix-    // -    inline const Vector3 getCol3( ) const;--    // Set the column of a 3x4 transformation matrix referred to by the specified index-    // -    inline Transform3 & setCol( int col, const Vector3 & vec );--    // Set the row of a 3x4 transformation matrix referred to by the specified index-    // -    inline Transform3 & setRow( int row, const Vector4 & vec );--    // Get the column of a 3x4 transformation matrix referred to by the specified index-    // -    inline const Vector3 getCol( int col ) const;--    // Get the row of a 3x4 transformation matrix referred to by the specified index-    // -    inline const Vector4 getRow( int row ) const;--    // Subscripting operator to set or get a column-    // -    inline Vector3 & operator []( int col );--    // Subscripting operator to get a column-    // -    inline const Vector3 operator []( int col ) const;--    // Set the element of a 3x4 transformation matrix referred to by column and row indices-    // -    inline Transform3 & setElem( int col, int row, float val );--    // Get the element of a 3x4 transformation matrix referred to by column and row indices-    // -    inline float getElem( int col, int row ) const;--    // Multiply a 3x4 transformation matrix by a 3-D vector-    // -    inline const Vector3 operator *( const Vector3 & vec ) const;--    // Multiply a 3x4 transformation matrix by a 3-D point-    // -    inline const Point3 operator *( const Point3 & pnt ) const;--    // Multiply two 3x4 transformation matrices-    // -    inline const Transform3 operator *( const Transform3 & tfrm ) const;--    // Perform compound assignment and multiplication by a 3x4 transformation matrix-    // -    inline Transform3 & operator *=( const Transform3 & tfrm );--    // Construct an identity 3x4 transformation matrix-    // -    static inline const Transform3 identity( );--    // Construct a 3x4 transformation matrix to rotate around the x axis-    // -    static inline const Transform3 rotationX( float radians );--    // Construct a 3x4 transformation matrix to rotate around the y axis-    // -    static inline const Transform3 rotationY( float radians );--    // Construct a 3x4 transformation matrix to rotate around the z axis-    // -    static inline const Transform3 rotationZ( float radians );--    // Construct a 3x4 transformation matrix to rotate around the x, y, and z axes-    // -    static inline const Transform3 rotationZYX( const Vector3 & radiansXYZ );--    // Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector-    // -    static inline const Transform3 rotation( float radians, const Vector3 & unitVec );--    // Construct a rotation matrix from a unit-length quaternion-    // -    static inline const Transform3 rotation( const Quat & unitQuat );--    // Construct a 3x4 transformation matrix to perform scaling-    // -    static inline const Transform3 scale( const Vector3 & scaleVec );--    // Construct a 3x4 transformation matrix to perform translation-    // -    static inline const Transform3 translation( const Vector3 & translateVec );--};-// Append (post-multiply) a scale transformation to a 3x4 transformation matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Transform3 appendScale( const Transform3 & tfrm, const Vector3 & scaleVec );--// Prepend (pre-multiply) a scale transformation to a 3x4 transformation matrix-// NOTE: -// Faster than creating and multiplying a scale transformation matrix.-// -inline const Transform3 prependScale( const Vector3 & scaleVec, const Transform3 & tfrm );--// Multiply two 3x4 transformation matrices per element-// -inline const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 );--// Compute the absolute value of a 3x4 transformation matrix per element-// -inline const Transform3 absPerElem( const Transform3 & tfrm );--// Inverse of a 3x4 transformation matrix-// NOTE: -// Result is unpredictable when the determinant of the left 3x3 submatrix is equal to or near 0.-// -inline const Transform3 inverse( const Transform3 & tfrm );--// Compute the inverse of a 3x4 transformation matrix, expected to have an orthogonal upper-left 3x3 submatrix-// NOTE: -// This can be used to achieve better performance than a general inverse when the specified 3x4 transformation matrix meets the given restrictions.-// -inline const Transform3 orthoInverse( const Transform3 & tfrm );--// Conditionally select between two 3x4 transformation matrices-// -inline const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 );--#ifdef _VECTORMATH_DEBUG--// Print a 3x4 transformation matrix-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// -inline void print( const Transform3 & tfrm );--// Print a 3x4 transformation matrix and an associated string identifier-// NOTE: -// Function is only defined when _VECTORMATH_DEBUG is defined.-// +Copyright (C) 2009 Sony Computer Entertainment Inc.+All rights reserved.++This software is provided 'as-is', without any express or implied warranty.+In no event will the authors be held liable for any damages arising from the use of this software.+Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it freely,+subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.+3. This notice may not be removed or altered from any source distribution.++*/++#ifndef _VECTORMATH_AOS_CPP_H+#define _VECTORMATH_AOS_CPP_H++#include <math.h>++#ifdef _VECTORMATH_DEBUG+#include <stdio.h>+#endif++namespace Vectormath {++namespace Aos {++//-----------------------------------------------------------------------------+// Forward Declarations+//++class Vector3;+class Vector4;+class Point3;+class Quat;+class Matrix3;+class Matrix4;+class Transform3;++// A 3-D vector in array-of-structures format+//+class Vector3+{ private:+float mX;+float mY;+float mZ;+#ifndef __GNUC__+float d;+#endif++public:+// Default constructor; does no initialization+//+inline Vector3( ) { };++// Copy a 3-D vector+//+inline Vector3( const Vector3 & vec );++// Construct a 3-D vector from x, y, and z elements+//+inline Vector3( float x, float y, float z );++// Copy elements from a 3-D point into a 3-D vector+//+explicit inline Vector3( const Point3 & pnt );++// Set all elements of a 3-D vector to the same scalar value+//+explicit inline Vector3( float scalar );++// Assign one 3-D vector to another+//+inline Vector3 & operator =( const Vector3 & vec );++// Set the x element of a 3-D vector+//+inline Vector3 & setX( float x );++// Set the y element of a 3-D vector+//+inline Vector3 & setY( float y );++// Set the z element of a 3-D vector+//+inline Vector3 & setZ( float z );++// Get the x element of a 3-D vector+//+inline float getX( ) const;++// Get the y element of a 3-D vector+//+inline float getY( ) const;++// Get the z element of a 3-D vector+//+inline float getZ( ) const;++// Set an x, y, or z element of a 3-D vector by index+//+inline Vector3 & setElem( int idx, float value );++// Get an x, y, or z element of a 3-D vector by index+//+inline float getElem( int idx ) const;++// Subscripting operator to set or get an element+//+inline float & operator []( int idx );++// Subscripting operator to get an element+//+inline float operator []( int idx ) const;++// Add two 3-D vectors+//+inline const Vector3 operator +( const Vector3 & vec ) const;++// Subtract a 3-D vector from another 3-D vector+//+inline const Vector3 operator -( const Vector3 & vec ) const;++// Add a 3-D vector to a 3-D point+//+inline const Point3 operator +( const Point3 & pnt ) const;++// Multiply a 3-D vector by a scalar+//+inline const Vector3 operator *( float scalar ) const;++// Divide a 3-D vector by a scalar+//+inline const Vector3 operator /( float scalar ) const;++// Perform compound assignment and addition with a 3-D vector+//+inline Vector3 & operator +=( const Vector3 & vec );++// Perform compound assignment and subtraction by a 3-D vector+//+inline Vector3 & operator -=( const Vector3 & vec );++// Perform compound assignment and multiplication by a scalar+//+inline Vector3 & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+inline Vector3 & operator /=( float scalar );++// Negate all elements of a 3-D vector+//+inline const Vector3 operator -( ) const;++// Construct x axis+//+static inline const Vector3 xAxis( );++// Construct y axis+//+static inline const Vector3 yAxis( );++// Construct z axis+//+static inline const Vector3 zAxis( );++}+#ifdef __GNUC__+__attribute__ ((aligned(16)))+#endif+;++// Multiply a 3-D vector by a scalar+//+inline const Vector3 operator *( float scalar, const Vector3 & vec );++// Multiply two 3-D vectors per element+//+inline const Vector3 mulPerElem( const Vector3 & vec0, const Vector3 & vec1 );++// Divide two 3-D vectors per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+inline const Vector3 divPerElem( const Vector3 & vec0, const Vector3 & vec1 );++// Compute the reciprocal of a 3-D vector per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+inline const Vector3 recipPerElem( const Vector3 & vec );++// Compute the square root of a 3-D vector per element+// NOTE:+// Floating-point behavior matches standard library function sqrtf4.+//+inline const Vector3 sqrtPerElem( const Vector3 & vec );++// Compute the reciprocal square root of a 3-D vector per element+// NOTE:+// Floating-point behavior matches standard library function rsqrtf4.+//+inline const Vector3 rsqrtPerElem( const Vector3 & vec );++// Compute the absolute value of a 3-D vector per element+//+inline const Vector3 absPerElem( const Vector3 & vec );++// Copy sign from one 3-D vector to another, per element+//+inline const Vector3 copySignPerElem( const Vector3 & vec0, const Vector3 & vec1 );++// Maximum of two 3-D vectors per element+//+inline const Vector3 maxPerElem( const Vector3 & vec0, const Vector3 & vec1 );++// Minimum of two 3-D vectors per element+//+inline const Vector3 minPerElem( const Vector3 & vec0, const Vector3 & vec1 );++// Maximum element of a 3-D vector+//+inline float maxElem( const Vector3 & vec );++// Minimum element of a 3-D vector+//+inline float minElem( const Vector3 & vec );++// Compute the sum of all elements of a 3-D vector+//+inline float sum( const Vector3 & vec );++// Compute the dot product of two 3-D vectors+//+inline float dot( const Vector3 & vec0, const Vector3 & vec1 );++// Compute the square of the length of a 3-D vector+//+inline float lengthSqr( const Vector3 & vec );++// Compute the length of a 3-D vector+//+inline float length( const Vector3 & vec );++// Normalize a 3-D vector+// NOTE:+// The result is unpredictable when all elements of vec are at or near zero.+//+inline const Vector3 normalize( const Vector3 & vec );++// Compute cross product of two 3-D vectors+//+inline const Vector3 cross( const Vector3 & vec0, const Vector3 & vec1 );++// Outer product of two 3-D vectors+//+inline const Matrix3 outer( const Vector3 & vec0, const Vector3 & vec1 );++// Pre-multiply a row vector by a 3x3 matrix+//+inline const Vector3 rowMul( const Vector3 & vec, const Matrix3 & mat );++// Cross-product matrix of a 3-D vector+//+inline const Matrix3 crossMatrix( const Vector3 & vec );++// Create cross-product matrix and multiply+// NOTE:+// Faster than separately creating a cross-product matrix and multiplying.+//+inline const Matrix3 crossMatrixMul( const Vector3 & vec, const Matrix3 & mat );++// Linear interpolation between two 3-D vectors+// NOTE:+// Does not clamp t between 0 and 1.+//+inline const Vector3 lerp( float t, const Vector3 & vec0, const Vector3 & vec1 );++// Spherical linear interpolation between two 3-D vectors+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+inline const Vector3 slerp( float t, const Vector3 & unitVec0, const Vector3 & unitVec1 );++// Conditionally select between two 3-D vectors+//+inline const Vector3 select( const Vector3 & vec0, const Vector3 & vec1, bool select1 );++// Load x, y, and z elements from the first three words of a float array.+//+//+inline void loadXYZ( Vector3 & vec, const float * fptr );++// Store x, y, and z elements of a 3-D vector in the first three words of a float array.+// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed+//+inline void storeXYZ( const Vector3 & vec, float * fptr );++// Load three-half-floats as a 3-D vector+// NOTE:+// This transformation does not support either denormalized numbers or NaNs.+//+inline void loadHalfFloats( Vector3 & vec, const unsigned short * hfptr );++// Store a 3-D vector as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.+// NOTE:+// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.+//+inline void storeHalfFloats( const Vector3 & vec, unsigned short * hfptr );++#ifdef _VECTORMATH_DEBUG++// Print a 3-D vector+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Vector3 & vec );++// Print a 3-D vector and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Vector3 & vec, const char * name );++#endif++// A 4-D vector in array-of-structures format+//+class Vector4+{ private:+float mX;+float mY;+float mZ;+float mW;++public:+// Default constructor; does no initialization+//+inline Vector4( ) { };++// Copy a 4-D vector+//+inline Vector4( const Vector4 & vec );++// Construct a 4-D vector from x, y, z, and w elements+//+inline Vector4( float x, float y, float z, float w );++// Construct a 4-D vector from a 3-D vector and a scalar+//+inline Vector4( const Vector3 & xyz, float w );++// Copy x, y, and z from a 3-D vector into a 4-D vector, and set w to 0+//+explicit inline Vector4( const Vector3 & vec );++// Copy x, y, and z from a 3-D point into a 4-D vector, and set w to 1+//+explicit inline Vector4( const Point3 & pnt );++// Copy elements from a quaternion into a 4-D vector+//+explicit inline Vector4( const Quat & quat );++// Set all elements of a 4-D vector to the same scalar value+//+explicit inline Vector4( float scalar );++// Assign one 4-D vector to another+//+inline Vector4 & operator =( const Vector4 & vec );++// Set the x, y, and z elements of a 4-D vector+// NOTE:+// This function does not change the w element.+//+inline Vector4 & setXYZ( const Vector3 & vec );++// Get the x, y, and z elements of a 4-D vector+//+inline const Vector3 getXYZ( ) const;++// Set the x element of a 4-D vector+//+inline Vector4 & setX( float x );++// Set the y element of a 4-D vector+//+inline Vector4 & setY( float y );++// Set the z element of a 4-D vector+//+inline Vector4 & setZ( float z );++// Set the w element of a 4-D vector+//+inline Vector4 & setW( float w );++// Get the x element of a 4-D vector+//+inline float getX( ) const;++// Get the y element of a 4-D vector+//+inline float getY( ) const;++// Get the z element of a 4-D vector+//+inline float getZ( ) const;++// Get the w element of a 4-D vector+//+inline float getW( ) const;++// Set an x, y, z, or w element of a 4-D vector by index+//+inline Vector4 & setElem( int idx, float value );++// Get an x, y, z, or w element of a 4-D vector by index+//+inline float getElem( int idx ) const;++// Subscripting operator to set or get an element+//+inline float & operator []( int idx );++// Subscripting operator to get an element+//+inline float operator []( int idx ) const;++// Add two 4-D vectors+//+inline const Vector4 operator +( const Vector4 & vec ) const;++// Subtract a 4-D vector from another 4-D vector+//+inline const Vector4 operator -( const Vector4 & vec ) const;++// Multiply a 4-D vector by a scalar+//+inline const Vector4 operator *( float scalar ) const;++// Divide a 4-D vector by a scalar+//+inline const Vector4 operator /( float scalar ) const;++// Perform compound assignment and addition with a 4-D vector+//+inline Vector4 & operator +=( const Vector4 & vec );++// Perform compound assignment and subtraction by a 4-D vector+//+inline Vector4 & operator -=( const Vector4 & vec );++// Perform compound assignment and multiplication by a scalar+//+inline Vector4 & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+inline Vector4 & operator /=( float scalar );++// Negate all elements of a 4-D vector+//+inline const Vector4 operator -( ) const;++// Construct x axis+//+static inline const Vector4 xAxis( );++// Construct y axis+//+static inline const Vector4 yAxis( );++// Construct z axis+//+static inline const Vector4 zAxis( );++// Construct w axis+//+static inline const Vector4 wAxis( );++}+#ifdef __GNUC__+__attribute__ ((aligned(16)))+#endif+;++// Multiply a 4-D vector by a scalar+//+inline const Vector4 operator *( float scalar, const Vector4 & vec );++// Multiply two 4-D vectors per element+//+inline const Vector4 mulPerElem( const Vector4 & vec0, const Vector4 & vec1 );++// Divide two 4-D vectors per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+inline const Vector4 divPerElem( const Vector4 & vec0, const Vector4 & vec1 );++// Compute the reciprocal of a 4-D vector per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+inline const Vector4 recipPerElem( const Vector4 & vec );++// Compute the square root of a 4-D vector per element+// NOTE:+// Floating-point behavior matches standard library function sqrtf4.+//+inline const Vector4 sqrtPerElem( const Vector4 & vec );++// Compute the reciprocal square root of a 4-D vector per element+// NOTE:+// Floating-point behavior matches standard library function rsqrtf4.+//+inline const Vector4 rsqrtPerElem( const Vector4 & vec );++// Compute the absolute value of a 4-D vector per element+//+inline const Vector4 absPerElem( const Vector4 & vec );++// Copy sign from one 4-D vector to another, per element+//+inline const Vector4 copySignPerElem( const Vector4 & vec0, const Vector4 & vec1 );++// Maximum of two 4-D vectors per element+//+inline const Vector4 maxPerElem( const Vector4 & vec0, const Vector4 & vec1 );++// Minimum of two 4-D vectors per element+//+inline const Vector4 minPerElem( const Vector4 & vec0, const Vector4 & vec1 );++// Maximum element of a 4-D vector+//+inline float maxElem( const Vector4 & vec );++// Minimum element of a 4-D vector+//+inline float minElem( const Vector4 & vec );++// Compute the sum of all elements of a 4-D vector+//+inline float sum( const Vector4 & vec );++// Compute the dot product of two 4-D vectors+//+inline float dot( const Vector4 & vec0, const Vector4 & vec1 );++// Compute the square of the length of a 4-D vector+//+inline float lengthSqr( const Vector4 & vec );++// Compute the length of a 4-D vector+//+inline float length( const Vector4 & vec );++// Normalize a 4-D vector+// NOTE:+// The result is unpredictable when all elements of vec are at or near zero.+//+inline const Vector4 normalize( const Vector4 & vec );++// Outer product of two 4-D vectors+//+inline const Matrix4 outer( const Vector4 & vec0, const Vector4 & vec1 );++// Linear interpolation between two 4-D vectors+// NOTE:+// Does not clamp t between 0 and 1.+//+inline const Vector4 lerp( float t, const Vector4 & vec0, const Vector4 & vec1 );++// Spherical linear interpolation between two 4-D vectors+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+inline const Vector4 slerp( float t, const Vector4 & unitVec0, const Vector4 & unitVec1 );++// Conditionally select between two 4-D vectors+//+inline const Vector4 select( const Vector4 & vec0, const Vector4 & vec1, bool select1 );++// Load x, y, z, and w elements from the first four words of a float array.+//+//+inline void loadXYZW( Vector4 & vec, const float * fptr );++// Store x, y, z, and w elements of a 4-D vector in the first four words of a float array.+// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed+//+inline void storeXYZW( const Vector4 & vec, float * fptr );++// Load four-half-floats as a 4-D vector+// NOTE:+// This transformation does not support either denormalized numbers or NaNs.+//+inline void loadHalfFloats( Vector4 & vec, const unsigned short * hfptr );++// Store a 4-D vector as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.+// NOTE:+// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.+//+inline void storeHalfFloats( const Vector4 & vec, unsigned short * hfptr );++#ifdef _VECTORMATH_DEBUG++// Print a 4-D vector+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Vector4 & vec );++// Print a 4-D vector and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Vector4 & vec, const char * name );++#endif++// A 3-D point in array-of-structures format+//+class Point3+{ private:+float mX;+float mY;+float mZ;+#ifndef __GNUC__+float d;+#endif++public:+// Default constructor; does no initialization+//+inline Point3( ) { };++// Copy a 3-D point+//+inline Point3( const Point3 & pnt );++// Construct a 3-D point from x, y, and z elements+//+inline Point3( float x, float y, float z );++// Copy elements from a 3-D vector into a 3-D point+//+explicit inline Point3( const Vector3 & vec );++// Set all elements of a 3-D point to the same scalar value+//+explicit inline Point3( float scalar );++// Assign one 3-D point to another+//+inline Point3 & operator =( const Point3 & pnt );++// Set the x element of a 3-D point+//+inline Point3 & setX( float x );++// Set the y element of a 3-D point+//+inline Point3 & setY( float y );++// Set the z element of a 3-D point+//+inline Point3 & setZ( float z );++// Get the x element of a 3-D point+//+inline float getX( ) const;++// Get the y element of a 3-D point+//+inline float getY( ) const;++// Get the z element of a 3-D point+//+inline float getZ( ) const;++// Set an x, y, or z element of a 3-D point by index+//+inline Point3 & setElem( int idx, float value );++// Get an x, y, or z element of a 3-D point by index+//+inline float getElem( int idx ) const;++// Subscripting operator to set or get an element+//+inline float & operator []( int idx );++// Subscripting operator to get an element+//+inline float operator []( int idx ) const;++// Subtract a 3-D point from another 3-D point+//+inline const Vector3 operator -( const Point3 & pnt ) const;++// Add a 3-D point to a 3-D vector+//+inline const Point3 operator +( const Vector3 & vec ) const;++// Subtract a 3-D vector from a 3-D point+//+inline const Point3 operator -( const Vector3 & vec ) const;++// Perform compound assignment and addition with a 3-D vector+//+inline Point3 & operator +=( const Vector3 & vec );++// Perform compound assignment and subtraction by a 3-D vector+//+inline Point3 & operator -=( const Vector3 & vec );++}+#ifdef __GNUC__+__attribute__ ((aligned(16)))+#endif+;++// Multiply two 3-D points per element+//+inline const Point3 mulPerElem( const Point3 & pnt0, const Point3 & pnt1 );++// Divide two 3-D points per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+inline const Point3 divPerElem( const Point3 & pnt0, const Point3 & pnt1 );++// Compute the reciprocal of a 3-D point per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+inline const Point3 recipPerElem( const Point3 & pnt );++// Compute the square root of a 3-D point per element+// NOTE:+// Floating-point behavior matches standard library function sqrtf4.+//+inline const Point3 sqrtPerElem( const Point3 & pnt );++// Compute the reciprocal square root of a 3-D point per element+// NOTE:+// Floating-point behavior matches standard library function rsqrtf4.+//+inline const Point3 rsqrtPerElem( const Point3 & pnt );++// Compute the absolute value of a 3-D point per element+//+inline const Point3 absPerElem( const Point3 & pnt );++// Copy sign from one 3-D point to another, per element+//+inline const Point3 copySignPerElem( const Point3 & pnt0, const Point3 & pnt1 );++// Maximum of two 3-D points per element+//+inline const Point3 maxPerElem( const Point3 & pnt0, const Point3 & pnt1 );++// Minimum of two 3-D points per element+//+inline const Point3 minPerElem( const Point3 & pnt0, const Point3 & pnt1 );++// Maximum element of a 3-D point+//+inline float maxElem( const Point3 & pnt );++// Minimum element of a 3-D point+//+inline float minElem( const Point3 & pnt );++// Compute the sum of all elements of a 3-D point+//+inline float sum( const Point3 & pnt );++// Apply uniform scale to a 3-D point+//+inline const Point3 scale( const Point3 & pnt, float scaleVal );++// Apply non-uniform scale to a 3-D point+//+inline const Point3 scale( const Point3 & pnt, const Vector3 & scaleVec );++// Scalar projection of a 3-D point on a unit-length 3-D vector+//+inline float projection( const Point3 & pnt, const Vector3 & unitVec );++// Compute the square of the distance of a 3-D point from the coordinate-system origin+//+inline float distSqrFromOrigin( const Point3 & pnt );++// Compute the distance of a 3-D point from the coordinate-system origin+//+inline float distFromOrigin( const Point3 & pnt );++// Compute the square of the distance between two 3-D points+//+inline float distSqr( const Point3 & pnt0, const Point3 & pnt1 );++// Compute the distance between two 3-D points+//+inline float dist( const Point3 & pnt0, const Point3 & pnt1 );++// Linear interpolation between two 3-D points+// NOTE:+// Does not clamp t between 0 and 1.+//+inline const Point3 lerp( float t, const Point3 & pnt0, const Point3 & pnt1 );++// Conditionally select between two 3-D points+//+inline const Point3 select( const Point3 & pnt0, const Point3 & pnt1, bool select1 );++// Load x, y, and z elements from the first three words of a float array.+//+//+inline void loadXYZ( Point3 & pnt, const float * fptr );++// Store x, y, and z elements of a 3-D point in the first three words of a float array.+// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed+//+inline void storeXYZ( const Point3 & pnt, float * fptr );++// Load three-half-floats as a 3-D point+// NOTE:+// This transformation does not support either denormalized numbers or NaNs.+//+inline void loadHalfFloats( Point3 & pnt, const unsigned short * hfptr );++// Store a 3-D point as half-floats. Memory area of previous 16 bytes and next 32 bytes from <code><i>hfptr</i></code> might be accessed.+// NOTE:+// This transformation does not support either denormalized numbers or NaNs. Memory area of previous 16 bytes and next 32 bytes from hfptr might be accessed.+//+inline void storeHalfFloats( const Point3 & pnt, unsigned short * hfptr );++#ifdef _VECTORMATH_DEBUG++// Print a 3-D point+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Point3 & pnt );++// Print a 3-D point and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Point3 & pnt, const char * name );++#endif++// A quaternion in array-of-structures format+//+class Quat+{ private:+float mX;+float mY;+float mZ;+float mW;++public:+// Default constructor; does no initialization+//+inline Quat( ) { };++// Copy a quaternion+//+inline Quat( const Quat & quat );++// Construct a quaternion from x, y, z, and w elements+//+inline Quat( float x, float y, float z, float w );++// Construct a quaternion from a 3-D vector and a scalar+//+inline Quat( const Vector3 & xyz, float w );++// Copy elements from a 4-D vector into a quaternion+//+explicit inline Quat( const Vector4 & vec );++// Convert a rotation matrix to a unit-length quaternion+//+explicit inline Quat( const Matrix3 & rotMat );++// Set all elements of a quaternion to the same scalar value+//+explicit inline Quat( float scalar );++// Assign one quaternion to another+//+inline Quat & operator =( const Quat & quat );++// Set the x, y, and z elements of a quaternion+// NOTE:+// This function does not change the w element.+//+inline Quat & setXYZ( const Vector3 & vec );++// Get the x, y, and z elements of a quaternion+//+inline const Vector3 getXYZ( ) const;++// Set the x element of a quaternion+//+inline Quat & setX( float x );++// Set the y element of a quaternion+//+inline Quat & setY( float y );++// Set the z element of a quaternion+//+inline Quat & setZ( float z );++// Set the w element of a quaternion+//+inline Quat & setW( float w );++// Get the x element of a quaternion+//+inline float getX( ) const;++// Get the y element of a quaternion+//+inline float getY( ) const;++// Get the z element of a quaternion+//+inline float getZ( ) const;++// Get the w element of a quaternion+//+inline float getW( ) const;++// Set an x, y, z, or w element of a quaternion by index+//+inline Quat & setElem( int idx, float value );++// Get an x, y, z, or w element of a quaternion by index+//+inline float getElem( int idx ) const;++// Subscripting operator to set or get an element+//+inline float & operator []( int idx );++// Subscripting operator to get an element+//+inline float operator []( int idx ) const;++// Add two quaternions+//+inline const Quat operator +( const Quat & quat ) const;++// Subtract a quaternion from another quaternion+//+inline const Quat operator -( const Quat & quat ) const;++// Multiply two quaternions+//+inline const Quat operator *( const Quat & quat ) const;++// Multiply a quaternion by a scalar+//+inline const Quat operator *( float scalar ) const;++// Divide a quaternion by a scalar+//+inline const Quat operator /( float scalar ) const;++// Perform compound assignment and addition with a quaternion+//+inline Quat & operator +=( const Quat & quat );++// Perform compound assignment and subtraction by a quaternion+//+inline Quat & operator -=( const Quat & quat );++// Perform compound assignment and multiplication by a quaternion+//+inline Quat & operator *=( const Quat & quat );++// Perform compound assignment and multiplication by a scalar+//+inline Quat & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+inline Quat & operator /=( float scalar );++// Negate all elements of a quaternion+//+inline const Quat operator -( ) const;++// Construct an identity quaternion+//+static inline const Quat identity( );++// Construct a quaternion to rotate between two unit-length 3-D vectors+// NOTE:+// The result is unpredictable if unitVec0 and unitVec1 point in opposite directions.+//+static inline const Quat rotation( const Vector3 & unitVec0, const Vector3 & unitVec1 );++// Construct a quaternion to rotate around a unit-length 3-D vector+//+static inline const Quat rotation( float radians, const Vector3 & unitVec );++// Construct a quaternion to rotate around the x axis+//+static inline const Quat rotationX( float radians );++// Construct a quaternion to rotate around the y axis+//+static inline const Quat rotationY( float radians );++// Construct a quaternion to rotate around the z axis+//+static inline const Quat rotationZ( float radians );++}+#ifdef __GNUC__+__attribute__ ((aligned(16)))+#endif+;++// Multiply a quaternion by a scalar+//+inline const Quat operator *( float scalar, const Quat & quat );++// Compute the conjugate of a quaternion+//+inline const Quat conj( const Quat & quat );++// Use a unit-length quaternion to rotate a 3-D vector+//+inline const Vector3 rotate( const Quat & unitQuat, const Vector3 & vec );++// Compute the dot product of two quaternions+//+inline float dot( const Quat & quat0, const Quat & quat1 );++// Compute the norm of a quaternion+//+inline float norm( const Quat & quat );++// Compute the length of a quaternion+//+inline float length( const Quat & quat );++// Normalize a quaternion+// NOTE:+// The result is unpredictable when all elements of quat are at or near zero.+//+inline const Quat normalize( const Quat & quat );++// Linear interpolation between two quaternions+// NOTE:+// Does not clamp t between 0 and 1.+//+inline const Quat lerp( float t, const Quat & quat0, const Quat & quat1 );++// Spherical linear interpolation between two quaternions+// NOTE:+// Interpolates along the shortest path between orientations.+// Does not clamp t between 0 and 1.+//+inline const Quat slerp( float t, const Quat & unitQuat0, const Quat & unitQuat1 );++// Spherical quadrangle interpolation+//+inline const Quat squad( float t, const Quat & unitQuat0, const Quat & unitQuat1, const Quat & unitQuat2, const Quat & unitQuat3 );++// Conditionally select between two quaternions+//+inline const Quat select( const Quat & quat0, const Quat & quat1, bool select1 );++// Load x, y, z, and w elements from the first four words of a float array.+//+//+inline void loadXYZW( Quat & quat, const float * fptr );++// Store x, y, z, and w elements of a quaternion in the first four words of a float array.+// Memory area of previous 16 bytes and next 32 bytes from fptr might be accessed+//+inline void storeXYZW( const Quat & quat, float * fptr );++#ifdef _VECTORMATH_DEBUG++// Print a quaternion+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Quat & quat );++// Print a quaternion and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Quat & quat, const char * name );++#endif++// A 3x3 matrix in array-of-structures format+//+class Matrix3+{ private:+Vector3 mCol0;+Vector3 mCol1;+Vector3 mCol2;++public:+// Default constructor; does no initialization+//+inline Matrix3( ) { };++// Copy a 3x3 matrix+//+inline Matrix3( const Matrix3 & mat );++// Construct a 3x3 matrix containing the specified columns+//+inline Matrix3( const Vector3 & col0, const Vector3 & col1, const Vector3 & col2 );++// Construct a 3x3 rotation matrix from a unit-length quaternion+//+explicit inline Matrix3( const Quat & unitQuat );++// Set all elements of a 3x3 matrix to the same scalar value+//+explicit inline Matrix3( float scalar );++// Assign one 3x3 matrix to another+//+inline Matrix3 & operator =( const Matrix3 & mat );++// Set column 0 of a 3x3 matrix+//+inline Matrix3 & setCol0( const Vector3 & col0 );++// Set column 1 of a 3x3 matrix+//+inline Matrix3 & setCol1( const Vector3 & col1 );++// Set column 2 of a 3x3 matrix+//+inline Matrix3 & setCol2( const Vector3 & col2 );++// Get column 0 of a 3x3 matrix+//+inline const Vector3 getCol0( ) const;++// Get column 1 of a 3x3 matrix+//+inline const Vector3 getCol1( ) const;++// Get column 2 of a 3x3 matrix+//+inline const Vector3 getCol2( ) const;++// Set the column of a 3x3 matrix referred to by the specified index+//+inline Matrix3 & setCol( int col, const Vector3 & vec );++// Set the row of a 3x3 matrix referred to by the specified index+//+inline Matrix3 & setRow( int row, const Vector3 & vec );++// Get the column of a 3x3 matrix referred to by the specified index+//+inline const Vector3 getCol( int col ) const;++// Get the row of a 3x3 matrix referred to by the specified index+//+inline const Vector3 getRow( int row ) const;++// Subscripting operator to set or get a column+//+inline Vector3 & operator []( int col );++// Subscripting operator to get a column+//+inline const Vector3 operator []( int col ) const;++// Set the element of a 3x3 matrix referred to by column and row indices+//+inline Matrix3 & setElem( int col, int row, float val );++// Get the element of a 3x3 matrix referred to by column and row indices+//+inline float getElem( int col, int row ) const;++// Add two 3x3 matrices+//+inline const Matrix3 operator +( const Matrix3 & mat ) const;++// Subtract a 3x3 matrix from another 3x3 matrix+//+inline const Matrix3 operator -( const Matrix3 & mat ) const;++// Negate all elements of a 3x3 matrix+//+inline const Matrix3 operator -( ) const;++// Multiply a 3x3 matrix by a scalar+//+inline const Matrix3 operator *( float scalar ) const;++// Multiply a 3x3 matrix by a 3-D vector+//+inline const Vector3 operator *( const Vector3 & vec ) const;++// Multiply two 3x3 matrices+//+inline const Matrix3 operator *( const Matrix3 & mat ) const;++// Perform compound assignment and addition with a 3x3 matrix+//+inline Matrix3 & operator +=( const Matrix3 & mat );++// Perform compound assignment and subtraction by a 3x3 matrix+//+inline Matrix3 & operator -=( const Matrix3 & mat );++// Perform compound assignment and multiplication by a scalar+//+inline Matrix3 & operator *=( float scalar );++// Perform compound assignment and multiplication by a 3x3 matrix+//+inline Matrix3 & operator *=( const Matrix3 & mat );++// Construct an identity 3x3 matrix+//+static inline const Matrix3 identity( );++// Construct a 3x3 matrix to rotate around the x axis+//+static inline const Matrix3 rotationX( float radians );++// Construct a 3x3 matrix to rotate around the y axis+//+static inline const Matrix3 rotationY( float radians );++// Construct a 3x3 matrix to rotate around the z axis+//+static inline const Matrix3 rotationZ( float radians );++// Construct a 3x3 matrix to rotate around the x, y, and z axes+//+static inline const Matrix3 rotationZYX( const Vector3 & radiansXYZ );++// Construct a 3x3 matrix to rotate around a unit-length 3-D vector+//+static inline const Matrix3 rotation( float radians, const Vector3 & unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static inline const Matrix3 rotation( const Quat & unitQuat );++// Construct a 3x3 matrix to perform scaling+//+static inline const Matrix3 scale( const Vector3 & scaleVec );++};+// Multiply a 3x3 matrix by a scalar+//+inline const Matrix3 operator *( float scalar, const Matrix3 & mat );++// Append (post-multiply) a scale transformation to a 3x3 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Matrix3 appendScale( const Matrix3 & mat, const Vector3 & scaleVec );++// Prepend (pre-multiply) a scale transformation to a 3x3 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Matrix3 prependScale( const Vector3 & scaleVec, const Matrix3 & mat );++// Multiply two 3x3 matrices per element+//+inline const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 );++// Compute the absolute value of a 3x3 matrix per element+//+inline const Matrix3 absPerElem( const Matrix3 & mat );++// Transpose of a 3x3 matrix+//+inline const Matrix3 transpose( const Matrix3 & mat );++// Compute the inverse of a 3x3 matrix+// NOTE:+// Result is unpredictable when the determinant of mat is equal to or near 0.+//+inline const Matrix3 inverse( const Matrix3 & mat );++// Determinant of a 3x3 matrix+//+inline float determinant( const Matrix3 & mat );++// Conditionally select between two 3x3 matrices+//+inline const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 3x3 matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Matrix3 & mat );++// Print a 3x3 matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Matrix3 & mat, const char * name );++#endif++// A 4x4 matrix in array-of-structures format+//+class Matrix4+{ private:+Vector4 mCol0;+Vector4 mCol1;+Vector4 mCol2;+Vector4 mCol3;++public:+// Default constructor; does no initialization+//+inline Matrix4( ) { };++// Copy a 4x4 matrix+//+inline Matrix4( const Matrix4 & mat );++// Construct a 4x4 matrix containing the specified columns+//+inline Matrix4( const Vector4 & col0, const Vector4 & col1, const Vector4 & col2, const Vector4 & col3 );++// Construct a 4x4 matrix from a 3x4 transformation matrix+//+explicit inline Matrix4( const Transform3 & mat );++// Construct a 4x4 matrix from a 3x3 matrix and a 3-D vector+//+inline Matrix4( const Matrix3 & mat, const Vector3 & translateVec );++// Construct a 4x4 matrix from a unit-length quaternion and a 3-D vector+//+inline Matrix4( const Quat & unitQuat, const Vector3 & translateVec );++// Set all elements of a 4x4 matrix to the same scalar value+//+explicit inline Matrix4( float scalar );++// Assign one 4x4 matrix to another+//+inline Matrix4 & operator =( const Matrix4 & mat );++// Set the upper-left 3x3 submatrix+// NOTE:+// This function does not change the bottom row elements.+//+inline Matrix4 & setUpper3x3( const Matrix3 & mat3 );++// Get the upper-left 3x3 submatrix of a 4x4 matrix+//+inline const Matrix3 getUpper3x3( ) const;++// Set translation component+// NOTE:+// This function does not change the bottom row elements.+//+inline Matrix4 & setTranslation( const Vector3 & translateVec );++// Get the translation component of a 4x4 matrix+//+inline const Vector3 getTranslation( ) const;++// Set column 0 of a 4x4 matrix+//+inline Matrix4 & setCol0( const Vector4 & col0 );++// Set column 1 of a 4x4 matrix+//+inline Matrix4 & setCol1( const Vector4 & col1 );++// Set column 2 of a 4x4 matrix+//+inline Matrix4 & setCol2( const Vector4 & col2 );++// Set column 3 of a 4x4 matrix+//+inline Matrix4 & setCol3( const Vector4 & col3 );++// Get column 0 of a 4x4 matrix+//+inline const Vector4 getCol0( ) const;++// Get column 1 of a 4x4 matrix+//+inline const Vector4 getCol1( ) const;++// Get column 2 of a 4x4 matrix+//+inline const Vector4 getCol2( ) const;++// Get column 3 of a 4x4 matrix+//+inline const Vector4 getCol3( ) const;++// Set the column of a 4x4 matrix referred to by the specified index+//+inline Matrix4 & setCol( int col, const Vector4 & vec );++// Set the row of a 4x4 matrix referred to by the specified index+//+inline Matrix4 & setRow( int row, const Vector4 & vec );++// Get the column of a 4x4 matrix referred to by the specified index+//+inline const Vector4 getCol( int col ) const;++// Get the row of a 4x4 matrix referred to by the specified index+//+inline const Vector4 getRow( int row ) const;++// Subscripting operator to set or get a column+//+inline Vector4 & operator []( int col );++// Subscripting operator to get a column+//+inline const Vector4 operator []( int col ) const;++// Set the element of a 4x4 matrix referred to by column and row indices+//+inline Matrix4 & setElem( int col, int row, float val );++// Get the element of a 4x4 matrix referred to by column and row indices+//+inline float getElem( int col, int row ) const;++// Add two 4x4 matrices+//+inline const Matrix4 operator +( const Matrix4 & mat ) const;++// Subtract a 4x4 matrix from another 4x4 matrix+//+inline const Matrix4 operator -( const Matrix4 & mat ) const;++// Negate all elements of a 4x4 matrix+//+inline const Matrix4 operator -( ) const;++// Multiply a 4x4 matrix by a scalar+//+inline const Matrix4 operator *( float scalar ) const;++// Multiply a 4x4 matrix by a 4-D vector+//+inline const Vector4 operator *( const Vector4 & vec ) const;++// Multiply a 4x4 matrix by a 3-D vector+//+inline const Vector4 operator *( const Vector3 & vec ) const;++// Multiply a 4x4 matrix by a 3-D point+//+inline const Vector4 operator *( const Point3 & pnt ) const;++// Multiply two 4x4 matrices+//+inline const Matrix4 operator *( const Matrix4 & mat ) const;++// Multiply a 4x4 matrix by a 3x4 transformation matrix+//+inline const Matrix4 operator *( const Transform3 & tfrm ) const;++// Perform compound assignment and addition with a 4x4 matrix+//+inline Matrix4 & operator +=( const Matrix4 & mat );++// Perform compound assignment and subtraction by a 4x4 matrix+//+inline Matrix4 & operator -=( const Matrix4 & mat );++// Perform compound assignment and multiplication by a scalar+//+inline Matrix4 & operator *=( float scalar );++// Perform compound assignment and multiplication by a 4x4 matrix+//+inline Matrix4 & operator *=( const Matrix4 & mat );++// Perform compound assignment and multiplication by a 3x4 transformation matrix+//+inline Matrix4 & operator *=( const Transform3 & tfrm );++// Construct an identity 4x4 matrix+//+static inline const Matrix4 identity( );++// Construct a 4x4 matrix to rotate around the x axis+//+static inline const Matrix4 rotationX( float radians );++// Construct a 4x4 matrix to rotate around the y axis+//+static inline const Matrix4 rotationY( float radians );++// Construct a 4x4 matrix to rotate around the z axis+//+static inline const Matrix4 rotationZ( float radians );++// Construct a 4x4 matrix to rotate around the x, y, and z axes+//+static inline const Matrix4 rotationZYX( const Vector3 & radiansXYZ );++// Construct a 4x4 matrix to rotate around a unit-length 3-D vector+//+static inline const Matrix4 rotation( float radians, const Vector3 & unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static inline const Matrix4 rotation( const Quat & unitQuat );++// Construct a 4x4 matrix to perform scaling+//+static inline const Matrix4 scale( const Vector3 & scaleVec );++// Construct a 4x4 matrix to perform translation+//+static inline const Matrix4 translation( const Vector3 & translateVec );++// Construct viewing matrix based on eye position, position looked at, and up direction+//+static inline const Matrix4 lookAt( const Point3 & eyePos, const Point3 & lookAtPos, const Vector3 & upVec );++// Construct a perspective projection matrix+//+static inline const Matrix4 perspective( float fovyRadians, float aspect, float zNear, float zFar );++// Construct a perspective projection matrix based on frustum+//+static inline const Matrix4 frustum( float left, float right, float bottom, float top, float zNear, float zFar );++// Construct an orthographic projection matrix+//+static inline const Matrix4 orthographic( float left, float right, float bottom, float top, float zNear, float zFar );++};+// Multiply a 4x4 matrix by a scalar+//+inline const Matrix4 operator *( float scalar, const Matrix4 & mat );++// Append (post-multiply) a scale transformation to a 4x4 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Matrix4 appendScale( const Matrix4 & mat, const Vector3 & scaleVec );++// Prepend (pre-multiply) a scale transformation to a 4x4 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Matrix4 prependScale( const Vector3 & scaleVec, const Matrix4 & mat );++// Multiply two 4x4 matrices per element+//+inline const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 );++// Compute the absolute value of a 4x4 matrix per element+//+inline const Matrix4 absPerElem( const Matrix4 & mat );++// Transpose of a 4x4 matrix+//+inline const Matrix4 transpose( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix+// NOTE:+// Result is unpredictable when the determinant of mat is equal to or near 0.+//+inline const Matrix4 inverse( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions. The result is unpredictable when the determinant of mat is equal to or near 0.+//+inline const Matrix4 affineInverse( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix with an orthogonal upper-left 3x3 submatrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.+//+inline const Matrix4 orthoInverse( const Matrix4 & mat );++// Determinant of a 4x4 matrix+//+inline float determinant( const Matrix4 & mat );++// Conditionally select between two 4x4 matrices+//+inline const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 4x4 matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Matrix4 & mat );++// Print a 4x4 matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Matrix4 & mat, const char * name );++#endif++// A 3x4 transformation matrix in array-of-structures format+//+class Transform3+{ private:+Vector3 mCol0;+Vector3 mCol1;+Vector3 mCol2;+Vector3 mCol3;++public:+// Default constructor; does no initialization+//+inline Transform3( ) { };++// Copy a 3x4 transformation matrix+//+inline Transform3( const Transform3 & tfrm );++// Construct a 3x4 transformation matrix containing the specified columns+//+inline Transform3( const Vector3 & col0, const Vector3 & col1, const Vector3 & col2, const Vector3 & col3 );++// Construct a 3x4 transformation matrix from a 3x3 matrix and a 3-D vector+//+inline Transform3( const Matrix3 & tfrm, const Vector3 & translateVec );++// Construct a 3x4 transformation matrix from a unit-length quaternion and a 3-D vector+//+inline Transform3( const Quat & unitQuat, const Vector3 & translateVec );++// Set all elements of a 3x4 transformation matrix to the same scalar value+//+explicit inline Transform3( float scalar );++// Assign one 3x4 transformation matrix to another+//+inline Transform3 & operator =( const Transform3 & tfrm );++// Set the upper-left 3x3 submatrix+//+inline Transform3 & setUpper3x3( const Matrix3 & mat3 );++// Get the upper-left 3x3 submatrix of a 3x4 transformation matrix+//+inline const Matrix3 getUpper3x3( ) const;++// Set translation component+//+inline Transform3 & setTranslation( const Vector3 & translateVec );++// Get the translation component of a 3x4 transformation matrix+//+inline const Vector3 getTranslation( ) const;++// Set column 0 of a 3x4 transformation matrix+//+inline Transform3 & setCol0( const Vector3 & col0 );++// Set column 1 of a 3x4 transformation matrix+//+inline Transform3 & setCol1( const Vector3 & col1 );++// Set column 2 of a 3x4 transformation matrix+//+inline Transform3 & setCol2( const Vector3 & col2 );++// Set column 3 of a 3x4 transformation matrix+//+inline Transform3 & setCol3( const Vector3 & col3 );++// Get column 0 of a 3x4 transformation matrix+//+inline const Vector3 getCol0( ) const;++// Get column 1 of a 3x4 transformation matrix+//+inline const Vector3 getCol1( ) const;++// Get column 2 of a 3x4 transformation matrix+//+inline const Vector3 getCol2( ) const;++// Get column 3 of a 3x4 transformation matrix+//+inline const Vector3 getCol3( ) const;++// Set the column of a 3x4 transformation matrix referred to by the specified index+//+inline Transform3 & setCol( int col, const Vector3 & vec );++// Set the row of a 3x4 transformation matrix referred to by the specified index+//+inline Transform3 & setRow( int row, const Vector4 & vec );++// Get the column of a 3x4 transformation matrix referred to by the specified index+//+inline const Vector3 getCol( int col ) const;++// Get the row of a 3x4 transformation matrix referred to by the specified index+//+inline const Vector4 getRow( int row ) const;++// Subscripting operator to set or get a column+//+inline Vector3 & operator []( int col );++// Subscripting operator to get a column+//+inline const Vector3 operator []( int col ) const;++// Set the element of a 3x4 transformation matrix referred to by column and row indices+//+inline Transform3 & setElem( int col, int row, float val );++// Get the element of a 3x4 transformation matrix referred to by column and row indices+//+inline float getElem( int col, int row ) const;++// Multiply a 3x4 transformation matrix by a 3-D vector+//+inline const Vector3 operator *( const Vector3 & vec ) const;++// Multiply a 3x4 transformation matrix by a 3-D point+//+inline const Point3 operator *( const Point3 & pnt ) const;++// Multiply two 3x4 transformation matrices+//+inline const Transform3 operator *( const Transform3 & tfrm ) const;++// Perform compound assignment and multiplication by a 3x4 transformation matrix+//+inline Transform3 & operator *=( const Transform3 & tfrm );++// Construct an identity 3x4 transformation matrix+//+static inline const Transform3 identity( );++// Construct a 3x4 transformation matrix to rotate around the x axis+//+static inline const Transform3 rotationX( float radians );++// Construct a 3x4 transformation matrix to rotate around the y axis+//+static inline const Transform3 rotationY( float radians );++// Construct a 3x4 transformation matrix to rotate around the z axis+//+static inline const Transform3 rotationZ( float radians );++// Construct a 3x4 transformation matrix to rotate around the x, y, and z axes+//+static inline const Transform3 rotationZYX( const Vector3 & radiansXYZ );++// Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector+//+static inline const Transform3 rotation( float radians, const Vector3 & unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static inline const Transform3 rotation( const Quat & unitQuat );++// Construct a 3x4 transformation matrix to perform scaling+//+static inline const Transform3 scale( const Vector3 & scaleVec );++// Construct a 3x4 transformation matrix to perform translation+//+static inline const Transform3 translation( const Vector3 & translateVec );++};+// Append (post-multiply) a scale transformation to a 3x4 transformation matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Transform3 appendScale( const Transform3 & tfrm, const Vector3 & scaleVec );++// Prepend (pre-multiply) a scale transformation to a 3x4 transformation matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+inline const Transform3 prependScale( const Vector3 & scaleVec, const Transform3 & tfrm );++// Multiply two 3x4 transformation matrices per element+//+inline const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 );++// Compute the absolute value of a 3x4 transformation matrix per element+//+inline const Transform3 absPerElem( const Transform3 & tfrm );++// Inverse of a 3x4 transformation matrix+// NOTE:+// Result is unpredictable when the determinant of the left 3x3 submatrix is equal to or near 0.+//+inline const Transform3 inverse( const Transform3 & tfrm );++// Compute the inverse of a 3x4 transformation matrix, expected to have an orthogonal upper-left 3x3 submatrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 3x4 transformation matrix meets the given restrictions.+//+inline const Transform3 orthoInverse( const Transform3 & tfrm );++// Conditionally select between two 3x4 transformation matrices+//+inline const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 3x4 transformation matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+inline void print( const Transform3 & tfrm );++// Print a 3x4 transformation matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+// inline void print( const Transform3 & tfrm, const char * name );  #endif
bullet/vectormath/sse/boolInVec.h view
@@ -1,247 +1,247 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _BOOLINVEC_H
-#define _BOOLINVEC_H
-
-#include <math.h>
-
-namespace Vectormath {
-
-class floatInVec;
-
-//--------------------------------------------------------------------------------------------------
-// boolInVec class
-//
-
-class boolInVec
-{
-    private:
-        __m128 mData;
-
-        inline boolInVec(__m128 vec);
-    public:
-        inline boolInVec() {}
-
-        // matches standard type conversions
-        //
-        inline boolInVec(const floatInVec &vec);
-
-        // explicit cast from bool
-        //
-        explicit inline boolInVec(bool scalar);
-
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-        // explicit cast to bool
-        // 
-        inline bool getAsBool() const;
-#else
-        // implicit cast to bool
-        // 
-        inline operator bool() const;
-#endif
-        
-        // get vector data
-        // bool value is splatted across all word slots of vector as 0 (false) or -1 (true)
-        //
-        inline __m128 get128() const;
-
-        // operators
-        //
-        inline const boolInVec operator ! () const;
-        inline boolInVec& operator = (const boolInVec &vec);
-        inline boolInVec& operator &= (const boolInVec &vec);
-        inline boolInVec& operator ^= (const boolInVec &vec);
-        inline boolInVec& operator |= (const boolInVec &vec);
-
-        // friend functions
-        //
-        friend inline const boolInVec operator == (const boolInVec &vec0, const boolInVec &vec1);
-        friend inline const boolInVec operator != (const boolInVec &vec0, const boolInVec &vec1);
-        friend inline const boolInVec operator < (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator <= (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator > (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator >= (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator == (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator != (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const boolInVec operator & (const boolInVec &vec0, const boolInVec &vec1);
-        friend inline const boolInVec operator ^ (const boolInVec &vec0, const boolInVec &vec1);
-        friend inline const boolInVec operator | (const boolInVec &vec0, const boolInVec &vec1);
-        friend inline const boolInVec select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1);
-};
-
-//--------------------------------------------------------------------------------------------------
-// boolInVec functions
-//
-
-// operators
-//
-inline const boolInVec operator == (const boolInVec &vec0, const boolInVec &vec1);
-inline const boolInVec operator != (const boolInVec &vec0, const boolInVec &vec1);
-inline const boolInVec operator & (const boolInVec &vec0, const boolInVec &vec1);
-inline const boolInVec operator ^ (const boolInVec &vec0, const boolInVec &vec1);
-inline const boolInVec operator | (const boolInVec &vec0, const boolInVec &vec1);
-
-// select between vec0 and vec1 using boolInVec.
-// false selects vec0, true selects vec1
-//
-inline const boolInVec select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1);
-
-} // namespace Vectormath
-
-//--------------------------------------------------------------------------------------------------
-// boolInVec implementation
-//
-
-#include "floatInVec.h"
-
-namespace Vectormath {
-
-inline
-boolInVec::boolInVec(__m128 vec)
-{
-    mData = vec;
-}
-
-inline
-boolInVec::boolInVec(const floatInVec &vec)
-{
-    *this = (vec != floatInVec(0.0f));
-}
-
-inline
-boolInVec::boolInVec(bool scalar)
-{
-    unsigned int mask = -(int)scalar;
-	mData = _mm_set1_ps(*(float *)&mask); // TODO: Union
-}
-
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-inline
-bool
-boolInVec::getAsBool() const
-#else
-inline
-boolInVec::operator bool() const
-#endif
-{
-	return *(bool *)&mData;
-}
-
-inline
-__m128
-boolInVec::get128() const
-{
-    return mData;
-}
-
-inline
-const boolInVec
-boolInVec::operator ! () const
-{
-    return boolInVec(_mm_andnot_ps(mData, _mm_cmpneq_ps(_mm_setzero_ps(),_mm_setzero_ps())));
-}
-
-inline
-boolInVec&
-boolInVec::operator = (const boolInVec &vec)
-{
-    mData = vec.mData;
-    return *this;
-}
-
-inline
-boolInVec&
-boolInVec::operator &= (const boolInVec &vec)
-{
-    *this = *this & vec;
-    return *this;
-}
-
-inline
-boolInVec&
-boolInVec::operator ^= (const boolInVec &vec)
-{
-    *this = *this ^ vec;
-    return *this;
-}
-
-inline
-boolInVec&
-boolInVec::operator |= (const boolInVec &vec)
-{
-    *this = *this | vec;
-    return *this;
-}
-
-inline
-const boolInVec
-operator == (const boolInVec &vec0, const boolInVec &vec1)
-{
-	return boolInVec(_mm_cmpeq_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator != (const boolInVec &vec0, const boolInVec &vec1)
-{
-	return boolInVec(_mm_cmpneq_ps(vec0.get128(), vec1.get128()));
-}
-    
-inline
-const boolInVec
-operator & (const boolInVec &vec0, const boolInVec &vec1)
-{
-	return boolInVec(_mm_and_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator | (const boolInVec &vec0, const boolInVec &vec1)
-{
-	return boolInVec(_mm_or_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator ^ (const boolInVec &vec0, const boolInVec &vec1)
-{
-	return boolInVec(_mm_xor_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1)
-{
-	return boolInVec(vec_sel(vec0.get128(), vec1.get128(), select_vec1.get128()));
-}
- 
-} // namespace Vectormath
-
-#endif // boolInVec_h
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/++#ifndef _BOOLINVEC_H+#define _BOOLINVEC_H++#include <math.h>++namespace Vectormath {++class floatInVec;++//--------------------------------------------------------------------------------------------------+// boolInVec class+//++class boolInVec+{ private:+private:+__m128 mData;++inline boolInVec(__m128 vec);+public:+inline boolInVec() {}++// matches standard type conversions+//+inline boolInVec(const floatInVec &vec);++// explicit cast from bool+//+explicit inline boolInVec(bool scalar);++#ifdef _VECTORMATH_NO_SCALAR_CAST+// explicit cast to bool+//+inline bool getAsBool() const;+#else+// implicit cast to bool+//+inline operator bool() const;+#endif++// get vector data+// bool value is splatted across all word slots of vector as 0 (false) or -1 (true)+//+inline __m128 get128() const;++// operators+//+inline const boolInVec operator ! () const;+inline boolInVec& operator = (const boolInVec &vec);+inline boolInVec& operator &= (const boolInVec &vec);+inline boolInVec& operator ^= (const boolInVec &vec);+inline boolInVec& operator |= (const boolInVec &vec);++// friend functions+//+friend inline const boolInVec operator == (const boolInVec &vec0, const boolInVec &vec1);+friend inline const boolInVec operator != (const boolInVec &vec0, const boolInVec &vec1);+friend inline const boolInVec operator < (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator <= (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator > (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator >= (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator == (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator != (const floatInVec &vec0, const floatInVec &vec1);+friend inline const boolInVec operator & (const boolInVec &vec0, const boolInVec &vec1);+friend inline const boolInVec operator ^ (const boolInVec &vec0, const boolInVec &vec1);+friend inline const boolInVec operator | (const boolInVec &vec0, const boolInVec &vec1);+friend inline const boolInVec select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1);+};++//--------------------------------------------------------------------------------------------------+// boolInVec functions+//++// operators+//+inline const boolInVec operator == (const boolInVec &vec0, const boolInVec &vec1);+inline const boolInVec operator != (const boolInVec &vec0, const boolInVec &vec1);+inline const boolInVec operator & (const boolInVec &vec0, const boolInVec &vec1);+inline const boolInVec operator ^ (const boolInVec &vec0, const boolInVec &vec1);+inline const boolInVec operator | (const boolInVec &vec0, const boolInVec &vec1);++// select between vec0 and vec1 using boolInVec.+// false selects vec0, true selects vec1+//+inline const boolInVec select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1);++} // namespace Vectormath++//--------------------------------------------------------------------------------------------------+// boolInVec implementation+//++#include "floatInVec.h"++namespace Vectormath {++inline+boolInVec::boolInVec(__m128 vec)+{+mData = vec;+}++inline+boolInVec::boolInVec(const floatInVec &vec)+{+*this = (vec != floatInVec(0.0f));+}++inline+boolInVec::boolInVec(bool scalar)+{+unsigned int mask = -(int)scalar;+mData = _mm_set1_ps(*(float *)&mask); // TODO: Union+}++#ifdef _VECTORMATH_NO_SCALAR_CAST+inline+bool+boolInVec::getAsBool() const+#else+inline+boolInVec::operator bool() const+#endif+{+return *(bool *)&mData;+}++inline+__m128+boolInVec::get128() const+{+return mData;+}++inline+const boolInVec+boolInVec::operator ! () const+{+return boolInVec(_mm_andnot_ps(mData, _mm_cmpneq_ps(_mm_setzero_ps(),_mm_setzero_ps())));+}++inline+boolInVec&+boolInVec::operator = (const boolInVec &vec)+{+mData = vec.mData;+return *this;+}++inline+boolInVec&+boolInVec::operator &= (const boolInVec &vec)+{+*this = *this & vec;+return *this;+}++inline+boolInVec&+boolInVec::operator ^= (const boolInVec &vec)+{+*this = *this ^ vec;+return *this;+}++inline+boolInVec&+boolInVec::operator |= (const boolInVec &vec)+{+*this = *this | vec;+return *this;+}++inline+const boolInVec+operator == (const boolInVec &vec0, const boolInVec &vec1)+{+return boolInVec(_mm_cmpeq_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator != (const boolInVec &vec0, const boolInVec &vec1)+{+return boolInVec(_mm_cmpneq_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator & (const boolInVec &vec0, const boolInVec &vec1)+{+return boolInVec(_mm_and_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator | (const boolInVec &vec0, const boolInVec &vec1)+{+return boolInVec(_mm_or_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator ^ (const boolInVec &vec0, const boolInVec &vec1)+{+return boolInVec(_mm_xor_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+select(const boolInVec &vec0, const boolInVec &vec1, const boolInVec &select_vec1)+{+return boolInVec(vec_sel(vec0.get128(), vec1.get128(), select_vec1.get128()));+}++} // namespace Vectormath++#endif // boolInVec_h
bullet/vectormath/sse/floatInVec.h view
@@ -1,340 +1,340 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _FLOATINVEC_H
-#define _FLOATINVEC_H
-
-#include <math.h>
-#include <xmmintrin.h>
-
-namespace Vectormath {
-
-class boolInVec;
-
-//--------------------------------------------------------------------------------------------------
-// floatInVec class
-//
-
-class floatInVec
-{
-    private:
-        __m128 mData;
-
-    public:
-        inline floatInVec(__m128 vec);
-
-        inline floatInVec() {}
-
-        // matches standard type conversions
-        //
-        inline floatInVec(const boolInVec &vec);
-
-        // construct from a slot of __m128
-        //
-        inline floatInVec(__m128 vec, int slot);
-        
-        // explicit cast from float
-        //
-        explicit inline floatInVec(float scalar);
-
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-        // explicit cast to float
-        // 
-        inline float getAsFloat() const;
-#else
-        // implicit cast to float
-        //
-        inline operator float() const;
-#endif
-
-        // get vector data
-        // float value is splatted across all word slots of vector
-        //
-        inline __m128 get128() const;
-
-        // operators
-        // 
-        inline const floatInVec operator ++ (int);
-        inline const floatInVec operator -- (int);
-        inline floatInVec& operator ++ ();
-        inline floatInVec& operator -- ();
-        inline const floatInVec operator - () const;
-        inline floatInVec& operator = (const floatInVec &vec);
-        inline floatInVec& operator *= (const floatInVec &vec);
-        inline floatInVec& operator /= (const floatInVec &vec);
-        inline floatInVec& operator += (const floatInVec &vec);
-        inline floatInVec& operator -= (const floatInVec &vec);
-
-        // friend functions
-        //
-        friend inline const floatInVec operator * (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const floatInVec operator / (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const floatInVec operator + (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const floatInVec operator - (const floatInVec &vec0, const floatInVec &vec1);
-        friend inline const floatInVec select(const floatInVec &vec0, const floatInVec &vec1, boolInVec select_vec1);
-};
-
-//--------------------------------------------------------------------------------------------------
-// floatInVec functions
-//
-
-// operators
-// 
-inline const floatInVec operator * (const floatInVec &vec0, const floatInVec &vec1);
-inline const floatInVec operator / (const floatInVec &vec0, const floatInVec &vec1);
-inline const floatInVec operator + (const floatInVec &vec0, const floatInVec &vec1);
-inline const floatInVec operator - (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator < (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator <= (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator > (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator >= (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator == (const floatInVec &vec0, const floatInVec &vec1);
-inline const boolInVec operator != (const floatInVec &vec0, const floatInVec &vec1);
-
-// select between vec0 and vec1 using boolInVec.
-// false selects vec0, true selects vec1
-//
-inline const floatInVec select(const floatInVec &vec0, const floatInVec &vec1, const boolInVec &select_vec1);
-
-} // namespace Vectormath
-
-//--------------------------------------------------------------------------------------------------
-// floatInVec implementation
-//
-
-#include "boolInVec.h"
-
-namespace Vectormath {
-
-inline
-floatInVec::floatInVec(__m128 vec)
-{
-    mData = vec;
-}
-
-inline
-floatInVec::floatInVec(const boolInVec &vec)
-{
-	mData = vec_sel(_mm_setzero_ps(), _mm_set1_ps(1.0f), vec.get128());
-}
-
-inline
-floatInVec::floatInVec(__m128 vec, int slot)
-{
-	SSEFloat v;
-	v.m128 = vec;
-	mData = _mm_set1_ps(v.f[slot]);
-}
-
-inline
-floatInVec::floatInVec(float scalar)
-{
-	mData = _mm_set1_ps(scalar);
-}
-
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-inline
-float
-floatInVec::getAsFloat() const
-#else
-inline
-floatInVec::operator float() const
-#endif
-{
-    return *((float *)&mData);
-}
-
-inline
-__m128
-floatInVec::get128() const
-{
-    return mData;
-}
-
-inline
-const floatInVec
-floatInVec::operator ++ (int)
-{
-    __m128 olddata = mData;
-    operator ++();
-    return floatInVec(olddata);
-}
-
-inline
-const floatInVec
-floatInVec::operator -- (int)
-{
-    __m128 olddata = mData;
-    operator --();
-    return floatInVec(olddata);
-}
-
-inline
-floatInVec&
-floatInVec::operator ++ ()
-{
-    *this += floatInVec(_mm_set1_ps(1.0f));
-    return *this;
-}
-
-inline
-floatInVec&
-floatInVec::operator -- ()
-{
-    *this -= floatInVec(_mm_set1_ps(1.0f));
-    return *this;
-}
-
-inline
-const floatInVec
-floatInVec::operator - () const
-{
-    return floatInVec(_mm_sub_ps(_mm_setzero_ps(), mData));
-}
-
-inline
-floatInVec&
-floatInVec::operator = (const floatInVec &vec)
-{
-    mData = vec.mData;
-    return *this;
-}
-
-inline
-floatInVec&
-floatInVec::operator *= (const floatInVec &vec)
-{
-    *this = *this * vec;
-    return *this;
-}
-
-inline
-floatInVec&
-floatInVec::operator /= (const floatInVec &vec)
-{
-    *this = *this / vec;
-    return *this;
-}
-
-inline
-floatInVec&
-floatInVec::operator += (const floatInVec &vec)
-{
-    *this = *this + vec;
-    return *this;
-}
-
-inline
-floatInVec&
-floatInVec::operator -= (const floatInVec &vec)
-{
-    *this = *this - vec;
-    return *this;
-}
-
-inline
-const floatInVec
-operator * (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return floatInVec(_mm_mul_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const floatInVec
-operator / (const floatInVec &num, const floatInVec &den)
-{
-    return floatInVec(_mm_div_ps(num.get128(), den.get128()));
-}
-
-inline
-const floatInVec
-operator + (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return floatInVec(_mm_add_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const floatInVec
-operator - (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return floatInVec(_mm_sub_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator < (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpgt_ps(vec1.get128(), vec0.get128()));
-}
-
-inline
-const boolInVec
-operator <= (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpge_ps(vec1.get128(), vec0.get128()));
-}
-
-inline
-const boolInVec
-operator > (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpgt_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator >= (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpge_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator == (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpeq_ps(vec0.get128(), vec1.get128()));
-}
-
-inline
-const boolInVec
-operator != (const floatInVec &vec0, const floatInVec &vec1)
-{
-    return boolInVec(_mm_cmpneq_ps(vec0.get128(), vec1.get128()));
-}
-    
-inline
-const floatInVec
-select(const floatInVec &vec0, const floatInVec &vec1, const boolInVec &select_vec1)
-{
-    return floatInVec(vec_sel(vec0.get128(), vec1.get128(), select_vec1.get128()));
-}
-
-} // namespace Vectormath
-
-#endif // floatInVec_h
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/++#ifndef _FLOATINVEC_H+#define _FLOATINVEC_H++#include <math.h>+#include <xmmintrin.h>++namespace Vectormath {++class boolInVec;++//--------------------------------------------------------------------------------------------------+// floatInVec class+//++class floatInVec+{ private:+private:+__m128 mData;++public:+inline floatInVec(__m128 vec);++inline floatInVec() {}++// matches standard type conversions+//+inline floatInVec(const boolInVec &vec);++// construct from a slot of __m128+//+inline floatInVec(__m128 vec, int slot);++// explicit cast from float+//+explicit inline floatInVec(float scalar);++#ifdef _VECTORMATH_NO_SCALAR_CAST+// explicit cast to float+//+inline float getAsFloat() const;+#else+// implicit cast to float+//+inline operator float() const;+#endif++// get vector data+// float value is splatted across all word slots of vector+//+inline __m128 get128() const;++// operators+//+inline const floatInVec operator ++ (int);+inline const floatInVec operator -- (int);+inline floatInVec& operator ++ ();+inline floatInVec& operator -- ();+inline const floatInVec operator - () const;+inline floatInVec& operator = (const floatInVec &vec);+inline floatInVec& operator *= (const floatInVec &vec);+inline floatInVec& operator /= (const floatInVec &vec);+inline floatInVec& operator += (const floatInVec &vec);+inline floatInVec& operator -= (const floatInVec &vec);++// friend functions+//+friend inline const floatInVec operator * (const floatInVec &vec0, const floatInVec &vec1);+friend inline const floatInVec operator / (const floatInVec &vec0, const floatInVec &vec1);+friend inline const floatInVec operator + (const floatInVec &vec0, const floatInVec &vec1);+friend inline const floatInVec operator - (const floatInVec &vec0, const floatInVec &vec1);+friend inline const floatInVec select(const floatInVec &vec0, const floatInVec &vec1, boolInVec select_vec1);+};++//--------------------------------------------------------------------------------------------------+// floatInVec functions+//++// operators+//+inline const floatInVec operator * (const floatInVec &vec0, const floatInVec &vec1);+inline const floatInVec operator / (const floatInVec &vec0, const floatInVec &vec1);+inline const floatInVec operator + (const floatInVec &vec0, const floatInVec &vec1);+inline const floatInVec operator - (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator < (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator <= (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator > (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator >= (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator == (const floatInVec &vec0, const floatInVec &vec1);+inline const boolInVec operator != (const floatInVec &vec0, const floatInVec &vec1);++// select between vec0 and vec1 using boolInVec.+// false selects vec0, true selects vec1+//+inline const floatInVec select(const floatInVec &vec0, const floatInVec &vec1, const boolInVec &select_vec1);++} // namespace Vectormath++//--------------------------------------------------------------------------------------------------+// floatInVec implementation+//++#include "boolInVec.h"++namespace Vectormath {++inline+floatInVec::floatInVec(__m128 vec)+{+mData = vec;+}++inline+floatInVec::floatInVec(const boolInVec &vec)+{+mData = vec_sel(_mm_setzero_ps(), _mm_set1_ps(1.0f), vec.get128());+}++inline+floatInVec::floatInVec(__m128 vec, int slot)+{+SSEFloat v;+v.m128 = vec;+mData = _mm_set1_ps(v.f[slot]);+}++inline+floatInVec::floatInVec(float scalar)+{+mData = _mm_set1_ps(scalar);+}++#ifdef _VECTORMATH_NO_SCALAR_CAST+inline+float+floatInVec::getAsFloat() const+#else+inline+floatInVec::operator float() const+#endif+{+return *((float *)&mData);+}++inline+__m128+floatInVec::get128() const+{+return mData;+}++inline+const floatInVec+floatInVec::operator ++ (int)+{+__m128 olddata = mData;+operator ++();+return floatInVec(olddata);+}++inline+const floatInVec+floatInVec::operator -- (int)+{+__m128 olddata = mData;+operator --();+return floatInVec(olddata);+}++inline+floatInVec&+floatInVec::operator ++ ()+{+*this += floatInVec(_mm_set1_ps(1.0f));+return *this;+}++inline+floatInVec&+floatInVec::operator -- ()+{+*this -= floatInVec(_mm_set1_ps(1.0f));+return *this;+}++inline+const floatInVec+floatInVec::operator - () const+{+return floatInVec(_mm_sub_ps(_mm_setzero_ps(), mData));+}++inline+floatInVec&+floatInVec::operator = (const floatInVec &vec)+{+mData = vec.mData;+return *this;+}++inline+floatInVec&+floatInVec::operator *= (const floatInVec &vec)+{+*this = *this * vec;+return *this;+}++inline+floatInVec&+floatInVec::operator /= (const floatInVec &vec)+{+*this = *this / vec;+return *this;+}++inline+floatInVec&+floatInVec::operator += (const floatInVec &vec)+{+*this = *this + vec;+return *this;+}++inline+floatInVec&+floatInVec::operator -= (const floatInVec &vec)+{+*this = *this - vec;+return *this;+}++inline+const floatInVec+operator * (const floatInVec &vec0, const floatInVec &vec1)+{+return floatInVec(_mm_mul_ps(vec0.get128(), vec1.get128()));+}++inline+const floatInVec+operator / (const floatInVec &num, const floatInVec &den)+{+return floatInVec(_mm_div_ps(num.get128(), den.get128()));+}++inline+const floatInVec+operator + (const floatInVec &vec0, const floatInVec &vec1)+{+return floatInVec(_mm_add_ps(vec0.get128(), vec1.get128()));+}++inline+const floatInVec+operator - (const floatInVec &vec0, const floatInVec &vec1)+{+return floatInVec(_mm_sub_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator < (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpgt_ps(vec1.get128(), vec0.get128()));+}++inline+const boolInVec+operator <= (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpge_ps(vec1.get128(), vec0.get128()));+}++inline+const boolInVec+operator > (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpgt_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator >= (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpge_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator == (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpeq_ps(vec0.get128(), vec1.get128()));+}++inline+const boolInVec+operator != (const floatInVec &vec0, const floatInVec &vec1)+{+return boolInVec(_mm_cmpneq_ps(vec0.get128(), vec1.get128()));+}++inline+const floatInVec+select(const floatInVec &vec0, const floatInVec &vec1, const boolInVec &select_vec1)+{+return floatInVec(vec_sel(vec0.get128(), vec1.get128(), select_vec1.get128()));+}++} // namespace Vectormath++#endif // floatInVec_h
bullet/vectormath/sse/mat_aos.h view
@@ -1,2190 +1,2190 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef _VECTORMATH_MAT_AOS_CPP_H
-#define _VECTORMATH_MAT_AOS_CPP_H
-
-namespace Vectormath {
-namespace Aos {
-
-//-----------------------------------------------------------------------------
-// Constants
-// for shuffles, words are labeled [x,y,z,w] [a,b,c,d]
-
-#define _VECTORMATH_PERM_ZBWX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_B, _VECTORMATH_PERM_W, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_XCYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_C, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_XYAB ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B })
-#define _VECTORMATH_PERM_ZWCD ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_W, _VECTORMATH_PERM_C, _VECTORMATH_PERM_D })
-#define _VECTORMATH_PERM_XZBX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_B, _VECTORMATH_PERM_X })     
-#define _VECTORMATH_PERM_CXXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_YAXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_XAZC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_C })
-#define _VECTORMATH_PERM_YXWZ ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X, _VECTORMATH_PERM_W, _VECTORMATH_PERM_Z })
-#define _VECTORMATH_PERM_YBWD ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_B, _VECTORMATH_PERM_W, _VECTORMATH_PERM_D })
-#define _VECTORMATH_PERM_XYCX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_YCXY ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y })
-#define _VECTORMATH_PERM_CXYC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C })
-#define _VECTORMATH_PERM_ZAYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_BZXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_B, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PERM_XZYA ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A })
-#define _VECTORMATH_PERM_ZXXB ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_B })
-#define _VECTORMATH_PERM_YXXC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_C })
-#define _VECTORMATH_PERM_BBYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_B, _VECTORMATH_PERM_B, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })
-#define _VECTORMATH_PI_OVER_2 1.570796327f
-
-//-----------------------------------------------------------------------------
-// Definitions
-
-VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Matrix3 & mat )
-{
-    mCol0 = mat.mCol0;
-    mCol1 = mat.mCol1;
-    mCol2 = mat.mCol2;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3::Matrix3( float scalar )
-{
-    mCol0 = Vector3( scalar );
-    mCol1 = Vector3( scalar );
-    mCol2 = Vector3( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const floatInVec &scalar )
-{
-    mCol0 = Vector3( scalar );
-    mCol1 = Vector3( scalar );
-    mCol2 = Vector3( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Quat &unitQuat )
-{
-    __m128 xyzw_2, wwww, yzxw, zxyw, yzxw_2, zxyw_2;
-    __m128 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;
-	VM_ATTRIBUTE_ALIGN16 unsigned int sx[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int sz[4] = {0, 0, 0xffffffff, 0};
-	__m128 select_x = _mm_load_ps((float *)sx);
-	__m128 select_z = _mm_load_ps((float *)sz);
-
-    xyzw_2 = _mm_add_ps( unitQuat.get128(), unitQuat.get128() );
-    wwww = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,3,3,3) );
-	yzxw = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,0,2,1) );
-	zxyw = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,1,0,2) );
-    yzxw_2 = _mm_shuffle_ps( xyzw_2, xyzw_2, _MM_SHUFFLE(3,0,2,1) );
-    zxyw_2 = _mm_shuffle_ps( xyzw_2, xyzw_2, _MM_SHUFFLE(3,1,0,2) );
-
-    tmp0 = _mm_mul_ps( yzxw_2, wwww );									// tmp0 = 2yw, 2zw, 2xw, 2w2
-	tmp1 = _mm_sub_ps( _mm_set1_ps(1.0f), _mm_mul_ps(yzxw, yzxw_2) );	// tmp1 = 1 - 2y2, 1 - 2z2, 1 - 2x2, 1 - 2w2
-    tmp2 = _mm_mul_ps( yzxw, xyzw_2 );									// tmp2 = 2xy, 2yz, 2xz, 2w2
-    tmp0 = _mm_add_ps( _mm_mul_ps(zxyw, xyzw_2), tmp0 );				// tmp0 = 2yw + 2zx, 2zw + 2xy, 2xw + 2yz, 2w2 + 2w2
-    tmp1 = _mm_sub_ps( tmp1, _mm_mul_ps(zxyw, zxyw_2) );				// tmp1 = 1 - 2y2 - 2z2, 1 - 2z2 - 2x2, 1 - 2x2 - 2y2, 1 - 2w2 - 2w2
-    tmp2 = _mm_sub_ps( tmp2, _mm_mul_ps(zxyw_2, wwww) );				// tmp2 = 2xy - 2zw, 2yz - 2xw, 2xz - 2yw, 2w2 -2w2
-
-    tmp3 = vec_sel( tmp0, tmp1, select_x );
-    tmp4 = vec_sel( tmp1, tmp2, select_x );
-    tmp5 = vec_sel( tmp2, tmp0, select_x );
-    mCol0 = Vector3( vec_sel( tmp3, tmp2, select_z ) );
-    mCol1 = Vector3( vec_sel( tmp4, tmp0, select_z ) );
-    mCol2 = Vector3( vec_sel( tmp5, tmp1, select_z ) );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Vector3 &_col0, const Vector3 &_col1, const Vector3 &_col2 )
-{
-    mCol0 = _col0;
-    mCol1 = _col1;
-    mCol2 = _col2;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol0( const Vector3 &_col0 )
-{
-    mCol0 = _col0;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol1( const Vector3 &_col1 )
-{
-    mCol1 = _col1;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol2( const Vector3 &_col2 )
-{
-    mCol2 = _col2;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol( int col, const Vector3 &vec )
-{
-    *(&mCol0 + col) = vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setRow( int row, const Vector3 &vec )
-{
-    mCol0.setElem( row, vec.getElem( 0 ) );
-    mCol1.setElem( row, vec.getElem( 1 ) );
-    mCol2.setElem( row, vec.getElem( 2 ) );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setElem( int col, int row, float val )
-{
-    (*this)[col].setElem(row, val);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setElem( int col, int row, const floatInVec &val )
-{
-    Vector3 tmpV3_0;
-    tmpV3_0 = this->getCol( col );
-    tmpV3_0.setElem( row, val );
-    this->setCol( col, tmpV3_0 );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Matrix3::getElem( int col, int row ) const
-{
-    return this->getCol( col ).getElem( row );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol0( ) const
-{
-    return mCol0;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol1( ) const
-{
-    return mCol1;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol2( ) const
-{
-    return mCol2;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getRow( int row ) const
-{
-    return Vector3( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Matrix3::operator []( int col )
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::operator []( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator =( const Matrix3 & mat )
-{
-    mCol0 = mat.mCol0;
-    mCol1 = mat.mCol1;
-    mCol2 = mat.mCol2;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 transpose( const Matrix3 & mat )
-{
-    __m128 tmp0, tmp1, res0, res1, res2;
-    tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );
-    tmp1 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );
-    res0 = vec_mergeh( tmp0, mat.getCol1().get128() );
-    //res1 = vec_perm( tmp0, mat.getCol1().get128(), _VECTORMATH_PERM_ZBWX );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	res1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));
-	res1 = vec_sel(res1, mat.getCol1().get128(), select_y);
-    //res2 = vec_perm( tmp1, mat.getCol1().get128(), _VECTORMATH_PERM_XCYX );
-	res2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));
-	res2 = vec_sel(res2, vec_splat(mat.getCol1().get128(), 2), select_y);
-    return Matrix3(
-        Vector3( res0 ),
-        Vector3( res1 ),
-        Vector3( res2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 inverse( const Matrix3 & mat )
-{
-    __m128 tmp0, tmp1, tmp2, tmp3, tmp4, dot, invdet, inv0, inv1, inv2;
-    tmp2 = _vmathVfCross( mat.getCol0().get128(), mat.getCol1().get128() );
-    tmp0 = _vmathVfCross( mat.getCol1().get128(), mat.getCol2().get128() );
-    tmp1 = _vmathVfCross( mat.getCol2().get128(), mat.getCol0().get128() );
-    dot = _vmathVfDot3( tmp2, mat.getCol2().get128() );
-    dot = vec_splat( dot, 0 );
-    invdet = recipf4( dot );
-    tmp3 = vec_mergeh( tmp0, tmp2 );
-    tmp4 = vec_mergel( tmp0, tmp2 );
-    inv0 = vec_mergeh( tmp3, tmp1 );
-    //inv1 = vec_perm( tmp3, tmp1, _VECTORMATH_PERM_ZBWX );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	inv1 = _mm_shuffle_ps( tmp3, tmp3, _MM_SHUFFLE(0,3,2,2));
-	inv1 = vec_sel(inv1, tmp1, select_y);
-    //inv2 = vec_perm( tmp4, tmp1, _VECTORMATH_PERM_XCYX );
-	inv2 = _mm_shuffle_ps( tmp4, tmp4, _MM_SHUFFLE(0,1,1,0));
-	inv2 = vec_sel(inv2, vec_splat(tmp1, 2), select_y);
-    inv0 = vec_mul( inv0, invdet );
-    inv1 = vec_mul( inv1, invdet );
-	inv2 = vec_mul( inv2, invdet );
-    return Matrix3(
-        Vector3( inv0 ),
-        Vector3( inv1 ),
-        Vector3( inv2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix3 & mat )
-{
-    return dot( mat.getCol2(), cross( mat.getCol0(), mat.getCol1() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator +( const Matrix3 & mat ) const
-{
-    return Matrix3(
-        ( mCol0 + mat.mCol0 ),
-        ( mCol1 + mat.mCol1 ),
-        ( mCol2 + mat.mCol2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator -( const Matrix3 & mat ) const
-{
-    return Matrix3(
-        ( mCol0 - mat.mCol0 ),
-        ( mCol1 - mat.mCol1 ),
-        ( mCol2 - mat.mCol2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator +=( const Matrix3 & mat )
-{
-    *this = *this + mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator -=( const Matrix3 & mat )
-{
-    *this = *this - mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator -( ) const
-{
-    return Matrix3(
-        ( -mCol0 ),
-        ( -mCol1 ),
-        ( -mCol2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 absPerElem( const Matrix3 & mat )
-{
-    return Matrix3(
-        absPerElem( mat.getCol0() ),
-        absPerElem( mat.getCol1() ),
-        absPerElem( mat.getCol2() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( float scalar ) const
-{
-    return *this * floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( const floatInVec &scalar ) const
-{
-    return Matrix3(
-        ( mCol0 * scalar ),
-        ( mCol1 * scalar ),
-        ( mCol2 * scalar )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( float scalar )
-{
-    return *this *= floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( const floatInVec &scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar, const Matrix3 & mat )
-{
-    return floatInVec(scalar) * mat;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar, const Matrix3 & mat )
-{
-    return mat * scalar;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix3::operator *( const Vector3 &vec ) const
-{
-    __m128 res;
-    __m128 xxxx, yyyy, zzzz;
-    xxxx = vec_splat( vec.get128(), 0 );
-    yyyy = vec_splat( vec.get128(), 1 );
-    zzzz = vec_splat( vec.get128(), 2 );
-    res = vec_mul( mCol0.get128(), xxxx );
-    res = vec_madd( mCol1.get128(), yyyy, res );
-    res = vec_madd( mCol2.get128(), zzzz, res );
-    return Vector3( res );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( const Matrix3 & mat ) const
-{
-    return Matrix3(
-        ( *this * mat.mCol0 ),
-        ( *this * mat.mCol1 ),
-        ( *this * mat.mCol2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( const Matrix3 & mat )
-{
-    *this = *this * mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 )
-{
-    return Matrix3(
-        mulPerElem( mat0.getCol0(), mat1.getCol0() ),
-        mulPerElem( mat0.getCol1(), mat1.getCol1() ),
-        mulPerElem( mat0.getCol2(), mat1.getCol2() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::identity( )
-{
-    return Matrix3(
-        Vector3::xAxis( ),
-        Vector3::yAxis( ),
-        Vector3::zAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationX( float radians )
-{
-    return rotationX( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationX( const floatInVec &radians )
-{
-    __m128 s, c, res1, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res1 = vec_sel( zero, c, select_y );
-    res1 = vec_sel( res1, s, select_z );
-    res2 = vec_sel( zero, negatef4(s), select_y );
-    res2 = vec_sel( res2, c, select_z );
-    return Matrix3(
-        Vector3::xAxis( ),
-        Vector3( res1 ),
-        Vector3( res2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationY( float radians )
-{
-    return rotationY( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationY( const floatInVec &radians )
-{
-    __m128 s, c, res0, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, negatef4(s), select_z );
-    res2 = vec_sel( zero, s, select_x );
-    res2 = vec_sel( res2, c, select_z );
-    return Matrix3(
-        Vector3( res0 ),
-        Vector3::yAxis( ),
-        Vector3( res2 )
-	);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZ( float radians )
-{
-    return rotationZ( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZ( const floatInVec &radians )
-{
-    __m128 s, c, res0, res1;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, s, select_y );
-    res1 = vec_sel( zero, negatef4(s), select_x );
-    res1 = vec_sel( res1, c, select_y );
-    return Matrix3(
-        Vector3( res0 ),
-        Vector3( res1 ),
-        Vector3::zAxis( )
-	);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZYX( const Vector3 &radiansXYZ )
-{
-    __m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;
-    angles = Vector4( radiansXYZ, 0.0f ).get128();
-    sincosf4( angles, &s, &c );
-    negS = negatef4( s );
-    Z0 = vec_mergel( c, s );
-    Z1 = vec_mergel( negS, c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};
-    Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );
-	Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );
-	Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );
-    X0 = vec_splat( s, 0 );
-    X1 = vec_splat( c, 0 );
-    tmp = vec_mul( Z0, Y1 );
-    return Matrix3(
-        Vector3( vec_mul( Z0, Y0 ) ),
-        Vector3( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),
-        Vector3( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( float radians, const Vector3 &unitVec )
-{
-    return rotation( floatInVec(radians), unitVec );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( const floatInVec &radians, const Vector3 &unitVec )
-{
-    __m128 axis, s, c, oneMinusC, axisS, negAxisS, xxxx, yyyy, zzzz, tmp0, tmp1, tmp2;
-    axis = unitVec.get128();
-    sincosf4( radians.get128(), &s, &c );
-    xxxx = vec_splat( axis, 0 );
-    yyyy = vec_splat( axis, 1 );
-    zzzz = vec_splat( axis, 2 );
-    oneMinusC = vec_sub( _mm_set1_ps(1.0f), c );
-    axisS = vec_mul( axis, s );
-    negAxisS = negatef4( axisS );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    //tmp0 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_XZBX );
-	tmp0 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,2,0) );
-	tmp0 = vec_sel(tmp0, vec_splat(negAxisS, 1), select_z);
-    //tmp1 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_CXXX );
-	tmp1 = vec_sel( vec_splat(axisS, 0), vec_splat(negAxisS, 2), select_x );
-    //tmp2 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_YAXX );
-	tmp2 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,0,1) );
-	tmp2 = vec_sel(tmp2, vec_splat(negAxisS, 0), select_y);
-    tmp0 = vec_sel( tmp0, c, select_x );
-    tmp1 = vec_sel( tmp1, c, select_y );
-    tmp2 = vec_sel( tmp2, c, select_z );
-    return Matrix3(
-        Vector3( vec_madd( vec_mul( axis, xxxx ), oneMinusC, tmp0 ) ),
-        Vector3( vec_madd( vec_mul( axis, yyyy ), oneMinusC, tmp1 ) ),
-        Vector3( vec_madd( vec_mul( axis, zzzz ), oneMinusC, tmp2 ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( const Quat &unitQuat )
-{
-    return Matrix3( unitQuat );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::scale( const Vector3 &scaleVec )
-{
-    __m128 zero = _mm_setzero_ps();
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    return Matrix3(
-        Vector3( vec_sel( zero, scaleVec.get128(), select_x ) ),
-        Vector3( vec_sel( zero, scaleVec.get128(), select_y ) ),
-        Vector3( vec_sel( zero, scaleVec.get128(), select_z ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 appendScale( const Matrix3 & mat, const Vector3 &scaleVec )
-{
-    return Matrix3(
-        ( mat.getCol0() * scaleVec.getX( ) ),
-        ( mat.getCol1() * scaleVec.getY( ) ),
-        ( mat.getCol2() * scaleVec.getZ( ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 prependScale( const Vector3 &scaleVec, const Matrix3 & mat )
-{
-    return Matrix3(
-        mulPerElem( mat.getCol0(), scaleVec ),
-        mulPerElem( mat.getCol1(), scaleVec ),
-        mulPerElem( mat.getCol2(), scaleVec )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 )
-{
-    return Matrix3(
-        select( mat0.getCol0(), mat1.getCol0(), select1 ),
-        select( mat0.getCol1(), mat1.getCol1(), select1 ),
-        select( mat0.getCol2(), mat1.getCol2(), select1 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, const boolInVec &select1 )
-{
-    return Matrix3(
-        select( mat0.getCol0(), mat1.getCol0(), select1 ),
-        select( mat0.getCol1(), mat1.getCol1(), select1 ),
-        select( mat0.getCol2(), mat1.getCol2(), select1 )
-    );
-}
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat )
-{
-    print( mat.getRow( 0 ) );
-    print( mat.getRow( 1 ) );
-    print( mat.getRow( 2 ) );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat, const char * name )
-{
-    printf("%s:\n", name);
-    print( mat );
-}
-
-#endif
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Matrix4 & mat )
-{
-    mCol0 = mat.mCol0;
-    mCol1 = mat.mCol1;
-    mCol2 = mat.mCol2;
-    mCol3 = mat.mCol3;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( float scalar )
-{
-    mCol0 = Vector4( scalar );
-    mCol1 = Vector4( scalar );
-    mCol2 = Vector4( scalar );
-    mCol3 = Vector4( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const floatInVec &scalar )
-{
-    mCol0 = Vector4( scalar );
-    mCol1 = Vector4( scalar );
-    mCol2 = Vector4( scalar );
-    mCol3 = Vector4( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Transform3 & mat )
-{
-    mCol0 = Vector4( mat.getCol0(), 0.0f );
-    mCol1 = Vector4( mat.getCol1(), 0.0f );
-    mCol2 = Vector4( mat.getCol2(), 0.0f );
-    mCol3 = Vector4( mat.getCol3(), 1.0f );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Vector4 &_col0, const Vector4 &_col1, const Vector4 &_col2, const Vector4 &_col3 )
-{
-    mCol0 = _col0;
-    mCol1 = _col1;
-    mCol2 = _col2;
-    mCol3 = _col3;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Matrix3 & mat, const Vector3 &translateVec )
-{
-    mCol0 = Vector4( mat.getCol0(), 0.0f );
-    mCol1 = Vector4( mat.getCol1(), 0.0f );
-    mCol2 = Vector4( mat.getCol2(), 0.0f );
-    mCol3 = Vector4( translateVec, 1.0f );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Quat &unitQuat, const Vector3 &translateVec )
-{
-    Matrix3 mat;
-    mat = Matrix3( unitQuat );
-    mCol0 = Vector4( mat.getCol0(), 0.0f );
-    mCol1 = Vector4( mat.getCol1(), 0.0f );
-    mCol2 = Vector4( mat.getCol2(), 0.0f );
-    mCol3 = Vector4( translateVec, 1.0f );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol0( const Vector4 &_col0 )
-{
-    mCol0 = _col0;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol1( const Vector4 &_col1 )
-{
-    mCol1 = _col1;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol2( const Vector4 &_col2 )
-{
-    mCol2 = _col2;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol3( const Vector4 &_col3 )
-{
-    mCol3 = _col3;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol( int col, const Vector4 &vec )
-{
-    *(&mCol0 + col) = vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setRow( int row, const Vector4 &vec )
-{
-    mCol0.setElem( row, vec.getElem( 0 ) );
-    mCol1.setElem( row, vec.getElem( 1 ) );
-    mCol2.setElem( row, vec.getElem( 2 ) );
-    mCol3.setElem( row, vec.getElem( 3 ) );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setElem( int col, int row, float val )
-{
-    (*this)[col].setElem(row, val);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setElem( int col, int row, const floatInVec &val )
-{
-    Vector4 tmpV3_0;
-    tmpV3_0 = this->getCol( col );
-    tmpV3_0.setElem( row, val );
-    this->setCol( col, tmpV3_0 );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Matrix4::getElem( int col, int row ) const
-{
-    return this->getCol( col ).getElem( row );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol0( ) const
-{
-    return mCol0;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol1( ) const
-{
-    return mCol1;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol2( ) const
-{
-    return mCol2;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol3( ) const
-{
-    return mCol3;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getRow( int row ) const
-{
-    return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Matrix4::operator []( int col )
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator []( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator =( const Matrix4 & mat )
-{
-    mCol0 = mat.mCol0;
-    mCol1 = mat.mCol1;
-    mCol2 = mat.mCol2;
-    mCol3 = mat.mCol3;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 transpose( const Matrix4 & mat )
-{
-    __m128 tmp0, tmp1, tmp2, tmp3, res0, res1, res2, res3;
-    tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );
-    tmp1 = vec_mergeh( mat.getCol1().get128(), mat.getCol3().get128() );
-    tmp2 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );
-    tmp3 = vec_mergel( mat.getCol1().get128(), mat.getCol3().get128() );
-    res0 = vec_mergeh( tmp0, tmp1 );
-    res1 = vec_mergel( tmp0, tmp1 );
-    res2 = vec_mergeh( tmp2, tmp3 );
-    res3 = vec_mergel( tmp2, tmp3 );
-    return Matrix4(
-        Vector4( res0 ),
-        Vector4( res1 ),
-        Vector4( res2 ),
-        Vector4( res3 )
-    );
-}
-
-// TODO: Tidy
-static VM_ATTRIBUTE_ALIGN16 const unsigned int _vmathPNPN[4] = {0x00000000, 0x80000000, 0x00000000, 0x80000000};
-static VM_ATTRIBUTE_ALIGN16 const unsigned int _vmathNPNP[4] = {0x80000000, 0x00000000, 0x80000000, 0x00000000};
-static VM_ATTRIBUTE_ALIGN16 const float _vmathZERONE[4] = {1.0f, 0.0f, 0.0f, 1.0f};
-
-VECTORMATH_FORCE_INLINE const Matrix4 inverse( const Matrix4 & mat )
-{
-	__m128 Va,Vb,Vc;
-	__m128 r1,r2,r3,tt,tt2;
-	__m128 sum,Det,RDet;
-	__m128 trns0,trns1,trns2,trns3;
-
-	__m128 _L1 = mat.getCol0().get128();
-	__m128 _L2 = mat.getCol1().get128();
-	__m128 _L3 = mat.getCol2().get128();
-	__m128 _L4 = mat.getCol3().get128();
-	// Calculating the minterms for the first line.
-
-	// _mm_ror_ps is just a macro using _mm_shuffle_ps().
-	tt = _L4; tt2 = _mm_ror_ps(_L3,1); 
-	Vc = _mm_mul_ps(tt2,_mm_ror_ps(tt,0));					// V3'dot V4
-	Va = _mm_mul_ps(tt2,_mm_ror_ps(tt,2));					// V3'dot V4"
-	Vb = _mm_mul_ps(tt2,_mm_ror_ps(tt,3));					// V3' dot V4^
-
-	r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2));		// V3" dot V4^ - V3^ dot V4"
-	r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0));		// V3^ dot V4' - V3' dot V4^
-	r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1));		// V3' dot V4" - V3" dot V4'
-
-	tt = _L2;
-	Va = _mm_ror_ps(tt,1);		sum = _mm_mul_ps(Va,r1);
-	Vb = _mm_ror_ps(tt,2);		sum = _mm_add_ps(sum,_mm_mul_ps(Vb,r2));
-	Vc = _mm_ror_ps(tt,3);		sum = _mm_add_ps(sum,_mm_mul_ps(Vc,r3));
-
-	// Calculating the determinant.
-	Det = _mm_mul_ps(sum,_L1);
-	Det = _mm_add_ps(Det,_mm_movehl_ps(Det,Det));
-
-	const __m128 Sign_PNPN = _mm_load_ps((float *)_vmathPNPN);
-	const __m128 Sign_NPNP = _mm_load_ps((float *)_vmathNPNP);
-
-	__m128 mtL1 = _mm_xor_ps(sum,Sign_PNPN);
-
-	// Calculating the minterms of the second line (using previous results).
-	tt = _mm_ror_ps(_L1,1);		sum = _mm_mul_ps(tt,r1);
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));
-	__m128 mtL2 = _mm_xor_ps(sum,Sign_NPNP);
-
-	// Testing the determinant.
-	Det = _mm_sub_ss(Det,_mm_shuffle_ps(Det,Det,1));
-
-	// Calculating the minterms of the third line.
-	tt = _mm_ror_ps(_L1,1);
-	Va = _mm_mul_ps(tt,Vb);									// V1' dot V2"
-	Vb = _mm_mul_ps(tt,Vc);									// V1' dot V2^
-	Vc = _mm_mul_ps(tt,_L2);								// V1' dot V2
-
-	r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2));		// V1" dot V2^ - V1^ dot V2"
-	r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0));		// V1^ dot V2' - V1' dot V2^
-	r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1));		// V1' dot V2" - V1" dot V2'
-
-	tt = _mm_ror_ps(_L4,1);		sum = _mm_mul_ps(tt,r1);
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));
-	__m128 mtL3 = _mm_xor_ps(sum,Sign_PNPN);
-
-	// Dividing is FASTER than rcp_nr! (Because rcp_nr causes many register-memory RWs).
-	RDet = _mm_div_ss(_mm_load_ss((float *)&_vmathZERONE), Det); // TODO: just 1.0f?
-	RDet = _mm_shuffle_ps(RDet,RDet,0x00);
-
-	// Devide the first 12 minterms with the determinant.
-	mtL1 = _mm_mul_ps(mtL1, RDet);
-	mtL2 = _mm_mul_ps(mtL2, RDet);
-	mtL3 = _mm_mul_ps(mtL3, RDet);
-
-	// Calculate the minterms of the forth line and devide by the determinant.
-	tt = _mm_ror_ps(_L3,1);		sum = _mm_mul_ps(tt,r1);
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));
-	__m128 mtL4 = _mm_xor_ps(sum,Sign_NPNP);
-	mtL4 = _mm_mul_ps(mtL4, RDet);
-
-	// Now we just have to transpose the minterms matrix.
-	trns0 = _mm_unpacklo_ps(mtL1,mtL2);
-	trns1 = _mm_unpacklo_ps(mtL3,mtL4);
-	trns2 = _mm_unpackhi_ps(mtL1,mtL2);
-	trns3 = _mm_unpackhi_ps(mtL3,mtL4);
-	_L1 = _mm_movelh_ps(trns0,trns1);
-	_L2 = _mm_movehl_ps(trns1,trns0);
-	_L3 = _mm_movelh_ps(trns2,trns3);
-	_L4 = _mm_movehl_ps(trns3,trns2);
-
-    return Matrix4(
-        Vector4( _L1 ),
-        Vector4( _L2 ),
-        Vector4( _L3 ),
-        Vector4( _L4 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 affineInverse( const Matrix4 & mat )
-{
-    Transform3 affineMat;
-    affineMat.setCol0( mat.getCol0().getXYZ( ) );
-    affineMat.setCol1( mat.getCol1().getXYZ( ) );
-    affineMat.setCol2( mat.getCol2().getXYZ( ) );
-    affineMat.setCol3( mat.getCol3().getXYZ( ) );
-    return Matrix4( inverse( affineMat ) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 orthoInverse( const Matrix4 & mat )
-{
-    Transform3 affineMat;
-    affineMat.setCol0( mat.getCol0().getXYZ( ) );
-    affineMat.setCol1( mat.getCol1().getXYZ( ) );
-    affineMat.setCol2( mat.getCol2().getXYZ( ) );
-    affineMat.setCol3( mat.getCol3().getXYZ( ) );
-    return Matrix4( orthoInverse( affineMat ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix4 & mat )
-{
-	__m128 Va,Vb,Vc;
-	__m128 r1,r2,r3,tt,tt2;
-	__m128 sum,Det;
-
-	__m128 _L1 = mat.getCol0().get128();
-	__m128 _L2 = mat.getCol1().get128();
-	__m128 _L3 = mat.getCol2().get128();
-	__m128 _L4 = mat.getCol3().get128();
-	// Calculating the minterms for the first line.
-
-	// _mm_ror_ps is just a macro using _mm_shuffle_ps().
-	tt = _L4; tt2 = _mm_ror_ps(_L3,1); 
-	Vc = _mm_mul_ps(tt2,_mm_ror_ps(tt,0));					// V3' dot V4
-	Va = _mm_mul_ps(tt2,_mm_ror_ps(tt,2));					// V3' dot V4"
-	Vb = _mm_mul_ps(tt2,_mm_ror_ps(tt,3));					// V3' dot V4^
-
-	r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2));		// V3" dot V4^ - V3^ dot V4"
-	r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0));		// V3^ dot V4' - V3' dot V4^
-	r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1));		// V3' dot V4" - V3" dot V4'
-
-	tt = _L2;
-	Va = _mm_ror_ps(tt,1);		sum = _mm_mul_ps(Va,r1);
-	Vb = _mm_ror_ps(tt,2);		sum = _mm_add_ps(sum,_mm_mul_ps(Vb,r2));
-	Vc = _mm_ror_ps(tt,3);		sum = _mm_add_ps(sum,_mm_mul_ps(Vc,r3));
-
-	// Calculating the determinant.
-	Det = _mm_mul_ps(sum,_L1);
-	Det = _mm_add_ps(Det,_mm_movehl_ps(Det,Det));
-
-	// Calculating the minterms of the second line (using previous results).
-	tt = _mm_ror_ps(_L1,1);		sum = _mm_mul_ps(tt,r1);
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));
-	tt = _mm_ror_ps(tt,1);		sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));
-
-	// Testing the determinant.
-	Det = _mm_sub_ss(Det,_mm_shuffle_ps(Det,Det,1));
-	return floatInVec(Det, 0);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator +( const Matrix4 & mat ) const
-{
-    return Matrix4(
-        ( mCol0 + mat.mCol0 ),
-        ( mCol1 + mat.mCol1 ),
-        ( mCol2 + mat.mCol2 ),
-        ( mCol3 + mat.mCol3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator -( const Matrix4 & mat ) const
-{
-    return Matrix4(
-        ( mCol0 - mat.mCol0 ),
-        ( mCol1 - mat.mCol1 ),
-        ( mCol2 - mat.mCol2 ),
-        ( mCol3 - mat.mCol3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator +=( const Matrix4 & mat )
-{
-    *this = *this + mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator -=( const Matrix4 & mat )
-{
-    *this = *this - mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator -( ) const
-{
-    return Matrix4(
-        ( -mCol0 ),
-        ( -mCol1 ),
-        ( -mCol2 ),
-        ( -mCol3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 absPerElem( const Matrix4 & mat )
-{
-    return Matrix4(
-        absPerElem( mat.getCol0() ),
-        absPerElem( mat.getCol1() ),
-        absPerElem( mat.getCol2() ),
-        absPerElem( mat.getCol3() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( float scalar ) const
-{
-    return *this * floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const floatInVec &scalar ) const
-{
-    return Matrix4(
-        ( mCol0 * scalar ),
-        ( mCol1 * scalar ),
-        ( mCol2 * scalar ),
-        ( mCol3 * scalar )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( float scalar )
-{
-    return *this *= floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const floatInVec &scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar, const Matrix4 & mat )
-{
-    return floatInVec(scalar) * mat;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar, const Matrix4 & mat )
-{
-    return mat * scalar;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Vector4 &vec ) const
-{
-    return Vector4(
-		_mm_add_ps(
-			_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(1,1,1,1)))),
-			_mm_add_ps(_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(2,2,2,2))), _mm_mul_ps(mCol3.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(3,3,3,3)))))
-		);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Vector3 &vec ) const
-{
-    return Vector4(
-		_mm_add_ps(
-			_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(1,1,1,1)))),
-			_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(2,2,2,2))))
-		);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Point3 &pnt ) const
-{
-    return Vector4(
-		_mm_add_ps(
-			_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(1,1,1,1)))),
-			_mm_add_ps(_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(2,2,2,2))), mCol3.get128()))
-		);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const Matrix4 & mat ) const
-{
-    return Matrix4(
-        ( *this * mat.mCol0 ),
-        ( *this * mat.mCol1 ),
-        ( *this * mat.mCol2 ),
-        ( *this * mat.mCol3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const Matrix4 & mat )
-{
-    *this = *this * mat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const Transform3 & tfrm ) const
-{
-    return Matrix4(
-        ( *this * tfrm.getCol0() ),
-        ( *this * tfrm.getCol1() ),
-        ( *this * tfrm.getCol2() ),
-        ( *this * Point3( tfrm.getCol3() ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const Transform3 & tfrm )
-{
-    *this = *this * tfrm;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 )
-{
-    return Matrix4(
-        mulPerElem( mat0.getCol0(), mat1.getCol0() ),
-        mulPerElem( mat0.getCol1(), mat1.getCol1() ),
-        mulPerElem( mat0.getCol2(), mat1.getCol2() ),
-        mulPerElem( mat0.getCol3(), mat1.getCol3() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::identity( )
-{
-    return Matrix4(
-        Vector4::xAxis( ),
-        Vector4::yAxis( ),
-        Vector4::zAxis( ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setUpper3x3( const Matrix3 & mat3 )
-{
-    mCol0.setXYZ( mat3.getCol0() );
-    mCol1.setXYZ( mat3.getCol1() );
-    mCol2.setXYZ( mat3.getCol2() );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Matrix4::getUpper3x3( ) const
-{
-    return Matrix3(
-        mCol0.getXYZ( ),
-        mCol1.getXYZ( ),
-        mCol2.getXYZ( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setTranslation( const Vector3 &translateVec )
-{
-    mCol3.setXYZ( translateVec );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Matrix4::getTranslation( ) const
-{
-    return mCol3.getXYZ( );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationX( float radians )
-{
-    return rotationX( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationX( const floatInVec &radians )
-{
-    __m128 s, c, res1, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res1 = vec_sel( zero, c, select_y );
-    res1 = vec_sel( res1, s, select_z );
-    res2 = vec_sel( zero, negatef4(s), select_y );
-    res2 = vec_sel( res2, c, select_z );
-    return Matrix4(
-        Vector4::xAxis( ),
-        Vector4( res1 ),
-        Vector4( res2 ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationY( float radians )
-{
-    return rotationY( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationY( const floatInVec &radians )
-{
-    __m128 s, c, res0, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, negatef4(s), select_z );
-    res2 = vec_sel( zero, s, select_x );
-    res2 = vec_sel( res2, c, select_z );
-    return Matrix4(
-        Vector4( res0 ),
-        Vector4::yAxis( ),
-        Vector4( res2 ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZ( float radians )
-{
-    return rotationZ( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZ( const floatInVec &radians )
-{
-    __m128 s, c, res0, res1;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, s, select_y );
-    res1 = vec_sel( zero, negatef4(s), select_x );
-    res1 = vec_sel( res1, c, select_y );
-    return Matrix4(
-        Vector4( res0 ),
-        Vector4( res1 ),
-        Vector4::zAxis( ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZYX( const Vector3 &radiansXYZ )
-{
-    __m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;
-    angles = Vector4( radiansXYZ, 0.0f ).get128();
-    sincosf4( angles, &s, &c );
-    negS = negatef4( s );
-    Z0 = vec_mergel( c, s );
-    Z1 = vec_mergel( negS, c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};
-    Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );
-	Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );
-	Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );
-    X0 = vec_splat( s, 0 );
-    X1 = vec_splat( c, 0 );
-    tmp = vec_mul( Z0, Y1 );
-    return Matrix4(
-        Vector4( vec_mul( Z0, Y0 ) ),
-        Vector4( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),
-        Vector4( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( float radians, const Vector3 &unitVec )
-{
-    return rotation( floatInVec(radians), unitVec );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( const floatInVec &radians, const Vector3 &unitVec )
-{
-    __m128 axis, s, c, oneMinusC, axisS, negAxisS, xxxx, yyyy, zzzz, tmp0, tmp1, tmp2;
-    axis = unitVec.get128();
-    sincosf4( radians.get128(), &s, &c );
-    xxxx = vec_splat( axis, 0 );
-    yyyy = vec_splat( axis, 1 );
-    zzzz = vec_splat( axis, 2 );
-    oneMinusC = vec_sub( _mm_set1_ps(1.0f), c );
-    axisS = vec_mul( axis, s );
-    negAxisS = negatef4( axisS );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    //tmp0 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_XZBX );
-	tmp0 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,2,0) );
-	tmp0 = vec_sel(tmp0, vec_splat(negAxisS, 1), select_z);
-    //tmp1 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_CXXX );
-	tmp1 = vec_sel( vec_splat(axisS, 0), vec_splat(negAxisS, 2), select_x );
-    //tmp2 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_YAXX );
-	tmp2 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,0,1) );
-	tmp2 = vec_sel(tmp2, vec_splat(negAxisS, 0), select_y);
-    tmp0 = vec_sel( tmp0, c, select_x );
-    tmp1 = vec_sel( tmp1, c, select_y );
-    tmp2 = vec_sel( tmp2, c, select_z );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};
-    axis = vec_and( axis, _mm_load_ps( (float *)select_xyz ) );
-    tmp0 = vec_and( tmp0, _mm_load_ps( (float *)select_xyz ) );
-    tmp1 = vec_and( tmp1, _mm_load_ps( (float *)select_xyz ) );
-    tmp2 = vec_and( tmp2, _mm_load_ps( (float *)select_xyz ) );
-    return Matrix4(
-        Vector4( vec_madd( vec_mul( axis, xxxx ), oneMinusC, tmp0 ) ),
-        Vector4( vec_madd( vec_mul( axis, yyyy ), oneMinusC, tmp1 ) ),
-        Vector4( vec_madd( vec_mul( axis, zzzz ), oneMinusC, tmp2 ) ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( const Quat &unitQuat )
-{
-    return Matrix4( Transform3::rotation( unitQuat ) );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::scale( const Vector3 &scaleVec )
-{
-    __m128 zero = _mm_setzero_ps();
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    return Matrix4(
-        Vector4( vec_sel( zero, scaleVec.get128(), select_x ) ),
-        Vector4( vec_sel( zero, scaleVec.get128(), select_y ) ),
-        Vector4( vec_sel( zero, scaleVec.get128(), select_z ) ),
-        Vector4::wAxis( )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 appendScale( const Matrix4 & mat, const Vector3 &scaleVec )
-{
-    return Matrix4(
-        ( mat.getCol0() * scaleVec.getX( ) ),
-        ( mat.getCol1() * scaleVec.getY( ) ),
-        ( mat.getCol2() * scaleVec.getZ( ) ),
-        mat.getCol3()
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 prependScale( const Vector3 &scaleVec, const Matrix4 & mat )
-{
-    Vector4 scale4;
-    scale4 = Vector4( scaleVec, 1.0f );
-    return Matrix4(
-        mulPerElem( mat.getCol0(), scale4 ),
-        mulPerElem( mat.getCol1(), scale4 ),
-        mulPerElem( mat.getCol2(), scale4 ),
-        mulPerElem( mat.getCol3(), scale4 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::translation( const Vector3 &translateVec )
-{
-    return Matrix4(
-        Vector4::xAxis( ),
-        Vector4::yAxis( ),
-        Vector4::zAxis( ),
-        Vector4( translateVec, 1.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::lookAt( const Point3 &eyePos, const Point3 &lookAtPos, const Vector3 &upVec )
-{
-    Matrix4 m4EyeFrame;
-    Vector3 v3X, v3Y, v3Z;
-    v3Y = normalize( upVec );
-    v3Z = normalize( ( eyePos - lookAtPos ) );
-    v3X = normalize( cross( v3Y, v3Z ) );
-    v3Y = cross( v3Z, v3X );
-    m4EyeFrame = Matrix4( Vector4( v3X ), Vector4( v3Y ), Vector4( v3Z ), Vector4( eyePos ) );
-    return orthoInverse( m4EyeFrame );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::perspective( float fovyRadians, float aspect, float zNear, float zFar )
-{
-    float f, rangeInv;
-    __m128 zero, col0, col1, col2, col3;
-    union { __m128 v; float s[4]; } tmp;
-    f = tanf( _VECTORMATH_PI_OVER_2 - fovyRadians * 0.5f );
-    rangeInv = 1.0f / ( zNear - zFar );
-    zero = _mm_setzero_ps();
-    tmp.v = zero;
-    tmp.s[0] = f / aspect;
-    col0 = tmp.v;
-    tmp.v = zero;
-    tmp.s[1] = f;
-    col1 = tmp.v;
-    tmp.v = zero;
-    tmp.s[2] = ( zNear + zFar ) * rangeInv;
-    tmp.s[3] = -1.0f;
-    col2 = tmp.v;
-    tmp.v = zero;
-    tmp.s[2] = zNear * zFar * rangeInv * 2.0f;
-    col3 = tmp.v;
-    return Matrix4(
-        Vector4( col0 ),
-        Vector4( col1 ),
-        Vector4( col2 ),
-        Vector4( col3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::frustum( float left, float right, float bottom, float top, float zNear, float zFar )
-{
-    /* function implementation based on code from STIDC SDK:           */
-    /* --------------------------------------------------------------  */
-    /* PLEASE DO NOT MODIFY THIS SECTION                               */
-    /* This prolog section is automatically generated.                 */
-    /*                                                                 */
-    /* (C)Copyright                                                    */
-    /* Sony Computer Entertainment, Inc.,                              */
-    /* Toshiba Corporation,                                            */
-    /* International Business Machines Corporation,                    */
-    /* 2001,2002.                                                      */
-    /* S/T/I Confidential Information                                  */
-    /* --------------------------------------------------------------  */
-    __m128 lbf, rtn;
-    __m128 diff, sum, inv_diff;
-    __m128 diagonal, column, near2;
-    __m128 zero = _mm_setzero_ps();
-    union { __m128 v; float s[4]; } l, f, r, n, b, t; // TODO: Union?
-    l.s[0] = left;
-    f.s[0] = zFar;
-    r.s[0] = right;
-    n.s[0] = zNear;
-    b.s[0] = bottom;
-    t.s[0] = top;
-    lbf = vec_mergeh( l.v, f.v );
-    rtn = vec_mergeh( r.v, n.v );
-    lbf = vec_mergeh( lbf, b.v );
-    rtn = vec_mergeh( rtn, t.v );
-    diff = vec_sub( rtn, lbf );
-    sum  = vec_add( rtn, lbf );
-    inv_diff = recipf4( diff );
-    near2 = vec_splat( n.v, 0 );
-    near2 = vec_add( near2, near2 );
-    diagonal = vec_mul( near2, inv_diff );
-    column = vec_mul( sum, inv_diff );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};
-    return Matrix4(
-        Vector4( vec_sel( zero, diagonal, select_x ) ),
-        Vector4( vec_sel( zero, diagonal, select_y ) ),
-        Vector4( vec_sel( column, _mm_set1_ps(-1.0f), select_w ) ),
-        Vector4( vec_sel( zero, vec_mul( diagonal, vec_splat( f.v, 0 ) ), select_z ) )
-	);
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::orthographic( float left, float right, float bottom, float top, float zNear, float zFar )
-{
-    /* function implementation based on code from STIDC SDK:           */
-    /* --------------------------------------------------------------  */
-    /* PLEASE DO NOT MODIFY THIS SECTION                               */
-    /* This prolog section is automatically generated.                 */
-    /*                                                                 */
-    /* (C)Copyright                                                    */
-    /* Sony Computer Entertainment, Inc.,                              */
-    /* Toshiba Corporation,                                            */
-    /* International Business Machines Corporation,                    */
-    /* 2001,2002.                                                      */
-    /* S/T/I Confidential Information                                  */
-    /* --------------------------------------------------------------  */
-    __m128 lbf, rtn;
-    __m128 diff, sum, inv_diff, neg_inv_diff;
-    __m128 diagonal, column;
-    __m128 zero = _mm_setzero_ps();
-    union { __m128 v; float s[4]; } l, f, r, n, b, t;
-    l.s[0] = left;
-    f.s[0] = zFar;
-    r.s[0] = right;
-    n.s[0] = zNear;
-    b.s[0] = bottom;
-    t.s[0] = top;
-    lbf = vec_mergeh( l.v, f.v );
-    rtn = vec_mergeh( r.v, n.v );
-    lbf = vec_mergeh( lbf, b.v );
-    rtn = vec_mergeh( rtn, t.v );
-    diff = vec_sub( rtn, lbf );
-    sum  = vec_add( rtn, lbf );
-    inv_diff = recipf4( diff );
-    neg_inv_diff = negatef4( inv_diff );
-    diagonal = vec_add( inv_diff, inv_diff );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};
-    column = vec_mul( sum, vec_sel( neg_inv_diff, inv_diff, select_z ) ); // TODO: no madds with zero
-    return Matrix4(
-        Vector4( vec_sel( zero, diagonal, select_x ) ),
-        Vector4( vec_sel( zero, diagonal, select_y ) ),
-        Vector4( vec_sel( zero, diagonal, select_z ) ),
-        Vector4( vec_sel( column, _mm_set1_ps(1.0f), select_w ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 )
-{
-    return Matrix4(
-        select( mat0.getCol0(), mat1.getCol0(), select1 ),
-        select( mat0.getCol1(), mat1.getCol1(), select1 ),
-        select( mat0.getCol2(), mat1.getCol2(), select1 ),
-        select( mat0.getCol3(), mat1.getCol3(), select1 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, const boolInVec &select1 )
-{
-    return Matrix4(
-        select( mat0.getCol0(), mat1.getCol0(), select1 ),
-        select( mat0.getCol1(), mat1.getCol1(), select1 ),
-        select( mat0.getCol2(), mat1.getCol2(), select1 ),
-        select( mat0.getCol3(), mat1.getCol3(), select1 )
-    );
-}
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat )
-{
-    print( mat.getRow( 0 ) );
-    print( mat.getRow( 1 ) );
-    print( mat.getRow( 2 ) );
-    print( mat.getRow( 3 ) );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat, const char * name )
-{
-    printf("%s:\n", name);
-    print( mat );
-}
-
-#endif
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( const Transform3 & tfrm )
-{
-    mCol0 = tfrm.mCol0;
-    mCol1 = tfrm.mCol1;
-    mCol2 = tfrm.mCol2;
-    mCol3 = tfrm.mCol3;
-}
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( float scalar )
-{
-    mCol0 = Vector3( scalar );
-    mCol1 = Vector3( scalar );
-    mCol2 = Vector3( scalar );
-    mCol3 = Vector3( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( const floatInVec &scalar )
-{
-    mCol0 = Vector3( scalar );
-    mCol1 = Vector3( scalar );
-    mCol2 = Vector3( scalar );
-    mCol3 = Vector3( scalar );
-}
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( const Vector3 &_col0, const Vector3 &_col1, const Vector3 &_col2, const Vector3 &_col3 )
-{
-    mCol0 = _col0;
-    mCol1 = _col1;
-    mCol2 = _col2;
-    mCol3 = _col3;
-}
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( const Matrix3 & tfrm, const Vector3 &translateVec )
-{
-    this->setUpper3x3( tfrm );
-    this->setTranslation( translateVec );
-}
-
-VECTORMATH_FORCE_INLINE Transform3::Transform3( const Quat &unitQuat, const Vector3 &translateVec )
-{
-    this->setUpper3x3( Matrix3( unitQuat ) );
-    this->setTranslation( translateVec );
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol0( const Vector3 &_col0 )
-{
-    mCol0 = _col0;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol1( const Vector3 &_col1 )
-{
-    mCol1 = _col1;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol2( const Vector3 &_col2 )
-{
-    mCol2 = _col2;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol3( const Vector3 &_col3 )
-{
-    mCol3 = _col3;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol( int col, const Vector3 &vec )
-{
-    *(&mCol0 + col) = vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setRow( int row, const Vector4 &vec )
-{
-    mCol0.setElem( row, vec.getElem( 0 ) );
-    mCol1.setElem( row, vec.getElem( 1 ) );
-    mCol2.setElem( row, vec.getElem( 2 ) );
-    mCol3.setElem( row, vec.getElem( 3 ) );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setElem( int col, int row, float val )
-{
-    (*this)[col].setElem(row, val);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setElem( int col, int row, const floatInVec &val )
-{
-    Vector3 tmpV3_0;
-    tmpV3_0 = this->getCol( col );
-    tmpV3_0.setElem( row, val );
-    this->setCol( col, tmpV3_0 );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Transform3::getElem( int col, int row ) const
-{
-    return this->getCol( col ).getElem( row );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol0( ) const
-{
-    return mCol0;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol1( ) const
-{
-    return mCol1;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol2( ) const
-{
-    return mCol2;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol3( ) const
-{
-    return mCol3;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Transform3::getRow( int row ) const
-{
-    return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Transform3::operator []( int col )
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::operator []( int col ) const
-{
-    return *(&mCol0 + col);
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::operator =( const Transform3 & tfrm )
-{
-    mCol0 = tfrm.mCol0;
-    mCol1 = tfrm.mCol1;
-    mCol2 = tfrm.mCol2;
-    mCol3 = tfrm.mCol3;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 inverse( const Transform3 & tfrm )
-{
-    __m128 inv0, inv1, inv2, inv3;
-    __m128 tmp0, tmp1, tmp2, tmp3, tmp4, dot, invdet;
-    __m128 xxxx, yyyy, zzzz;
-    tmp2 = _vmathVfCross( tfrm.getCol0().get128(), tfrm.getCol1().get128() );
-    tmp0 = _vmathVfCross( tfrm.getCol1().get128(), tfrm.getCol2().get128() );
-    tmp1 = _vmathVfCross( tfrm.getCol2().get128(), tfrm.getCol0().get128() );
-    inv3 = negatef4( tfrm.getCol3().get128() );
-    dot = _vmathVfDot3( tmp2, tfrm.getCol2().get128() );
-    dot = vec_splat( dot, 0 );
-    invdet = recipf4( dot );
-    tmp3 = vec_mergeh( tmp0, tmp2 );
-    tmp4 = vec_mergel( tmp0, tmp2 );
-    inv0 = vec_mergeh( tmp3, tmp1 );
-    xxxx = vec_splat( inv3, 0 );
-    //inv1 = vec_perm( tmp3, tmp1, _VECTORMATH_PERM_ZBWX );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	inv1 = _mm_shuffle_ps( tmp3, tmp3, _MM_SHUFFLE(0,3,2,2));
-	inv1 = vec_sel(inv1, tmp1, select_y);
-    //inv2 = vec_perm( tmp4, tmp1, _VECTORMATH_PERM_XCYX );
-	inv2 = _mm_shuffle_ps( tmp4, tmp4, _MM_SHUFFLE(0,1,1,0));
-	inv2 = vec_sel(inv2, vec_splat(tmp1, 2), select_y);
-    yyyy = vec_splat( inv3, 1 );
-    zzzz = vec_splat( inv3, 2 );
-    inv3 = vec_mul( inv0, xxxx );
-    inv3 = vec_madd( inv1, yyyy, inv3 );
-    inv3 = vec_madd( inv2, zzzz, inv3 );
-    inv0 = vec_mul( inv0, invdet );
-    inv1 = vec_mul( inv1, invdet );
-    inv2 = vec_mul( inv2, invdet );
-    inv3 = vec_mul( inv3, invdet );
-    return Transform3(
-        Vector3( inv0 ),
-        Vector3( inv1 ),
-        Vector3( inv2 ),
-        Vector3( inv3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 orthoInverse( const Transform3 & tfrm )
-{
-    __m128 inv0, inv1, inv2, inv3;
-    __m128 tmp0, tmp1;
-    __m128 xxxx, yyyy, zzzz;
-    tmp0 = vec_mergeh( tfrm.getCol0().get128(), tfrm.getCol2().get128() );
-    tmp1 = vec_mergel( tfrm.getCol0().get128(), tfrm.getCol2().get128() );
-    inv3 = negatef4( tfrm.getCol3().get128() );
-    inv0 = vec_mergeh( tmp0, tfrm.getCol1().get128() );
-    xxxx = vec_splat( inv3, 0 );
-    //inv1 = vec_perm( tmp0, tfrm.getCol1().get128(), _VECTORMATH_PERM_ZBWX );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	inv1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));
-	inv1 = vec_sel(inv1, tfrm.getCol1().get128(), select_y);
-    //inv2 = vec_perm( tmp1, tfrm.getCol1().get128(), _VECTORMATH_PERM_XCYX );
-	inv2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));
-	inv2 = vec_sel(inv2, vec_splat(tfrm.getCol1().get128(), 2), select_y);
-    yyyy = vec_splat( inv3, 1 );
-    zzzz = vec_splat( inv3, 2 );
-    inv3 = vec_mul( inv0, xxxx );
-    inv3 = vec_madd( inv1, yyyy, inv3 );
-    inv3 = vec_madd( inv2, zzzz, inv3 );
-    return Transform3(
-        Vector3( inv0 ),
-        Vector3( inv1 ),
-        Vector3( inv2 ),
-        Vector3( inv3 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 absPerElem( const Transform3 & tfrm )
-{
-    return Transform3(
-        absPerElem( tfrm.getCol0() ),
-        absPerElem( tfrm.getCol1() ),
-        absPerElem( tfrm.getCol2() ),
-        absPerElem( tfrm.getCol3() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::operator *( const Vector3 &vec ) const
-{
-    __m128 res;
-    __m128 xxxx, yyyy, zzzz;
-    xxxx = vec_splat( vec.get128(), 0 );
-    yyyy = vec_splat( vec.get128(), 1 );
-    zzzz = vec_splat( vec.get128(), 2 );
-    res = vec_mul( mCol0.get128(), xxxx );
-    res = vec_madd( mCol1.get128(), yyyy, res );
-    res = vec_madd( mCol2.get128(), zzzz, res );
-    return Vector3( res );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 Transform3::operator *( const Point3 &pnt ) const
-{
-    __m128 tmp0, tmp1, res;
-    __m128 xxxx, yyyy, zzzz;
-    xxxx = vec_splat( pnt.get128(), 0 );
-    yyyy = vec_splat( pnt.get128(), 1 );
-    zzzz = vec_splat( pnt.get128(), 2 );
-    tmp0 = vec_mul( mCol0.get128(), xxxx );
-    tmp1 = vec_mul( mCol1.get128(), yyyy );
-    tmp0 = vec_madd( mCol2.get128(), zzzz, tmp0 );
-    tmp1 = vec_add( mCol3.get128(), tmp1 );
-    res = vec_add( tmp0, tmp1 );
-    return Point3( res );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::operator *( const Transform3 & tfrm ) const
-{
-    return Transform3(
-        ( *this * tfrm.mCol0 ),
-        ( *this * tfrm.mCol1 ),
-        ( *this * tfrm.mCol2 ),
-        Vector3( ( *this * Point3( tfrm.mCol3 ) ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::operator *=( const Transform3 & tfrm )
-{
-    *this = *this * tfrm;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 )
-{
-    return Transform3(
-        mulPerElem( tfrm0.getCol0(), tfrm1.getCol0() ),
-        mulPerElem( tfrm0.getCol1(), tfrm1.getCol1() ),
-        mulPerElem( tfrm0.getCol2(), tfrm1.getCol2() ),
-        mulPerElem( tfrm0.getCol3(), tfrm1.getCol3() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::identity( )
-{
-    return Transform3(
-        Vector3::xAxis( ),
-        Vector3::yAxis( ),
-        Vector3::zAxis( ),
-        Vector3( 0.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setUpper3x3( const Matrix3 & tfrm )
-{
-    mCol0 = tfrm.getCol0();
-    mCol1 = tfrm.getCol1();
-    mCol2 = tfrm.getCol2();
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 Transform3::getUpper3x3( ) const
-{
-    return Matrix3( mCol0, mCol1, mCol2 );
-}
-
-VECTORMATH_FORCE_INLINE Transform3 & Transform3::setTranslation( const Vector3 &translateVec )
-{
-    mCol3 = translateVec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Transform3::getTranslation( ) const
-{
-    return mCol3;
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationX( float radians )
-{
-    return rotationX( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationX( const floatInVec &radians )
-{
-    __m128 s, c, res1, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res1 = vec_sel( zero, c, select_y );
-    res1 = vec_sel( res1, s, select_z );
-    res2 = vec_sel( zero, negatef4(s), select_y );
-    res2 = vec_sel( res2, c, select_z );
-    return Transform3(
-        Vector3::xAxis( ),
-        Vector3( res1 ),
-        Vector3( res2 ),
-        Vector3( _mm_setzero_ps() )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationY( float radians )
-{
-    return rotationY( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationY( const floatInVec &radians )
-{
-    __m128 s, c, res0, res2;
-    __m128 zero;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, negatef4(s), select_z );
-    res2 = vec_sel( zero, s, select_x );
-    res2 = vec_sel( res2, c, select_z );
-    return Transform3(
-        Vector3( res0 ),
-        Vector3::yAxis( ),
-        Vector3( res2 ),
-        Vector3( 0.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZ( float radians )
-{
-    return rotationZ( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZ( const floatInVec &radians )
-{
-    __m128 s, c, res0, res1;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-    __m128 zero = _mm_setzero_ps();
-    sincosf4( radians.get128(), &s, &c );
-    res0 = vec_sel( zero, c, select_x );
-    res0 = vec_sel( res0, s, select_y );
-    res1 = vec_sel( zero, negatef4(s), select_x );
-    res1 = vec_sel( res1, c, select_y );
-    return Transform3(
-        Vector3( res0 ),
-        Vector3( res1 ),
-        Vector3::zAxis( ),
-        Vector3( 0.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZYX( const Vector3 &radiansXYZ )
-{
-    __m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;
-    angles = Vector4( radiansXYZ, 0.0f ).get128();
-    sincosf4( angles, &s, &c );
-    negS = negatef4( s );
-    Z0 = vec_mergel( c, s );
-    Z1 = vec_mergel( negS, c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};
-    Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );
-	Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );
-	Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );
-    X0 = vec_splat( s, 0 );
-    X1 = vec_splat( c, 0 );
-    tmp = vec_mul( Z0, Y1 );
-    return Transform3(
-        Vector3( vec_mul( Z0, Y0 ) ),
-        Vector3( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),
-        Vector3( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) ),
-        Vector3( 0.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( float radians, const Vector3 &unitVec )
-{
-    return rotation( floatInVec(radians), unitVec );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( const floatInVec &radians, const Vector3 &unitVec )
-{
-    return Transform3( Matrix3::rotation( radians, unitVec ), Vector3( 0.0f ) );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( const Quat &unitQuat )
-{
-    return Transform3( Matrix3( unitQuat ), Vector3( 0.0f ) );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::scale( const Vector3 &scaleVec )
-{
-    __m128 zero = _mm_setzero_ps();
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    return Transform3(
-        Vector3( vec_sel( zero, scaleVec.get128(), select_x ) ),
-        Vector3( vec_sel( zero, scaleVec.get128(), select_y ) ),
-        Vector3( vec_sel( zero, scaleVec.get128(), select_z ) ),
-        Vector3( 0.0f )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 appendScale( const Transform3 & tfrm, const Vector3 &scaleVec )
-{
-    return Transform3(
-        ( tfrm.getCol0() * scaleVec.getX( ) ),
-        ( tfrm.getCol1() * scaleVec.getY( ) ),
-        ( tfrm.getCol2() * scaleVec.getZ( ) ),
-        tfrm.getCol3()
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 prependScale( const Vector3 &scaleVec, const Transform3 & tfrm )
-{
-    return Transform3(
-        mulPerElem( tfrm.getCol0(), scaleVec ),
-        mulPerElem( tfrm.getCol1(), scaleVec ),
-        mulPerElem( tfrm.getCol2(), scaleVec ),
-        mulPerElem( tfrm.getCol3(), scaleVec )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 Transform3::translation( const Vector3 &translateVec )
-{
-    return Transform3(
-        Vector3::xAxis( ),
-        Vector3::yAxis( ),
-        Vector3::zAxis( ),
-        translateVec
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 )
-{
-    return Transform3(
-        select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),
-        select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),
-        select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),
-        select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, const boolInVec &select1 )
-{
-    return Transform3(
-        select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),
-        select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),
-        select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),
-        select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )
-    );
-}
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm )
-{
-    print( tfrm.getRow( 0 ) );
-    print( tfrm.getRow( 1 ) );
-    print( tfrm.getRow( 2 ) );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm, const char * name )
-{
-    printf("%s:\n", name);
-    print( tfrm );
-}
-
-#endif
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const Matrix3 & tfrm )
-{
-    __m128 res;
-    __m128 col0, col1, col2;
-    __m128 xx_yy, xx_yy_zz_xx, yy_zz_xx_yy, zz_xx_yy_zz, diagSum, diagDiff;
-    __m128 zy_xz_yx, yz_zx_xy, sum, diff;
-    __m128 radicand, invSqrt, scale;
-    __m128 res0, res1, res2, res3;
-    __m128 xx, yy, zz;
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};
-
-    col0 = tfrm.getCol0().get128();
-    col1 = tfrm.getCol1().get128();
-    col2 = tfrm.getCol2().get128();
-
-    /* four cases: */
-    /* trace > 0 */
-    /* else */
-    /*    xx largest diagonal element */
-    /*    yy largest diagonal element */
-    /*    zz largest diagonal element */
-
-    /* compute quaternion for each case */
-
-    xx_yy = vec_sel( col0, col1, select_y );
-    //xx_yy_zz_xx = vec_perm( xx_yy, col2, _VECTORMATH_PERM_XYCX );
-    //yy_zz_xx_yy = vec_perm( xx_yy, col2, _VECTORMATH_PERM_YCXY );
-    //zz_xx_yy_zz = vec_perm( xx_yy, col2, _VECTORMATH_PERM_CXYC );
-    xx_yy_zz_xx = _mm_shuffle_ps( xx_yy, xx_yy, _MM_SHUFFLE(0,0,1,0) );
-    xx_yy_zz_xx = vec_sel( xx_yy_zz_xx, col2, select_z ); // TODO: Ck
-    yy_zz_xx_yy = _mm_shuffle_ps( xx_yy_zz_xx, xx_yy_zz_xx, _MM_SHUFFLE(1,0,2,1) );
-    zz_xx_yy_zz = _mm_shuffle_ps( xx_yy_zz_xx, xx_yy_zz_xx, _MM_SHUFFLE(2,1,0,2) );
-
-    diagSum = vec_add( vec_add( xx_yy_zz_xx, yy_zz_xx_yy ), zz_xx_yy_zz );
-    diagDiff = vec_sub( vec_sub( xx_yy_zz_xx, yy_zz_xx_yy ), zz_xx_yy_zz );
-    radicand = vec_add( vec_sel( diagDiff, diagSum, select_w ), _mm_set1_ps(1.0f) );
- //   invSqrt = rsqrtf4( radicand );
-	invSqrt = newtonrapson_rsqrt4( radicand );
-
-	
-
-    zy_xz_yx = vec_sel( col0, col1, select_z );									// zy_xz_yx = 00 01 12 03
-    //zy_xz_yx = vec_perm( zy_xz_yx, col2, _VECTORMATH_PERM_ZAYX );
-	zy_xz_yx = _mm_shuffle_ps( zy_xz_yx, zy_xz_yx, _MM_SHUFFLE(0,1,2,2) );		// zy_xz_yx = 12 12 01 00
-    zy_xz_yx = vec_sel( zy_xz_yx, vec_splat(col2, 0), select_y );				// zy_xz_yx = 12 20 01 00
-    yz_zx_xy = vec_sel( col0, col1, select_x );									// yz_zx_xy = 10 01 02 03
-    //yz_zx_xy = vec_perm( yz_zx_xy, col2, _VECTORMATH_PERM_BZXX );
-	yz_zx_xy = _mm_shuffle_ps( yz_zx_xy, yz_zx_xy, _MM_SHUFFLE(0,0,2,0) );		// yz_zx_xy = 10 02 10 10
-	yz_zx_xy = vec_sel( yz_zx_xy, vec_splat(col2, 1), select_x );				// yz_zx_xy = 21 02 10 10
-
-    sum = vec_add( zy_xz_yx, yz_zx_xy );
-    diff = vec_sub( zy_xz_yx, yz_zx_xy );
-
-    scale = vec_mul( invSqrt, _mm_set1_ps(0.5f) );
-
-    //res0 = vec_perm( sum, diff, _VECTORMATH_PERM_XZYA );
-	res0 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,1,2,0) );
-	res0 = vec_sel( res0, vec_splat(diff, 0), select_w );  // TODO: Ck
-    //res1 = vec_perm( sum, diff, _VECTORMATH_PERM_ZXXB );
-	res1 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,0,0,2) );
-	res1 = vec_sel( res1, vec_splat(diff, 1), select_w );  // TODO: Ck
-    //res2 = vec_perm( sum, diff, _VECTORMATH_PERM_YXXC );
-	res2 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,0,0,1) );
-	res2 = vec_sel( res2, vec_splat(diff, 2), select_w );  // TODO: Ck
-    res3 = diff;
-    res0 = vec_sel( res0, radicand, select_x );
-    res1 = vec_sel( res1, radicand, select_y );
-    res2 = vec_sel( res2, radicand, select_z );
-    res3 = vec_sel( res3, radicand, select_w );
-    res0 = vec_mul( res0, vec_splat( scale, 0 ) );
-    res1 = vec_mul( res1, vec_splat( scale, 1 ) );
-    res2 = vec_mul( res2, vec_splat( scale, 2 ) );
-    res3 = vec_mul( res3, vec_splat( scale, 3 ) );
-
-    /* determine case and select answer */
-
-    xx = vec_splat( col0, 0 );
-    yy = vec_splat( col1, 1 );
-    zz = vec_splat( col2, 2 );
-    res = vec_sel( res0, res1, vec_cmpgt( yy, xx ) );
-    res = vec_sel( res, res2, vec_and( vec_cmpgt( zz, xx ), vec_cmpgt( zz, yy ) ) );
-    res = vec_sel( res, res3, vec_cmpgt( vec_splat( diagSum, 0 ), _mm_setzero_ps() ) );
-    mVec128 = res;
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 outer( const Vector3 &tfrm0, const Vector3 &tfrm1 )
-{
-    return Matrix3(
-        ( tfrm0 * tfrm1.getX( ) ),
-        ( tfrm0 * tfrm1.getY( ) ),
-        ( tfrm0 * tfrm1.getZ( ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix4 outer( const Vector4 &tfrm0, const Vector4 &tfrm1 )
-{
-    return Matrix4(
-        ( tfrm0 * tfrm1.getX( ) ),
-        ( tfrm0 * tfrm1.getY( ) ),
-        ( tfrm0 * tfrm1.getZ( ) ),
-        ( tfrm0 * tfrm1.getW( ) )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 rowMul( const Vector3 &vec, const Matrix3 & mat )
-{
-    __m128 tmp0, tmp1, mcol0, mcol1, mcol2, res;
-    __m128 xxxx, yyyy, zzzz;
-    tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );
-    tmp1 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );
-    xxxx = vec_splat( vec.get128(), 0 );
-    mcol0 = vec_mergeh( tmp0, mat.getCol1().get128() );
-    //mcol1 = vec_perm( tmp0, mat.getCol1().get128(), _VECTORMATH_PERM_ZBWX );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	mcol1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));
-	mcol1 = vec_sel(mcol1, mat.getCol1().get128(), select_y);
-    //mcol2 = vec_perm( tmp1, mat.getCol1().get128(), _VECTORMATH_PERM_XCYX );
-	mcol2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));
-	mcol2 = vec_sel(mcol2, vec_splat(mat.getCol1().get128(), 2), select_y);
-    yyyy = vec_splat( vec.get128(), 1 );
-    res = vec_mul( mcol0, xxxx );
-    zzzz = vec_splat( vec.get128(), 2 );
-    res = vec_madd( mcol1, yyyy, res );
-    res = vec_madd( mcol2, zzzz, res );
-    return Vector3( res );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 crossMatrix( const Vector3 &vec )
-{
-    __m128 neg, res0, res1, res2;
-    neg = negatef4( vec.get128() );
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};
-    //res0 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_XZBX );
-	res0 = _mm_shuffle_ps( vec.get128(), vec.get128(), _MM_SHUFFLE(0,2,2,0) );
-	res0 = vec_sel(res0, vec_splat(neg, 1), select_z);
-    //res1 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_CXXX );
-	res1 = vec_sel(vec_splat(vec.get128(), 0), vec_splat(neg, 2), select_x);
-    //res2 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_YAXX );
-	res2 = _mm_shuffle_ps( vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,1,1) );
-	res2 = vec_sel(res2, vec_splat(neg, 0), select_y);
-	VM_ATTRIBUTE_ALIGN16 unsigned int filter_x[4] = {0, 0xffffffff, 0xffffffff, 0xffffffff};
-	VM_ATTRIBUTE_ALIGN16 unsigned int filter_y[4] = {0xffffffff, 0, 0xffffffff, 0xffffffff};
-	VM_ATTRIBUTE_ALIGN16 unsigned int filter_z[4] = {0xffffffff, 0xffffffff, 0, 0xffffffff};
-    res0 = vec_and( res0, _mm_load_ps((float *)filter_x ) );
-    res1 = vec_and( res1, _mm_load_ps((float *)filter_y ) );
-    res2 = vec_and( res2, _mm_load_ps((float *)filter_z ) ); // TODO: Use selects?
-    return Matrix3(
-        Vector3( res0 ),
-        Vector3( res1 ),
-        Vector3( res2 )
-    );
-}
-
-VECTORMATH_FORCE_INLINE const Matrix3 crossMatrixMul( const Vector3 &vec, const Matrix3 & mat )
-{
-    return Matrix3( cross( vec, mat.getCol0() ), cross( vec, mat.getCol1() ), cross( vec, mat.getCol2() ) );
-}
-
-} // namespace Aos
-} // namespace Vectormath
-
-#endif
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/+++#ifndef _VECTORMATH_MAT_AOS_CPP_H+#define _VECTORMATH_MAT_AOS_CPP_H++namespace Vectormath {+namespace Aos {++//-----------------------------------------------------------------------------+// Constants+// for shuffles, words are labeled [x,y,z,w] [a,b,c,d]++#define _VECTORMATH_PERM_ZBWX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_B, _VECTORMATH_PERM_W, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_XCYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_C, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_XYAB ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B })+#define _VECTORMATH_PERM_ZWCD ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_W, _VECTORMATH_PERM_C, _VECTORMATH_PERM_D })+#define _VECTORMATH_PERM_XZBX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_B, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_CXXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_YAXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_XAZC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_C })+#define _VECTORMATH_PERM_YXWZ ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X, _VECTORMATH_PERM_W, _VECTORMATH_PERM_Z })+#define _VECTORMATH_PERM_YBWD ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_B, _VECTORMATH_PERM_W, _VECTORMATH_PERM_D })+#define _VECTORMATH_PERM_XYCX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_YCXY ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y })+#define _VECTORMATH_PERM_CXYC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_C, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_C })+#define _VECTORMATH_PERM_ZAYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_BZXX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_B, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X })+#define _VECTORMATH_PERM_XZYA ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A })+#define _VECTORMATH_PERM_ZXXB ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_B })+#define _VECTORMATH_PERM_YXXC ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X, _VECTORMATH_PERM_X, _VECTORMATH_PERM_C })+#define _VECTORMATH_PERM_BBYX ((vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_B, _VECTORMATH_PERM_B, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_X })+#define _VECTORMATH_PI_OVER_2 1.570796327f++//-----------------------------------------------------------------------------+// Definitions++VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Matrix3 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+}++VECTORMATH_FORCE_INLINE Matrix3::Matrix3( float scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+}++VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const floatInVec &scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+}++VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Quat &unitQuat )+{+__m128 xyzw_2, wwww, yzxw, zxyw, yzxw_2, zxyw_2;+__m128 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5;+VM_ATTRIBUTE_ALIGN16 unsigned int sx[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int sz[4] = {0, 0, 0xffffffff, 0};+__m128 select_x = _mm_load_ps((float *)sx);+__m128 select_z = _mm_load_ps((float *)sz);++xyzw_2 = _mm_add_ps( unitQuat.get128(), unitQuat.get128() );+wwww = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,3,3,3) );+yzxw = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,0,2,1) );+zxyw = _mm_shuffle_ps( unitQuat.get128(), unitQuat.get128(), _MM_SHUFFLE(3,1,0,2) );+yzxw_2 = _mm_shuffle_ps( xyzw_2, xyzw_2, _MM_SHUFFLE(3,0,2,1) );+zxyw_2 = _mm_shuffle_ps( xyzw_2, xyzw_2, _MM_SHUFFLE(3,1,0,2) );++tmp0 = _mm_mul_ps( yzxw_2, wwww ); // tmp0 = 2yw, 2zw, 2xw, 2w2+tmp1 = _mm_sub_ps( _mm_set1_ps(1.0f), _mm_mul_ps(yzxw, yzxw_2) ); // tmp1 = 1 - 2y2, 1 - 2z2, 1 - 2x2, 1 - 2w2+tmp2 = _mm_mul_ps( yzxw, xyzw_2 ); // tmp2 = 2xy, 2yz, 2xz, 2w2+tmp0 = _mm_add_ps( _mm_mul_ps(zxyw, xyzw_2), tmp0 ); // tmp0 = 2yw + 2zx, 2zw + 2xy, 2xw + 2yz, 2w2 + 2w2+tmp1 = _mm_sub_ps( tmp1, _mm_mul_ps(zxyw, zxyw_2) ); // tmp1 = 1 - 2y2 - 2z2, 1 - 2z2 - 2x2, 1 - 2x2 - 2y2, 1 - 2w2 - 2w2+tmp2 = _mm_sub_ps( tmp2, _mm_mul_ps(zxyw_2, wwww) ); // tmp2 = 2xy - 2zw, 2yz - 2xw, 2xz - 2yw, 2w2 -2w2++tmp3 = vec_sel( tmp0, tmp1, select_x );+tmp4 = vec_sel( tmp1, tmp2, select_x );+tmp5 = vec_sel( tmp2, tmp0, select_x );+mCol0 = Vector3( vec_sel( tmp3, tmp2, select_z ) );+mCol1 = Vector3( vec_sel( tmp4, tmp0, select_z ) );+mCol2 = Vector3( vec_sel( tmp5, tmp1, select_z ) );+}++VECTORMATH_FORCE_INLINE Matrix3::Matrix3( const Vector3 &_col0, const Vector3 &_col1, const Vector3 &_col2 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol0( const Vector3 &_col0 )+{+mCol0 = _col0;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol1( const Vector3 &_col1 )+{+mCol1 = _col1;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol2( const Vector3 &_col2 )+{+mCol2 = _col2;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setCol( int col, const Vector3 &vec )+{+*(&mCol0 + col) = vec;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setRow( int row, const Vector3 &vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setElem( int col, int row, float val )+{+(*this)[col].setElem(row, val);+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::setElem( int col, int row, const floatInVec &val )+{+Vector3 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Matrix3::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol0( ) const+{+return mCol0;+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol1( ) const+{+return mCol1;+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol2( ) const+{+return mCol2;+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getCol( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::getRow( int row ) const+{+return Vector3( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ) );+}++VECTORMATH_FORCE_INLINE Vector3 & Matrix3::operator []( int col )+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::operator []( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator =( const Matrix3 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 transpose( const Matrix3 & mat )+{+__m128 tmp0, tmp1, res0, res1, res2;+tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );+tmp1 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );+res0 = vec_mergeh( tmp0, mat.getCol1().get128() );+//res1 = vec_perm( tmp0, mat.getCol1().get128(), _VECTORMATH_PERM_ZBWX );+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+res1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));+res1 = vec_sel(res1, mat.getCol1().get128(), select_y);+//res2 = vec_perm( tmp1, mat.getCol1().get128(), _VECTORMATH_PERM_XCYX );+res2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));+res2 = vec_sel(res2, vec_splat(mat.getCol1().get128(), 2), select_y);+return Matrix3(+Vector3( res0 ),+Vector3( res1 ),+Vector3( res2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 inverse( const Matrix3 & mat )+{+__m128 tmp0, tmp1, tmp2, tmp3, tmp4, dot, invdet, inv0, inv1, inv2;+tmp2 = _vmathVfCross( mat.getCol0().get128(), mat.getCol1().get128() );+tmp0 = _vmathVfCross( mat.getCol1().get128(), mat.getCol2().get128() );+tmp1 = _vmathVfCross( mat.getCol2().get128(), mat.getCol0().get128() );+dot = _vmathVfDot3( tmp2, mat.getCol2().get128() );+dot = vec_splat( dot, 0 );+invdet = recipf4( dot );+tmp3 = vec_mergeh( tmp0, tmp2 );+tmp4 = vec_mergel( tmp0, tmp2 );+inv0 = vec_mergeh( tmp3, tmp1 );+//inv1 = vec_perm( tmp3, tmp1, _VECTORMATH_PERM_ZBWX );+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+inv1 = _mm_shuffle_ps( tmp3, tmp3, _MM_SHUFFLE(0,3,2,2));+inv1 = vec_sel(inv1, tmp1, select_y);+//inv2 = vec_perm( tmp4, tmp1, _VECTORMATH_PERM_XCYX );+inv2 = _mm_shuffle_ps( tmp4, tmp4, _MM_SHUFFLE(0,1,1,0));+inv2 = vec_sel(inv2, vec_splat(tmp1, 2), select_y);+inv0 = vec_mul( inv0, invdet );+inv1 = vec_mul( inv1, invdet );+inv2 = vec_mul( inv2, invdet );+return Matrix3(+Vector3( inv0 ),+Vector3( inv1 ),+Vector3( inv2 )+);+}++VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix3 & mat )+{+return dot( mat.getCol2(), cross( mat.getCol0(), mat.getCol1() ) );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator +( const Matrix3 & mat ) const+{+return Matrix3(+( mCol0 + mat.mCol0 ),+( mCol1 + mat.mCol1 ),+( mCol2 + mat.mCol2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator -( const Matrix3 & mat ) const+{+return Matrix3(+( mCol0 - mat.mCol0 ),+( mCol1 - mat.mCol1 ),+( mCol2 - mat.mCol2 )+);+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator +=( const Matrix3 & mat )+{+*this = *this + mat;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator -=( const Matrix3 & mat )+{+*this = *this - mat;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator -( ) const+{+return Matrix3(+( -mCol0 ),+( -mCol1 ),+( -mCol2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 absPerElem( const Matrix3 & mat )+{+return Matrix3(+absPerElem( mat.getCol0() ),+absPerElem( mat.getCol1() ),+absPerElem( mat.getCol2() )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( float scalar ) const+{+return *this * floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( const floatInVec &scalar ) const+{+return Matrix3(+( mCol0 * scalar ),+( mCol1 * scalar ),+( mCol2 * scalar )+);+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( float scalar )+{+return *this *= floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( const floatInVec &scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar, const Matrix3 & mat )+{+return floatInVec(scalar) * mat;+}++VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar, const Matrix3 & mat )+{+return mat * scalar;+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix3::operator *( const Vector3 &vec ) const+{+__m128 res;+__m128 xxxx, yyyy, zzzz;+xxxx = vec_splat( vec.get128(), 0 );+yyyy = vec_splat( vec.get128(), 1 );+zzzz = vec_splat( vec.get128(), 2 );+res = vec_mul( mCol0.get128(), xxxx );+res = vec_madd( mCol1.get128(), yyyy, res );+res = vec_madd( mCol2.get128(), zzzz, res );+return Vector3( res );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::operator *( const Matrix3 & mat ) const+{+return Matrix3(+( *this * mat.mCol0 ),+( *this * mat.mCol1 ),+( *this * mat.mCol2 )+);+}++VECTORMATH_FORCE_INLINE Matrix3 & Matrix3::operator *=( const Matrix3 & mat )+{+*this = *this * mat;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 )+{+return Matrix3(+mulPerElem( mat0.getCol0(), mat1.getCol0() ),+mulPerElem( mat0.getCol1(), mat1.getCol1() ),+mulPerElem( mat0.getCol2(), mat1.getCol2() )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::identity( )+{+return Matrix3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationX( float radians )+{+return rotationX( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationX( const floatInVec &radians )+{+__m128 s, c, res1, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res1 = vec_sel( zero, c, select_y );+res1 = vec_sel( res1, s, select_z );+res2 = vec_sel( zero, negatef4(s), select_y );+res2 = vec_sel( res2, c, select_z );+return Matrix3(+Vector3::xAxis( ),+Vector3( res1 ),+Vector3( res2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationY( float radians )+{+return rotationY( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationY( const floatInVec &radians )+{+__m128 s, c, res0, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, negatef4(s), select_z );+res2 = vec_sel( zero, s, select_x );+res2 = vec_sel( res2, c, select_z );+return Matrix3(+Vector3( res0 ),+Vector3::yAxis( ),+Vector3( res2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZ( float radians )+{+return rotationZ( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZ( const floatInVec &radians )+{+__m128 s, c, res0, res1;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, s, select_y );+res1 = vec_sel( zero, negatef4(s), select_x );+res1 = vec_sel( res1, c, select_y );+return Matrix3(+Vector3( res0 ),+Vector3( res1 ),+Vector3::zAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotationZYX( const Vector3 &radiansXYZ )+{+__m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;+angles = Vector4( radiansXYZ, 0.0f ).get128();+sincosf4( angles, &s, &c );+negS = negatef4( s );+Z0 = vec_mergel( c, s );+Z1 = vec_mergel( negS, c );+VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};+Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );+Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );+Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );+X0 = vec_splat( s, 0 );+X1 = vec_splat( c, 0 );+tmp = vec_mul( Z0, Y1 );+return Matrix3(+Vector3( vec_mul( Z0, Y0 ) ),+Vector3( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),+Vector3( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( float radians, const Vector3 &unitVec )+{+return rotation( floatInVec(radians), unitVec );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( const floatInVec &radians, const Vector3 &unitVec )+{+__m128 axis, s, c, oneMinusC, axisS, negAxisS, xxxx, yyyy, zzzz, tmp0, tmp1, tmp2;+axis = unitVec.get128();+sincosf4( radians.get128(), &s, &c );+xxxx = vec_splat( axis, 0 );+yyyy = vec_splat( axis, 1 );+zzzz = vec_splat( axis, 2 );+oneMinusC = vec_sub( _mm_set1_ps(1.0f), c );+axisS = vec_mul( axis, s );+negAxisS = negatef4( axisS );+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+//tmp0 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_XZBX );+tmp0 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,2,0) );+tmp0 = vec_sel(tmp0, vec_splat(negAxisS, 1), select_z);+//tmp1 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_CXXX );+tmp1 = vec_sel( vec_splat(axisS, 0), vec_splat(negAxisS, 2), select_x );+//tmp2 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_YAXX );+tmp2 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,0,1) );+tmp2 = vec_sel(tmp2, vec_splat(negAxisS, 0), select_y);+tmp0 = vec_sel( tmp0, c, select_x );+tmp1 = vec_sel( tmp1, c, select_y );+tmp2 = vec_sel( tmp2, c, select_z );+return Matrix3(+Vector3( vec_madd( vec_mul( axis, xxxx ), oneMinusC, tmp0 ) ),+Vector3( vec_madd( vec_mul( axis, yyyy ), oneMinusC, tmp1 ) ),+Vector3( vec_madd( vec_mul( axis, zzzz ), oneMinusC, tmp2 ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::rotation( const Quat &unitQuat )+{+return Matrix3( unitQuat );+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix3::scale( const Vector3 &scaleVec )+{+__m128 zero = _mm_setzero_ps();+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+return Matrix3(+Vector3( vec_sel( zero, scaleVec.get128(), select_x ) ),+Vector3( vec_sel( zero, scaleVec.get128(), select_y ) ),+Vector3( vec_sel( zero, scaleVec.get128(), select_z ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 appendScale( const Matrix3 & mat, const Vector3 &scaleVec )+{+return Matrix3(+( mat.getCol0() * scaleVec.getX( ) ),+( mat.getCol1() * scaleVec.getY( ) ),+( mat.getCol2() * scaleVec.getZ( ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 prependScale( const Vector3 &scaleVec, const Matrix3 & mat )+{+return Matrix3(+mulPerElem( mat.getCol0(), scaleVec ),+mulPerElem( mat.getCol1(), scaleVec ),+mulPerElem( mat.getCol2(), scaleVec )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 )+{+return Matrix3(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, const boolInVec &select1 )+{+return Matrix3(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat )+{+print( mat.getRow( 0 ) );+print( mat.getRow( 1 ) );+print( mat.getRow( 2 ) );+}++VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat, const char * name )+{+printf("%s:\n", name);+print( mat );+}++#endif++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Matrix4 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+mCol3 = mat.mCol3;+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( float scalar )+{+mCol0 = Vector4( scalar );+mCol1 = Vector4( scalar );+mCol2 = Vector4( scalar );+mCol3 = Vector4( scalar );+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const floatInVec &scalar )+{+mCol0 = Vector4( scalar );+mCol1 = Vector4( scalar );+mCol2 = Vector4( scalar );+mCol3 = Vector4( scalar );+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Transform3 & mat )+{+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( mat.getCol3(), 1.0f );+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Vector4 &_col0, const Vector4 &_col1, const Vector4 &_col2, const Vector4 &_col3 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+mCol3 = _col3;+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Matrix3 & mat, const Vector3 &translateVec )+{+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( translateVec, 1.0f );+}++VECTORMATH_FORCE_INLINE Matrix4::Matrix4( const Quat &unitQuat, const Vector3 &translateVec )+{+Matrix3 mat;+mat = Matrix3( unitQuat );+mCol0 = Vector4( mat.getCol0(), 0.0f );+mCol1 = Vector4( mat.getCol1(), 0.0f );+mCol2 = Vector4( mat.getCol2(), 0.0f );+mCol3 = Vector4( translateVec, 1.0f );+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol0( const Vector4 &_col0 )+{+mCol0 = _col0;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol1( const Vector4 &_col1 )+{+mCol1 = _col1;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol2( const Vector4 &_col2 )+{+mCol2 = _col2;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol3( const Vector4 &_col3 )+{+mCol3 = _col3;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setCol( int col, const Vector4 &vec )+{+*(&mCol0 + col) = vec;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setRow( int row, const Vector4 &vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+mCol3.setElem( row, vec.getElem( 3 ) );+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setElem( int col, int row, float val )+{+(*this)[col].setElem(row, val);+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setElem( int col, int row, const floatInVec &val )+{+Vector4 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Matrix4::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol0( ) const+{+return mCol0;+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol1( ) const+{+return mCol1;+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol2( ) const+{+return mCol2;+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol3( ) const+{+return mCol3;+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getCol( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::getRow( int row ) const+{+return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );+}++VECTORMATH_FORCE_INLINE Vector4 & Matrix4::operator []( int col )+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator []( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator =( const Matrix4 & mat )+{+mCol0 = mat.mCol0;+mCol1 = mat.mCol1;+mCol2 = mat.mCol2;+mCol3 = mat.mCol3;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix4 transpose( const Matrix4 & mat )+{+__m128 tmp0, tmp1, tmp2, tmp3, res0, res1, res2, res3;+tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );+tmp1 = vec_mergeh( mat.getCol1().get128(), mat.getCol3().get128() );+tmp2 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );+tmp3 = vec_mergel( mat.getCol1().get128(), mat.getCol3().get128() );+res0 = vec_mergeh( tmp0, tmp1 );+res1 = vec_mergel( tmp0, tmp1 );+res2 = vec_mergeh( tmp2, tmp3 );+res3 = vec_mergel( tmp2, tmp3 );+return Matrix4(+Vector4( res0 ),+Vector4( res1 ),+Vector4( res2 ),+Vector4( res3 )+);+}++// TODO: Tidy+static VM_ATTRIBUTE_ALIGN16 const unsigned int _vmathPNPN[4] = {0x00000000, 0x80000000, 0x00000000, 0x80000000};+static VM_ATTRIBUTE_ALIGN16 const unsigned int _vmathNPNP[4] = {0x80000000, 0x00000000, 0x80000000, 0x00000000};+static VM_ATTRIBUTE_ALIGN16 const float _vmathZERONE[4] = {1.0f, 0.0f, 0.0f, 1.0f};++VECTORMATH_FORCE_INLINE const Matrix4 inverse( const Matrix4 & mat )+{+__m128 Va,Vb,Vc;+__m128 r1,r2,r3,tt,tt2;+__m128 sum,Det,RDet;+__m128 trns0,trns1,trns2,trns3;++__m128 _L1 = mat.getCol0().get128();+__m128 _L2 = mat.getCol1().get128();+__m128 _L3 = mat.getCol2().get128();+__m128 _L4 = mat.getCol3().get128();+// Calculating the minterms for the first line.++// _mm_ror_ps is just a macro using _mm_shuffle_ps().+tt = _L4; tt2 = _mm_ror_ps(_L3,1);+Vc = _mm_mul_ps(tt2,_mm_ror_ps(tt,0)); // V3'dot V4+Va = _mm_mul_ps(tt2,_mm_ror_ps(tt,2)); // V3'dot V4"+Vb = _mm_mul_ps(tt2,_mm_ror_ps(tt,3)); // V3' dot V4^++r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2)); // V3" dot V4^ - V3^ dot V4"+r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0)); // V3^ dot V4' - V3' dot V4^+r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1)); // V3' dot V4" - V3" dot V4'++tt = _L2;+Va = _mm_ror_ps(tt,1); sum = _mm_mul_ps(Va,r1);+Vb = _mm_ror_ps(tt,2); sum = _mm_add_ps(sum,_mm_mul_ps(Vb,r2));+Vc = _mm_ror_ps(tt,3); sum = _mm_add_ps(sum,_mm_mul_ps(Vc,r3));++// Calculating the determinant.+Det = _mm_mul_ps(sum,_L1);+Det = _mm_add_ps(Det,_mm_movehl_ps(Det,Det));++const __m128 Sign_PNPN = _mm_load_ps((float *)_vmathPNPN);+const __m128 Sign_NPNP = _mm_load_ps((float *)_vmathNPNP);++__m128 mtL1 = _mm_xor_ps(sum,Sign_PNPN);++// Calculating the minterms of the second line (using previous results).+tt = _mm_ror_ps(_L1,1); sum = _mm_mul_ps(tt,r1);+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));+__m128 mtL2 = _mm_xor_ps(sum,Sign_NPNP);++// Testing the determinant.+Det = _mm_sub_ss(Det,_mm_shuffle_ps(Det,Det,1));++// Calculating the minterms of the third line.+tt = _mm_ror_ps(_L1,1);+Va = _mm_mul_ps(tt,Vb); // V1' dot V2"+Vb = _mm_mul_ps(tt,Vc); // V1' dot V2^+Vc = _mm_mul_ps(tt,_L2); // V1' dot V2++r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2)); // V1" dot V2^ - V1^ dot V2"+r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0)); // V1^ dot V2' - V1' dot V2^+r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1)); // V1' dot V2" - V1" dot V2'++tt = _mm_ror_ps(_L4,1); sum = _mm_mul_ps(tt,r1);+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));+__m128 mtL3 = _mm_xor_ps(sum,Sign_PNPN);++// Dividing is FASTER than rcp_nr! (Because rcp_nr causes many register-memory RWs).+RDet = _mm_div_ss(_mm_load_ss((float *)&_vmathZERONE), Det); // TODO: just 1.0f?+RDet = _mm_shuffle_ps(RDet,RDet,0x00);++// Devide the first 12 minterms with the determinant.+mtL1 = _mm_mul_ps(mtL1, RDet);+mtL2 = _mm_mul_ps(mtL2, RDet);+mtL3 = _mm_mul_ps(mtL3, RDet);++// Calculate the minterms of the forth line and devide by the determinant.+tt = _mm_ror_ps(_L3,1); sum = _mm_mul_ps(tt,r1);+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));+__m128 mtL4 = _mm_xor_ps(sum,Sign_NPNP);+mtL4 = _mm_mul_ps(mtL4, RDet);++// Now we just have to transpose the minterms matrix.+trns0 = _mm_unpacklo_ps(mtL1,mtL2);+trns1 = _mm_unpacklo_ps(mtL3,mtL4);+trns2 = _mm_unpackhi_ps(mtL1,mtL2);+trns3 = _mm_unpackhi_ps(mtL3,mtL4);+_L1 = _mm_movelh_ps(trns0,trns1);+_L2 = _mm_movehl_ps(trns1,trns0);+_L3 = _mm_movelh_ps(trns2,trns3);+_L4 = _mm_movehl_ps(trns3,trns2);++return Matrix4(+Vector4( _L1 ),+Vector4( _L2 ),+Vector4( _L3 ),+Vector4( _L4 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 affineInverse( const Matrix4 & mat )+{+Transform3 affineMat;+affineMat.setCol0( mat.getCol0().getXYZ( ) );+affineMat.setCol1( mat.getCol1().getXYZ( ) );+affineMat.setCol2( mat.getCol2().getXYZ( ) );+affineMat.setCol3( mat.getCol3().getXYZ( ) );+return Matrix4( inverse( affineMat ) );+}++VECTORMATH_FORCE_INLINE const Matrix4 orthoInverse( const Matrix4 & mat )+{+Transform3 affineMat;+affineMat.setCol0( mat.getCol0().getXYZ( ) );+affineMat.setCol1( mat.getCol1().getXYZ( ) );+affineMat.setCol2( mat.getCol2().getXYZ( ) );+affineMat.setCol3( mat.getCol3().getXYZ( ) );+return Matrix4( orthoInverse( affineMat ) );+}++VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix4 & mat )+{+__m128 Va,Vb,Vc;+__m128 r1,r2,r3,tt,tt2;+__m128 sum,Det;++__m128 _L1 = mat.getCol0().get128();+__m128 _L2 = mat.getCol1().get128();+__m128 _L3 = mat.getCol2().get128();+__m128 _L4 = mat.getCol3().get128();+// Calculating the minterms for the first line.++// _mm_ror_ps is just a macro using _mm_shuffle_ps().+tt = _L4; tt2 = _mm_ror_ps(_L3,1);+Vc = _mm_mul_ps(tt2,_mm_ror_ps(tt,0)); // V3' dot V4+Va = _mm_mul_ps(tt2,_mm_ror_ps(tt,2)); // V3' dot V4"+Vb = _mm_mul_ps(tt2,_mm_ror_ps(tt,3)); // V3' dot V4^++r1 = _mm_sub_ps(_mm_ror_ps(Va,1),_mm_ror_ps(Vc,2)); // V3" dot V4^ - V3^ dot V4"+r2 = _mm_sub_ps(_mm_ror_ps(Vb,2),_mm_ror_ps(Vb,0)); // V3^ dot V4' - V3' dot V4^+r3 = _mm_sub_ps(_mm_ror_ps(Va,0),_mm_ror_ps(Vc,1)); // V3' dot V4" - V3" dot V4'++tt = _L2;+Va = _mm_ror_ps(tt,1); sum = _mm_mul_ps(Va,r1);+Vb = _mm_ror_ps(tt,2); sum = _mm_add_ps(sum,_mm_mul_ps(Vb,r2));+Vc = _mm_ror_ps(tt,3); sum = _mm_add_ps(sum,_mm_mul_ps(Vc,r3));++// Calculating the determinant.+Det = _mm_mul_ps(sum,_L1);+Det = _mm_add_ps(Det,_mm_movehl_ps(Det,Det));++// Calculating the minterms of the second line (using previous results).+tt = _mm_ror_ps(_L1,1); sum = _mm_mul_ps(tt,r1);+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r2));+tt = _mm_ror_ps(tt,1); sum = _mm_add_ps(sum,_mm_mul_ps(tt,r3));++// Testing the determinant.+Det = _mm_sub_ss(Det,_mm_shuffle_ps(Det,Det,1));+return floatInVec(Det, 0);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator +( const Matrix4 & mat ) const+{+return Matrix4(+( mCol0 + mat.mCol0 ),+( mCol1 + mat.mCol1 ),+( mCol2 + mat.mCol2 ),+( mCol3 + mat.mCol3 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator -( const Matrix4 & mat ) const+{+return Matrix4(+( mCol0 - mat.mCol0 ),+( mCol1 - mat.mCol1 ),+( mCol2 - mat.mCol2 ),+( mCol3 - mat.mCol3 )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator +=( const Matrix4 & mat )+{+*this = *this + mat;+return *this;+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator -=( const Matrix4 & mat )+{+*this = *this - mat;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator -( ) const+{+return Matrix4(+( -mCol0 ),+( -mCol1 ),+( -mCol2 ),+( -mCol3 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 absPerElem( const Matrix4 & mat )+{+return Matrix4(+absPerElem( mat.getCol0() ),+absPerElem( mat.getCol1() ),+absPerElem( mat.getCol2() ),+absPerElem( mat.getCol3() )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( float scalar ) const+{+return *this * floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const floatInVec &scalar ) const+{+return Matrix4(+( mCol0 * scalar ),+( mCol1 * scalar ),+( mCol2 * scalar ),+( mCol3 * scalar )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( float scalar )+{+return *this *= floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const floatInVec &scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar, const Matrix4 & mat )+{+return floatInVec(scalar) * mat;+}++VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar, const Matrix4 & mat )+{+return mat * scalar;+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Vector4 &vec ) const+{+return Vector4(+_mm_add_ps(+_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(1,1,1,1)))),+_mm_add_ps(_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(2,2,2,2))), _mm_mul_ps(mCol3.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(3,3,3,3)))))+);+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Vector3 &vec ) const+{+return Vector4(+_mm_add_ps(+_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(1,1,1,1)))),+_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(vec.get128(), vec.get128(), _MM_SHUFFLE(2,2,2,2))))+);+}++VECTORMATH_FORCE_INLINE const Vector4 Matrix4::operator *( const Point3 &pnt ) const+{+return Vector4(+_mm_add_ps(+_mm_add_ps(_mm_mul_ps(mCol0.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(0,0,0,0))), _mm_mul_ps(mCol1.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(1,1,1,1)))),+_mm_add_ps(_mm_mul_ps(mCol2.get128(), _mm_shuffle_ps(pnt.get128(), pnt.get128(), _MM_SHUFFLE(2,2,2,2))), mCol3.get128()))+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const Matrix4 & mat ) const+{+return Matrix4(+( *this * mat.mCol0 ),+( *this * mat.mCol1 ),+( *this * mat.mCol2 ),+( *this * mat.mCol3 )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const Matrix4 & mat )+{+*this = *this * mat;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::operator *( const Transform3 & tfrm ) const+{+return Matrix4(+( *this * tfrm.getCol0() ),+( *this * tfrm.getCol1() ),+( *this * tfrm.getCol2() ),+( *this * Point3( tfrm.getCol3() ) )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::operator *=( const Transform3 & tfrm )+{+*this = *this * tfrm;+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 )+{+return Matrix4(+mulPerElem( mat0.getCol0(), mat1.getCol0() ),+mulPerElem( mat0.getCol1(), mat1.getCol1() ),+mulPerElem( mat0.getCol2(), mat1.getCol2() ),+mulPerElem( mat0.getCol3(), mat1.getCol3() )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::identity( )+{+return Matrix4(+Vector4::xAxis( ),+Vector4::yAxis( ),+Vector4::zAxis( ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setUpper3x3( const Matrix3 & mat3 )+{+mCol0.setXYZ( mat3.getCol0() );+mCol1.setXYZ( mat3.getCol1() );+mCol2.setXYZ( mat3.getCol2() );+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 Matrix4::getUpper3x3( ) const+{+return Matrix3(+mCol0.getXYZ( ),+mCol1.getXYZ( ),+mCol2.getXYZ( )+);+}++VECTORMATH_FORCE_INLINE Matrix4 & Matrix4::setTranslation( const Vector3 &translateVec )+{+mCol3.setXYZ( translateVec );+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Matrix4::getTranslation( ) const+{+return mCol3.getXYZ( );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationX( float radians )+{+return rotationX( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationX( const floatInVec &radians )+{+__m128 s, c, res1, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res1 = vec_sel( zero, c, select_y );+res1 = vec_sel( res1, s, select_z );+res2 = vec_sel( zero, negatef4(s), select_y );+res2 = vec_sel( res2, c, select_z );+return Matrix4(+Vector4::xAxis( ),+Vector4( res1 ),+Vector4( res2 ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationY( float radians )+{+return rotationY( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationY( const floatInVec &radians )+{+__m128 s, c, res0, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, negatef4(s), select_z );+res2 = vec_sel( zero, s, select_x );+res2 = vec_sel( res2, c, select_z );+return Matrix4(+Vector4( res0 ),+Vector4::yAxis( ),+Vector4( res2 ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZ( float radians )+{+return rotationZ( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZ( const floatInVec &radians )+{+__m128 s, c, res0, res1;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, s, select_y );+res1 = vec_sel( zero, negatef4(s), select_x );+res1 = vec_sel( res1, c, select_y );+return Matrix4(+Vector4( res0 ),+Vector4( res1 ),+Vector4::zAxis( ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotationZYX( const Vector3 &radiansXYZ )+{+__m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;+angles = Vector4( radiansXYZ, 0.0f ).get128();+sincosf4( angles, &s, &c );+negS = negatef4( s );+Z0 = vec_mergel( c, s );+Z1 = vec_mergel( negS, c );+VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};+Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );+Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );+Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );+X0 = vec_splat( s, 0 );+X1 = vec_splat( c, 0 );+tmp = vec_mul( Z0, Y1 );+return Matrix4(+Vector4( vec_mul( Z0, Y0 ) ),+Vector4( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),+Vector4( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( float radians, const Vector3 &unitVec )+{+return rotation( floatInVec(radians), unitVec );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( const floatInVec &radians, const Vector3 &unitVec )+{+__m128 axis, s, c, oneMinusC, axisS, negAxisS, xxxx, yyyy, zzzz, tmp0, tmp1, tmp2;+axis = unitVec.get128();+sincosf4( radians.get128(), &s, &c );+xxxx = vec_splat( axis, 0 );+yyyy = vec_splat( axis, 1 );+zzzz = vec_splat( axis, 2 );+oneMinusC = vec_sub( _mm_set1_ps(1.0f), c );+axisS = vec_mul( axis, s );+negAxisS = negatef4( axisS );+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+//tmp0 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_XZBX );+tmp0 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,2,0) );+tmp0 = vec_sel(tmp0, vec_splat(negAxisS, 1), select_z);+//tmp1 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_CXXX );+tmp1 = vec_sel( vec_splat(axisS, 0), vec_splat(negAxisS, 2), select_x );+//tmp2 = vec_perm( axisS, negAxisS, _VECTORMATH_PERM_YAXX );+tmp2 = _mm_shuffle_ps( axisS, axisS, _MM_SHUFFLE(0,0,0,1) );+tmp2 = vec_sel(tmp2, vec_splat(negAxisS, 0), select_y);+tmp0 = vec_sel( tmp0, c, select_x );+tmp1 = vec_sel( tmp1, c, select_y );+tmp2 = vec_sel( tmp2, c, select_z );+VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};+axis = vec_and( axis, _mm_load_ps( (float *)select_xyz ) );+tmp0 = vec_and( tmp0, _mm_load_ps( (float *)select_xyz ) );+tmp1 = vec_and( tmp1, _mm_load_ps( (float *)select_xyz ) );+tmp2 = vec_and( tmp2, _mm_load_ps( (float *)select_xyz ) );+return Matrix4(+Vector4( vec_madd( vec_mul( axis, xxxx ), oneMinusC, tmp0 ) ),+Vector4( vec_madd( vec_mul( axis, yyyy ), oneMinusC, tmp1 ) ),+Vector4( vec_madd( vec_mul( axis, zzzz ), oneMinusC, tmp2 ) ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::rotation( const Quat &unitQuat )+{+return Matrix4( Transform3::rotation( unitQuat ) );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::scale( const Vector3 &scaleVec )+{+__m128 zero = _mm_setzero_ps();+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+return Matrix4(+Vector4( vec_sel( zero, scaleVec.get128(), select_x ) ),+Vector4( vec_sel( zero, scaleVec.get128(), select_y ) ),+Vector4( vec_sel( zero, scaleVec.get128(), select_z ) ),+Vector4::wAxis( )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 appendScale( const Matrix4 & mat, const Vector3 &scaleVec )+{+return Matrix4(+( mat.getCol0() * scaleVec.getX( ) ),+( mat.getCol1() * scaleVec.getY( ) ),+( mat.getCol2() * scaleVec.getZ( ) ),+mat.getCol3()+);+}++VECTORMATH_FORCE_INLINE const Matrix4 prependScale( const Vector3 &scaleVec, const Matrix4 & mat )+{+Vector4 scale4;+scale4 = Vector4( scaleVec, 1.0f );+return Matrix4(+mulPerElem( mat.getCol0(), scale4 ),+mulPerElem( mat.getCol1(), scale4 ),+mulPerElem( mat.getCol2(), scale4 ),+mulPerElem( mat.getCol3(), scale4 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::translation( const Vector3 &translateVec )+{+return Matrix4(+Vector4::xAxis( ),+Vector4::yAxis( ),+Vector4::zAxis( ),+Vector4( translateVec, 1.0f )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::lookAt( const Point3 &eyePos, const Point3 &lookAtPos, const Vector3 &upVec )+{+Matrix4 m4EyeFrame;+Vector3 v3X, v3Y, v3Z;+v3Y = normalize( upVec );+v3Z = normalize( ( eyePos - lookAtPos ) );+v3X = normalize( cross( v3Y, v3Z ) );+v3Y = cross( v3Z, v3X );+m4EyeFrame = Matrix4( Vector4( v3X ), Vector4( v3Y ), Vector4( v3Z ), Vector4( eyePos ) );+return orthoInverse( m4EyeFrame );+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::perspective( float fovyRadians, float aspect, float zNear, float zFar )+{+float f, rangeInv;+__m128 zero, col0, col1, col2, col3;+union { __m128 v; float s[4]; } tmp;+f = tanf( _VECTORMATH_PI_OVER_2 - fovyRadians * 0.5f );+rangeInv = 1.0f / ( zNear - zFar );+zero = _mm_setzero_ps();+tmp.v = zero;+tmp.s[0] = f / aspect;+col0 = tmp.v;+tmp.v = zero;+tmp.s[1] = f;+col1 = tmp.v;+tmp.v = zero;+tmp.s[2] = ( zNear + zFar ) * rangeInv;+tmp.s[3] = -1.0f;+col2 = tmp.v;+tmp.v = zero;+tmp.s[2] = zNear * zFar * rangeInv * 2.0f;+col3 = tmp.v;+return Matrix4(+Vector4( col0 ),+Vector4( col1 ),+Vector4( col2 ),+Vector4( col3 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::frustum( float left, float right, float bottom, float top, float zNear, float zFar )+{+/* function implementation based on code from STIDC SDK: */+/* -------------------------------------------------------------- */+/* PLEASE DO NOT MODIFY THIS SECTION */+/* This prolog section is automatically generated. */+/* */+/* (C)Copyright */+/* Sony Computer Entertainment, Inc., */+/* Toshiba Corporation, */+/* International Business Machines Corporation, */+/* 2001,2002. */+/* S/T/I Confidential Information */+/* -------------------------------------------------------------- */+__m128 lbf, rtn;+__m128 diff, sum, inv_diff;+__m128 diagonal, column, near2;+__m128 zero = _mm_setzero_ps();+union { __m128 v; float s[4]; } l, f, r, n, b, t; // TODO: Union?+l.s[0] = left;+f.s[0] = zFar;+r.s[0] = right;+n.s[0] = zNear;+b.s[0] = bottom;+t.s[0] = top;+lbf = vec_mergeh( l.v, f.v );+rtn = vec_mergeh( r.v, n.v );+lbf = vec_mergeh( lbf, b.v );+rtn = vec_mergeh( rtn, t.v );+diff = vec_sub( rtn, lbf );+sum = vec_add( rtn, lbf );+inv_diff = recipf4( diff );+near2 = vec_splat( n.v, 0 );+near2 = vec_add( near2, near2 );+diagonal = vec_mul( near2, inv_diff );+column = vec_mul( sum, inv_diff );+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};+return Matrix4(+Vector4( vec_sel( zero, diagonal, select_x ) ),+Vector4( vec_sel( zero, diagonal, select_y ) ),+Vector4( vec_sel( column, _mm_set1_ps(-1.0f), select_w ) ),+Vector4( vec_sel( zero, vec_mul( diagonal, vec_splat( f.v, 0 ) ), select_z ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 Matrix4::orthographic( float left, float right, float bottom, float top, float zNear, float zFar )+{+/* function implementation based on code from STIDC SDK: */+/* -------------------------------------------------------------- */+/* PLEASE DO NOT MODIFY THIS SECTION */+/* This prolog section is automatically generated. */+/* */+/* (C)Copyright */+/* Sony Computer Entertainment, Inc., */+/* Toshiba Corporation, */+/* International Business Machines Corporation, */+/* 2001,2002. */+/* S/T/I Confidential Information */+/* -------------------------------------------------------------- */+__m128 lbf, rtn;+__m128 diff, sum, inv_diff, neg_inv_diff;+__m128 diagonal, column;+__m128 zero = _mm_setzero_ps();+union { __m128 v; float s[4]; } l, f, r, n, b, t;+l.s[0] = left;+f.s[0] = zFar;+r.s[0] = right;+n.s[0] = zNear;+b.s[0] = bottom;+t.s[0] = top;+lbf = vec_mergeh( l.v, f.v );+rtn = vec_mergeh( r.v, n.v );+lbf = vec_mergeh( lbf, b.v );+rtn = vec_mergeh( rtn, t.v );+diff = vec_sub( rtn, lbf );+sum = vec_add( rtn, lbf );+inv_diff = recipf4( diff );+neg_inv_diff = negatef4( inv_diff );+diagonal = vec_add( inv_diff, inv_diff );+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};+column = vec_mul( sum, vec_sel( neg_inv_diff, inv_diff, select_z ) ); // TODO: no madds with zero+return Matrix4(+Vector4( vec_sel( zero, diagonal, select_x ) ),+Vector4( vec_sel( zero, diagonal, select_y ) ),+Vector4( vec_sel( zero, diagonal, select_z ) ),+Vector4( vec_sel( column, _mm_set1_ps(1.0f), select_w ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 )+{+return Matrix4(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 ),+select( mat0.getCol3(), mat1.getCol3(), select1 )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, const boolInVec &select1 )+{+return Matrix4(+select( mat0.getCol0(), mat1.getCol0(), select1 ),+select( mat0.getCol1(), mat1.getCol1(), select1 ),+select( mat0.getCol2(), mat1.getCol2(), select1 ),+select( mat0.getCol3(), mat1.getCol3(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat )+{+print( mat.getRow( 0 ) );+print( mat.getRow( 1 ) );+print( mat.getRow( 2 ) );+print( mat.getRow( 3 ) );+}++VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat, const char * name )+{+printf("%s:\n", name);+print( mat );+}++#endif++VECTORMATH_FORCE_INLINE Transform3::Transform3( const Transform3 & tfrm )+{+mCol0 = tfrm.mCol0;+mCol1 = tfrm.mCol1;+mCol2 = tfrm.mCol2;+mCol3 = tfrm.mCol3;+}++VECTORMATH_FORCE_INLINE Transform3::Transform3( float scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+mCol3 = Vector3( scalar );+}++VECTORMATH_FORCE_INLINE Transform3::Transform3( const floatInVec &scalar )+{+mCol0 = Vector3( scalar );+mCol1 = Vector3( scalar );+mCol2 = Vector3( scalar );+mCol3 = Vector3( scalar );+}++VECTORMATH_FORCE_INLINE Transform3::Transform3( const Vector3 &_col0, const Vector3 &_col1, const Vector3 &_col2, const Vector3 &_col3 )+{+mCol0 = _col0;+mCol1 = _col1;+mCol2 = _col2;+mCol3 = _col3;+}++VECTORMATH_FORCE_INLINE Transform3::Transform3( const Matrix3 & tfrm, const Vector3 &translateVec )+{+this->setUpper3x3( tfrm );+this->setTranslation( translateVec );+}++VECTORMATH_FORCE_INLINE Transform3::Transform3( const Quat &unitQuat, const Vector3 &translateVec )+{+this->setUpper3x3( Matrix3( unitQuat ) );+this->setTranslation( translateVec );+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol0( const Vector3 &_col0 )+{+mCol0 = _col0;+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol1( const Vector3 &_col1 )+{+mCol1 = _col1;+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol2( const Vector3 &_col2 )+{+mCol2 = _col2;+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol3( const Vector3 &_col3 )+{+mCol3 = _col3;+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setCol( int col, const Vector3 &vec )+{+*(&mCol0 + col) = vec;+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setRow( int row, const Vector4 &vec )+{+mCol0.setElem( row, vec.getElem( 0 ) );+mCol1.setElem( row, vec.getElem( 1 ) );+mCol2.setElem( row, vec.getElem( 2 ) );+mCol3.setElem( row, vec.getElem( 3 ) );+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setElem( int col, int row, float val )+{+(*this)[col].setElem(row, val);+return *this;+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setElem( int col, int row, const floatInVec &val )+{+Vector3 tmpV3_0;+tmpV3_0 = this->getCol( col );+tmpV3_0.setElem( row, val );+this->setCol( col, tmpV3_0 );+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Transform3::getElem( int col, int row ) const+{+return this->getCol( col ).getElem( row );+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol0( ) const+{+return mCol0;+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol1( ) const+{+return mCol1;+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol2( ) const+{+return mCol2;+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol3( ) const+{+return mCol3;+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getCol( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector4 Transform3::getRow( int row ) const+{+return Vector4( mCol0.getElem( row ), mCol1.getElem( row ), mCol2.getElem( row ), mCol3.getElem( row ) );+}++VECTORMATH_FORCE_INLINE Vector3 & Transform3::operator []( int col )+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::operator []( int col ) const+{+return *(&mCol0 + col);+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::operator =( const Transform3 & tfrm )+{+mCol0 = tfrm.mCol0;+mCol1 = tfrm.mCol1;+mCol2 = tfrm.mCol2;+mCol3 = tfrm.mCol3;+return *this;+}++VECTORMATH_FORCE_INLINE const Transform3 inverse( const Transform3 & tfrm )+{+__m128 inv0, inv1, inv2, inv3;+__m128 tmp0, tmp1, tmp2, tmp3, tmp4, dot, invdet;+__m128 xxxx, yyyy, zzzz;+tmp2 = _vmathVfCross( tfrm.getCol0().get128(), tfrm.getCol1().get128() );+tmp0 = _vmathVfCross( tfrm.getCol1().get128(), tfrm.getCol2().get128() );+tmp1 = _vmathVfCross( tfrm.getCol2().get128(), tfrm.getCol0().get128() );+inv3 = negatef4( tfrm.getCol3().get128() );+dot = _vmathVfDot3( tmp2, tfrm.getCol2().get128() );+dot = vec_splat( dot, 0 );+invdet = recipf4( dot );+tmp3 = vec_mergeh( tmp0, tmp2 );+tmp4 = vec_mergel( tmp0, tmp2 );+inv0 = vec_mergeh( tmp3, tmp1 );+xxxx = vec_splat( inv3, 0 );+//inv1 = vec_perm( tmp3, tmp1, _VECTORMATH_PERM_ZBWX );+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+inv1 = _mm_shuffle_ps( tmp3, tmp3, _MM_SHUFFLE(0,3,2,2));+inv1 = vec_sel(inv1, tmp1, select_y);+//inv2 = vec_perm( tmp4, tmp1, _VECTORMATH_PERM_XCYX );+inv2 = _mm_shuffle_ps( tmp4, tmp4, _MM_SHUFFLE(0,1,1,0));+inv2 = vec_sel(inv2, vec_splat(tmp1, 2), select_y);+yyyy = vec_splat( inv3, 1 );+zzzz = vec_splat( inv3, 2 );+inv3 = vec_mul( inv0, xxxx );+inv3 = vec_madd( inv1, yyyy, inv3 );+inv3 = vec_madd( inv2, zzzz, inv3 );+inv0 = vec_mul( inv0, invdet );+inv1 = vec_mul( inv1, invdet );+inv2 = vec_mul( inv2, invdet );+inv3 = vec_mul( inv3, invdet );+return Transform3(+Vector3( inv0 ),+Vector3( inv1 ),+Vector3( inv2 ),+Vector3( inv3 )+);+}++VECTORMATH_FORCE_INLINE const Transform3 orthoInverse( const Transform3 & tfrm )+{+__m128 inv0, inv1, inv2, inv3;+__m128 tmp0, tmp1;+__m128 xxxx, yyyy, zzzz;+tmp0 = vec_mergeh( tfrm.getCol0().get128(), tfrm.getCol2().get128() );+tmp1 = vec_mergel( tfrm.getCol0().get128(), tfrm.getCol2().get128() );+inv3 = negatef4( tfrm.getCol3().get128() );+inv0 = vec_mergeh( tmp0, tfrm.getCol1().get128() );+xxxx = vec_splat( inv3, 0 );+//inv1 = vec_perm( tmp0, tfrm.getCol1().get128(), _VECTORMATH_PERM_ZBWX );+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+inv1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));+inv1 = vec_sel(inv1, tfrm.getCol1().get128(), select_y);+//inv2 = vec_perm( tmp1, tfrm.getCol1().get128(), _VECTORMATH_PERM_XCYX );+inv2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));+inv2 = vec_sel(inv2, vec_splat(tfrm.getCol1().get128(), 2), select_y);+yyyy = vec_splat( inv3, 1 );+zzzz = vec_splat( inv3, 2 );+inv3 = vec_mul( inv0, xxxx );+inv3 = vec_madd( inv1, yyyy, inv3 );+inv3 = vec_madd( inv2, zzzz, inv3 );+return Transform3(+Vector3( inv0 ),+Vector3( inv1 ),+Vector3( inv2 ),+Vector3( inv3 )+);+}++VECTORMATH_FORCE_INLINE const Transform3 absPerElem( const Transform3 & tfrm )+{+return Transform3(+absPerElem( tfrm.getCol0() ),+absPerElem( tfrm.getCol1() ),+absPerElem( tfrm.getCol2() ),+absPerElem( tfrm.getCol3() )+);+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::operator *( const Vector3 &vec ) const+{+__m128 res;+__m128 xxxx, yyyy, zzzz;+xxxx = vec_splat( vec.get128(), 0 );+yyyy = vec_splat( vec.get128(), 1 );+zzzz = vec_splat( vec.get128(), 2 );+res = vec_mul( mCol0.get128(), xxxx );+res = vec_madd( mCol1.get128(), yyyy, res );+res = vec_madd( mCol2.get128(), zzzz, res );+return Vector3( res );+}++VECTORMATH_FORCE_INLINE const Point3 Transform3::operator *( const Point3 &pnt ) const+{+__m128 tmp0, tmp1, res;+__m128 xxxx, yyyy, zzzz;+xxxx = vec_splat( pnt.get128(), 0 );+yyyy = vec_splat( pnt.get128(), 1 );+zzzz = vec_splat( pnt.get128(), 2 );+tmp0 = vec_mul( mCol0.get128(), xxxx );+tmp1 = vec_mul( mCol1.get128(), yyyy );+tmp0 = vec_madd( mCol2.get128(), zzzz, tmp0 );+tmp1 = vec_add( mCol3.get128(), tmp1 );+res = vec_add( tmp0, tmp1 );+return Point3( res );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::operator *( const Transform3 & tfrm ) const+{+return Transform3(+( *this * tfrm.mCol0 ),+( *this * tfrm.mCol1 ),+( *this * tfrm.mCol2 ),+Vector3( ( *this * Point3( tfrm.mCol3 ) ) )+);+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::operator *=( const Transform3 & tfrm )+{+*this = *this * tfrm;+return *this;+}++VECTORMATH_FORCE_INLINE const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 )+{+return Transform3(+mulPerElem( tfrm0.getCol0(), tfrm1.getCol0() ),+mulPerElem( tfrm0.getCol1(), tfrm1.getCol1() ),+mulPerElem( tfrm0.getCol2(), tfrm1.getCol2() ),+mulPerElem( tfrm0.getCol3(), tfrm1.getCol3() )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::identity( )+{+return Transform3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( ),+Vector3( 0.0f )+);+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setUpper3x3( const Matrix3 & tfrm )+{+mCol0 = tfrm.getCol0();+mCol1 = tfrm.getCol1();+mCol2 = tfrm.getCol2();+return *this;+}++VECTORMATH_FORCE_INLINE const Matrix3 Transform3::getUpper3x3( ) const+{+return Matrix3( mCol0, mCol1, mCol2 );+}++VECTORMATH_FORCE_INLINE Transform3 & Transform3::setTranslation( const Vector3 &translateVec )+{+mCol3 = translateVec;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Transform3::getTranslation( ) const+{+return mCol3;+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationX( float radians )+{+return rotationX( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationX( const floatInVec &radians )+{+__m128 s, c, res1, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res1 = vec_sel( zero, c, select_y );+res1 = vec_sel( res1, s, select_z );+res2 = vec_sel( zero, negatef4(s), select_y );+res2 = vec_sel( res2, c, select_z );+return Transform3(+Vector3::xAxis( ),+Vector3( res1 ),+Vector3( res2 ),+Vector3( _mm_setzero_ps() )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationY( float radians )+{+return rotationY( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationY( const floatInVec &radians )+{+__m128 s, c, res0, res2;+__m128 zero;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, negatef4(s), select_z );+res2 = vec_sel( zero, s, select_x );+res2 = vec_sel( res2, c, select_z );+return Transform3(+Vector3( res0 ),+Vector3::yAxis( ),+Vector3( res2 ),+Vector3( 0.0f )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZ( float radians )+{+return rotationZ( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZ( const floatInVec &radians )+{+__m128 s, c, res0, res1;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+__m128 zero = _mm_setzero_ps();+sincosf4( radians.get128(), &s, &c );+res0 = vec_sel( zero, c, select_x );+res0 = vec_sel( res0, s, select_y );+res1 = vec_sel( zero, negatef4(s), select_x );+res1 = vec_sel( res1, c, select_y );+return Transform3(+Vector3( res0 ),+Vector3( res1 ),+Vector3::zAxis( ),+Vector3( 0.0f )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotationZYX( const Vector3 &radiansXYZ )+{+__m128 angles, s, negS, c, X0, X1, Y0, Y1, Z0, Z1, tmp;+angles = Vector4( radiansXYZ, 0.0f ).get128();+sincosf4( angles, &s, &c );+negS = negatef4( s );+Z0 = vec_mergel( c, s );+Z1 = vec_mergel( negS, c );+VM_ATTRIBUTE_ALIGN16 unsigned int select_xyz[4] = {0xffffffff, 0xffffffff, 0xffffffff, 0};+Z1 = vec_and( Z1, _mm_load_ps( (float *)select_xyz ) );+Y0 = _mm_shuffle_ps( c, negS, _MM_SHUFFLE(0,1,1,1) );+Y1 = _mm_shuffle_ps( s, c, _MM_SHUFFLE(0,1,1,1) );+X0 = vec_splat( s, 0 );+X1 = vec_splat( c, 0 );+tmp = vec_mul( Z0, Y1 );+return Transform3(+Vector3( vec_mul( Z0, Y0 ) ),+Vector3( vec_madd( Z1, X1, vec_mul( tmp, X0 ) ) ),+Vector3( vec_nmsub( Z1, X0, vec_mul( tmp, X1 ) ) ),+Vector3( 0.0f )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( float radians, const Vector3 &unitVec )+{+return rotation( floatInVec(radians), unitVec );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( const floatInVec &radians, const Vector3 &unitVec )+{+return Transform3( Matrix3::rotation( radians, unitVec ), Vector3( 0.0f ) );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::rotation( const Quat &unitQuat )+{+return Transform3( Matrix3( unitQuat ), Vector3( 0.0f ) );+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::scale( const Vector3 &scaleVec )+{+__m128 zero = _mm_setzero_ps();+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+return Transform3(+Vector3( vec_sel( zero, scaleVec.get128(), select_x ) ),+Vector3( vec_sel( zero, scaleVec.get128(), select_y ) ),+Vector3( vec_sel( zero, scaleVec.get128(), select_z ) ),+Vector3( 0.0f )+);+}++VECTORMATH_FORCE_INLINE const Transform3 appendScale( const Transform3 & tfrm, const Vector3 &scaleVec )+{+return Transform3(+( tfrm.getCol0() * scaleVec.getX( ) ),+( tfrm.getCol1() * scaleVec.getY( ) ),+( tfrm.getCol2() * scaleVec.getZ( ) ),+tfrm.getCol3()+);+}++VECTORMATH_FORCE_INLINE const Transform3 prependScale( const Vector3 &scaleVec, const Transform3 & tfrm )+{+return Transform3(+mulPerElem( tfrm.getCol0(), scaleVec ),+mulPerElem( tfrm.getCol1(), scaleVec ),+mulPerElem( tfrm.getCol2(), scaleVec ),+mulPerElem( tfrm.getCol3(), scaleVec )+);+}++VECTORMATH_FORCE_INLINE const Transform3 Transform3::translation( const Vector3 &translateVec )+{+return Transform3(+Vector3::xAxis( ),+Vector3::yAxis( ),+Vector3::zAxis( ),+translateVec+);+}++VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 )+{+return Transform3(+select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),+select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),+select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),+select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )+);+}++VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, const boolInVec &select1 )+{+return Transform3(+select( tfrm0.getCol0(), tfrm1.getCol0(), select1 ),+select( tfrm0.getCol1(), tfrm1.getCol1(), select1 ),+select( tfrm0.getCol2(), tfrm1.getCol2(), select1 ),+select( tfrm0.getCol3(), tfrm1.getCol3(), select1 )+);+}++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm )+{+print( tfrm.getRow( 0 ) );+print( tfrm.getRow( 1 ) );+print( tfrm.getRow( 2 ) );+}++VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm, const char * name )+{+printf("%s:\n", name);+print( tfrm );+}++#endif++VECTORMATH_FORCE_INLINE Quat::Quat( const Matrix3 & tfrm )+{+__m128 res;+__m128 col0, col1, col2;+__m128 xx_yy, xx_yy_zz_xx, yy_zz_xx_yy, zz_xx_yy_zz, diagSum, diagDiff;+__m128 zy_xz_yx, yz_zx_xy, sum, diff;+__m128 radicand, invSqrt, scale;+__m128 res0, res1, res2, res3;+__m128 xx, yy, zz;+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_w[4] = {0, 0, 0, 0xffffffff};++col0 = tfrm.getCol0().get128();+col1 = tfrm.getCol1().get128();+col2 = tfrm.getCol2().get128();++/* four cases: */+/* trace > 0 */+/* else */+/* xx largest diagonal element */+/* yy largest diagonal element */+/* zz largest diagonal element */++/* compute quaternion for each case */++xx_yy = vec_sel( col0, col1, select_y );+//xx_yy_zz_xx = vec_perm( xx_yy, col2, _VECTORMATH_PERM_XYCX );+//yy_zz_xx_yy = vec_perm( xx_yy, col2, _VECTORMATH_PERM_YCXY );+//zz_xx_yy_zz = vec_perm( xx_yy, col2, _VECTORMATH_PERM_CXYC );+xx_yy_zz_xx = _mm_shuffle_ps( xx_yy, xx_yy, _MM_SHUFFLE(0,0,1,0) );+xx_yy_zz_xx = vec_sel( xx_yy_zz_xx, col2, select_z ); // TODO: Ck+yy_zz_xx_yy = _mm_shuffle_ps( xx_yy_zz_xx, xx_yy_zz_xx, _MM_SHUFFLE(1,0,2,1) );+zz_xx_yy_zz = _mm_shuffle_ps( xx_yy_zz_xx, xx_yy_zz_xx, _MM_SHUFFLE(2,1,0,2) );++diagSum = vec_add( vec_add( xx_yy_zz_xx, yy_zz_xx_yy ), zz_xx_yy_zz );+diagDiff = vec_sub( vec_sub( xx_yy_zz_xx, yy_zz_xx_yy ), zz_xx_yy_zz );+radicand = vec_add( vec_sel( diagDiff, diagSum, select_w ), _mm_set1_ps(1.0f) );+// invSqrt = rsqrtf4( radicand );+invSqrt = newtonrapson_rsqrt4( radicand );++++zy_xz_yx = vec_sel( col0, col1, select_z ); // zy_xz_yx = 00 01 12 03+//zy_xz_yx = vec_perm( zy_xz_yx, col2, _VECTORMATH_PERM_ZAYX );+zy_xz_yx = _mm_shuffle_ps( zy_xz_yx, zy_xz_yx, _MM_SHUFFLE(0,1,2,2) ); // zy_xz_yx = 12 12 01 00+zy_xz_yx = vec_sel( zy_xz_yx, vec_splat(col2, 0), select_y ); // zy_xz_yx = 12 20 01 00+yz_zx_xy = vec_sel( col0, col1, select_x ); // yz_zx_xy = 10 01 02 03+//yz_zx_xy = vec_perm( yz_zx_xy, col2, _VECTORMATH_PERM_BZXX );+yz_zx_xy = _mm_shuffle_ps( yz_zx_xy, yz_zx_xy, _MM_SHUFFLE(0,0,2,0) ); // yz_zx_xy = 10 02 10 10+yz_zx_xy = vec_sel( yz_zx_xy, vec_splat(col2, 1), select_x ); // yz_zx_xy = 21 02 10 10++sum = vec_add( zy_xz_yx, yz_zx_xy );+diff = vec_sub( zy_xz_yx, yz_zx_xy );++scale = vec_mul( invSqrt, _mm_set1_ps(0.5f) );++//res0 = vec_perm( sum, diff, _VECTORMATH_PERM_XZYA );+res0 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,1,2,0) );+res0 = vec_sel( res0, vec_splat(diff, 0), select_w ); // TODO: Ck+//res1 = vec_perm( sum, diff, _VECTORMATH_PERM_ZXXB );+res1 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,0,0,2) );+res1 = vec_sel( res1, vec_splat(diff, 1), select_w ); // TODO: Ck+//res2 = vec_perm( sum, diff, _VECTORMATH_PERM_YXXC );+res2 = _mm_shuffle_ps( sum, sum, _MM_SHUFFLE(0,0,0,1) );+res2 = vec_sel( res2, vec_splat(diff, 2), select_w ); // TODO: Ck+res3 = diff;+res0 = vec_sel( res0, radicand, select_x );+res1 = vec_sel( res1, radicand, select_y );+res2 = vec_sel( res2, radicand, select_z );+res3 = vec_sel( res3, radicand, select_w );+res0 = vec_mul( res0, vec_splat( scale, 0 ) );+res1 = vec_mul( res1, vec_splat( scale, 1 ) );+res2 = vec_mul( res2, vec_splat( scale, 2 ) );+res3 = vec_mul( res3, vec_splat( scale, 3 ) );++/* determine case and select answer */++xx = vec_splat( col0, 0 );+yy = vec_splat( col1, 1 );+zz = vec_splat( col2, 2 );+res = vec_sel( res0, res1, vec_cmpgt( yy, xx ) );+res = vec_sel( res, res2, vec_and( vec_cmpgt( zz, xx ), vec_cmpgt( zz, yy ) ) );+res = vec_sel( res, res3, vec_cmpgt( vec_splat( diagSum, 0 ), _mm_setzero_ps() ) );+mVec128 = res;+}++VECTORMATH_FORCE_INLINE const Matrix3 outer( const Vector3 &tfrm0, const Vector3 &tfrm1 )+{+return Matrix3(+( tfrm0 * tfrm1.getX( ) ),+( tfrm0 * tfrm1.getY( ) ),+( tfrm0 * tfrm1.getZ( ) )+);+}++VECTORMATH_FORCE_INLINE const Matrix4 outer( const Vector4 &tfrm0, const Vector4 &tfrm1 )+{+return Matrix4(+( tfrm0 * tfrm1.getX( ) ),+( tfrm0 * tfrm1.getY( ) ),+( tfrm0 * tfrm1.getZ( ) ),+( tfrm0 * tfrm1.getW( ) )+);+}++VECTORMATH_FORCE_INLINE const Vector3 rowMul( const Vector3 &vec, const Matrix3 & mat )+{+__m128 tmp0, tmp1, mcol0, mcol1, mcol2, res;+__m128 xxxx, yyyy, zzzz;+tmp0 = vec_mergeh( mat.getCol0().get128(), mat.getCol2().get128() );+tmp1 = vec_mergel( mat.getCol0().get128(), mat.getCol2().get128() );+xxxx = vec_splat( vec.get128(), 0 );+mcol0 = vec_mergeh( tmp0, mat.getCol1().get128() );+//mcol1 = vec_perm( tmp0, mat.getCol1().get128(), _VECTORMATH_PERM_ZBWX );+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+mcol1 = _mm_shuffle_ps( tmp0, tmp0, _MM_SHUFFLE(0,3,2,2));+mcol1 = vec_sel(mcol1, mat.getCol1().get128(), select_y);+//mcol2 = vec_perm( tmp1, mat.getCol1().get128(), _VECTORMATH_PERM_XCYX );+mcol2 = _mm_shuffle_ps( tmp1, tmp1, _MM_SHUFFLE(0,1,1,0));+mcol2 = vec_sel(mcol2, vec_splat(mat.getCol1().get128(), 2), select_y);+yyyy = vec_splat( vec.get128(), 1 );+res = vec_mul( mcol0, xxxx );+zzzz = vec_splat( vec.get128(), 2 );+res = vec_madd( mcol1, yyyy, res );+res = vec_madd( mcol2, zzzz, res );+return Vector3( res );+}++VECTORMATH_FORCE_INLINE const Matrix3 crossMatrix( const Vector3 &vec )+{+__m128 neg, res0, res1, res2;+neg = negatef4( vec.get128() );+VM_ATTRIBUTE_ALIGN16 unsigned int select_x[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_y[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int select_z[4] = {0, 0, 0xffffffff, 0};+//res0 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_XZBX );+res0 = _mm_shuffle_ps( vec.get128(), vec.get128(), _MM_SHUFFLE(0,2,2,0) );+res0 = vec_sel(res0, vec_splat(neg, 1), select_z);+//res1 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_CXXX );+res1 = vec_sel(vec_splat(vec.get128(), 0), vec_splat(neg, 2), select_x);+//res2 = vec_perm( vec.get128(), neg, _VECTORMATH_PERM_YAXX );+res2 = _mm_shuffle_ps( vec.get128(), vec.get128(), _MM_SHUFFLE(0,0,1,1) );+res2 = vec_sel(res2, vec_splat(neg, 0), select_y);+VM_ATTRIBUTE_ALIGN16 unsigned int filter_x[4] = {0, 0xffffffff, 0xffffffff, 0xffffffff};+VM_ATTRIBUTE_ALIGN16 unsigned int filter_y[4] = {0xffffffff, 0, 0xffffffff, 0xffffffff};+VM_ATTRIBUTE_ALIGN16 unsigned int filter_z[4] = {0xffffffff, 0xffffffff, 0, 0xffffffff};+res0 = vec_and( res0, _mm_load_ps((float *)filter_x ) );+res1 = vec_and( res1, _mm_load_ps((float *)filter_y ) );+res2 = vec_and( res2, _mm_load_ps((float *)filter_z ) ); // TODO: Use selects?+return Matrix3(+Vector3( res0 ),+Vector3( res1 ),+Vector3( res2 )+);+}++VECTORMATH_FORCE_INLINE const Matrix3 crossMatrixMul( const Vector3 &vec, const Matrix3 & mat )+{+return Matrix3( cross( vec, mat.getCol0() ), cross( vec, mat.getCol1() ), cross( vec, mat.getCol2() ) );+}++} // namespace Aos+} // namespace Vectormath++#endif
bullet/vectormath/sse/quat_aos.h view
@@ -1,579 +1,579 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef _VECTORMATH_QUAT_AOS_CPP_H
-#define _VECTORMATH_QUAT_AOS_CPP_H
-
-//-----------------------------------------------------------------------------
-// Definitions
-
-#ifndef _VECTORMATH_INTERNAL_FUNCTIONS
-#define _VECTORMATH_INTERNAL_FUNCTIONS
-
-#endif
-
-namespace Vectormath {
-namespace Aos {
-
-VECTORMATH_FORCE_INLINE void Quat::set128(vec_float4 vec)
-{
-    mVec128 = vec;
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z, const floatInVec &_w )
-{
-	mVec128 = _mm_unpacklo_ps(
-		_mm_unpacklo_ps( _x.get128(), _z.get128() ),
-		_mm_unpacklo_ps( _y.get128(), _w.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const Vector3 &xyz, float _w )
-{
-    mVec128 = xyz.get128();
-    _vmathVfSetElement(mVec128, _w, 3);
-}
-
-
-
-VECTORMATH_FORCE_INLINE  Quat::Quat(const Quat& quat)
-{
-	mVec128 = quat.get128();
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( float _x, float _y, float _z, float _w )
-{
-	mVec128 = _mm_setr_ps(_x, _y, _z, _w);
-}
-
-
-
-
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const Vector3 &xyz, const floatInVec &_w )
-{
-    mVec128 = xyz.get128();
-    mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const Vector4 &vec )
-{
-    mVec128 = vec.get128();
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( float scalar )
-{
-    mVec128 = floatInVec(scalar).get128();
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( const floatInVec &scalar )
-{
-    mVec128 = scalar.get128();
-}
-
-VECTORMATH_FORCE_INLINE Quat::Quat( __m128 vf4 )
-{
-    mVec128 = vf4;
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::identity( )
-{
-    return Quat( _VECTORMATH_UNIT_0001 );
-}
-
-VECTORMATH_FORCE_INLINE const Quat lerp( float t, const Quat &quat0, const Quat &quat1 )
-{
-    return lerp( floatInVec(t), quat0, quat1 );
-}
-
-VECTORMATH_FORCE_INLINE const Quat lerp( const floatInVec &t, const Quat &quat0, const Quat &quat1 )
-{
-    return ( quat0 + ( ( quat1 - quat0 ) * t ) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat slerp( float t, const Quat &unitQuat0, const Quat &unitQuat1 )
-{
-    return slerp( floatInVec(t), unitQuat0, unitQuat1 );
-}
-
-VECTORMATH_FORCE_INLINE const Quat slerp( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1 )
-{
-    Quat start;
-    vec_float4 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;
-    __m128 selectMask;
-    cosAngle = _vmathVfDot4( unitQuat0.get128(), unitQuat1.get128() );
-    selectMask = (__m128)vec_cmpgt( _mm_setzero_ps(), cosAngle );
-    cosAngle = vec_sel( cosAngle, negatef4( cosAngle ), selectMask );
-    start = Quat( vec_sel( unitQuat0.get128(), negatef4( unitQuat0.get128() ), selectMask ) );
-    selectMask = (__m128)vec_cmpgt( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );
-    angle = acosf4( cosAngle );
-    tttt = t.get128();
-    oneMinusT = vec_sub( _mm_set1_ps(1.0f), tttt );
-    angles = vec_mergeh( _mm_set1_ps(1.0f), tttt );
-    angles = vec_mergeh( angles, oneMinusT );
-    angles = vec_madd( angles, angle, _mm_setzero_ps() );
-    sines = sinf4( angles );
-    scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );
-    scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );
-    scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );
-    return Quat( vec_madd( start.get128(), scale0, vec_mul( unitQuat1.get128(), scale1 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat squad( float t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 )
-{
-    return squad( floatInVec(t), unitQuat0, unitQuat1, unitQuat2, unitQuat3 );
-}
-
-VECTORMATH_FORCE_INLINE const Quat squad( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 )
-{
-    return slerp( ( ( floatInVec(2.0f) * t ) * ( floatInVec(1.0f) - t ) ), slerp( t, unitQuat0, unitQuat3 ), slerp( t, unitQuat1, unitQuat2 ) );
-}
-
-VECTORMATH_FORCE_INLINE __m128 Quat::get128( ) const
-{
-    return mVec128;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator =( const Quat &quat )
-{
-    mVec128 = quat.mVec128;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setXYZ( const Vector3 &vec )
-{
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};
-	mVec128 = vec_sel( vec.get128(), mVec128, sw );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Quat::getXYZ( ) const
-{
-    return Vector3( mVec128 );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setX( float _x )
-{
-    _vmathVfSetElement(mVec128, _x, 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setX( const floatInVec &_x )
-{
-    mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::getX( ) const
-{
-    return floatInVec( mVec128, 0 );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setY( float _y )
-{
-    _vmathVfSetElement(mVec128, _y, 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setY( const floatInVec &_y )
-{
-    mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::getY( ) const
-{
-    return floatInVec( mVec128, 1 );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setZ( float _z )
-{
-    _vmathVfSetElement(mVec128, _z, 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setZ( const floatInVec &_z )
-{
-    mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::getZ( ) const
-{
-    return floatInVec( mVec128, 2 );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setW( float _w )
-{
-    _vmathVfSetElement(mVec128, _w, 3);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setW( const floatInVec &_w )
-{
-    mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::getW( ) const
-{
-    return floatInVec( mVec128, 3 );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setElem( int idx, float value )
-{
-    _vmathVfSetElement(mVec128, value, idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::setElem( int idx, const floatInVec &value )
-{
-    mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::getElem( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE VecIdx Quat::operator []( int idx )
-{
-    return VecIdx( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Quat::operator []( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator +( const Quat &quat ) const
-{
-    return Quat( _mm_add_ps( mVec128, quat.mVec128 ) );
-}
-
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator -( const Quat &quat ) const
-{
-    return Quat( _mm_sub_ps( mVec128, quat.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator *( float scalar ) const
-{
-    return *this * floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator *( const floatInVec &scalar ) const
-{
-    return Quat( _mm_mul_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator +=( const Quat &quat )
-{
-    *this = *this + quat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator -=( const Quat &quat )
-{
-    *this = *this - quat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( float scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( const floatInVec &scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator /( float scalar ) const
-{
-    return *this / floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator /( const floatInVec &scalar ) const
-{
-    return Quat( _mm_div_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator /=( float scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator /=( const floatInVec &scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator -( ) const
-{
-	return Quat(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat operator *( float scalar, const Quat &quat )
-{
-    return floatInVec(scalar) * quat;
-}
-
-VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar, const Quat &quat )
-{
-    return quat * scalar;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Quat &quat0, const Quat &quat1 )
-{
-    return floatInVec( _vmathVfDot4( quat0.get128(), quat1.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec norm( const Quat &quat )
-{
-    return floatInVec(  _vmathVfDot4( quat.get128(), quat.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec length( const Quat &quat )
-{
-    return floatInVec(  _mm_sqrt_ps(_vmathVfDot4( quat.get128(), quat.get128() )), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const Quat normalize( const Quat &quat )
-{
-	vec_float4 dot =_vmathVfDot4( quat.get128(), quat.get128());
-    return Quat( _mm_mul_ps( quat.get128(), newtonrapson_rsqrt4( dot ) ) );
-}
-
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotation( const Vector3 &unitVec0, const Vector3 &unitVec1 )
-{
-    Vector3 crossVec;
-    __m128 cosAngle, cosAngleX2Plus2, recipCosHalfAngleX2, cosHalfAngleX2, res;
-    cosAngle = _vmathVfDot3( unitVec0.get128(), unitVec1.get128() );
-    cosAngleX2Plus2 = vec_madd( cosAngle, _mm_set1_ps(2.0f), _mm_set1_ps(2.0f) );
-    recipCosHalfAngleX2 = _mm_rsqrt_ps( cosAngleX2Plus2 );
-    cosHalfAngleX2 = vec_mul( recipCosHalfAngleX2, cosAngleX2Plus2 );
-    crossVec = cross( unitVec0, unitVec1 );
-    res = vec_mul( crossVec.get128(), recipCosHalfAngleX2 );
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};
-    res = vec_sel( res, vec_mul( cosHalfAngleX2, _mm_set1_ps(0.5f) ), sw );
-    return Quat( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotation( float radians, const Vector3 &unitVec )
-{
-    return rotation( floatInVec(radians), unitVec );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotation( const floatInVec &radians, const Vector3 &unitVec )
-{
-    __m128 s, c, angle, res;
-    angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );
-    sincosf4( angle, &s, &c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};
-    res = vec_sel( vec_mul( unitVec.get128(), s ), c, sw );
-    return Quat( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationX( float radians )
-{
-    return rotationX( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationX( const floatInVec &radians )
-{
-    __m128 s, c, angle, res;
-    angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );
-    sincosf4( angle, &s, &c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0xffffffff, 0, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};
-    res = vec_sel( _mm_setzero_ps(), s, xsw );
-    res = vec_sel( res, c, wsw );
-    return Quat( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationY( float radians )
-{
-    return rotationY( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationY( const floatInVec &radians )
-{
-    __m128 s, c, angle, res;
-    angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );
-    sincosf4( angle, &s, &c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int ysw[4] = {0, 0xffffffff, 0, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};
-    res = vec_sel( _mm_setzero_ps(), s, ysw );
-    res = vec_sel( res, c, wsw );
-    return Quat( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationZ( float radians )
-{
-    return rotationZ( floatInVec(radians) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::rotationZ( const floatInVec &radians )
-{
-    __m128 s, c, angle, res;
-    angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );
-    sincosf4( angle, &s, &c );
-	VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0, 0, 0xffffffff, 0};
-	VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};
-    res = vec_sel( _mm_setzero_ps(), s, zsw );
-    res = vec_sel( res, c, wsw );
-    return Quat( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat Quat::operator *( const Quat &quat ) const
-{
-    __m128 ldata, rdata, qv, tmp0, tmp1, tmp2, tmp3;
-    __m128 product, l_wxyz, r_wxyz, xy, qw;
-    ldata = mVec128;
-    rdata = quat.mVec128;
-    tmp0 = _mm_shuffle_ps( ldata, ldata, _MM_SHUFFLE(3,0,2,1) );
-    tmp1 = _mm_shuffle_ps( rdata, rdata, _MM_SHUFFLE(3,1,0,2) );
-    tmp2 = _mm_shuffle_ps( ldata, ldata, _MM_SHUFFLE(3,1,0,2) );
-    tmp3 = _mm_shuffle_ps( rdata, rdata, _MM_SHUFFLE(3,0,2,1) );
-    qv = vec_mul( vec_splat( ldata, 3 ), rdata );
-    qv = vec_madd( vec_splat( rdata, 3 ), ldata, qv );
-    qv = vec_madd( tmp0, tmp1, qv );
-    qv = vec_nmsub( tmp2, tmp3, qv );
-    product = vec_mul( ldata, rdata );
-    l_wxyz = vec_sld( ldata, ldata, 12 );
-    r_wxyz = vec_sld( rdata, rdata, 12 );
-    qw = vec_nmsub( l_wxyz, r_wxyz, product );
-    xy = vec_madd( l_wxyz, r_wxyz, product );
-    qw = vec_sub( qw, vec_sld( xy, xy, 8 ) );
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};
-    return Quat( vec_sel( qv, qw, sw ) );
-}
-
-VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( const Quat &quat )
-{
-    *this = *this * quat;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 rotate( const Quat &quat, const Vector3 &vec )
-{    __m128 qdata, vdata, product, tmp0, tmp1, tmp2, tmp3, wwww, qv, qw, res;
-    qdata = quat.get128();
-    vdata = vec.get128();
-    tmp0 = _mm_shuffle_ps( qdata, qdata, _MM_SHUFFLE(3,0,2,1) );
-    tmp1 = _mm_shuffle_ps( vdata, vdata, _MM_SHUFFLE(3,1,0,2) );
-    tmp2 = _mm_shuffle_ps( qdata, qdata, _MM_SHUFFLE(3,1,0,2) );
-    tmp3 = _mm_shuffle_ps( vdata, vdata, _MM_SHUFFLE(3,0,2,1) );
-    wwww = vec_splat( qdata, 3 );
-    qv = vec_mul( wwww, vdata );
-    qv = vec_madd( tmp0, tmp1, qv );
-    qv = vec_nmsub( tmp2, tmp3, qv );
-    product = vec_mul( qdata, vdata );
-    qw = vec_madd( vec_sld( qdata, qdata, 4 ), vec_sld( vdata, vdata, 4 ), product );
-    qw = vec_add( vec_sld( product, product, 8 ), qw );
-    tmp1 = _mm_shuffle_ps( qv, qv, _MM_SHUFFLE(3,1,0,2) );
-    tmp3 = _mm_shuffle_ps( qv, qv, _MM_SHUFFLE(3,0,2,1) );
-    res = vec_mul( vec_splat( qw, 0 ), qdata );
-    res = vec_madd( wwww, qv, res );
-    res = vec_madd( tmp0, tmp1, res );
-    res = vec_nmsub( tmp2, tmp3, res );
-    return Vector3( res );
-}
-
-VECTORMATH_FORCE_INLINE const Quat conj( const Quat &quat )
-{
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0x80000000,0x80000000,0x80000000,0};
-    return Quat( vec_xor( quat.get128(), _mm_load_ps((float *)sw) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, bool select1 )
-{
-    return select( quat0, quat1, boolInVec(select1) );
-}
-
-//VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, const boolInVec &select1 )
-//{
-//    return Quat( vec_sel( quat0.get128(), quat1.get128(), select1.get128() ) );
-//}
-
-VECTORMATH_FORCE_INLINE void loadXYZW(Quat& quat, const float* fptr)
-{
-#ifdef USE_SSE3_LDDQU
-	quat = Quat(	SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128		);
-#else
-	SSEFloat fl;
-	fl.f[0] = fptr[0];
-	fl.f[1] = fptr[1];
-	fl.f[2] = fptr[2];
-	fl.f[3] = fptr[3];
-    quat = Quat(	fl.m128);
-#endif
-    
-
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZW(const Quat& quat, float* fptr)
-{
-	fptr[0] = quat.getX();
-	fptr[1] = quat.getY();
-	fptr[2] = quat.getZ();
-	fptr[3] = quat.getW();
-//    _mm_storeu_ps((float*)quat.get128(),fptr);
-}
-
-
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Quat &quat )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = quat.get128();
-    printf( "( %f %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Quat &quat, const char * name )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = quat.get128();
-    printf( "%s: ( %f %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );
-}
-
-#endif
-
-} // namespace Aos
-} // namespace Vectormath
-
-#endif
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/+++#ifndef _VECTORMATH_QUAT_AOS_CPP_H+#define _VECTORMATH_QUAT_AOS_CPP_H++//-----------------------------------------------------------------------------+// Definitions++#ifndef _VECTORMATH_INTERNAL_FUNCTIONS+#define _VECTORMATH_INTERNAL_FUNCTIONS++#endif++namespace Vectormath {+namespace Aos {++VECTORMATH_FORCE_INLINE void Quat::set128(vec_float4 vec)+{+mVec128 = vec;+}++VECTORMATH_FORCE_INLINE Quat::Quat( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z, const floatInVec &_w )+{+mVec128 = _mm_unpacklo_ps(+_mm_unpacklo_ps( _x.get128(), _z.get128() ),+_mm_unpacklo_ps( _y.get128(), _w.get128() ) );+}++VECTORMATH_FORCE_INLINE Quat::Quat( const Vector3 &xyz, float _w )+{+mVec128 = xyz.get128();+_vmathVfSetElement(mVec128, _w, 3);+}++++VECTORMATH_FORCE_INLINE Quat::Quat(const Quat& quat)+{+mVec128 = quat.get128();+}++VECTORMATH_FORCE_INLINE Quat::Quat( float _x, float _y, float _z, float _w )+{+mVec128 = _mm_setr_ps(_x, _y, _z, _w);+}++++++VECTORMATH_FORCE_INLINE Quat::Quat( const Vector3 &xyz, const floatInVec &_w )+{+mVec128 = xyz.get128();+mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);+}++VECTORMATH_FORCE_INLINE Quat::Quat( const Vector4 &vec )+{+mVec128 = vec.get128();+}++VECTORMATH_FORCE_INLINE Quat::Quat( float scalar )+{+mVec128 = floatInVec(scalar).get128();+}++VECTORMATH_FORCE_INLINE Quat::Quat( const floatInVec &scalar )+{+mVec128 = scalar.get128();+}++VECTORMATH_FORCE_INLINE Quat::Quat( __m128 vf4 )+{+mVec128 = vf4;+}++VECTORMATH_FORCE_INLINE const Quat Quat::identity( )+{+return Quat( _VECTORMATH_UNIT_0001 );+}++VECTORMATH_FORCE_INLINE const Quat lerp( float t, const Quat &quat0, const Quat &quat1 )+{+return lerp( floatInVec(t), quat0, quat1 );+}++VECTORMATH_FORCE_INLINE const Quat lerp( const floatInVec &t, const Quat &quat0, const Quat &quat1 )+{+return ( quat0 + ( ( quat1 - quat0 ) * t ) );+}++VECTORMATH_FORCE_INLINE const Quat slerp( float t, const Quat &unitQuat0, const Quat &unitQuat1 )+{+return slerp( floatInVec(t), unitQuat0, unitQuat1 );+}++VECTORMATH_FORCE_INLINE const Quat slerp( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1 )+{+Quat start;+vec_float4 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;+__m128 selectMask;+cosAngle = _vmathVfDot4( unitQuat0.get128(), unitQuat1.get128() );+selectMask = (__m128)vec_cmpgt( _mm_setzero_ps(), cosAngle );+cosAngle = vec_sel( cosAngle, negatef4( cosAngle ), selectMask );+start = Quat( vec_sel( unitQuat0.get128(), negatef4( unitQuat0.get128() ), selectMask ) );+selectMask = (__m128)vec_cmpgt( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );+angle = acosf4( cosAngle );+tttt = t.get128();+oneMinusT = vec_sub( _mm_set1_ps(1.0f), tttt );+angles = vec_mergeh( _mm_set1_ps(1.0f), tttt );+angles = vec_mergeh( angles, oneMinusT );+angles = vec_madd( angles, angle, _mm_setzero_ps() );+sines = sinf4( angles );+scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );+scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );+scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );+return Quat( vec_madd( start.get128(), scale0, vec_mul( unitQuat1.get128(), scale1 ) ) );+}++VECTORMATH_FORCE_INLINE const Quat squad( float t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 )+{+return squad( floatInVec(t), unitQuat0, unitQuat1, unitQuat2, unitQuat3 );+}++VECTORMATH_FORCE_INLINE const Quat squad( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 )+{+return slerp( ( ( floatInVec(2.0f) * t ) * ( floatInVec(1.0f) - t ) ), slerp( t, unitQuat0, unitQuat3 ), slerp( t, unitQuat1, unitQuat2 ) );+}++VECTORMATH_FORCE_INLINE __m128 Quat::get128( ) const+{+return mVec128;+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator =( const Quat &quat )+{+mVec128 = quat.mVec128;+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setXYZ( const Vector3 &vec )+{+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};+mVec128 = vec_sel( vec.get128(), mVec128, sw );+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Quat::getXYZ( ) const+{+return Vector3( mVec128 );+}++VECTORMATH_FORCE_INLINE Quat & Quat::setX( float _x )+{+_vmathVfSetElement(mVec128, _x, 0);+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setX( const floatInVec &_x )+{+mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::getX( ) const+{+return floatInVec( mVec128, 0 );+}++VECTORMATH_FORCE_INLINE Quat & Quat::setY( float _y )+{+_vmathVfSetElement(mVec128, _y, 1);+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setY( const floatInVec &_y )+{+mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::getY( ) const+{+return floatInVec( mVec128, 1 );+}++VECTORMATH_FORCE_INLINE Quat & Quat::setZ( float _z )+{+_vmathVfSetElement(mVec128, _z, 2);+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setZ( const floatInVec &_z )+{+mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::getZ( ) const+{+return floatInVec( mVec128, 2 );+}++VECTORMATH_FORCE_INLINE Quat & Quat::setW( float _w )+{+_vmathVfSetElement(mVec128, _w, 3);+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setW( const floatInVec &_w )+{+mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::getW( ) const+{+return floatInVec( mVec128, 3 );+}++VECTORMATH_FORCE_INLINE Quat & Quat::setElem( int idx, float value )+{+_vmathVfSetElement(mVec128, value, idx);+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::setElem( int idx, const floatInVec &value )+{+mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::getElem( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE VecIdx Quat::operator []( int idx )+{+return VecIdx( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const floatInVec Quat::operator []( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator +( const Quat &quat ) const+{+return Quat( _mm_add_ps( mVec128, quat.mVec128 ) );+}+++VECTORMATH_FORCE_INLINE const Quat Quat::operator -( const Quat &quat ) const+{+return Quat( _mm_sub_ps( mVec128, quat.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator *( float scalar ) const+{+return *this * floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator *( const floatInVec &scalar ) const+{+return Quat( _mm_mul_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator +=( const Quat &quat )+{+*this = *this + quat;+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator -=( const Quat &quat )+{+*this = *this - quat;+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( const floatInVec &scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator /( float scalar ) const+{+return *this / floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator /( const floatInVec &scalar ) const+{+return Quat( _mm_div_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator /=( float scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator /=( const floatInVec &scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator -( ) const+{+return Quat(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Quat operator *( float scalar, const Quat &quat )+{+return floatInVec(scalar) * quat;+}++VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar, const Quat &quat )+{+return quat * scalar;+}++VECTORMATH_FORCE_INLINE const floatInVec dot( const Quat &quat0, const Quat &quat1 )+{+return floatInVec( _vmathVfDot4( quat0.get128(), quat1.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec norm( const Quat &quat )+{+return floatInVec( _vmathVfDot4( quat.get128(), quat.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec length( const Quat &quat )+{+return floatInVec( _mm_sqrt_ps(_vmathVfDot4( quat.get128(), quat.get128() )), 0 );+}++VECTORMATH_FORCE_INLINE const Quat normalize( const Quat &quat )+{+vec_float4 dot =_vmathVfDot4( quat.get128(), quat.get128());+return Quat( _mm_mul_ps( quat.get128(), newtonrapson_rsqrt4( dot ) ) );+}+++VECTORMATH_FORCE_INLINE const Quat Quat::rotation( const Vector3 &unitVec0, const Vector3 &unitVec1 )+{+Vector3 crossVec;+__m128 cosAngle, cosAngleX2Plus2, recipCosHalfAngleX2, cosHalfAngleX2, res;+cosAngle = _vmathVfDot3( unitVec0.get128(), unitVec1.get128() );+cosAngleX2Plus2 = vec_madd( cosAngle, _mm_set1_ps(2.0f), _mm_set1_ps(2.0f) );+recipCosHalfAngleX2 = _mm_rsqrt_ps( cosAngleX2Plus2 );+cosHalfAngleX2 = vec_mul( recipCosHalfAngleX2, cosAngleX2Plus2 );+crossVec = cross( unitVec0, unitVec1 );+res = vec_mul( crossVec.get128(), recipCosHalfAngleX2 );+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};+res = vec_sel( res, vec_mul( cosHalfAngleX2, _mm_set1_ps(0.5f) ), sw );+return Quat( res );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotation( float radians, const Vector3 &unitVec )+{+return rotation( floatInVec(radians), unitVec );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotation( const floatInVec &radians, const Vector3 &unitVec )+{+__m128 s, c, angle, res;+angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );+sincosf4( angle, &s, &c );+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};+res = vec_sel( vec_mul( unitVec.get128(), s ), c, sw );+return Quat( res );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationX( float radians )+{+return rotationX( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationX( const floatInVec &radians )+{+__m128 s, c, angle, res;+angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );+sincosf4( angle, &s, &c );+VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0xffffffff, 0, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};+res = vec_sel( _mm_setzero_ps(), s, xsw );+res = vec_sel( res, c, wsw );+return Quat( res );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationY( float radians )+{+return rotationY( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationY( const floatInVec &radians )+{+__m128 s, c, angle, res;+angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );+sincosf4( angle, &s, &c );+VM_ATTRIBUTE_ALIGN16 unsigned int ysw[4] = {0, 0xffffffff, 0, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};+res = vec_sel( _mm_setzero_ps(), s, ysw );+res = vec_sel( res, c, wsw );+return Quat( res );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationZ( float radians )+{+return rotationZ( floatInVec(radians) );+}++VECTORMATH_FORCE_INLINE const Quat Quat::rotationZ( const floatInVec &radians )+{+__m128 s, c, angle, res;+angle = vec_mul( radians.get128(), _mm_set1_ps(0.5f) );+sincosf4( angle, &s, &c );+VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0, 0, 0xffffffff, 0};+VM_ATTRIBUTE_ALIGN16 unsigned int wsw[4] = {0, 0, 0, 0xffffffff};+res = vec_sel( _mm_setzero_ps(), s, zsw );+res = vec_sel( res, c, wsw );+return Quat( res );+}++VECTORMATH_FORCE_INLINE const Quat Quat::operator *( const Quat &quat ) const+{+__m128 ldata, rdata, qv, tmp0, tmp1, tmp2, tmp3;+__m128 product, l_wxyz, r_wxyz, xy, qw;+ldata = mVec128;+rdata = quat.mVec128;+tmp0 = _mm_shuffle_ps( ldata, ldata, _MM_SHUFFLE(3,0,2,1) );+tmp1 = _mm_shuffle_ps( rdata, rdata, _MM_SHUFFLE(3,1,0,2) );+tmp2 = _mm_shuffle_ps( ldata, ldata, _MM_SHUFFLE(3,1,0,2) );+tmp3 = _mm_shuffle_ps( rdata, rdata, _MM_SHUFFLE(3,0,2,1) );+qv = vec_mul( vec_splat( ldata, 3 ), rdata );+qv = vec_madd( vec_splat( rdata, 3 ), ldata, qv );+qv = vec_madd( tmp0, tmp1, qv );+qv = vec_nmsub( tmp2, tmp3, qv );+product = vec_mul( ldata, rdata );+l_wxyz = vec_sld( ldata, ldata, 12 );+r_wxyz = vec_sld( rdata, rdata, 12 );+qw = vec_nmsub( l_wxyz, r_wxyz, product );+xy = vec_madd( l_wxyz, r_wxyz, product );+qw = vec_sub( qw, vec_sld( xy, xy, 8 ) );+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};+return Quat( vec_sel( qv, qw, sw ) );+}++VECTORMATH_FORCE_INLINE Quat & Quat::operator *=( const Quat &quat )+{+*this = *this * quat;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 rotate( const Quat &quat, const Vector3 &vec )+{ __m128 qdata, vdata, product, tmp0, tmp1, tmp2, tmp3, wwww, qv, qw, res;+qdata = quat.get128();+vdata = vec.get128();+tmp0 = _mm_shuffle_ps( qdata, qdata, _MM_SHUFFLE(3,0,2,1) );+tmp1 = _mm_shuffle_ps( vdata, vdata, _MM_SHUFFLE(3,1,0,2) );+tmp2 = _mm_shuffle_ps( qdata, qdata, _MM_SHUFFLE(3,1,0,2) );+tmp3 = _mm_shuffle_ps( vdata, vdata, _MM_SHUFFLE(3,0,2,1) );+wwww = vec_splat( qdata, 3 );+qv = vec_mul( wwww, vdata );+qv = vec_madd( tmp0, tmp1, qv );+qv = vec_nmsub( tmp2, tmp3, qv );+product = vec_mul( qdata, vdata );+qw = vec_madd( vec_sld( qdata, qdata, 4 ), vec_sld( vdata, vdata, 4 ), product );+qw = vec_add( vec_sld( product, product, 8 ), qw );+tmp1 = _mm_shuffle_ps( qv, qv, _MM_SHUFFLE(3,1,0,2) );+tmp3 = _mm_shuffle_ps( qv, qv, _MM_SHUFFLE(3,0,2,1) );+res = vec_mul( vec_splat( qw, 0 ), qdata );+res = vec_madd( wwww, qv, res );+res = vec_madd( tmp0, tmp1, res );+res = vec_nmsub( tmp2, tmp3, res );+return Vector3( res );+}++VECTORMATH_FORCE_INLINE const Quat conj( const Quat &quat )+{+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0x80000000,0x80000000,0x80000000,0};+return Quat( vec_xor( quat.get128(), _mm_load_ps((float *)sw) ) );+}++VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, bool select1 )+{+return select( quat0, quat1, boolInVec(select1) );+}++//VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, const boolInVec &select1 )+//{+// return Quat( vec_sel( quat0.get128(), quat1.get128(), select1.get128() ) );+//}++VECTORMATH_FORCE_INLINE void loadXYZW(Quat& quat, const float* fptr)+{+#ifdef USE_SSE3_LDDQU+quat = Quat( SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128 );+#else+SSEFloat fl;+fl.f[0] = fptr[0];+fl.f[1] = fptr[1];+fl.f[2] = fptr[2];+fl.f[3] = fptr[3];+quat = Quat( fl.m128);+#endif+++}++VECTORMATH_FORCE_INLINE void storeXYZW(const Quat& quat, float* fptr)+{+fptr[0] = quat.getX();+fptr[1] = quat.getY();+fptr[2] = quat.getZ();+fptr[3] = quat.getW();+// _mm_storeu_ps((float*)quat.get128(),fptr);+}++++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Quat &quat )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = quat.get128();+printf( "( %f %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );+}++VECTORMATH_FORCE_INLINE void print( const Quat &quat, const char * name )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = quat.get128();+printf( "%s: ( %f %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );+}++#endif++} // namespace Aos+} // namespace Vectormath++#endif
bullet/vectormath/sse/vec_aos.h view
@@ -1,1455 +1,1455 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _VECTORMATH_VEC_AOS_CPP_H
-#define _VECTORMATH_VEC_AOS_CPP_H
-
-//-----------------------------------------------------------------------------
-// Constants
-// for permutes words are labeled [x,y,z,w] [a,b,c,d]
-
-#define _VECTORMATH_PERM_X 0x00010203
-#define _VECTORMATH_PERM_Y 0x04050607
-#define _VECTORMATH_PERM_Z 0x08090a0b
-#define _VECTORMATH_PERM_W 0x0c0d0e0f
-#define _VECTORMATH_PERM_A 0x10111213
-#define _VECTORMATH_PERM_B 0x14151617
-#define _VECTORMATH_PERM_C 0x18191a1b
-#define _VECTORMATH_PERM_D 0x1c1d1e1f
-#define _VECTORMATH_PERM_XYZA (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A }
-#define _VECTORMATH_PERM_ZXYW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_W }
-#define _VECTORMATH_PERM_YZXW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_W }
-#define _VECTORMATH_PERM_YZAB (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B }
-#define _VECTORMATH_PERM_ZABC (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B, _VECTORMATH_PERM_C }
-#define _VECTORMATH_PERM_XYAW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_W }
-#define _VECTORMATH_PERM_XAZW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_W }
-#define _VECTORMATH_MASK_0xF000 (vec_uint4){ 0xffffffff, 0, 0, 0 }
-#define _VECTORMATH_MASK_0x0F00 (vec_uint4){ 0, 0xffffffff, 0, 0 }
-#define _VECTORMATH_MASK_0x00F0 (vec_uint4){ 0, 0, 0xffffffff, 0 }
-#define _VECTORMATH_MASK_0x000F (vec_uint4){ 0, 0, 0, 0xffffffff }
-#define _VECTORMATH_UNIT_1000 _mm_setr_ps(1.0f,0.0f,0.0f,0.0f) // (__m128){ 1.0f, 0.0f, 0.0f, 0.0f }
-#define _VECTORMATH_UNIT_0100 _mm_setr_ps(0.0f,1.0f,0.0f,0.0f) // (__m128){ 0.0f, 1.0f, 0.0f, 0.0f }
-#define _VECTORMATH_UNIT_0010 _mm_setr_ps(0.0f,0.0f,1.0f,0.0f) // (__m128){ 0.0f, 0.0f, 1.0f, 0.0f }
-#define _VECTORMATH_UNIT_0001 _mm_setr_ps(0.0f,0.0f,0.0f,1.0f) // (__m128){ 0.0f, 0.0f, 0.0f, 1.0f }
-#define _VECTORMATH_SLERP_TOL 0.999f
-//_VECTORMATH_SLERP_TOLF
-
-//-----------------------------------------------------------------------------
-// Definitions
-
-#ifndef _VECTORMATH_INTERNAL_FUNCTIONS
-#define _VECTORMATH_INTERNAL_FUNCTIONS
-
-#define     _vmath_shufps(a, b, immx, immy, immz, immw) _mm_shuffle_ps(a, b, _MM_SHUFFLE(immw, immz, immy, immx))
-static VECTORMATH_FORCE_INLINE __m128 _vmathVfDot3( __m128 vec0, __m128 vec1 )
-{
-	__m128 result = _mm_mul_ps( vec0, vec1);
-    return _mm_add_ps( vec_splat( result, 0 ), _mm_add_ps( vec_splat( result, 1 ), vec_splat( result, 2 ) ) );
-}
-
-static VECTORMATH_FORCE_INLINE __m128 _vmathVfDot4( __m128 vec0, __m128 vec1 )
-{
-    __m128 result = _mm_mul_ps(vec0, vec1);
-	return _mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(0,0,0,0)),
-			_mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(1,1,1,1)),
-			_mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(2,2,2,2)), _mm_shuffle_ps(result, result, _MM_SHUFFLE(3,3,3,3)))));
-}
-
-static VECTORMATH_FORCE_INLINE __m128 _vmathVfCross( __m128 vec0, __m128 vec1 )
-{
-    __m128 tmp0, tmp1, tmp2, tmp3, result;
-    tmp0 = _mm_shuffle_ps( vec0, vec0, _MM_SHUFFLE(3,0,2,1) );
-    tmp1 = _mm_shuffle_ps( vec1, vec1, _MM_SHUFFLE(3,1,0,2) );
-    tmp2 = _mm_shuffle_ps( vec0, vec0, _MM_SHUFFLE(3,1,0,2) );
-    tmp3 = _mm_shuffle_ps( vec1, vec1, _MM_SHUFFLE(3,0,2,1) );
-    result = vec_mul( tmp0, tmp1 );
-    result = vec_nmsub( tmp2, tmp3, result );
-    return result;
-}
-/*
-static VECTORMATH_FORCE_INLINE vec_uint4 _vmathVfToHalfFloatsUnpacked(__m128 v)
-{
-#if 0
-    vec_int4 bexp;
-    vec_uint4 mant, sign, hfloat;
-    vec_uint4 notZero, isInf;
-    const vec_uint4 hfloatInf = (vec_uint4)(0x00007c00u);
-    const vec_uint4 mergeMant = (vec_uint4)(0x000003ffu);
-    const vec_uint4 mergeSign = (vec_uint4)(0x00008000u);
-
-    sign = vec_sr((vec_uint4)v, (vec_uint4)16);
-    mant = vec_sr((vec_uint4)v, (vec_uint4)13);
-    bexp = vec_and(vec_sr((vec_int4)v, (vec_uint4)23), (vec_int4)0xff);
-
-    notZero = (vec_uint4)vec_cmpgt(bexp, (vec_int4)112);
-    isInf = (vec_uint4)vec_cmpgt(bexp, (vec_int4)142);
-
-    bexp = _mm_add_ps(bexp, (vec_int4)-112);
-    bexp = vec_sl(bexp, (vec_uint4)10);
-
-    hfloat = vec_sel((vec_uint4)bexp, mant, mergeMant);
-    hfloat = vec_sel((vec_uint4)(0), hfloat, notZero);
-    hfloat = vec_sel(hfloat, hfloatInf, isInf);
-    hfloat = vec_sel(hfloat, sign, mergeSign);
-
-    return hfloat;
-#else
-	assert(0);
-	return _mm_setzero_ps();
-#endif
-}
-
-static VECTORMATH_FORCE_INLINE vec_ushort8 _vmath2VfToHalfFloats(__m128 u, __m128 v)
-{
-#if 0
-    vec_uint4 hfloat_u, hfloat_v;
-    const vec_uchar16 pack = (vec_uchar16){2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31};
-    hfloat_u = _vmathVfToHalfFloatsUnpacked(u);
-    hfloat_v = _vmathVfToHalfFloatsUnpacked(v);
-    return (vec_ushort8)vec_perm(hfloat_u, hfloat_v, pack);
-#else
-	assert(0);
-	return _mm_setzero_si128();
-#endif
-}
-*/
-
-static VECTORMATH_FORCE_INLINE __m128 _vmathVfInsert(__m128 dst, __m128 src, int slot)
-{
-	SSEFloat s;
-	s.m128 = src;
-	SSEFloat d;
-	d.m128 = dst;
-	d.f[slot] = s.f[slot];
-	return d.m128;
-}
-
-#define _vmathVfSetElement(vec, scalar, slot) ((float *)&(vec))[slot] = scalar
-
-static VECTORMATH_FORCE_INLINE __m128 _vmathVfSplatScalar(float scalar)
-{
-	return _mm_set1_ps(scalar);
-}
-
-#endif
-
-namespace Vectormath {
-namespace Aos {
-
-	
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-VECTORMATH_FORCE_INLINE VecIdx::operator floatInVec() const
-{
-    return floatInVec(ref, i);
-}
-
-VECTORMATH_FORCE_INLINE float VecIdx::getAsFloat() const
-#else
-VECTORMATH_FORCE_INLINE VecIdx::operator float() const
-#endif
-{
-    return ((float *)&ref)[i];
-}
-
-VECTORMATH_FORCE_INLINE float VecIdx::operator =( float scalar )
-{
-    _vmathVfSetElement(ref, scalar, i);
-    return scalar;
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator =( const floatInVec &scalar )
-{
-    ref = _vmathVfInsert(ref, scalar.get128(), i);
-    return scalar;
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator =( const VecIdx& scalar )
-{
-    return *this = floatInVec(scalar.ref, scalar.i);
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator *=( float scalar )
-{
-    return *this *= floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator *=( const floatInVec &scalar )
-{
-    return *this = floatInVec(ref, i) * scalar;
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator /=( float scalar )
-{
-    return *this /= floatInVec(scalar);
-}
-
-inline floatInVec VecIdx::operator /=( const floatInVec &scalar )
-{
-    return *this = floatInVec(ref, i) / scalar;
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator +=( float scalar )
-{
-    return *this += floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator +=( const floatInVec &scalar )
-{
-    return *this = floatInVec(ref, i) + scalar;
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator -=( float scalar )
-{
-    return *this -= floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator -=( const floatInVec &scalar )
-{
-    return *this = floatInVec(ref, i) - scalar;
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3(const Vector3& vec)
-{
-    set128(vec.get128());
-}
-
-VECTORMATH_FORCE_INLINE void Vector3::set128(vec_float4 vec)
-{
-    mVec128 = vec;
-}
-
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( float _x, float _y, float _z )
-{
-    mVec128 = _mm_setr_ps(_x, _y, _z, 0.0f);
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z )
-{
-	__m128 xz = _mm_unpacklo_ps( _x.get128(), _z.get128() );
-	mVec128 = _mm_unpacklo_ps( xz, _y.get128() );
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( const Point3 &pnt )
-{
-    mVec128 = pnt.get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( float scalar )
-{
-    mVec128 = floatInVec(scalar).get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( const floatInVec &scalar )
-{
-    mVec128 = scalar.get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector3::Vector3( __m128 vf4 )
-{
-    mVec128 = vf4;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::xAxis( )
-{
-    return Vector3( _VECTORMATH_UNIT_1000 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::yAxis( )
-{
-    return Vector3( _VECTORMATH_UNIT_0100 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::zAxis( )
-{
-    return Vector3( _VECTORMATH_UNIT_0010 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 lerp( float t, const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return lerp( floatInVec(t), vec0, vec1 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 lerp( const floatInVec &t, const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return ( vec0 + ( ( vec1 - vec0 ) * t ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 slerp( float t, const Vector3 &unitVec0, const Vector3 &unitVec1 )
-{
-    return slerp( floatInVec(t), unitVec0, unitVec1 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 slerp( const floatInVec &t, const Vector3 &unitVec0, const Vector3 &unitVec1 )
-{
-    __m128 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;
-    cosAngle = _vmathVfDot3( unitVec0.get128(), unitVec1.get128() );
-    __m128 selectMask = _mm_cmpgt_ps( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );
-    angle = acosf4( cosAngle );
-    tttt = t.get128();
-    oneMinusT = _mm_sub_ps( _mm_set1_ps(1.0f), tttt );
-    angles = _mm_unpacklo_ps( _mm_set1_ps(1.0f), tttt ); // angles = 1, t, 1, t
-    angles = _mm_unpacklo_ps( angles, oneMinusT );		// angles = 1, 1-t, t, 1-t
-    angles = _mm_mul_ps( angles, angle );
-    sines = sinf4( angles );
-    scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );
-    scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );
-    scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );
-    return Vector3( vec_madd( unitVec0.get128(), scale0, _mm_mul_ps( unitVec1.get128(), scale1 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE __m128 Vector3::get128( ) const
-{
-    return mVec128;
-}
-
-VECTORMATH_FORCE_INLINE void loadXYZ(Point3& vec, const float* fptr)
-{
-#ifdef USE_SSE3_LDDQU
-	vec = Point3(	SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128 );
-#else
-	SSEFloat fl;
-	fl.f[0] = fptr[0];
-	fl.f[1] = fptr[1];
-	fl.f[2] = fptr[2];
-	fl.f[3] = fptr[3];
-    vec = Point3(	fl.m128);
-#endif //USE_SSE3_LDDQU
-	
-}
-
-
-
-VECTORMATH_FORCE_INLINE void loadXYZ(Vector3& vec, const float* fptr)
-{
-#ifdef USE_SSE3_LDDQU
-	vec = Vector3(	SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128 );
-#else
-	SSEFloat fl;
-	fl.f[0] = fptr[0];
-	fl.f[1] = fptr[1];
-	fl.f[2] = fptr[2];
-	fl.f[3] = fptr[3];
-    vec = Vector3(	fl.m128);
-#endif //USE_SSE3_LDDQU
-	
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZ( const Vector3 &vec, __m128 * quad )
-{
-	__m128 dstVec = *quad;
-	VM_ATTRIBUTE_ALIGN16  unsigned int sw[4] = {0, 0, 0, 0xffffffff}; // TODO: Centralize
-	dstVec = vec_sel(vec.get128(), dstVec, sw);
-	*quad = dstVec;
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZ(const Point3& vec, float* fptr)
-{
-	fptr[0] = vec.getX();
-	fptr[1] = vec.getY();
-	fptr[2] = vec.getZ();
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZ(const Vector3& vec, float* fptr)
-{
-	fptr[0] = vec.getX();
-	fptr[1] = vec.getY();
-	fptr[2] = vec.getZ();
-}
-
-
-VECTORMATH_FORCE_INLINE void loadXYZArray( Vector3 & vec0, Vector3 & vec1, Vector3 & vec2, Vector3 & vec3, const __m128 * threeQuads )
-{
-	const float *quads = (float *)threeQuads;
-    vec0 = Vector3(  _mm_load_ps(quads) );
-    vec1 = Vector3( _mm_loadu_ps(quads + 3) );
-    vec2 = Vector3( _mm_loadu_ps(quads + 6) );
-    vec3 = Vector3( _mm_loadu_ps(quads + 9) );
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZArray( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, __m128 * threeQuads )
-{
-	__m128 xxxx = _mm_shuffle_ps( vec1.get128(), vec1.get128(), _MM_SHUFFLE(0, 0, 0, 0) );
-	__m128 zzzz = _mm_shuffle_ps( vec2.get128(), vec2.get128(), _MM_SHUFFLE(2, 2, 2, 2) );
-	VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0, 0, 0, 0xffffffff};
-	VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0xffffffff, 0, 0, 0};
-	threeQuads[0] = vec_sel( vec0.get128(), xxxx, xsw );
-    threeQuads[1] = _mm_shuffle_ps( vec1.get128(), vec2.get128(), _MM_SHUFFLE(1, 0, 2, 1) );
-    threeQuads[2] = vec_sel( _mm_shuffle_ps( vec3.get128(), vec3.get128(), _MM_SHUFFLE(2, 1, 0, 3) ), zzzz, zsw );
-}
-/*
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, const Vector3 &vec5, const Vector3 &vec6, const Vector3 &vec7, vec_ushort8 * threeQuads )
-{
-	assert(0);
-#if 0
-    __m128 xyz0[3];
-    __m128 xyz1[3];
-    storeXYZArray( vec0, vec1, vec2, vec3, xyz0 );
-    storeXYZArray( vec4, vec5, vec6, vec7, xyz1 );
-    threeQuads[0] = _vmath2VfToHalfFloats(xyz0[0], xyz0[1]);
-    threeQuads[1] = _vmath2VfToHalfFloats(xyz0[2], xyz1[0]);
-    threeQuads[2] = _vmath2VfToHalfFloats(xyz1[1], xyz1[2]);
-#endif
-}
-*/
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator =( const Vector3 &vec )
-{
-    mVec128 = vec.mVec128;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setX( float _x )
-{
-    _vmathVfSetElement(mVec128, _x, 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setX( const floatInVec &_x )
-{
-    mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector3::getX( ) const
-{
-    return floatInVec( mVec128, 0 );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setY( float _y )
-{
-    _vmathVfSetElement(mVec128, _y, 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setY( const floatInVec &_y )
-{
-    mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector3::getY( ) const
-{
-    return floatInVec( mVec128, 1 );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setZ( float _z )
-{
-    _vmathVfSetElement(mVec128, _z, 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setZ( const floatInVec &_z )
-{
-    mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector3::getZ( ) const
-{
-    return floatInVec( mVec128, 2 );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setElem( int idx, float value )
-{
-    _vmathVfSetElement(mVec128, value, idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::setElem( int idx, const floatInVec &value )
-{
-    mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector3::getElem( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE VecIdx Vector3::operator []( int idx )
-{
-    return VecIdx( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector3::operator []( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator +( const Vector3 &vec ) const
-{
-    return Vector3( _mm_add_ps( mVec128, vec.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator -( const Vector3 &vec ) const
-{
-    return Vector3( _mm_sub_ps( mVec128, vec.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 Vector3::operator +( const Point3 &pnt ) const
-{
-    return Point3( _mm_add_ps( mVec128, pnt.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator *( float scalar ) const
-{
-    return *this * floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator *( const floatInVec &scalar ) const
-{
-    return Vector3( _mm_mul_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator +=( const Vector3 &vec )
-{
-    *this = *this + vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator -=( const Vector3 &vec )
-{
-    *this = *this - vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator *=( float scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator *=( const floatInVec &scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator /( float scalar ) const
-{
-    return *this / floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator /( const floatInVec &scalar ) const
-{
-    return Vector3( _mm_div_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator /=( float scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator /=( const floatInVec &scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator -( ) const
-{
-	//return Vector3(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );
-
-	VM_ATTRIBUTE_ALIGN16 static const int array[] = {0x80000000, 0x80000000, 0x80000000, 0x80000000};
-	__m128 NEG_MASK = SSEFloat(*(const vec_float4*)array).vf;
-	return Vector3(_mm_xor_ps(get128(),NEG_MASK));
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar, const Vector3 &vec )
-{
-    return floatInVec(scalar) * vec;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar, const Vector3 &vec )
-{
-    return vec * scalar;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 mulPerElem( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return Vector3( _mm_mul_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 divPerElem( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return Vector3( _mm_div_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 recipPerElem( const Vector3 &vec )
-{
-    return Vector3( _mm_rcp_ps( vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 absPerElem( const Vector3 &vec )
-{
-    return Vector3( fabsf4( vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 copySignPerElem( const Vector3 &vec0, const Vector3 &vec1 )
-{
-	__m128 vmask = toM128(0x7fffffff);
-	return Vector3( _mm_or_ps(
-		_mm_and_ps   ( vmask, vec0.get128() ),			// Value
-		_mm_andnot_ps( vmask, vec1.get128() ) ) );		// Signs
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 maxPerElem( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return Vector3( _mm_max_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector3 &vec )
-{
-    return floatInVec( _mm_max_ps( _mm_max_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 minPerElem( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return Vector3( _mm_min_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector3 &vec )
-{
-    return floatInVec( _mm_min_ps( _mm_min_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector3 &vec )
-{
-    return floatInVec( _mm_add_ps( _mm_add_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return floatInVec( _vmathVfDot3( vec0.get128(), vec1.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector3 &vec )
-{
-    return floatInVec(  _vmathVfDot3( vec.get128(), vec.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec length( const Vector3 &vec )
-{
-    return floatInVec(  _mm_sqrt_ps(_vmathVfDot3( vec.get128(), vec.get128() )), 0 );
-}
-
-
-VECTORMATH_FORCE_INLINE const Vector3 normalizeApprox( const Vector3 &vec )
-{
-    return Vector3( _mm_mul_ps( vec.get128(), _mm_rsqrt_ps( _vmathVfDot3( vec.get128(), vec.get128() ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 normalize( const Vector3 &vec )
-{
-	return Vector3( _mm_mul_ps( vec.get128(), newtonrapson_rsqrt4( _vmathVfDot3( vec.get128(), vec.get128() ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 cross( const Vector3 &vec0, const Vector3 &vec1 )
-{
-    return Vector3( _vmathVfCross( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, bool select1 )
-{
-    return select( vec0, vec1, boolInVec(select1) );
-}
-
-
-VECTORMATH_FORCE_INLINE  const Vector4 select(const Vector4& vec0, const Vector4& vec1, const boolInVec& select1)
-{
-    return Vector4(vec_sel(vec0.get128(), vec1.get128(), select1.get128()));
-}
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Vector3 &vec )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = vec.get128();
-    printf( "( %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2] );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Vector3 &vec, const char * name )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = vec.get128();
-    printf( "%s: ( %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2] );
-}
-
-#endif
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( float _x, float _y, float _z, float _w )
-{
-    mVec128 = _mm_setr_ps(_x, _y, _z, _w); 
- }
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z, const floatInVec &_w )
-{
-	mVec128 = _mm_unpacklo_ps(
-		_mm_unpacklo_ps( _x.get128(), _z.get128() ),
-		_mm_unpacklo_ps( _y.get128(), _w.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &xyz, float _w )
-{
-    mVec128 = xyz.get128();
-    _vmathVfSetElement(mVec128, _w, 3);
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &xyz, const floatInVec &_w )
-{
-    mVec128 = xyz.get128();
-    mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &vec )
-{
-    mVec128 = vec.get128();
-    mVec128 = _vmathVfInsert(mVec128, _mm_setzero_ps(), 3);
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const Point3 &pnt )
-{
-    mVec128 = pnt.get128();
-    mVec128 = _vmathVfInsert(mVec128, _mm_set1_ps(1.0f), 3);
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const Quat &quat )
-{
-    mVec128 = quat.get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( float scalar )
-{
-    mVec128 = floatInVec(scalar).get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( const floatInVec &scalar )
-{
-    mVec128 = scalar.get128();
-}
-
-VECTORMATH_FORCE_INLINE Vector4::Vector4( __m128 vf4 )
-{
-    mVec128 = vf4;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::xAxis( )
-{
-    return Vector4( _VECTORMATH_UNIT_1000 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::yAxis( )
-{
-    return Vector4( _VECTORMATH_UNIT_0100 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::zAxis( )
-{
-    return Vector4( _VECTORMATH_UNIT_0010 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::wAxis( )
-{
-    return Vector4( _VECTORMATH_UNIT_0001 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 lerp( float t, const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return lerp( floatInVec(t), vec0, vec1 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 lerp( const floatInVec &t, const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return ( vec0 + ( ( vec1 - vec0 ) * t ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 slerp( float t, const Vector4 &unitVec0, const Vector4 &unitVec1 )
-{
-    return slerp( floatInVec(t), unitVec0, unitVec1 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 slerp( const floatInVec &t, const Vector4 &unitVec0, const Vector4 &unitVec1 )
-{
-    __m128 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;
-    cosAngle = _vmathVfDot4( unitVec0.get128(), unitVec1.get128() );
-    __m128 selectMask = _mm_cmpgt_ps( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );
-    angle = acosf4( cosAngle );
-    tttt = t.get128();
-    oneMinusT = _mm_sub_ps( _mm_set1_ps(1.0f), tttt );
-    angles = _mm_unpacklo_ps( _mm_set1_ps(1.0f), tttt ); // angles = 1, t, 1, t
-    angles = _mm_unpacklo_ps( angles, oneMinusT );		// angles = 1, 1-t, t, 1-t
-    angles = _mm_mul_ps( angles, angle );
-    sines = sinf4( angles );
-    scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );
-    scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );
-    scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );
-    return Vector4( vec_madd( unitVec0.get128(), scale0, _mm_mul_ps( unitVec1.get128(), scale1 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE __m128 Vector4::get128( ) const
-{
-    return mVec128;
-}
-/*
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector4 &vec0, const Vector4 &vec1, const Vector4 &vec2, const Vector4 &vec3, vec_ushort8 * twoQuads )
-{
-    twoQuads[0] = _vmath2VfToHalfFloats(vec0.get128(), vec1.get128());
-    twoQuads[1] = _vmath2VfToHalfFloats(vec2.get128(), vec3.get128());
-}
-*/
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator =( const Vector4 &vec )
-{
-    mVec128 = vec.mVec128;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setXYZ( const Vector3 &vec )
-{
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};
-	mVec128 = vec_sel( vec.get128(), mVec128, sw );
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Vector4::getXYZ( ) const
-{
-    return Vector3( mVec128 );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setX( float _x )
-{
-    _vmathVfSetElement(mVec128, _x, 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setX( const floatInVec &_x )
-{
-    mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::getX( ) const
-{
-    return floatInVec( mVec128, 0 );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setY( float _y )
-{
-    _vmathVfSetElement(mVec128, _y, 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setY( const floatInVec &_y )
-{
-    mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::getY( ) const
-{
-    return floatInVec( mVec128, 1 );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setZ( float _z )
-{
-    _vmathVfSetElement(mVec128, _z, 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setZ( const floatInVec &_z )
-{
-    mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::getZ( ) const
-{
-    return floatInVec( mVec128, 2 );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setW( float _w )
-{
-    _vmathVfSetElement(mVec128, _w, 3);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setW( const floatInVec &_w )
-{
-    mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::getW( ) const
-{
-    return floatInVec( mVec128, 3 );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setElem( int idx, float value )
-{
-    _vmathVfSetElement(mVec128, value, idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::setElem( int idx, const floatInVec &value )
-{
-    mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::getElem( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE VecIdx Vector4::operator []( int idx )
-{
-    return VecIdx( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Vector4::operator []( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator +( const Vector4 &vec ) const
-{
-    return Vector4( _mm_add_ps( mVec128, vec.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator -( const Vector4 &vec ) const
-{
-    return Vector4( _mm_sub_ps( mVec128, vec.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator *( float scalar ) const
-{
-    return *this * floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator *( const floatInVec &scalar ) const
-{
-    return Vector4( _mm_mul_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator +=( const Vector4 &vec )
-{
-    *this = *this + vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator -=( const Vector4 &vec )
-{
-    *this = *this - vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator *=( float scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator *=( const floatInVec &scalar )
-{
-    *this = *this * scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator /( float scalar ) const
-{
-    return *this / floatInVec(scalar);
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator /( const floatInVec &scalar ) const
-{
-    return Vector4( _mm_div_ps( mVec128, scalar.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator /=( float scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator /=( const floatInVec &scalar )
-{
-    *this = *this / scalar;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator -( ) const
-{
-	return Vector4(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar, const Vector4 &vec )
-{
-    return floatInVec(scalar) * vec;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar, const Vector4 &vec )
-{
-    return vec * scalar;
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 mulPerElem( const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return Vector4( _mm_mul_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 divPerElem( const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return Vector4( _mm_div_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 recipPerElem( const Vector4 &vec )
-{
-    return Vector4( _mm_rcp_ps( vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 absPerElem( const Vector4 &vec )
-{
-    return Vector4( fabsf4( vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 copySignPerElem( const Vector4 &vec0, const Vector4 &vec1 )
-{
-	__m128 vmask = toM128(0x7fffffff);
-	return Vector4( _mm_or_ps(
-		_mm_and_ps   ( vmask, vec0.get128() ),			// Value
-		_mm_andnot_ps( vmask, vec1.get128() ) ) );		// Signs
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 maxPerElem( const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return Vector4( _mm_max_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector4 &vec )
-{
-    return floatInVec( _mm_max_ps(
-		_mm_max_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),
-		_mm_max_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 minPerElem( const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return Vector4( _mm_min_ps( vec0.get128(), vec1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector4 &vec )
-{
-    return floatInVec( _mm_min_ps(
-		_mm_min_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),
-		_mm_min_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector4 &vec )
-{
-    return floatInVec( _mm_add_ps(
-		_mm_add_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),
-		_mm_add_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector4 &vec0, const Vector4 &vec1 )
-{
-    return floatInVec( _vmathVfDot4( vec0.get128(), vec1.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector4 &vec )
-{
-    return floatInVec(  _vmathVfDot4( vec.get128(), vec.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec length( const Vector4 &vec )
-{
-    return floatInVec(  _mm_sqrt_ps(_vmathVfDot4( vec.get128(), vec.get128() )), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 normalizeApprox( const Vector4 &vec )
-{
-    return Vector4( _mm_mul_ps( vec.get128(), _mm_rsqrt_ps( _vmathVfDot4( vec.get128(), vec.get128() ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 normalize( const Vector4 &vec )
-{
-    return Vector4( _mm_mul_ps( vec.get128(), newtonrapson_rsqrt4( _vmathVfDot4( vec.get128(), vec.get128() ) ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, bool select1 )
-{
-    return select( vec0, vec1, boolInVec(select1) );
-}
-
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Vector4 &vec )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = vec.get128();
-    printf( "( %f %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Vector4 &vec, const char * name )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = vec.get128();
-    printf( "%s: ( %f %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );
-}
-
-#endif
-
-VECTORMATH_FORCE_INLINE Point3::Point3( float _x, float _y, float _z )
-{
-    mVec128 = _mm_setr_ps(_x, _y, _z, 0.0f);
-}
-
-VECTORMATH_FORCE_INLINE Point3::Point3( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z )
-{
-	mVec128 = _mm_unpacklo_ps( _mm_unpacklo_ps( _x.get128(), _z.get128() ), _y.get128() );
-}
-
-VECTORMATH_FORCE_INLINE Point3::Point3( const Vector3 &vec )
-{
-    mVec128 = vec.get128();
-}
-
-VECTORMATH_FORCE_INLINE Point3::Point3( float scalar )
-{
-    mVec128 = floatInVec(scalar).get128();
-}
-
-VECTORMATH_FORCE_INLINE Point3::Point3( const floatInVec &scalar )
-{
-    mVec128 = scalar.get128();
-}
-
-VECTORMATH_FORCE_INLINE Point3::Point3( __m128 vf4 )
-{
-    mVec128 = vf4;
-}
-
-VECTORMATH_FORCE_INLINE const Point3 lerp( float t, const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return lerp( floatInVec(t), pnt0, pnt1 );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 lerp( const floatInVec &t, const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return ( pnt0 + ( ( pnt1 - pnt0 ) * t ) );
-}
-
-VECTORMATH_FORCE_INLINE __m128 Point3::get128( ) const
-{
-    return mVec128;
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZ( const Point3 &pnt, __m128 * quad )
-{
-    __m128 dstVec = *quad;
-	VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff}; // TODO: Centralize
-    dstVec = vec_sel(pnt.get128(), dstVec, sw);
-    *quad = dstVec;
-}
-
-VECTORMATH_FORCE_INLINE void loadXYZArray( Point3 & pnt0, Point3 & pnt1, Point3 & pnt2, Point3 & pnt3, const __m128 * threeQuads )
-{
-	const float *quads = (float *)threeQuads;
-    pnt0 = Point3(  _mm_load_ps(quads) );
-    pnt1 = Point3( _mm_loadu_ps(quads + 3) );
-    pnt2 = Point3( _mm_loadu_ps(quads + 6) );
-    pnt3 = Point3( _mm_loadu_ps(quads + 9) );
-}
-
-VECTORMATH_FORCE_INLINE void storeXYZArray( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, __m128 * threeQuads )
-{
-	__m128 xxxx = _mm_shuffle_ps( pnt1.get128(), pnt1.get128(), _MM_SHUFFLE(0, 0, 0, 0) );
-	__m128 zzzz = _mm_shuffle_ps( pnt2.get128(), pnt2.get128(), _MM_SHUFFLE(2, 2, 2, 2) );
-	VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0, 0, 0, 0xffffffff};
-	VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0xffffffff, 0, 0, 0};
-	threeQuads[0] = vec_sel( pnt0.get128(), xxxx, xsw );
-    threeQuads[1] = _mm_shuffle_ps( pnt1.get128(), pnt2.get128(), _MM_SHUFFLE(1, 0, 2, 1) );
-    threeQuads[2] = vec_sel( _mm_shuffle_ps( pnt3.get128(), pnt3.get128(), _MM_SHUFFLE(2, 1, 0, 3) ), zzzz, zsw );
-}
-/*
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, const Point3 &pnt4, const Point3 &pnt5, const Point3 &pnt6, const Point3 &pnt7, vec_ushort8 * threeQuads )
-{
-#if 0
-    __m128 xyz0[3];
-    __m128 xyz1[3];
-    storeXYZArray( pnt0, pnt1, pnt2, pnt3, xyz0 );
-    storeXYZArray( pnt4, pnt5, pnt6, pnt7, xyz1 );
-    threeQuads[0] = _vmath2VfToHalfFloats(xyz0[0], xyz0[1]);
-    threeQuads[1] = _vmath2VfToHalfFloats(xyz0[2], xyz1[0]);
-    threeQuads[2] = _vmath2VfToHalfFloats(xyz1[1], xyz1[2]);
-#else
-	assert(0);
-#endif
-}
-*/
-VECTORMATH_FORCE_INLINE Point3 & Point3::operator =( const Point3 &pnt )
-{
-    mVec128 = pnt.mVec128;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setX( float _x )
-{
-    _vmathVfSetElement(mVec128, _x, 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setX( const floatInVec &_x )
-{
-    mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Point3::getX( ) const
-{
-    return floatInVec( mVec128, 0 );
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setY( float _y )
-{
-    _vmathVfSetElement(mVec128, _y, 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setY( const floatInVec &_y )
-{
-    mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Point3::getY( ) const
-{
-    return floatInVec( mVec128, 1 );
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setZ( float _z )
-{
-    _vmathVfSetElement(mVec128, _z, 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setZ( const floatInVec &_z )
-{
-    mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Point3::getZ( ) const
-{
-    return floatInVec( mVec128, 2 );
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setElem( int idx, float value )
-{
-    _vmathVfSetElement(mVec128, value, idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::setElem( int idx, const floatInVec &value )
-{
-    mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Point3::getElem( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE VecIdx Point3::operator []( int idx )
-{
-    return VecIdx( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec Point3::operator []( int idx ) const
-{
-    return floatInVec( mVec128, idx );
-}
-
-VECTORMATH_FORCE_INLINE const Vector3 Point3::operator -( const Point3 &pnt ) const
-{
-    return Vector3( _mm_sub_ps( mVec128, pnt.mVec128 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 Point3::operator +( const Vector3 &vec ) const
-{
-    return Point3( _mm_add_ps( mVec128, vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 Point3::operator -( const Vector3 &vec ) const
-{
-    return Point3( _mm_sub_ps( mVec128, vec.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::operator +=( const Vector3 &vec )
-{
-    *this = *this + vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE Point3 & Point3::operator -=( const Vector3 &vec )
-{
-    *this = *this - vec;
-    return *this;
-}
-
-VECTORMATH_FORCE_INLINE const Point3 mulPerElem( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return Point3( _mm_mul_ps( pnt0.get128(), pnt1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 divPerElem( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return Point3( _mm_div_ps( pnt0.get128(), pnt1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 recipPerElem( const Point3 &pnt )
-{
-    return Point3( _mm_rcp_ps( pnt.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 absPerElem( const Point3 &pnt )
-{
-    return Point3( fabsf4( pnt.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 copySignPerElem( const Point3 &pnt0, const Point3 &pnt1 )
-{
-	__m128 vmask = toM128(0x7fffffff);
-	return Point3( _mm_or_ps(
-		_mm_and_ps   ( vmask, pnt0.get128() ),			// Value
-		_mm_andnot_ps( vmask, pnt1.get128() ) ) );		// Signs
-}
-
-VECTORMATH_FORCE_INLINE const Point3 maxPerElem( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return Point3( _mm_max_ps( pnt0.get128(), pnt1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Point3 &pnt )
-{
-    return floatInVec( _mm_max_ps( _mm_max_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 minPerElem( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return Point3( _mm_min_ps( pnt0.get128(), pnt1.get128() ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Point3 &pnt )
-{
-    return floatInVec( _mm_min_ps( _mm_min_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Point3 &pnt )
-{
-    return floatInVec( _mm_add_ps( _mm_add_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, float scaleVal )
-{
-    return scale( pnt, floatInVec( scaleVal ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const floatInVec &scaleVal )
-{
-    return mulPerElem( pnt, Point3( scaleVal ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const Vector3 &scaleVec )
-{
-    return mulPerElem( pnt, Point3( scaleVec ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec projection( const Point3 &pnt, const Vector3 &unitVec )
-{
-    return floatInVec( _vmathVfDot3( pnt.get128(), unitVec.get128() ), 0 );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec distSqrFromOrigin( const Point3 &pnt )
-{
-    return lengthSqr( Vector3( pnt ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec distFromOrigin( const Point3 &pnt )
-{
-    return length( Vector3( pnt ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec distSqr( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return lengthSqr( ( pnt1 - pnt0 ) );
-}
-
-VECTORMATH_FORCE_INLINE const floatInVec dist( const Point3 &pnt0, const Point3 &pnt1 )
-{
-    return length( ( pnt1 - pnt0 ) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, bool select1 )
-{
-    return select( pnt0, pnt1, boolInVec(select1) );
-}
-
-VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, const boolInVec &select1 )
-{
-    return Point3( vec_sel( pnt0.get128(), pnt1.get128(), select1.get128() ) );
-}
-
-
-
-#ifdef _VECTORMATH_DEBUG
-
-VECTORMATH_FORCE_INLINE void print( const Point3 &pnt )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = pnt.get128();
-    printf( "( %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2] );
-}
-
-VECTORMATH_FORCE_INLINE void print( const Point3 &pnt, const char * name )
-{
-    union { __m128 v; float s[4]; } tmp;
-    tmp.v = pnt.get128();
-    printf( "%s: ( %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2] );
-}
-
-#endif
-
-} // namespace Aos
-} // namespace Vectormath
-
-#endif
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/++#ifndef _VECTORMATH_VEC_AOS_CPP_H+#define _VECTORMATH_VEC_AOS_CPP_H++//-----------------------------------------------------------------------------+// Constants+// for permutes words are labeled [x,y,z,w] [a,b,c,d]++#define _VECTORMATH_PERM_X 0x00010203+#define _VECTORMATH_PERM_Y 0x04050607+#define _VECTORMATH_PERM_Z 0x08090a0b+#define _VECTORMATH_PERM_W 0x0c0d0e0f+#define _VECTORMATH_PERM_A 0x10111213+#define _VECTORMATH_PERM_B 0x14151617+#define _VECTORMATH_PERM_C 0x18191a1b+#define _VECTORMATH_PERM_D 0x1c1d1e1f+#define _VECTORMATH_PERM_XYZA (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A }+#define _VECTORMATH_PERM_ZXYW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_W }+#define _VECTORMATH_PERM_YZXW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_X, _VECTORMATH_PERM_W }+#define _VECTORMATH_PERM_YZAB (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Y, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B }+#define _VECTORMATH_PERM_ZABC (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_Z, _VECTORMATH_PERM_A, _VECTORMATH_PERM_B, _VECTORMATH_PERM_C }+#define _VECTORMATH_PERM_XYAW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_Y, _VECTORMATH_PERM_A, _VECTORMATH_PERM_W }+#define _VECTORMATH_PERM_XAZW (vec_uchar16)(vec_uint4){ _VECTORMATH_PERM_X, _VECTORMATH_PERM_A, _VECTORMATH_PERM_Z, _VECTORMATH_PERM_W }+#define _VECTORMATH_MASK_0xF000 (vec_uint4){ 0xffffffff, 0, 0, 0 }+#define _VECTORMATH_MASK_0x0F00 (vec_uint4){ 0, 0xffffffff, 0, 0 }+#define _VECTORMATH_MASK_0x00F0 (vec_uint4){ 0, 0, 0xffffffff, 0 }+#define _VECTORMATH_MASK_0x000F (vec_uint4){ 0, 0, 0, 0xffffffff }+#define _VECTORMATH_UNIT_1000 _mm_setr_ps(1.0f,0.0f,0.0f,0.0f) // (__m128){ 1.0f, 0.0f, 0.0f, 0.0f }+#define _VECTORMATH_UNIT_0100 _mm_setr_ps(0.0f,1.0f,0.0f,0.0f) // (__m128){ 0.0f, 1.0f, 0.0f, 0.0f }+#define _VECTORMATH_UNIT_0010 _mm_setr_ps(0.0f,0.0f,1.0f,0.0f) // (__m128){ 0.0f, 0.0f, 1.0f, 0.0f }+#define _VECTORMATH_UNIT_0001 _mm_setr_ps(0.0f,0.0f,0.0f,1.0f) // (__m128){ 0.0f, 0.0f, 0.0f, 1.0f }+#define _VECTORMATH_SLERP_TOL 0.999f+//_VECTORMATH_SLERP_TOLF++//-----------------------------------------------------------------------------+// Definitions++#ifndef _VECTORMATH_INTERNAL_FUNCTIONS+#define _VECTORMATH_INTERNAL_FUNCTIONS++#define _vmath_shufps(a, b, immx, immy, immz, immw) _mm_shuffle_ps(a, b, _MM_SHUFFLE(immw, immz, immy, immx))+static VECTORMATH_FORCE_INLINE __m128 _vmathVfDot3( __m128 vec0, __m128 vec1 )+{+__m128 result = _mm_mul_ps( vec0, vec1);+return _mm_add_ps( vec_splat( result, 0 ), _mm_add_ps( vec_splat( result, 1 ), vec_splat( result, 2 ) ) );+}++static VECTORMATH_FORCE_INLINE __m128 _vmathVfDot4( __m128 vec0, __m128 vec1 )+{+__m128 result = _mm_mul_ps(vec0, vec1);+return _mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(0,0,0,0)),+_mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(1,1,1,1)),+_mm_add_ps(_mm_shuffle_ps(result, result, _MM_SHUFFLE(2,2,2,2)), _mm_shuffle_ps(result, result, _MM_SHUFFLE(3,3,3,3)))));+}++static VECTORMATH_FORCE_INLINE __m128 _vmathVfCross( __m128 vec0, __m128 vec1 )+{+__m128 tmp0, tmp1, tmp2, tmp3, result;+tmp0 = _mm_shuffle_ps( vec0, vec0, _MM_SHUFFLE(3,0,2,1) );+tmp1 = _mm_shuffle_ps( vec1, vec1, _MM_SHUFFLE(3,1,0,2) );+tmp2 = _mm_shuffle_ps( vec0, vec0, _MM_SHUFFLE(3,1,0,2) );+tmp3 = _mm_shuffle_ps( vec1, vec1, _MM_SHUFFLE(3,0,2,1) );+result = vec_mul( tmp0, tmp1 );+result = vec_nmsub( tmp2, tmp3, result );+return result;+}+/*+static VECTORMATH_FORCE_INLINE vec_uint4 _vmathVfToHalfFloatsUnpacked(__m128 v)+{+#if 0+vec_int4 bexp;+vec_uint4 mant, sign, hfloat;+vec_uint4 notZero, isInf;+const vec_uint4 hfloatInf = (vec_uint4)(0x00007c00u);+const vec_uint4 mergeMant = (vec_uint4)(0x000003ffu);+const vec_uint4 mergeSign = (vec_uint4)(0x00008000u);++sign = vec_sr((vec_uint4)v, (vec_uint4)16);+mant = vec_sr((vec_uint4)v, (vec_uint4)13);+bexp = vec_and(vec_sr((vec_int4)v, (vec_uint4)23), (vec_int4)0xff);++notZero = (vec_uint4)vec_cmpgt(bexp, (vec_int4)112);+isInf = (vec_uint4)vec_cmpgt(bexp, (vec_int4)142);++bexp = _mm_add_ps(bexp, (vec_int4)-112);+bexp = vec_sl(bexp, (vec_uint4)10);++hfloat = vec_sel((vec_uint4)bexp, mant, mergeMant);+hfloat = vec_sel((vec_uint4)(0), hfloat, notZero);+hfloat = vec_sel(hfloat, hfloatInf, isInf);+hfloat = vec_sel(hfloat, sign, mergeSign);++return hfloat;+#else+assert(0);+return _mm_setzero_ps();+#endif+}++static VECTORMATH_FORCE_INLINE vec_ushort8 _vmath2VfToHalfFloats(__m128 u, __m128 v)+{+#if 0+vec_uint4 hfloat_u, hfloat_v;+const vec_uchar16 pack = (vec_uchar16){2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31};+hfloat_u = _vmathVfToHalfFloatsUnpacked(u);+hfloat_v = _vmathVfToHalfFloatsUnpacked(v);+return (vec_ushort8)vec_perm(hfloat_u, hfloat_v, pack);+#else+assert(0);+return _mm_setzero_si128();+#endif+}+*/++static VECTORMATH_FORCE_INLINE __m128 _vmathVfInsert(__m128 dst, __m128 src, int slot)+{+SSEFloat s;+s.m128 = src;+SSEFloat d;+d.m128 = dst;+d.f[slot] = s.f[slot];+return d.m128;+}++#define _vmathVfSetElement(vec, scalar, slot) ((float *)&(vec))[slot] = scalar++static VECTORMATH_FORCE_INLINE __m128 _vmathVfSplatScalar(float scalar)+{+return _mm_set1_ps(scalar);+}++#endif++namespace Vectormath {+namespace Aos {+++#ifdef _VECTORMATH_NO_SCALAR_CAST+VECTORMATH_FORCE_INLINE VecIdx::operator floatInVec() const+{+return floatInVec(ref, i);+}++VECTORMATH_FORCE_INLINE float VecIdx::getAsFloat() const+#else+VECTORMATH_FORCE_INLINE VecIdx::operator float() const+#endif+{+return ((float *)&ref)[i];+}++VECTORMATH_FORCE_INLINE float VecIdx::operator =( float scalar )+{+_vmathVfSetElement(ref, scalar, i);+return scalar;+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator =( const floatInVec &scalar )+{+ref = _vmathVfInsert(ref, scalar.get128(), i);+return scalar;+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator =( const VecIdx& scalar )+{+return *this = floatInVec(scalar.ref, scalar.i);+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator *=( float scalar )+{+return *this *= floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator *=( const floatInVec &scalar )+{+return *this = floatInVec(ref, i) * scalar;+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator /=( float scalar )+{+return *this /= floatInVec(scalar);+}++inline floatInVec VecIdx::operator /=( const floatInVec &scalar )+{+return *this = floatInVec(ref, i) / scalar;+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator +=( float scalar )+{+return *this += floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator +=( const floatInVec &scalar )+{+return *this = floatInVec(ref, i) + scalar;+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator -=( float scalar )+{+return *this -= floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE floatInVec VecIdx::operator -=( const floatInVec &scalar )+{+return *this = floatInVec(ref, i) - scalar;+}++VECTORMATH_FORCE_INLINE Vector3::Vector3(const Vector3& vec)+{+set128(vec.get128());+}++VECTORMATH_FORCE_INLINE void Vector3::set128(vec_float4 vec)+{+mVec128 = vec;+}+++VECTORMATH_FORCE_INLINE Vector3::Vector3( float _x, float _y, float _z )+{+mVec128 = _mm_setr_ps(_x, _y, _z, 0.0f);+}++VECTORMATH_FORCE_INLINE Vector3::Vector3( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z )+{+__m128 xz = _mm_unpacklo_ps( _x.get128(), _z.get128() );+mVec128 = _mm_unpacklo_ps( xz, _y.get128() );+}++VECTORMATH_FORCE_INLINE Vector3::Vector3( const Point3 &pnt )+{+mVec128 = pnt.get128();+}++VECTORMATH_FORCE_INLINE Vector3::Vector3( float scalar )+{+mVec128 = floatInVec(scalar).get128();+}++VECTORMATH_FORCE_INLINE Vector3::Vector3( const floatInVec &scalar )+{+mVec128 = scalar.get128();+}++VECTORMATH_FORCE_INLINE Vector3::Vector3( __m128 vf4 )+{+mVec128 = vf4;+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::xAxis( )+{+return Vector3( _VECTORMATH_UNIT_1000 );+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::yAxis( )+{+return Vector3( _VECTORMATH_UNIT_0100 );+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::zAxis( )+{+return Vector3( _VECTORMATH_UNIT_0010 );+}++VECTORMATH_FORCE_INLINE const Vector3 lerp( float t, const Vector3 &vec0, const Vector3 &vec1 )+{+return lerp( floatInVec(t), vec0, vec1 );+}++VECTORMATH_FORCE_INLINE const Vector3 lerp( const floatInVec &t, const Vector3 &vec0, const Vector3 &vec1 )+{+return ( vec0 + ( ( vec1 - vec0 ) * t ) );+}++VECTORMATH_FORCE_INLINE const Vector3 slerp( float t, const Vector3 &unitVec0, const Vector3 &unitVec1 )+{+return slerp( floatInVec(t), unitVec0, unitVec1 );+}++VECTORMATH_FORCE_INLINE const Vector3 slerp( const floatInVec &t, const Vector3 &unitVec0, const Vector3 &unitVec1 )+{+__m128 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;+cosAngle = _vmathVfDot3( unitVec0.get128(), unitVec1.get128() );+__m128 selectMask = _mm_cmpgt_ps( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );+angle = acosf4( cosAngle );+tttt = t.get128();+oneMinusT = _mm_sub_ps( _mm_set1_ps(1.0f), tttt );+angles = _mm_unpacklo_ps( _mm_set1_ps(1.0f), tttt ); // angles = 1, t, 1, t+angles = _mm_unpacklo_ps( angles, oneMinusT ); // angles = 1, 1-t, t, 1-t+angles = _mm_mul_ps( angles, angle );+sines = sinf4( angles );+scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );+scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );+scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );+return Vector3( vec_madd( unitVec0.get128(), scale0, _mm_mul_ps( unitVec1.get128(), scale1 ) ) );+}++VECTORMATH_FORCE_INLINE __m128 Vector3::get128( ) const+{+return mVec128;+}++VECTORMATH_FORCE_INLINE void loadXYZ(Point3& vec, const float* fptr)+{+#ifdef USE_SSE3_LDDQU+vec = Point3( SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128 );+#else+SSEFloat fl;+fl.f[0] = fptr[0];+fl.f[1] = fptr[1];+fl.f[2] = fptr[2];+fl.f[3] = fptr[3];+vec = Point3( fl.m128);+#endif //USE_SSE3_LDDQU++}++++VECTORMATH_FORCE_INLINE void loadXYZ(Vector3& vec, const float* fptr)+{+#ifdef USE_SSE3_LDDQU+vec = Vector3( SSEFloat(_mm_lddqu_si128((const __m128i*)((float*)(fptr)))).m128 );+#else+SSEFloat fl;+fl.f[0] = fptr[0];+fl.f[1] = fptr[1];+fl.f[2] = fptr[2];+fl.f[3] = fptr[3];+vec = Vector3( fl.m128);+#endif //USE_SSE3_LDDQU++}++VECTORMATH_FORCE_INLINE void storeXYZ( const Vector3 &vec, __m128 * quad )+{+__m128 dstVec = *quad;+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff}; // TODO: Centralize+dstVec = vec_sel(vec.get128(), dstVec, sw);+*quad = dstVec;+}++VECTORMATH_FORCE_INLINE void storeXYZ(const Point3& vec, float* fptr)+{+fptr[0] = vec.getX();+fptr[1] = vec.getY();+fptr[2] = vec.getZ();+}++VECTORMATH_FORCE_INLINE void storeXYZ(const Vector3& vec, float* fptr)+{+fptr[0] = vec.getX();+fptr[1] = vec.getY();+fptr[2] = vec.getZ();+}+++VECTORMATH_FORCE_INLINE void loadXYZArray( Vector3 & vec0, Vector3 & vec1, Vector3 & vec2, Vector3 & vec3, const __m128 * threeQuads )+{+const float *quads = (float *)threeQuads;+vec0 = Vector3( _mm_load_ps(quads) );+vec1 = Vector3( _mm_loadu_ps(quads + 3) );+vec2 = Vector3( _mm_loadu_ps(quads + 6) );+vec3 = Vector3( _mm_loadu_ps(quads + 9) );+}++VECTORMATH_FORCE_INLINE void storeXYZArray( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, __m128 * threeQuads )+{+__m128 xxxx = _mm_shuffle_ps( vec1.get128(), vec1.get128(), _MM_SHUFFLE(0, 0, 0, 0) );+__m128 zzzz = _mm_shuffle_ps( vec2.get128(), vec2.get128(), _MM_SHUFFLE(2, 2, 2, 2) );+VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0, 0, 0, 0xffffffff};+VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0xffffffff, 0, 0, 0};+threeQuads[0] = vec_sel( vec0.get128(), xxxx, xsw );+threeQuads[1] = _mm_shuffle_ps( vec1.get128(), vec2.get128(), _MM_SHUFFLE(1, 0, 2, 1) );+threeQuads[2] = vec_sel( _mm_shuffle_ps( vec3.get128(), vec3.get128(), _MM_SHUFFLE(2, 1, 0, 3) ), zzzz, zsw );+}+/*+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, const Vector3 &vec5, const Vector3 &vec6, const Vector3 &vec7, vec_ushort8 * threeQuads )+{+assert(0);+#if 0+__m128 xyz0[3];+__m128 xyz1[3];+storeXYZArray( vec0, vec1, vec2, vec3, xyz0 );+storeXYZArray( vec4, vec5, vec6, vec7, xyz1 );+threeQuads[0] = _vmath2VfToHalfFloats(xyz0[0], xyz0[1]);+threeQuads[1] = _vmath2VfToHalfFloats(xyz0[2], xyz1[0]);+threeQuads[2] = _vmath2VfToHalfFloats(xyz1[1], xyz1[2]);+#endif+}+*/+VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator =( const Vector3 &vec )+{+mVec128 = vec.mVec128;+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setX( float _x )+{+_vmathVfSetElement(mVec128, _x, 0);+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setX( const floatInVec &_x )+{+mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector3::getX( ) const+{+return floatInVec( mVec128, 0 );+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setY( float _y )+{+_vmathVfSetElement(mVec128, _y, 1);+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setY( const floatInVec &_y )+{+mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector3::getY( ) const+{+return floatInVec( mVec128, 1 );+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setZ( float _z )+{+_vmathVfSetElement(mVec128, _z, 2);+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setZ( const floatInVec &_z )+{+mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector3::getZ( ) const+{+return floatInVec( mVec128, 2 );+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setElem( int idx, float value )+{+_vmathVfSetElement(mVec128, value, idx);+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::setElem( int idx, const floatInVec &value )+{+mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector3::getElem( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE VecIdx Vector3::operator []( int idx )+{+return VecIdx( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const floatInVec Vector3::operator []( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator +( const Vector3 &vec ) const+{+return Vector3( _mm_add_ps( mVec128, vec.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator -( const Vector3 &vec ) const+{+return Vector3( _mm_sub_ps( mVec128, vec.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Point3 Vector3::operator +( const Point3 &pnt ) const+{+return Point3( _mm_add_ps( mVec128, pnt.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator *( float scalar ) const+{+return *this * floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator *( const floatInVec &scalar ) const+{+return Vector3( _mm_mul_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator +=( const Vector3 &vec )+{+*this = *this + vec;+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator -=( const Vector3 &vec )+{+*this = *this - vec;+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator *=( const floatInVec &scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator /( float scalar ) const+{+return *this / floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator /( const floatInVec &scalar ) const+{+return Vector3( _mm_div_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator /=( float scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Vector3 & Vector3::operator /=( const floatInVec &scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Vector3::operator -( ) const+{+//return Vector3(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );++VM_ATTRIBUTE_ALIGN16 static const int array[] = {0x80000000, 0x80000000, 0x80000000, 0x80000000};+__m128 NEG_MASK = SSEFloat(*(const vec_float4*)array).vf;+return Vector3(_mm_xor_ps(get128(),NEG_MASK));+}++VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar, const Vector3 &vec )+{+return floatInVec(scalar) * vec;+}++VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar, const Vector3 &vec )+{+return vec * scalar;+}++VECTORMATH_FORCE_INLINE const Vector3 mulPerElem( const Vector3 &vec0, const Vector3 &vec1 )+{+return Vector3( _mm_mul_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 divPerElem( const Vector3 &vec0, const Vector3 &vec1 )+{+return Vector3( _mm_div_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 recipPerElem( const Vector3 &vec )+{+return Vector3( _mm_rcp_ps( vec.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 absPerElem( const Vector3 &vec )+{+return Vector3( fabsf4( vec.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 copySignPerElem( const Vector3 &vec0, const Vector3 &vec1 )+{+__m128 vmask = toM128(0x7fffffff);+return Vector3( _mm_or_ps(+_mm_and_ps ( vmask, vec0.get128() ), // Value+_mm_andnot_ps( vmask, vec1.get128() ) ) ); // Signs+}++VECTORMATH_FORCE_INLINE const Vector3 maxPerElem( const Vector3 &vec0, const Vector3 &vec1 )+{+return Vector3( _mm_max_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector3 &vec )+{+return floatInVec( _mm_max_ps( _mm_max_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const Vector3 minPerElem( const Vector3 &vec0, const Vector3 &vec1 )+{+return Vector3( _mm_min_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector3 &vec )+{+return floatInVec( _mm_min_ps( _mm_min_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector3 &vec )+{+return floatInVec( _mm_add_ps( _mm_add_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ), vec_splat( vec.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector3 &vec0, const Vector3 &vec1 )+{+return floatInVec( _vmathVfDot3( vec0.get128(), vec1.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector3 &vec )+{+return floatInVec( _vmathVfDot3( vec.get128(), vec.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec length( const Vector3 &vec )+{+return floatInVec( _mm_sqrt_ps(_vmathVfDot3( vec.get128(), vec.get128() )), 0 );+}+++VECTORMATH_FORCE_INLINE const Vector3 normalizeApprox( const Vector3 &vec )+{+return Vector3( _mm_mul_ps( vec.get128(), _mm_rsqrt_ps( _vmathVfDot3( vec.get128(), vec.get128() ) ) ) );+}++VECTORMATH_FORCE_INLINE const Vector3 normalize( const Vector3 &vec )+{+return Vector3( _mm_mul_ps( vec.get128(), newtonrapson_rsqrt4( _vmathVfDot3( vec.get128(), vec.get128() ) ) ) );+}++VECTORMATH_FORCE_INLINE const Vector3 cross( const Vector3 &vec0, const Vector3 &vec1 )+{+return Vector3( _vmathVfCross( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, bool select1 )+{+return select( vec0, vec1, boolInVec(select1) );+}+++VECTORMATH_FORCE_INLINE const Vector4 select(const Vector4& vec0, const Vector4& vec1, const boolInVec& select1)+{+return Vector4(vec_sel(vec0.get128(), vec1.get128(), select1.get128()));+}++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Vector3 &vec )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = vec.get128();+printf( "( %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2] );+}++VECTORMATH_FORCE_INLINE void print( const Vector3 &vec, const char * name )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = vec.get128();+printf( "%s: ( %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2] );+}++#endif++VECTORMATH_FORCE_INLINE Vector4::Vector4( float _x, float _y, float _z, float _w )+{+mVec128 = _mm_setr_ps(_x, _y, _z, _w);+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z, const floatInVec &_w )+{+mVec128 = _mm_unpacklo_ps(+_mm_unpacklo_ps( _x.get128(), _z.get128() ),+_mm_unpacklo_ps( _y.get128(), _w.get128() ) );+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &xyz, float _w )+{+mVec128 = xyz.get128();+_vmathVfSetElement(mVec128, _w, 3);+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &xyz, const floatInVec &_w )+{+mVec128 = xyz.get128();+mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const Vector3 &vec )+{+mVec128 = vec.get128();+mVec128 = _vmathVfInsert(mVec128, _mm_setzero_ps(), 3);+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const Point3 &pnt )+{+mVec128 = pnt.get128();+mVec128 = _vmathVfInsert(mVec128, _mm_set1_ps(1.0f), 3);+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const Quat &quat )+{+mVec128 = quat.get128();+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( float scalar )+{+mVec128 = floatInVec(scalar).get128();+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( const floatInVec &scalar )+{+mVec128 = scalar.get128();+}++VECTORMATH_FORCE_INLINE Vector4::Vector4( __m128 vf4 )+{+mVec128 = vf4;+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::xAxis( )+{+return Vector4( _VECTORMATH_UNIT_1000 );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::yAxis( )+{+return Vector4( _VECTORMATH_UNIT_0100 );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::zAxis( )+{+return Vector4( _VECTORMATH_UNIT_0010 );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::wAxis( )+{+return Vector4( _VECTORMATH_UNIT_0001 );+}++VECTORMATH_FORCE_INLINE const Vector4 lerp( float t, const Vector4 &vec0, const Vector4 &vec1 )+{+return lerp( floatInVec(t), vec0, vec1 );+}++VECTORMATH_FORCE_INLINE const Vector4 lerp( const floatInVec &t, const Vector4 &vec0, const Vector4 &vec1 )+{+return ( vec0 + ( ( vec1 - vec0 ) * t ) );+}++VECTORMATH_FORCE_INLINE const Vector4 slerp( float t, const Vector4 &unitVec0, const Vector4 &unitVec1 )+{+return slerp( floatInVec(t), unitVec0, unitVec1 );+}++VECTORMATH_FORCE_INLINE const Vector4 slerp( const floatInVec &t, const Vector4 &unitVec0, const Vector4 &unitVec1 )+{+__m128 scales, scale0, scale1, cosAngle, angle, tttt, oneMinusT, angles, sines;+cosAngle = _vmathVfDot4( unitVec0.get128(), unitVec1.get128() );+__m128 selectMask = _mm_cmpgt_ps( _mm_set1_ps(_VECTORMATH_SLERP_TOL), cosAngle );+angle = acosf4( cosAngle );+tttt = t.get128();+oneMinusT = _mm_sub_ps( _mm_set1_ps(1.0f), tttt );+angles = _mm_unpacklo_ps( _mm_set1_ps(1.0f), tttt ); // angles = 1, t, 1, t+angles = _mm_unpacklo_ps( angles, oneMinusT ); // angles = 1, 1-t, t, 1-t+angles = _mm_mul_ps( angles, angle );+sines = sinf4( angles );+scales = _mm_div_ps( sines, vec_splat( sines, 0 ) );+scale0 = vec_sel( oneMinusT, vec_splat( scales, 1 ), selectMask );+scale1 = vec_sel( tttt, vec_splat( scales, 2 ), selectMask );+return Vector4( vec_madd( unitVec0.get128(), scale0, _mm_mul_ps( unitVec1.get128(), scale1 ) ) );+}++VECTORMATH_FORCE_INLINE __m128 Vector4::get128( ) const+{+return mVec128;+}+/*+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector4 &vec0, const Vector4 &vec1, const Vector4 &vec2, const Vector4 &vec3, vec_ushort8 * twoQuads )+{+twoQuads[0] = _vmath2VfToHalfFloats(vec0.get128(), vec1.get128());+twoQuads[1] = _vmath2VfToHalfFloats(vec2.get128(), vec3.get128());+}+*/+VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator =( const Vector4 &vec )+{+mVec128 = vec.mVec128;+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setXYZ( const Vector3 &vec )+{+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff};+mVec128 = vec_sel( vec.get128(), mVec128, sw );+return *this;+}++VECTORMATH_FORCE_INLINE const Vector3 Vector4::getXYZ( ) const+{+return Vector3( mVec128 );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setX( float _x )+{+_vmathVfSetElement(mVec128, _x, 0);+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setX( const floatInVec &_x )+{+mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::getX( ) const+{+return floatInVec( mVec128, 0 );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setY( float _y )+{+_vmathVfSetElement(mVec128, _y, 1);+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setY( const floatInVec &_y )+{+mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::getY( ) const+{+return floatInVec( mVec128, 1 );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setZ( float _z )+{+_vmathVfSetElement(mVec128, _z, 2);+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setZ( const floatInVec &_z )+{+mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::getZ( ) const+{+return floatInVec( mVec128, 2 );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setW( float _w )+{+_vmathVfSetElement(mVec128, _w, 3);+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setW( const floatInVec &_w )+{+mVec128 = _vmathVfInsert(mVec128, _w.get128(), 3);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::getW( ) const+{+return floatInVec( mVec128, 3 );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setElem( int idx, float value )+{+_vmathVfSetElement(mVec128, value, idx);+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::setElem( int idx, const floatInVec &value )+{+mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::getElem( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE VecIdx Vector4::operator []( int idx )+{+return VecIdx( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const floatInVec Vector4::operator []( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator +( const Vector4 &vec ) const+{+return Vector4( _mm_add_ps( mVec128, vec.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator -( const Vector4 &vec ) const+{+return Vector4( _mm_sub_ps( mVec128, vec.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator *( float scalar ) const+{+return *this * floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator *( const floatInVec &scalar ) const+{+return Vector4( _mm_mul_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator +=( const Vector4 &vec )+{+*this = *this + vec;+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator -=( const Vector4 &vec )+{+*this = *this - vec;+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator *=( float scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator *=( const floatInVec &scalar )+{+*this = *this * scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator /( float scalar ) const+{+return *this / floatInVec(scalar);+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator /( const floatInVec &scalar ) const+{+return Vector4( _mm_div_ps( mVec128, scalar.get128() ) );+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator /=( float scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE Vector4 & Vector4::operator /=( const floatInVec &scalar )+{+*this = *this / scalar;+return *this;+}++VECTORMATH_FORCE_INLINE const Vector4 Vector4::operator -( ) const+{+return Vector4(_mm_sub_ps( _mm_setzero_ps(), mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar, const Vector4 &vec )+{+return floatInVec(scalar) * vec;+}++VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar, const Vector4 &vec )+{+return vec * scalar;+}++VECTORMATH_FORCE_INLINE const Vector4 mulPerElem( const Vector4 &vec0, const Vector4 &vec1 )+{+return Vector4( _mm_mul_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector4 divPerElem( const Vector4 &vec0, const Vector4 &vec1 )+{+return Vector4( _mm_div_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector4 recipPerElem( const Vector4 &vec )+{+return Vector4( _mm_rcp_ps( vec.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector4 absPerElem( const Vector4 &vec )+{+return Vector4( fabsf4( vec.get128() ) );+}++VECTORMATH_FORCE_INLINE const Vector4 copySignPerElem( const Vector4 &vec0, const Vector4 &vec1 )+{+__m128 vmask = toM128(0x7fffffff);+return Vector4( _mm_or_ps(+_mm_and_ps ( vmask, vec0.get128() ), // Value+_mm_andnot_ps( vmask, vec1.get128() ) ) ); // Signs+}++VECTORMATH_FORCE_INLINE const Vector4 maxPerElem( const Vector4 &vec0, const Vector4 &vec1 )+{+return Vector4( _mm_max_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector4 &vec )+{+return floatInVec( _mm_max_ps(+_mm_max_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),+_mm_max_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );+}++VECTORMATH_FORCE_INLINE const Vector4 minPerElem( const Vector4 &vec0, const Vector4 &vec1 )+{+return Vector4( _mm_min_ps( vec0.get128(), vec1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector4 &vec )+{+return floatInVec( _mm_min_ps(+_mm_min_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),+_mm_min_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );+}++VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector4 &vec )+{+return floatInVec( _mm_add_ps(+_mm_add_ps( vec_splat( vec.get128(), 0 ), vec_splat( vec.get128(), 1 ) ),+_mm_add_ps( vec_splat( vec.get128(), 2 ), vec_splat( vec.get128(), 3 ) ) ) );+}++VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector4 &vec0, const Vector4 &vec1 )+{+return floatInVec( _vmathVfDot4( vec0.get128(), vec1.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector4 &vec )+{+return floatInVec( _vmathVfDot4( vec.get128(), vec.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec length( const Vector4 &vec )+{+return floatInVec( _mm_sqrt_ps(_vmathVfDot4( vec.get128(), vec.get128() )), 0 );+}++VECTORMATH_FORCE_INLINE const Vector4 normalizeApprox( const Vector4 &vec )+{+return Vector4( _mm_mul_ps( vec.get128(), _mm_rsqrt_ps( _vmathVfDot4( vec.get128(), vec.get128() ) ) ) );+}++VECTORMATH_FORCE_INLINE const Vector4 normalize( const Vector4 &vec )+{+return Vector4( _mm_mul_ps( vec.get128(), newtonrapson_rsqrt4( _vmathVfDot4( vec.get128(), vec.get128() ) ) ) );+}++VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, bool select1 )+{+return select( vec0, vec1, boolInVec(select1) );+}+++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Vector4 &vec )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = vec.get128();+printf( "( %f %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );+}++VECTORMATH_FORCE_INLINE void print( const Vector4 &vec, const char * name )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = vec.get128();+printf( "%s: ( %f %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2], tmp.s[3] );+}++#endif++VECTORMATH_FORCE_INLINE Point3::Point3( float _x, float _y, float _z )+{+mVec128 = _mm_setr_ps(_x, _y, _z, 0.0f);+}++VECTORMATH_FORCE_INLINE Point3::Point3( const floatInVec &_x, const floatInVec &_y, const floatInVec &_z )+{+mVec128 = _mm_unpacklo_ps( _mm_unpacklo_ps( _x.get128(), _z.get128() ), _y.get128() );+}++VECTORMATH_FORCE_INLINE Point3::Point3( const Vector3 &vec )+{+mVec128 = vec.get128();+}++VECTORMATH_FORCE_INLINE Point3::Point3( float scalar )+{+mVec128 = floatInVec(scalar).get128();+}++VECTORMATH_FORCE_INLINE Point3::Point3( const floatInVec &scalar )+{+mVec128 = scalar.get128();+}++VECTORMATH_FORCE_INLINE Point3::Point3( __m128 vf4 )+{+mVec128 = vf4;+}++VECTORMATH_FORCE_INLINE const Point3 lerp( float t, const Point3 &pnt0, const Point3 &pnt1 )+{+return lerp( floatInVec(t), pnt0, pnt1 );+}++VECTORMATH_FORCE_INLINE const Point3 lerp( const floatInVec &t, const Point3 &pnt0, const Point3 &pnt1 )+{+return ( pnt0 + ( ( pnt1 - pnt0 ) * t ) );+}++VECTORMATH_FORCE_INLINE __m128 Point3::get128( ) const+{+return mVec128;+}++VECTORMATH_FORCE_INLINE void storeXYZ( const Point3 &pnt, __m128 * quad )+{+__m128 dstVec = *quad;+VM_ATTRIBUTE_ALIGN16 unsigned int sw[4] = {0, 0, 0, 0xffffffff}; // TODO: Centralize+dstVec = vec_sel(pnt.get128(), dstVec, sw);+*quad = dstVec;+}++VECTORMATH_FORCE_INLINE void loadXYZArray( Point3 & pnt0, Point3 & pnt1, Point3 & pnt2, Point3 & pnt3, const __m128 * threeQuads )+{+const float *quads = (float *)threeQuads;+pnt0 = Point3( _mm_load_ps(quads) );+pnt1 = Point3( _mm_loadu_ps(quads + 3) );+pnt2 = Point3( _mm_loadu_ps(quads + 6) );+pnt3 = Point3( _mm_loadu_ps(quads + 9) );+}++VECTORMATH_FORCE_INLINE void storeXYZArray( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, __m128 * threeQuads )+{+__m128 xxxx = _mm_shuffle_ps( pnt1.get128(), pnt1.get128(), _MM_SHUFFLE(0, 0, 0, 0) );+__m128 zzzz = _mm_shuffle_ps( pnt2.get128(), pnt2.get128(), _MM_SHUFFLE(2, 2, 2, 2) );+VM_ATTRIBUTE_ALIGN16 unsigned int xsw[4] = {0, 0, 0, 0xffffffff};+VM_ATTRIBUTE_ALIGN16 unsigned int zsw[4] = {0xffffffff, 0, 0, 0};+threeQuads[0] = vec_sel( pnt0.get128(), xxxx, xsw );+threeQuads[1] = _mm_shuffle_ps( pnt1.get128(), pnt2.get128(), _MM_SHUFFLE(1, 0, 2, 1) );+threeQuads[2] = vec_sel( _mm_shuffle_ps( pnt3.get128(), pnt3.get128(), _MM_SHUFFLE(2, 1, 0, 3) ), zzzz, zsw );+}+/*+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, const Point3 &pnt4, const Point3 &pnt5, const Point3 &pnt6, const Point3 &pnt7, vec_ushort8 * threeQuads )+{+#if 0+__m128 xyz0[3];+__m128 xyz1[3];+storeXYZArray( pnt0, pnt1, pnt2, pnt3, xyz0 );+storeXYZArray( pnt4, pnt5, pnt6, pnt7, xyz1 );+threeQuads[0] = _vmath2VfToHalfFloats(xyz0[0], xyz0[1]);+threeQuads[1] = _vmath2VfToHalfFloats(xyz0[2], xyz1[0]);+threeQuads[2] = _vmath2VfToHalfFloats(xyz1[1], xyz1[2]);+#else+assert(0);+#endif+}+*/+VECTORMATH_FORCE_INLINE Point3 & Point3::operator =( const Point3 &pnt )+{+mVec128 = pnt.mVec128;+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setX( float _x )+{+_vmathVfSetElement(mVec128, _x, 0);+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setX( const floatInVec &_x )+{+mVec128 = _vmathVfInsert(mVec128, _x.get128(), 0);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Point3::getX( ) const+{+return floatInVec( mVec128, 0 );+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setY( float _y )+{+_vmathVfSetElement(mVec128, _y, 1);+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setY( const floatInVec &_y )+{+mVec128 = _vmathVfInsert(mVec128, _y.get128(), 1);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Point3::getY( ) const+{+return floatInVec( mVec128, 1 );+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setZ( float _z )+{+_vmathVfSetElement(mVec128, _z, 2);+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setZ( const floatInVec &_z )+{+mVec128 = _vmathVfInsert(mVec128, _z.get128(), 2);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Point3::getZ( ) const+{+return floatInVec( mVec128, 2 );+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setElem( int idx, float value )+{+_vmathVfSetElement(mVec128, value, idx);+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::setElem( int idx, const floatInVec &value )+{+mVec128 = _vmathVfInsert(mVec128, value.get128(), idx);+return *this;+}++VECTORMATH_FORCE_INLINE const floatInVec Point3::getElem( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE VecIdx Point3::operator []( int idx )+{+return VecIdx( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const floatInVec Point3::operator []( int idx ) const+{+return floatInVec( mVec128, idx );+}++VECTORMATH_FORCE_INLINE const Vector3 Point3::operator -( const Point3 &pnt ) const+{+return Vector3( _mm_sub_ps( mVec128, pnt.mVec128 ) );+}++VECTORMATH_FORCE_INLINE const Point3 Point3::operator +( const Vector3 &vec ) const+{+return Point3( _mm_add_ps( mVec128, vec.get128() ) );+}++VECTORMATH_FORCE_INLINE const Point3 Point3::operator -( const Vector3 &vec ) const+{+return Point3( _mm_sub_ps( mVec128, vec.get128() ) );+}++VECTORMATH_FORCE_INLINE Point3 & Point3::operator +=( const Vector3 &vec )+{+*this = *this + vec;+return *this;+}++VECTORMATH_FORCE_INLINE Point3 & Point3::operator -=( const Vector3 &vec )+{+*this = *this - vec;+return *this;+}++VECTORMATH_FORCE_INLINE const Point3 mulPerElem( const Point3 &pnt0, const Point3 &pnt1 )+{+return Point3( _mm_mul_ps( pnt0.get128(), pnt1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Point3 divPerElem( const Point3 &pnt0, const Point3 &pnt1 )+{+return Point3( _mm_div_ps( pnt0.get128(), pnt1.get128() ) );+}++VECTORMATH_FORCE_INLINE const Point3 recipPerElem( const Point3 &pnt )+{+return Point3( _mm_rcp_ps( pnt.get128() ) );+}++VECTORMATH_FORCE_INLINE const Point3 absPerElem( const Point3 &pnt )+{+return Point3( fabsf4( pnt.get128() ) );+}++VECTORMATH_FORCE_INLINE const Point3 copySignPerElem( const Point3 &pnt0, const Point3 &pnt1 )+{+__m128 vmask = toM128(0x7fffffff);+return Point3( _mm_or_ps(+_mm_and_ps ( vmask, pnt0.get128() ), // Value+_mm_andnot_ps( vmask, pnt1.get128() ) ) ); // Signs+}++VECTORMATH_FORCE_INLINE const Point3 maxPerElem( const Point3 &pnt0, const Point3 &pnt1 )+{+return Point3( _mm_max_ps( pnt0.get128(), pnt1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Point3 &pnt )+{+return floatInVec( _mm_max_ps( _mm_max_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const Point3 minPerElem( const Point3 &pnt0, const Point3 &pnt1 )+{+return Point3( _mm_min_ps( pnt0.get128(), pnt1.get128() ) );+}++VECTORMATH_FORCE_INLINE const floatInVec minElem( const Point3 &pnt )+{+return floatInVec( _mm_min_ps( _mm_min_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const floatInVec sum( const Point3 &pnt )+{+return floatInVec( _mm_add_ps( _mm_add_ps( vec_splat( pnt.get128(), 0 ), vec_splat( pnt.get128(), 1 ) ), vec_splat( pnt.get128(), 2 ) ) );+}++VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, float scaleVal )+{+return scale( pnt, floatInVec( scaleVal ) );+}++VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const floatInVec &scaleVal )+{+return mulPerElem( pnt, Point3( scaleVal ) );+}++VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const Vector3 &scaleVec )+{+return mulPerElem( pnt, Point3( scaleVec ) );+}++VECTORMATH_FORCE_INLINE const floatInVec projection( const Point3 &pnt, const Vector3 &unitVec )+{+return floatInVec( _vmathVfDot3( pnt.get128(), unitVec.get128() ), 0 );+}++VECTORMATH_FORCE_INLINE const floatInVec distSqrFromOrigin( const Point3 &pnt )+{+return lengthSqr( Vector3( pnt ) );+}++VECTORMATH_FORCE_INLINE const floatInVec distFromOrigin( const Point3 &pnt )+{+return length( Vector3( pnt ) );+}++VECTORMATH_FORCE_INLINE const floatInVec distSqr( const Point3 &pnt0, const Point3 &pnt1 )+{+return lengthSqr( ( pnt1 - pnt0 ) );+}++VECTORMATH_FORCE_INLINE const floatInVec dist( const Point3 &pnt0, const Point3 &pnt1 )+{+return length( ( pnt1 - pnt0 ) );+}++VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, bool select1 )+{+return select( pnt0, pnt1, boolInVec(select1) );+}++VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, const boolInVec &select1 )+{+return Point3( vec_sel( pnt0.get128(), pnt1.get128(), select1.get128() ) );+}++++#ifdef _VECTORMATH_DEBUG++VECTORMATH_FORCE_INLINE void print( const Point3 &pnt )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = pnt.get128();+printf( "( %f %f %f )\n", tmp.s[0], tmp.s[1], tmp.s[2] );+}++VECTORMATH_FORCE_INLINE void print( const Point3 &pnt, const char * name )+{+union { __m128 v; float s[4]; } tmp;+tmp.v = pnt.get128();+printf( "%s: ( %f %f %f )\n", name, tmp.s[0], tmp.s[1], tmp.s[2] );+}++#endif++} // namespace Aos+} // namespace Vectormath++#endif
bullet/vectormath/sse/vecidx_aos.h view
@@ -1,80 +1,80 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef _VECTORMATH_VECIDX_AOS_H
-#define _VECTORMATH_VECIDX_AOS_H
-
-
-#include "floatInVec.h"
-
-namespace Vectormath {
-namespace Aos {
-
-//-----------------------------------------------------------------------------
-// VecIdx 
-// Used in setting elements of Vector3, Vector4, Point3, or Quat with the 
-// subscripting operator.
-//
-
-VM_ATTRIBUTE_ALIGNED_CLASS16 (class) VecIdx
-{
-private:
-   __m128 &ref;
-   int i;
-public:
-    inline VecIdx( __m128& vec, int idx ): ref(vec) { i = idx; }
-
-    // implicitly casts to float unless _VECTORMATH_NO_SCALAR_CAST defined
-    // in which case, implicitly casts to floatInVec, and one must call
-    // getAsFloat to convert to float.
-    //
-#ifdef _VECTORMATH_NO_SCALAR_CAST
-    inline operator floatInVec() const;
-    inline float getAsFloat() const;
-#else
-    inline operator float() const;
-#endif
-
-    inline float operator =( float scalar );
-    inline floatInVec operator =( const floatInVec &scalar );
-    inline floatInVec operator =( const VecIdx& scalar );
-    inline floatInVec operator *=( float scalar );
-    inline floatInVec operator *=( const floatInVec &scalar );
-    inline floatInVec operator /=( float scalar );
-    inline floatInVec operator /=( const floatInVec &scalar );
-    inline floatInVec operator +=( float scalar );
-    inline floatInVec operator +=( const floatInVec &scalar );
-    inline floatInVec operator -=( float scalar );
-    inline floatInVec operator -=( const floatInVec &scalar );
-};
-
-} // namespace Aos
-} // namespace Vectormath
-
-#endif
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/++#ifndef _VECTORMATH_VECIDX_AOS_H+#define _VECTORMATH_VECIDX_AOS_H+++#include "floatInVec.h"++namespace Vectormath {+namespace Aos {++//-----------------------------------------------------------------------------+// VecIdx+// Used in setting elements of Vector3, Vector4, Point3, or Quat with the+// subscripting operator.+//++VM_ATTRIBUTE_ALIGNED_CLASS16 (class) VecIdx+{+private:+__m128 &ref;+int i;+public:+inline VecIdx( __m128& vec, int idx ): ref(vec) { i = idx; }++// implicitly casts to float unless _VECTORMATH_NO_SCALAR_CAST defined+// in which case, implicitly casts to floatInVec, and one must call+// getAsFloat to convert to float.+//+#ifdef _VECTORMATH_NO_SCALAR_CAST+inline operator floatInVec() const;+inline float getAsFloat() const;+#else+inline operator float() const;+#endif++inline float operator =( float scalar );+inline floatInVec operator =( const floatInVec &scalar );+inline floatInVec operator =( const VecIdx& scalar );+inline floatInVec operator *=( float scalar );+inline floatInVec operator *=( const floatInVec &scalar );+inline floatInVec operator /=( float scalar );+inline floatInVec operator /=( const floatInVec &scalar );+inline floatInVec operator +=( float scalar );+inline floatInVec operator +=( const floatInVec &scalar );+inline floatInVec operator -=( float scalar );+inline floatInVec operator -=( const floatInVec &scalar );+};++} // namespace Aos+} // namespace Vectormath++#endif
bullet/vectormath/sse/vectormath_aos.h view
@@ -1,2547 +1,2547 @@-/*
-   Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.
-   All rights reserved.
-
-   Redistribution and use in source and binary forms,
-   with or without modification, are permitted provided that the
-   following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-    * Neither the name of the Sony Computer Entertainment Inc nor the names
-      of its contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef _VECTORMATH_AOS_CPP_SSE_H
-#define _VECTORMATH_AOS_CPP_SSE_H
-
-#include <math.h>
-#include <xmmintrin.h>
-#include <emmintrin.h>
-#include <assert.h>
-
-#define Vector3Ref Vector3&
-#define QuatRef	Quat&
-#define Matrix3Ref Matrix3&
-
-#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400)
-	#define USE_SSE3_LDDQU
-
-	#define VM_ATTRIBUTE_ALIGNED_CLASS16(a) __declspec(align(16)) a
-	#define VM_ATTRIBUTE_ALIGN16 __declspec(align(16))
-	#define VECTORMATH_FORCE_INLINE __forceinline 
-#else
-	#define VM_ATTRIBUTE_ALIGNED_CLASS16(a) a __attribute__ ((aligned (16)))	
-	#define VM_ATTRIBUTE_ALIGN16 __attribute__ ((aligned (16)))	
-	#define VECTORMATH_FORCE_INLINE inline 
-	#ifdef __SSE3__
-		#define USE_SSE3_LDDQU
-	#endif //__SSE3__
-#endif//_WIN32
-
-
-#ifdef USE_SSE3_LDDQU
-#include <pmmintrin.h>//_mm_lddqu_si128
-#endif //USE_SSE3_LDDQU
-
-
-// TODO: Tidy
-typedef __m128 vec_float4;
-typedef __m128 vec_uint4;
-typedef __m128 vec_int4;
-typedef __m128i vec_uchar16;
-typedef __m128i vec_ushort8;
-
-#define vec_splat(x, e) _mm_shuffle_ps(x, x, _MM_SHUFFLE(e,e,e,e))
-
-#define _mm_ror_ps(vec,i)	\
-	(((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(i+3)%4,(unsigned char)(i+2)%4,(unsigned char)(i+1)%4,(unsigned char)(i+0)%4))) : (vec))
-#define _mm_rol_ps(vec,i)	\
-	(((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(7-i)%4,(unsigned char)(6-i)%4,(unsigned char)(5-i)%4,(unsigned char)(4-i)%4))) : (vec))
-
-#define vec_sld(vec,vec2,x) _mm_ror_ps(vec, ((x)/4))
-
-#define _mm_abs_ps(vec)		_mm_andnot_ps(_MASKSIGN_,vec)
-#define _mm_neg_ps(vec)		_mm_xor_ps(_MASKSIGN_,vec)
-
-#define vec_madd(a, b, c) _mm_add_ps(c, _mm_mul_ps(a, b) )
-
-union SSEFloat
-{
-	__m128i vi;
-	__m128 m128;
-	__m128 vf;
-	unsigned int	ui[4];
-	unsigned short s[8];
-	float f[4];
-	SSEFloat(__m128 v) : m128(v) {}
-    SSEFloat(__m128i v) : vi(v) {}
-	SSEFloat() {}//uninitialized
-};
-
-static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, __m128 mask)
-{
-	return _mm_or_ps(_mm_and_ps(mask, b), _mm_andnot_ps(mask, a));
-}
-static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, const unsigned int *_mask)
-{
-	return vec_sel(a, b, _mm_load_ps((float *)_mask));
-}
-static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, unsigned int _mask)
-{
-	return vec_sel(a, b, _mm_set1_ps(*(float *)&_mask));
-}
-
-static VECTORMATH_FORCE_INLINE __m128 toM128(unsigned int x)
-{
-    return _mm_set1_ps( *(float *)&x );
-}
-
-static VECTORMATH_FORCE_INLINE __m128 fabsf4(__m128 x)
-{
-    return _mm_and_ps( x, toM128( 0x7fffffff ) );
-}
-/*
-union SSE64
-{
-	__m128 m128;
-	struct
-	{
-		__m64 m01;
-		__m64 m23;
-	} m64;
-};
-
-static VECTORMATH_FORCE_INLINE __m128 vec_cts(__m128 x, int a)
-{
-	assert(a == 0); // Only 2^0 supported
-	(void)a;
-	SSE64 sse64;
-	sse64.m64.m01 = _mm_cvttps_pi32(x);
-	sse64.m64.m23 = _mm_cvttps_pi32(_mm_ror_ps(x,2));
-	_mm_empty();
-    return sse64.m128;
-}
-
-static VECTORMATH_FORCE_INLINE __m128 vec_ctf(__m128 x, int a)
-{
-	assert(a == 0); // Only 2^0 supported
-	(void)a;
-	SSE64 sse64;
-	sse64.m128 = x;
-	__m128 result =_mm_movelh_ps(
-		_mm_cvt_pi2ps(_mm_setzero_ps(), sse64.m64.m01),
-		_mm_cvt_pi2ps(_mm_setzero_ps(), sse64.m64.m23));
-	_mm_empty();
-	return result;
-}
-*/
-static VECTORMATH_FORCE_INLINE __m128 vec_cts(__m128 x, int a)
-{
-	assert(a == 0); // Only 2^0 supported
-	(void)a;
-	__m128i result = _mm_cvtps_epi32(x);
-    return (__m128 &)result;
-}
-
-static VECTORMATH_FORCE_INLINE __m128 vec_ctf(__m128 x, int a)
-{
-	assert(a == 0); // Only 2^0 supported
-	(void)a;
-	return _mm_cvtepi32_ps((__m128i &)x);
-}
-
-#define vec_nmsub(a,b,c) _mm_sub_ps( c, _mm_mul_ps( a, b ) )
-#define vec_sub(a,b) _mm_sub_ps( a, b )
-#define vec_add(a,b) _mm_add_ps( a, b )
-#define vec_mul(a,b) _mm_mul_ps( a, b )
-#define vec_xor(a,b) _mm_xor_ps( a, b )
-#define vec_and(a,b) _mm_and_ps( a, b )
-#define vec_cmpeq(a,b) _mm_cmpeq_ps( a, b )
-#define vec_cmpgt(a,b) _mm_cmpgt_ps( a, b )
-
-#define vec_mergeh(a,b) _mm_unpacklo_ps( a, b )
-#define vec_mergel(a,b) _mm_unpackhi_ps( a, b )
-
-#define vec_andc(a,b) _mm_andnot_ps( b, a )
-
-#define sqrtf4(x) _mm_sqrt_ps( x )
-#define rsqrtf4(x) _mm_rsqrt_ps( x )
-#define recipf4(x) _mm_rcp_ps( x )
-#define negatef4(x) _mm_sub_ps( _mm_setzero_ps(), x )
-
-static VECTORMATH_FORCE_INLINE __m128 newtonrapson_rsqrt4( const __m128 v )
-{   
-#define _half4 _mm_setr_ps(.5f,.5f,.5f,.5f) 
-#define _three _mm_setr_ps(3.f,3.f,3.f,3.f)
-const __m128 approx = _mm_rsqrt_ps( v );   
-const __m128 muls = _mm_mul_ps(_mm_mul_ps(v, approx), approx);   
-return _mm_mul_ps(_mm_mul_ps(_half4, approx), _mm_sub_ps(_three, muls) );
-}
-
-static VECTORMATH_FORCE_INLINE __m128 acosf4(__m128 x)
-{
-    __m128 xabs = fabsf4(x);
-	__m128 select = _mm_cmplt_ps( x, _mm_setzero_ps() );
-    __m128 t1 = sqrtf4(vec_sub(_mm_set1_ps(1.0f), xabs));
-    
-    /* Instruction counts can be reduced if the polynomial was
-     * computed entirely from nested (dependent) fma's. However, 
-     * to reduce the number of pipeline stalls, the polygon is evaluated 
-     * in two halves (hi amd lo). 
-     */
-    __m128 xabs2 = _mm_mul_ps(xabs,  xabs);
-    __m128 xabs4 = _mm_mul_ps(xabs2, xabs2);
-    __m128 hi = vec_madd(vec_madd(vec_madd(_mm_set1_ps(-0.0012624911f),
-		xabs, _mm_set1_ps(0.0066700901f)),
-			xabs, _mm_set1_ps(-0.0170881256f)),
-				xabs, _mm_set1_ps( 0.0308918810f));
-    __m128 lo = vec_madd(vec_madd(vec_madd(_mm_set1_ps(-0.0501743046f),
-		xabs, _mm_set1_ps(0.0889789874f)),
-			xabs, _mm_set1_ps(-0.2145988016f)),
-				xabs, _mm_set1_ps( 1.5707963050f));
-    
-    __m128 result = vec_madd(hi, xabs4, lo);
-    
-    // Adjust the result if x is negactive.
-    return vec_sel(
-		vec_mul(t1, result),									// Positive
-		vec_nmsub(t1, result, _mm_set1_ps(3.1415926535898f)),	// Negative
-		select);
-}
-
-static VECTORMATH_FORCE_INLINE __m128 sinf4(vec_float4 x)
-{
-
-//
-// Common constants used to evaluate sinf4/cosf4/tanf4
-//
-#define _SINCOS_CC0  -0.0013602249f
-#define _SINCOS_CC1   0.0416566950f
-#define _SINCOS_CC2  -0.4999990225f
-#define _SINCOS_SC0  -0.0001950727f
-#define _SINCOS_SC1   0.0083320758f
-#define _SINCOS_SC2  -0.1666665247f
-
-#define _SINCOS_KC1  1.57079625129f
-#define _SINCOS_KC2  7.54978995489e-8f
-
-    vec_float4 xl,xl2,xl3,res;
-
-    // Range reduction using : xl = angle * TwoOverPi;
-    //  
-    xl = vec_mul(x, _mm_set1_ps(0.63661977236f));
-
-    // Find the quadrant the angle falls in
-    // using:  q = (int) (ceil(abs(xl))*sign(xl))
-    //
-    vec_int4 q = vec_cts(xl,0);
-
-    // Compute an offset based on the quadrant that the angle falls in
-    // 
-    vec_int4 offset = _mm_and_ps(q,toM128(0x3));
-
-    // Remainder in range [-pi/4..pi/4]
-    //
-    vec_float4 qf = vec_ctf(q,0);
-    xl  = vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC2),vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC1),x));
-    
-    // Compute x^2 and x^3
-    //
-    xl2 = vec_mul(xl,xl);
-    xl3 = vec_mul(xl2,xl);
-    
-    // Compute both the sin and cos of the angles
-    // using a polynomial expression:
-    //   cx = 1.0f + xl2 * ((C0 * xl2 + C1) * xl2 + C2), and
-    //   sx = xl + xl3 * ((S0 * xl2 + S1) * xl2 + S2)
-    //
-    
-    vec_float4 cx =
-		vec_madd(
-			vec_madd(
-				vec_madd(_mm_set1_ps(_SINCOS_CC0),xl2,_mm_set1_ps(_SINCOS_CC1)),xl2,_mm_set1_ps(_SINCOS_CC2)),xl2,_mm_set1_ps(1.0f));
-    vec_float4 sx =
-		vec_madd(
-			vec_madd(
-				vec_madd(_mm_set1_ps(_SINCOS_SC0),xl2,_mm_set1_ps(_SINCOS_SC1)),xl2,_mm_set1_ps(_SINCOS_SC2)),xl3,xl);
-
-    // Use the cosine when the offset is odd and the sin
-    // when the offset is even
-    //
-    res = vec_sel(cx,sx,vec_cmpeq(vec_and(offset,
-                                          toM128(0x1)),
-										  _mm_setzero_ps()));
-
-    // Flip the sign of the result when (offset mod 4) = 1 or 2
-    //
-    return vec_sel(
-		vec_xor(toM128(0x80000000U), res),	// Negative
-		res,								// Positive
-		vec_cmpeq(vec_and(offset,toM128(0x2)),_mm_setzero_ps()));
-}
-
-static VECTORMATH_FORCE_INLINE void sincosf4(vec_float4 x, vec_float4* s, vec_float4* c)
-{
-    vec_float4 xl,xl2,xl3;
-    vec_int4   offsetSin, offsetCos;
-
-    // Range reduction using : xl = angle * TwoOverPi;
-    //  
-    xl = vec_mul(x, _mm_set1_ps(0.63661977236f));
-
-    // Find the quadrant the angle falls in
-    // using:  q = (int) (ceil(abs(xl))*sign(xl))
-    //
-    //vec_int4 q = vec_cts(vec_add(xl,vec_sel(_mm_set1_ps(0.5f),xl,(0x80000000))),0);
-    vec_int4 q = vec_cts(xl,0);
-     
-    // Compute the offset based on the quadrant that the angle falls in.
-    // Add 1 to the offset for the cosine. 
-    //
-    offsetSin = vec_and(q,toM128((int)0x3));
-	__m128i temp = _mm_add_epi32(_mm_set1_epi32(1),(__m128i &)offsetSin);
-	offsetCos = (__m128 &)temp;
-
-    // Remainder in range [-pi/4..pi/4]
-    //
-    vec_float4 qf = vec_ctf(q,0);
-    xl  = vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC2),vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC1),x));
-    
-    // Compute x^2 and x^3
-    //
-    xl2 = vec_mul(xl,xl);
-    xl3 = vec_mul(xl2,xl);
-    
-    // Compute both the sin and cos of the angles
-    // using a polynomial expression:
-    //   cx = 1.0f + xl2 * ((C0 * xl2 + C1) * xl2 + C2), and
-    //   sx = xl + xl3 * ((S0 * xl2 + S1) * xl2 + S2)
-    //
-    vec_float4 cx =
-		vec_madd(
-			vec_madd(
-				vec_madd(_mm_set1_ps(_SINCOS_CC0),xl2,_mm_set1_ps(_SINCOS_CC1)),xl2,_mm_set1_ps(_SINCOS_CC2)),xl2,_mm_set1_ps(1.0f));
-    vec_float4 sx =
-		vec_madd(
-			vec_madd(
-				vec_madd(_mm_set1_ps(_SINCOS_SC0),xl2,_mm_set1_ps(_SINCOS_SC1)),xl2,_mm_set1_ps(_SINCOS_SC2)),xl3,xl);
-
-    // Use the cosine when the offset is odd and the sin
-    // when the offset is even
-    //
-    vec_uint4 sinMask = (vec_uint4)vec_cmpeq(vec_and(offsetSin,toM128(0x1)),_mm_setzero_ps());
-    vec_uint4 cosMask = (vec_uint4)vec_cmpeq(vec_and(offsetCos,toM128(0x1)),_mm_setzero_ps());    
-    *s = vec_sel(cx,sx,sinMask);
-    *c = vec_sel(cx,sx,cosMask);
-
-    // Flip the sign of the result when (offset mod 4) = 1 or 2
-    //
-    sinMask = vec_cmpeq(vec_and(offsetSin,toM128(0x2)),_mm_setzero_ps());
-    cosMask = vec_cmpeq(vec_and(offsetCos,toM128(0x2)),_mm_setzero_ps());
-    
-    *s = vec_sel((vec_float4)vec_xor(toM128(0x80000000),(vec_uint4)*s),*s,sinMask);
-    *c = vec_sel((vec_float4)vec_xor(toM128(0x80000000),(vec_uint4)*c),*c,cosMask);    
-}
-
-#include "vecidx_aos.h"
-#include "floatInVec.h"
-#include "boolInVec.h"
-
-#ifdef _VECTORMATH_DEBUG
-#include <stdio.h>
-#endif
-namespace Vectormath {
-
-namespace Aos {
-
-//-----------------------------------------------------------------------------
-// Forward Declarations
-//
-
-class Vector3;
-class Vector4;
-class Point3;
-class Quat;
-class Matrix3;
-class Matrix4;
-class Transform3;
-
-// A 3-D vector in array-of-structures format
-//
-class Vector3
-{
-    __m128 mVec128;
-
-	VECTORMATH_FORCE_INLINE void set128(vec_float4 vec);
-	 
-	 VECTORMATH_FORCE_INLINE  vec_float4& get128Ref();
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Vector3( ) { };
-
-	// Default copy constructor
-    // 
-	VECTORMATH_FORCE_INLINE Vector3(const Vector3& vec);
-
-    // Construct a 3-D vector from x, y, and z elements
-    // 
-    VECTORMATH_FORCE_INLINE Vector3( float x, float y, float z );
-
-    // Construct a 3-D vector from x, y, and z elements (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3( const floatInVec &x, const floatInVec &y, const floatInVec &z );
-
-    // Copy elements from a 3-D point into a 3-D vector
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector3( const Point3 &pnt );
-
-    // Set all elements of a 3-D vector to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector3( float scalar );
-
-    // Set all elements of a 3-D vector to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector3( const floatInVec &scalar );
-
-    // Set vector float data in a 3-D vector
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector3( __m128 vf4 );
-
-    // Get vector float data from a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE __m128 get128( ) const;
-
-    // Assign one 3-D vector to another
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator =( const Vector3 &vec );
-
-    // Set the x element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setX( float x );
-
-    // Set the y element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setY( float y );
-
-    // Set the z element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setZ( float z );
-
-    // Set the x element of a 3-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setX( const floatInVec &x );
-
-    // Set the y element of a 3-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setY( const floatInVec &y );
-
-    // Set the z element of a 3-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setZ( const floatInVec &z );
-
-    // Get the x element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;
-
-    // Get the y element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;
-
-    // Get the z element of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;
-
-    // Set an x, y, or z element of a 3-D vector by index
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setElem( int idx, float value );
-
-    // Set an x, y, or z element of a 3-D vector by index (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & setElem( int idx, const floatInVec &value );
-
-    // Get an x, y, or z element of a 3-D vector by index
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;
-
-    // Subscripting operator to set or get an element
-    // 
-    VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );
-
-    // Subscripting operator to get an element
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;
-
-    // Add two 3-D vectors
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator +( const Vector3 &vec ) const;
-
-    // Subtract a 3-D vector from another 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator -( const Vector3 &vec ) const;
-
-    // Add a 3-D vector to a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const Point3 operator +( const Point3 &pnt ) const;
-
-    // Multiply a 3-D vector by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar ) const;
-
-    // Divide a 3-D vector by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator /( float scalar ) const;
-
-    // Multiply a 3-D vector by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar ) const;
-
-    // Divide a 3-D vector by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator /( const floatInVec &scalar ) const;
-
-    // Perform compound assignment and addition with a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator +=( const Vector3 &vec );
-
-    // Perform compound assignment and subtraction by a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator -=( const Vector3 &vec );
-
-    // Perform compound assignment and multiplication by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator *=( float scalar );
-
-    // Perform compound assignment and division by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator /=( float scalar );
-
-    // Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator *=( const floatInVec &scalar );
-
-    // Perform compound assignment and division by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator /=( const floatInVec &scalar );
-
-    // Negate all elements of a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator -( ) const;
-
-    // Construct x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector3 xAxis( );
-
-    // Construct y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector3 yAxis( );
-
-    // Construct z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector3 zAxis( );
-
-};
-
-// Multiply a 3-D vector by a scalar
-// 
-VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar, const Vector3 &vec );
-
-// Multiply a 3-D vector by a scalar (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar, const Vector3 &vec );
-
-// Multiply two 3-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector3 mulPerElem( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Divide two 3-D vectors per element
-// NOTE: 
-// Floating-point behavior matches standard library function divf4.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 divPerElem( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Compute the reciprocal of a 3-D vector per element
-// NOTE: 
-// Floating-point behavior matches standard library function recipf4.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 recipPerElem( const Vector3 &vec );
-
-// Compute the absolute value of a 3-D vector per element
-// 
-VECTORMATH_FORCE_INLINE const Vector3 absPerElem( const Vector3 &vec );
-
-// Copy sign from one 3-D vector to another, per element
-// 
-VECTORMATH_FORCE_INLINE const Vector3 copySignPerElem( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Maximum of two 3-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector3 maxPerElem( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Minimum of two 3-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector3 minPerElem( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Maximum element of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector3 &vec );
-
-// Minimum element of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector3 &vec );
-
-// Compute the sum of all elements of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector3 &vec );
-
-// Compute the dot product of two 3-D vectors
-// 
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Compute the square of the length of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector3 &vec );
-
-// Compute the length of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec length( const Vector3 &vec );
-
-// Normalize a 3-D vector
-// NOTE: 
-// The result is unpredictable when all elements of vec are at or near zero.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 normalize( const Vector3 &vec );
-
-// Compute cross product of two 3-D vectors
-// 
-VECTORMATH_FORCE_INLINE const Vector3 cross( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Outer product of two 3-D vectors
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 outer( const Vector3 &vec0, const Vector3 &vec1 );
-
-// Pre-multiply a row vector by a 3x3 matrix
-// NOTE: 
-// Slower than column post-multiply.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 rowMul( const Vector3 &vec, const Matrix3 & mat );
-
-// Cross-product matrix of a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 crossMatrix( const Vector3 &vec );
-
-// Create cross-product matrix and multiply
-// NOTE: 
-// Faster than separately creating a cross-product matrix and multiplying.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 crossMatrixMul( const Vector3 &vec, const Matrix3 & mat );
-
-// Linear interpolation between two 3-D vectors
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 lerp( float t, const Vector3 &vec0, const Vector3 &vec1 );
-
-// Linear interpolation between two 3-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 lerp( const floatInVec &t, const Vector3 &vec0, const Vector3 &vec1 );
-
-// Spherical linear interpolation between two 3-D vectors
-// NOTE: 
-// The result is unpredictable if the vectors point in opposite directions.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 slerp( float t, const Vector3 &unitVec0, const Vector3 &unitVec1 );
-
-// Spherical linear interpolation between two 3-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// The result is unpredictable if the vectors point in opposite directions.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 slerp( const floatInVec &t, const Vector3 &unitVec0, const Vector3 &unitVec1 );
-
-// Conditionally select between two 3-D vectors
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, bool select1 );
-
-// Conditionally select between two 3-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, const boolInVec &select1 );
-
-// Store x, y, and z elements of 3-D vector in first three words of a quadword, preserving fourth word
-// 
-VECTORMATH_FORCE_INLINE void storeXYZ( const Vector3 &vec, __m128 * quad );
-
-// Load four three-float 3-D vectors, stored in three quadwords
-// 
-VECTORMATH_FORCE_INLINE void loadXYZArray( Vector3 & vec0, Vector3 & vec1, Vector3 & vec2, Vector3 & vec3, const __m128 * threeQuads );
-
-// Store four 3-D vectors in three quadwords
-// 
-VECTORMATH_FORCE_INLINE void storeXYZArray( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, __m128 * threeQuads );
-
-// Store eight 3-D vectors as half-floats
-// 
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, const Vector3 &vec5, const Vector3 &vec6, const Vector3 &vec7, vec_ushort8 * threeQuads );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 3-D vector
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Vector3 &vec );
-
-// Print a 3-D vector and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Vector3 &vec, const char * name );
-
-#endif
-
-// A 4-D vector in array-of-structures format
-//
-class Vector4
-{
-    __m128 mVec128;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Vector4( ) { };
-
-    // Construct a 4-D vector from x, y, z, and w elements
-    // 
-    VECTORMATH_FORCE_INLINE Vector4( float x, float y, float z, float w );
-
-    // Construct a 4-D vector from x, y, z, and w elements (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4( const floatInVec &x, const floatInVec &y, const floatInVec &z, const floatInVec &w );
-
-    // Construct a 4-D vector from a 3-D vector and a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Vector4( const Vector3 &xyz, float w );
-
-    // Construct a 4-D vector from a 3-D vector and a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4( const Vector3 &xyz, const floatInVec &w );
-
-    // Copy x, y, and z from a 3-D vector into a 4-D vector, and set w to 0
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( const Vector3 &vec );
-
-    // Copy x, y, and z from a 3-D point into a 4-D vector, and set w to 1
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( const Point3 &pnt );
-
-    // Copy elements from a quaternion into a 4-D vector
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( const Quat &quat );
-
-    // Set all elements of a 4-D vector to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( float scalar );
-
-    // Set all elements of a 4-D vector to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( const floatInVec &scalar );
-
-    // Set vector float data in a 4-D vector
-    // 
-    explicit VECTORMATH_FORCE_INLINE Vector4( __m128 vf4 );
-
-    // Get vector float data from a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE __m128 get128( ) const;
-
-    // Assign one 4-D vector to another
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator =( const Vector4 &vec );
-
-    // Set the x, y, and z elements of a 4-D vector
-    // NOTE: 
-    // This function does not change the w element.
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setXYZ( const Vector3 &vec );
-
-    // Get the x, y, and z elements of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getXYZ( ) const;
-
-    // Set the x element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setX( float x );
-
-    // Set the y element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setY( float y );
-
-    // Set the z element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setZ( float z );
-
-    // Set the w element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setW( float w );
-
-    // Set the x element of a 4-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setX( const floatInVec &x );
-
-    // Set the y element of a 4-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setY( const floatInVec &y );
-
-    // Set the z element of a 4-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setZ( const floatInVec &z );
-
-    // Set the w element of a 4-D vector (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setW( const floatInVec &w );
-
-    // Get the x element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;
-
-    // Get the y element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;
-
-    // Get the z element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;
-
-    // Get the w element of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getW( ) const;
-
-    // Set an x, y, z, or w element of a 4-D vector by index
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setElem( int idx, float value );
-
-    // Set an x, y, z, or w element of a 4-D vector by index (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & setElem( int idx, const floatInVec &value );
-
-    // Get an x, y, z, or w element of a 4-D vector by index
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;
-
-    // Subscripting operator to set or get an element
-    // 
-    VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );
-
-    // Subscripting operator to get an element
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;
-
-    // Add two 4-D vectors
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator +( const Vector4 &vec ) const;
-
-    // Subtract a 4-D vector from another 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator -( const Vector4 &vec ) const;
-
-    // Multiply a 4-D vector by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar ) const;
-
-    // Divide a 4-D vector by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator /( float scalar ) const;
-
-    // Multiply a 4-D vector by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar ) const;
-
-    // Divide a 4-D vector by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator /( const floatInVec &scalar ) const;
-
-    // Perform compound assignment and addition with a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator +=( const Vector4 &vec );
-
-    // Perform compound assignment and subtraction by a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator -=( const Vector4 &vec );
-
-    // Perform compound assignment and multiplication by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator *=( float scalar );
-
-    // Perform compound assignment and division by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator /=( float scalar );
-
-    // Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator *=( const floatInVec &scalar );
-
-    // Perform compound assignment and division by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator /=( const floatInVec &scalar );
-
-    // Negate all elements of a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator -( ) const;
-
-    // Construct x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector4 xAxis( );
-
-    // Construct y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector4 yAxis( );
-
-    // Construct z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector4 zAxis( );
-
-    // Construct w axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Vector4 wAxis( );
-
-};
-
-// Multiply a 4-D vector by a scalar
-// 
-VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar, const Vector4 &vec );
-
-// Multiply a 4-D vector by a scalar (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar, const Vector4 &vec );
-
-// Multiply two 4-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector4 mulPerElem( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Divide two 4-D vectors per element
-// NOTE: 
-// Floating-point behavior matches standard library function divf4.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 divPerElem( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Compute the reciprocal of a 4-D vector per element
-// NOTE: 
-// Floating-point behavior matches standard library function recipf4.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 recipPerElem( const Vector4 &vec );
-
-// Compute the absolute value of a 4-D vector per element
-// 
-VECTORMATH_FORCE_INLINE const Vector4 absPerElem( const Vector4 &vec );
-
-// Copy sign from one 4-D vector to another, per element
-// 
-VECTORMATH_FORCE_INLINE const Vector4 copySignPerElem( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Maximum of two 4-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector4 maxPerElem( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Minimum of two 4-D vectors per element
-// 
-VECTORMATH_FORCE_INLINE const Vector4 minPerElem( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Maximum element of a 4-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector4 &vec );
-
-// Minimum element of a 4-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector4 &vec );
-
-// Compute the sum of all elements of a 4-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector4 &vec );
-
-// Compute the dot product of two 4-D vectors
-// 
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Compute the square of the length of a 4-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector4 &vec );
-
-// Compute the length of a 4-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec length( const Vector4 &vec );
-
-// Normalize a 4-D vector
-// NOTE: 
-// The result is unpredictable when all elements of vec are at or near zero.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 normalize( const Vector4 &vec );
-
-// Outer product of two 4-D vectors
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 outer( const Vector4 &vec0, const Vector4 &vec1 );
-
-// Linear interpolation between two 4-D vectors
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 lerp( float t, const Vector4 &vec0, const Vector4 &vec1 );
-
-// Linear interpolation between two 4-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 lerp( const floatInVec &t, const Vector4 &vec0, const Vector4 &vec1 );
-
-// Spherical linear interpolation between two 4-D vectors
-// NOTE: 
-// The result is unpredictable if the vectors point in opposite directions.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 slerp( float t, const Vector4 &unitVec0, const Vector4 &unitVec1 );
-
-// Spherical linear interpolation between two 4-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// The result is unpredictable if the vectors point in opposite directions.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 slerp( const floatInVec &t, const Vector4 &unitVec0, const Vector4 &unitVec1 );
-
-// Conditionally select between two 4-D vectors
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, bool select1 );
-
-// Conditionally select between two 4-D vectors (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, const boolInVec &select1 );
-
-// Store four 4-D vectors as half-floats
-// 
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector4 &vec0, const Vector4 &vec1, const Vector4 &vec2, const Vector4 &vec3, vec_ushort8 * twoQuads );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 4-D vector
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Vector4 &vec );
-
-// Print a 4-D vector and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Vector4 &vec, const char * name );
-
-#endif
-
-// A 3-D point in array-of-structures format
-//
-class Point3
-{
-    __m128 mVec128;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Point3( ) { };
-
-    // Construct a 3-D point from x, y, and z elements
-    // 
-    VECTORMATH_FORCE_INLINE Point3( float x, float y, float z );
-
-    // Construct a 3-D point from x, y, and z elements (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Point3( const floatInVec &x, const floatInVec &y, const floatInVec &z );
-
-    // Copy elements from a 3-D vector into a 3-D point
-    // 
-    explicit VECTORMATH_FORCE_INLINE Point3( const Vector3 &vec );
-
-    // Set all elements of a 3-D point to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Point3( float scalar );
-
-    // Set all elements of a 3-D point to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Point3( const floatInVec &scalar );
-
-    // Set vector float data in a 3-D point
-    // 
-    explicit VECTORMATH_FORCE_INLINE Point3( __m128 vf4 );
-
-    // Get vector float data from a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE __m128 get128( ) const;
-
-    // Assign one 3-D point to another
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & operator =( const Point3 &pnt );
-
-    // Set the x element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setX( float x );
-
-    // Set the y element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setY( float y );
-
-    // Set the z element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setZ( float z );
-
-    // Set the x element of a 3-D point (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setX( const floatInVec &x );
-
-    // Set the y element of a 3-D point (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setY( const floatInVec &y );
-
-    // Set the z element of a 3-D point (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setZ( const floatInVec &z );
-
-    // Get the x element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;
-
-    // Get the y element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;
-
-    // Get the z element of a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;
-
-    // Set an x, y, or z element of a 3-D point by index
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setElem( int idx, float value );
-
-    // Set an x, y, or z element of a 3-D point by index (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & setElem( int idx, const floatInVec &value );
-
-    // Get an x, y, or z element of a 3-D point by index
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;
-
-    // Subscripting operator to set or get an element
-    // 
-    VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );
-
-    // Subscripting operator to get an element
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;
-
-    // Subtract a 3-D point from another 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator -( const Point3 &pnt ) const;
-
-    // Add a 3-D point to a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Point3 operator +( const Vector3 &vec ) const;
-
-    // Subtract a 3-D vector from a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const Point3 operator -( const Vector3 &vec ) const;
-
-    // Perform compound assignment and addition with a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & operator +=( const Vector3 &vec );
-
-    // Perform compound assignment and subtraction by a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Point3 & operator -=( const Vector3 &vec );
-
-};
-
-// Multiply two 3-D points per element
-// 
-VECTORMATH_FORCE_INLINE const Point3 mulPerElem( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Divide two 3-D points per element
-// NOTE: 
-// Floating-point behavior matches standard library function divf4.
-// 
-VECTORMATH_FORCE_INLINE const Point3 divPerElem( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Compute the reciprocal of a 3-D point per element
-// NOTE: 
-// Floating-point behavior matches standard library function recipf4.
-// 
-VECTORMATH_FORCE_INLINE const Point3 recipPerElem( const Point3 &pnt );
-
-// Compute the absolute value of a 3-D point per element
-// 
-VECTORMATH_FORCE_INLINE const Point3 absPerElem( const Point3 &pnt );
-
-// Copy sign from one 3-D point to another, per element
-// 
-VECTORMATH_FORCE_INLINE const Point3 copySignPerElem( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Maximum of two 3-D points per element
-// 
-VECTORMATH_FORCE_INLINE const Point3 maxPerElem( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Minimum of two 3-D points per element
-// 
-VECTORMATH_FORCE_INLINE const Point3 minPerElem( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Maximum element of a 3-D point
-// 
-VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Point3 &pnt );
-
-// Minimum element of a 3-D point
-// 
-VECTORMATH_FORCE_INLINE const floatInVec minElem( const Point3 &pnt );
-
-// Compute the sum of all elements of a 3-D point
-// 
-VECTORMATH_FORCE_INLINE const floatInVec sum( const Point3 &pnt );
-
-// Apply uniform scale to a 3-D point
-// 
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, float scaleVal );
-
-// Apply uniform scale to a 3-D point (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const floatInVec &scaleVal );
-
-// Apply non-uniform scale to a 3-D point
-// 
-VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const Vector3 &scaleVec );
-
-// Scalar projection of a 3-D point on a unit-length 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const floatInVec projection( const Point3 &pnt, const Vector3 &unitVec );
-
-// Compute the square of the distance of a 3-D point from the coordinate-system origin
-// 
-VECTORMATH_FORCE_INLINE const floatInVec distSqrFromOrigin( const Point3 &pnt );
-
-// Compute the distance of a 3-D point from the coordinate-system origin
-// 
-VECTORMATH_FORCE_INLINE const floatInVec distFromOrigin( const Point3 &pnt );
-
-// Compute the square of the distance between two 3-D points
-// 
-VECTORMATH_FORCE_INLINE const floatInVec distSqr( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Compute the distance between two 3-D points
-// 
-VECTORMATH_FORCE_INLINE const floatInVec dist( const Point3 &pnt0, const Point3 &pnt1 );
-
-// Linear interpolation between two 3-D points
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Point3 lerp( float t, const Point3 &pnt0, const Point3 &pnt1 );
-
-// Linear interpolation between two 3-D points (scalar data contained in vector data type)
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Point3 lerp( const floatInVec &t, const Point3 &pnt0, const Point3 &pnt1 );
-
-// Conditionally select between two 3-D points
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, bool select1 );
-
-// Conditionally select between two 3-D points (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, const boolInVec &select1 );
-
-// Store x, y, and z elements of 3-D point in first three words of a quadword, preserving fourth word
-// 
-VECTORMATH_FORCE_INLINE void storeXYZ( const Point3 &pnt, __m128 * quad );
-
-// Load four three-float 3-D points, stored in three quadwords
-// 
-VECTORMATH_FORCE_INLINE void loadXYZArray( Point3 & pnt0, Point3 & pnt1, Point3 & pnt2, Point3 & pnt3, const __m128 * threeQuads );
-
-// Store four 3-D points in three quadwords
-// 
-VECTORMATH_FORCE_INLINE void storeXYZArray( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, __m128 * threeQuads );
-
-// Store eight 3-D points as half-floats
-// 
-VECTORMATH_FORCE_INLINE void storeHalfFloats( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, const Point3 &pnt4, const Point3 &pnt5, const Point3 &pnt6, const Point3 &pnt7, vec_ushort8 * threeQuads );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 3-D point
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Point3 &pnt );
-
-// Print a 3-D point and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Point3 &pnt, const char * name );
-
-#endif
-
-// A quaternion in array-of-structures format
-//
-class Quat
-{
-    __m128 mVec128;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Quat( ) { };
-
-	VECTORMATH_FORCE_INLINE  Quat(const Quat& quat);
-
-    // Construct a quaternion from x, y, z, and w elements
-    // 
-    VECTORMATH_FORCE_INLINE Quat( float x, float y, float z, float w );
-
-    // Construct a quaternion from x, y, z, and w elements (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat( const floatInVec &x, const floatInVec &y, const floatInVec &z, const floatInVec &w );
-
-    // Construct a quaternion from a 3-D vector and a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Quat( const Vector3 &xyz, float w );
-
-    // Construct a quaternion from a 3-D vector and a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat( const Vector3 &xyz, const floatInVec &w );
-
-    // Copy elements from a 4-D vector into a quaternion
-    // 
-    explicit VECTORMATH_FORCE_INLINE Quat( const Vector4 &vec );
-
-    // Convert a rotation matrix to a unit-length quaternion
-    // 
-    explicit VECTORMATH_FORCE_INLINE Quat( const Matrix3 & rotMat );
-
-    // Set all elements of a quaternion to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Quat( float scalar );
-
-    // Set all elements of a quaternion to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Quat( const floatInVec &scalar );
-
-    // Set vector float data in a quaternion
-    // 
-    explicit VECTORMATH_FORCE_INLINE Quat( __m128 vf4 );
-
-    // Get vector float data from a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE __m128 get128( ) const;
-
-	// Set a quaterion from vector float data
-    //
-	VECTORMATH_FORCE_INLINE void set128(vec_float4 vec);
-
-    // Assign one quaternion to another
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator =( const Quat &quat );
-
-    // Set the x, y, and z elements of a quaternion
-    // NOTE: 
-    // This function does not change the w element.
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setXYZ( const Vector3 &vec );
-
-    // Get the x, y, and z elements of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getXYZ( ) const;
-
-    // Set the x element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setX( float x );
-
-    // Set the y element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setY( float y );
-
-    // Set the z element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setZ( float z );
-
-    // Set the w element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setW( float w );
-
-    // Set the x element of a quaternion (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setX( const floatInVec &x );
-
-    // Set the y element of a quaternion (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setY( const floatInVec &y );
-
-    // Set the z element of a quaternion (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setZ( const floatInVec &z );
-
-    // Set the w element of a quaternion (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setW( const floatInVec &w );
-
-    // Get the x element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;
-
-    // Get the y element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;
-
-    // Get the z element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;
-
-    // Get the w element of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getW( ) const;
-
-    // Set an x, y, z, or w element of a quaternion by index
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setElem( int idx, float value );
-
-    // Set an x, y, z, or w element of a quaternion by index (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & setElem( int idx, const floatInVec &value );
-
-    // Get an x, y, z, or w element of a quaternion by index
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;
-
-    // Subscripting operator to set or get an element
-    // 
-    VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );
-
-    // Subscripting operator to get an element
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;
-
-    // Add two quaternions
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator +( const Quat &quat ) const;
-
-    // Subtract a quaternion from another quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator -( const Quat &quat ) const;
-
-    // Multiply two quaternions
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator *( const Quat &quat ) const;
-
-    // Multiply a quaternion by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator *( float scalar ) const;
-
-    // Divide a quaternion by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator /( float scalar ) const;
-
-    // Multiply a quaternion by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar ) const;
-
-    // Divide a quaternion by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator /( const floatInVec &scalar ) const;
-
-    // Perform compound assignment and addition with a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator +=( const Quat &quat );
-
-    // Perform compound assignment and subtraction by a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator -=( const Quat &quat );
-
-    // Perform compound assignment and multiplication by a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator *=( const Quat &quat );
-
-    // Perform compound assignment and multiplication by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator *=( float scalar );
-
-    // Perform compound assignment and division by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator /=( float scalar );
-
-    // Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator *=( const floatInVec &scalar );
-
-    // Perform compound assignment and division by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Quat & operator /=( const floatInVec &scalar );
-
-    // Negate all elements of a quaternion
-    // 
-    VECTORMATH_FORCE_INLINE const Quat operator -( ) const;
-
-    // Construct an identity quaternion
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat identity( );
-
-    // Construct a quaternion to rotate between two unit-length 3-D vectors
-    // NOTE: 
-    // The result is unpredictable if unitVec0 and unitVec1 point in opposite directions.
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotation( const Vector3 &unitVec0, const Vector3 &unitVec1 );
-
-    // Construct a quaternion to rotate around a unit-length 3-D vector
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotation( float radians, const Vector3 &unitVec );
-
-    // Construct a quaternion to rotate around a unit-length 3-D vector (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotation( const floatInVec &radians, const Vector3 &unitVec );
-
-    // Construct a quaternion to rotate around the x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationX( float radians );
-
-    // Construct a quaternion to rotate around the y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationY( float radians );
-
-    // Construct a quaternion to rotate around the z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationZ( float radians );
-
-    // Construct a quaternion to rotate around the x axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationX( const floatInVec &radians );
-
-    // Construct a quaternion to rotate around the y axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationY( const floatInVec &radians );
-
-    // Construct a quaternion to rotate around the z axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Quat rotationZ( const floatInVec &radians );
-
-};
-
-// Multiply a quaternion by a scalar
-// 
-VECTORMATH_FORCE_INLINE const Quat operator *( float scalar, const Quat &quat );
-
-// Multiply a quaternion by a scalar (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar, const Quat &quat );
-
-// Compute the conjugate of a quaternion
-// 
-VECTORMATH_FORCE_INLINE const Quat conj( const Quat &quat );
-
-// Use a unit-length quaternion to rotate a 3-D vector
-// 
-VECTORMATH_FORCE_INLINE const Vector3 rotate( const Quat &unitQuat, const Vector3 &vec );
-
-// Compute the dot product of two quaternions
-// 
-VECTORMATH_FORCE_INLINE const floatInVec dot( const Quat &quat0, const Quat &quat1 );
-
-// Compute the norm of a quaternion
-// 
-VECTORMATH_FORCE_INLINE const floatInVec norm( const Quat &quat );
-
-// Compute the length of a quaternion
-// 
-VECTORMATH_FORCE_INLINE const floatInVec length( const Quat &quat );
-
-// Normalize a quaternion
-// NOTE: 
-// The result is unpredictable when all elements of quat are at or near zero.
-// 
-VECTORMATH_FORCE_INLINE const Quat normalize( const Quat &quat );
-
-// Linear interpolation between two quaternions
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Quat lerp( float t, const Quat &quat0, const Quat &quat1 );
-
-// Linear interpolation between two quaternions (scalar data contained in vector data type)
-// NOTE: 
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Quat lerp( const floatInVec &t, const Quat &quat0, const Quat &quat1 );
-
-// Spherical linear interpolation between two quaternions
-// NOTE: 
-// Interpolates along the shortest path between orientations.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Quat slerp( float t, const Quat &unitQuat0, const Quat &unitQuat1 );
-
-// Spherical linear interpolation between two quaternions (scalar data contained in vector data type)
-// NOTE: 
-// Interpolates along the shortest path between orientations.
-// Does not clamp t between 0 and 1.
-// 
-VECTORMATH_FORCE_INLINE const Quat slerp( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1 );
-
-// Spherical quadrangle interpolation
-// 
-VECTORMATH_FORCE_INLINE const Quat squad( float t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 );
-
-// Spherical quadrangle interpolation (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Quat squad( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 );
-
-// Conditionally select between two quaternions
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, bool select1 );
-
-// Conditionally select between two quaternions (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, const boolInVec &select1 );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a quaternion
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Quat &quat );
-
-// Print a quaternion and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Quat &quat, const char * name );
-
-#endif
-
-// A 3x3 matrix in array-of-structures format
-//
-class Matrix3
-{
-    Vector3 mCol0;
-    Vector3 mCol1;
-    Vector3 mCol2;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3( ) { };
-
-    // Copy a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3( const Matrix3 & mat );
-
-    // Construct a 3x3 matrix containing the specified columns
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3( const Vector3 &col0, const Vector3 &col1, const Vector3 &col2 );
-
-    // Construct a 3x3 rotation matrix from a unit-length quaternion
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix3( const Quat &unitQuat );
-
-    // Set all elements of a 3x3 matrix to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix3( float scalar );
-
-    // Set all elements of a 3x3 matrix to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix3( const floatInVec &scalar );
-
-    // Assign one 3x3 matrix to another
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator =( const Matrix3 & mat );
-
-    // Set column 0 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setCol0( const Vector3 &col0 );
-
-    // Set column 1 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setCol1( const Vector3 &col1 );
-
-    // Set column 2 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setCol2( const Vector3 &col2 );
-
-    // Get column 0 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol0( ) const;
-
-    // Get column 1 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol1( ) const;
-
-    // Get column 2 of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol2( ) const;
-
-    // Set the column of a 3x3 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setCol( int col, const Vector3 &vec );
-
-    // Set the row of a 3x3 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setRow( int row, const Vector3 &vec );
-
-    // Get the column of a 3x3 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol( int col ) const;
-
-    // Get the row of a 3x3 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getRow( int row ) const;
-
-    // Subscripting operator to set or get a column
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator []( int col );
-
-    // Subscripting operator to get a column
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator []( int col ) const;
-
-    // Set the element of a 3x3 matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setElem( int col, int row, float val );
-
-    // Set the element of a 3x3 matrix referred to by column and row indices (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & setElem( int col, int row, const floatInVec &val );
-
-    // Get the element of a 3x3 matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;
-
-    // Add two 3x3 matrices
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator +( const Matrix3 & mat ) const;
-
-    // Subtract a 3x3 matrix from another 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator -( const Matrix3 & mat ) const;
-
-    // Negate all elements of a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator -( ) const;
-
-    // Multiply a 3x3 matrix by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar ) const;
-
-    // Multiply a 3x3 matrix by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar ) const;
-
-    // Multiply a 3x3 matrix by a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator *( const Vector3 &vec ) const;
-
-    // Multiply two 3x3 matrices
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 operator *( const Matrix3 & mat ) const;
-
-    // Perform compound assignment and addition with a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator +=( const Matrix3 & mat );
-
-    // Perform compound assignment and subtraction by a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator -=( const Matrix3 & mat );
-
-    // Perform compound assignment and multiplication by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator *=( float scalar );
-
-    // Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator *=( const floatInVec &scalar );
-
-    // Perform compound assignment and multiplication by a 3x3 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix3 & operator *=( const Matrix3 & mat );
-
-    // Construct an identity 3x3 matrix
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 identity( );
-
-    // Construct a 3x3 matrix to rotate around the x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationX( float radians );
-
-    // Construct a 3x3 matrix to rotate around the y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationY( float radians );
-
-    // Construct a 3x3 matrix to rotate around the z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationZ( float radians );
-
-    // Construct a 3x3 matrix to rotate around the x axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationX( const floatInVec &radians );
-
-    // Construct a 3x3 matrix to rotate around the y axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationY( const floatInVec &radians );
-
-    // Construct a 3x3 matrix to rotate around the z axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationZ( const floatInVec &radians );
-
-    // Construct a 3x3 matrix to rotate around the x, y, and z axes
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotationZYX( const Vector3 &radiansXYZ );
-
-    // Construct a 3x3 matrix to rotate around a unit-length 3-D vector
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotation( float radians, const Vector3 &unitVec );
-
-    // Construct a 3x3 matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotation( const floatInVec &radians, const Vector3 &unitVec );
-
-    // Construct a rotation matrix from a unit-length quaternion
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 rotation( const Quat &unitQuat );
-
-    // Construct a 3x3 matrix to perform scaling
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix3 scale( const Vector3 &scaleVec );
-
-};
-// Multiply a 3x3 matrix by a scalar
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar, const Matrix3 & mat );
-
-// Multiply a 3x3 matrix by a scalar (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar, const Matrix3 & mat );
-
-// Append (post-multiply) a scale transformation to a 3x3 matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 appendScale( const Matrix3 & mat, const Vector3 &scaleVec );
-
-// Prepend (pre-multiply) a scale transformation to a 3x3 matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 prependScale( const Vector3 &scaleVec, const Matrix3 & mat );
-
-// Multiply two 3x3 matrices per element
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 );
-
-// Compute the absolute value of a 3x3 matrix per element
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 absPerElem( const Matrix3 & mat );
-
-// Transpose of a 3x3 matrix
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 transpose( const Matrix3 & mat );
-
-// Compute the inverse of a 3x3 matrix
-// NOTE: 
-// Result is unpredictable when the determinant of mat is equal to or near 0.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 inverse( const Matrix3 & mat );
-
-// Determinant of a 3x3 matrix
-// 
-VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix3 & mat );
-
-// Conditionally select between two 3x3 matrices
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 );
-
-// Conditionally select between two 3x3 matrices (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, const boolInVec &select1 );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 3x3 matrix
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat );
-
-// Print a 3x3 matrix and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat, const char * name );
-
-#endif
-
-// A 4x4 matrix in array-of-structures format
-//
-class Matrix4
-{
-    Vector4 mCol0;
-    Vector4 mCol1;
-    Vector4 mCol2;
-    Vector4 mCol3;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4( ) { };
-
-    // Copy a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4( const Matrix4 & mat );
-
-    // Construct a 4x4 matrix containing the specified columns
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4( const Vector4 &col0, const Vector4 &col1, const Vector4 &col2, const Vector4 &col3 );
-
-    // Construct a 4x4 matrix from a 3x4 transformation matrix
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix4( const Transform3 & mat );
-
-    // Construct a 4x4 matrix from a 3x3 matrix and a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4( const Matrix3 & mat, const Vector3 &translateVec );
-
-    // Construct a 4x4 matrix from a unit-length quaternion and a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4( const Quat &unitQuat, const Vector3 &translateVec );
-
-    // Set all elements of a 4x4 matrix to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix4( float scalar );
-
-    // Set all elements of a 4x4 matrix to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Matrix4( const floatInVec &scalar );
-
-    // Assign one 4x4 matrix to another
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator =( const Matrix4 & mat );
-
-    // Set the upper-left 3x3 submatrix
-    // NOTE: 
-    // This function does not change the bottom row elements.
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setUpper3x3( const Matrix3 & mat3 );
-
-    // Get the upper-left 3x3 submatrix of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 getUpper3x3( ) const;
-
-    // Set translation component
-    // NOTE: 
-    // This function does not change the bottom row elements.
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setTranslation( const Vector3 &translateVec );
-
-    // Get the translation component of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getTranslation( ) const;
-
-    // Set column 0 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setCol0( const Vector4 &col0 );
-
-    // Set column 1 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setCol1( const Vector4 &col1 );
-
-    // Set column 2 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setCol2( const Vector4 &col2 );
-
-    // Set column 3 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setCol3( const Vector4 &col3 );
-
-    // Get column 0 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getCol0( ) const;
-
-    // Get column 1 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getCol1( ) const;
-
-    // Get column 2 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getCol2( ) const;
-
-    // Get column 3 of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getCol3( ) const;
-
-    // Set the column of a 4x4 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setCol( int col, const Vector4 &vec );
-
-    // Set the row of a 4x4 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setRow( int row, const Vector4 &vec );
-
-    // Get the column of a 4x4 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getCol( int col ) const;
-
-    // Get the row of a 4x4 matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getRow( int row ) const;
-
-    // Subscripting operator to set or get a column
-    // 
-    VECTORMATH_FORCE_INLINE Vector4 & operator []( int col );
-
-    // Subscripting operator to get a column
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator []( int col ) const;
-
-    // Set the element of a 4x4 matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setElem( int col, int row, float val );
-
-    // Set the element of a 4x4 matrix referred to by column and row indices (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & setElem( int col, int row, const floatInVec &val );
-
-    // Get the element of a 4x4 matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;
-
-    // Add two 4x4 matrices
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator +( const Matrix4 & mat ) const;
-
-    // Subtract a 4x4 matrix from another 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator -( const Matrix4 & mat ) const;
-
-    // Negate all elements of a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator -( ) const;
-
-    // Multiply a 4x4 matrix by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar ) const;
-
-    // Multiply a 4x4 matrix by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar ) const;
-
-    // Multiply a 4x4 matrix by a 4-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator *( const Vector4 &vec ) const;
-
-    // Multiply a 4x4 matrix by a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator *( const Vector3 &vec ) const;
-
-    // Multiply a 4x4 matrix by a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 operator *( const Point3 &pnt ) const;
-
-    // Multiply two 4x4 matrices
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator *( const Matrix4 & mat ) const;
-
-    // Multiply a 4x4 matrix by a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix4 operator *( const Transform3 & tfrm ) const;
-
-    // Perform compound assignment and addition with a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator +=( const Matrix4 & mat );
-
-    // Perform compound assignment and subtraction by a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator -=( const Matrix4 & mat );
-
-    // Perform compound assignment and multiplication by a scalar
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator *=( float scalar );
-
-    // Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const floatInVec &scalar );
-
-    // Perform compound assignment and multiplication by a 4x4 matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const Matrix4 & mat );
-
-    // Perform compound assignment and multiplication by a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const Transform3 & tfrm );
-
-    // Construct an identity 4x4 matrix
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 identity( );
-
-    // Construct a 4x4 matrix to rotate around the x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationX( float radians );
-
-    // Construct a 4x4 matrix to rotate around the y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationY( float radians );
-
-    // Construct a 4x4 matrix to rotate around the z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationZ( float radians );
-
-    // Construct a 4x4 matrix to rotate around the x axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationX( const floatInVec &radians );
-
-    // Construct a 4x4 matrix to rotate around the y axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationY( const floatInVec &radians );
-
-    // Construct a 4x4 matrix to rotate around the z axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationZ( const floatInVec &radians );
-
-    // Construct a 4x4 matrix to rotate around the x, y, and z axes
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotationZYX( const Vector3 &radiansXYZ );
-
-    // Construct a 4x4 matrix to rotate around a unit-length 3-D vector
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotation( float radians, const Vector3 &unitVec );
-
-    // Construct a 4x4 matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotation( const floatInVec &radians, const Vector3 &unitVec );
-
-    // Construct a rotation matrix from a unit-length quaternion
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 rotation( const Quat &unitQuat );
-
-    // Construct a 4x4 matrix to perform scaling
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 scale( const Vector3 &scaleVec );
-
-    // Construct a 4x4 matrix to perform translation
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 translation( const Vector3 &translateVec );
-
-    // Construct viewing matrix based on eye, position looked at, and up direction
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 lookAt( const Point3 &eyePos, const Point3 &lookAtPos, const Vector3 &upVec );
-
-    // Construct a perspective projection matrix
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 perspective( float fovyRadians, float aspect, float zNear, float zFar );
-
-    // Construct a perspective projection matrix based on frustum
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 frustum( float left, float right, float bottom, float top, float zNear, float zFar );
-
-    // Construct an orthographic projection matrix
-    // 
-    static VECTORMATH_FORCE_INLINE const Matrix4 orthographic( float left, float right, float bottom, float top, float zNear, float zFar );
-
-};
-// Multiply a 4x4 matrix by a scalar
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar, const Matrix4 & mat );
-
-// Multiply a 4x4 matrix by a scalar (scalar data contained in vector data type)
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar, const Matrix4 & mat );
-
-// Append (post-multiply) a scale transformation to a 4x4 matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 appendScale( const Matrix4 & mat, const Vector3 &scaleVec );
-
-// Prepend (pre-multiply) a scale transformation to a 4x4 matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 prependScale( const Vector3 &scaleVec, const Matrix4 & mat );
-
-// Multiply two 4x4 matrices per element
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 );
-
-// Compute the absolute value of a 4x4 matrix per element
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 absPerElem( const Matrix4 & mat );
-
-// Transpose of a 4x4 matrix
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 transpose( const Matrix4 & mat );
-
-// Compute the inverse of a 4x4 matrix
-// NOTE: 
-// Result is unpredictable when the determinant of mat is equal to or near 0.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 inverse( const Matrix4 & mat );
-
-// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix
-// NOTE: 
-// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.  The result is unpredictable when the determinant of mat is equal to or near 0.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 affineInverse( const Matrix4 & mat );
-
-// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix with an orthogonal upper-left 3x3 submatrix
-// NOTE: 
-// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 orthoInverse( const Matrix4 & mat );
-
-// Determinant of a 4x4 matrix
-// 
-VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix4 & mat );
-
-// Conditionally select between two 4x4 matrices
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 );
-
-// Conditionally select between two 4x4 matrices (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, const boolInVec &select1 );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 4x4 matrix
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat );
-
-// Print a 4x4 matrix and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat, const char * name );
-
-#endif
-
-// A 3x4 transformation matrix in array-of-structures format
-//
-class Transform3
-{
-    Vector3 mCol0;
-    Vector3 mCol1;
-    Vector3 mCol2;
-    Vector3 mCol3;
-
-public:
-    // Default constructor; does no initialization
-    // 
-    VECTORMATH_FORCE_INLINE Transform3( ) { };
-
-    // Copy a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3( const Transform3 & tfrm );
-
-    // Construct a 3x4 transformation matrix containing the specified columns
-    // 
-    VECTORMATH_FORCE_INLINE Transform3( const Vector3 &col0, const Vector3 &col1, const Vector3 &col2, const Vector3 &col3 );
-
-    // Construct a 3x4 transformation matrix from a 3x3 matrix and a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Transform3( const Matrix3 & tfrm, const Vector3 &translateVec );
-
-    // Construct a 3x4 transformation matrix from a unit-length quaternion and a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE Transform3( const Quat &unitQuat, const Vector3 &translateVec );
-
-    // Set all elements of a 3x4 transformation matrix to the same scalar value
-    // 
-    explicit VECTORMATH_FORCE_INLINE Transform3( float scalar );
-
-    // Set all elements of a 3x4 transformation matrix to the same scalar value (scalar data contained in vector data type)
-    // 
-    explicit VECTORMATH_FORCE_INLINE Transform3( const floatInVec &scalar );
-
-    // Assign one 3x4 transformation matrix to another
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & operator =( const Transform3 & tfrm );
-
-    // Set the upper-left 3x3 submatrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setUpper3x3( const Matrix3 & mat3 );
-
-    // Get the upper-left 3x3 submatrix of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Matrix3 getUpper3x3( ) const;
-
-    // Set translation component
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setTranslation( const Vector3 &translateVec );
-
-    // Get the translation component of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getTranslation( ) const;
-
-    // Set column 0 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setCol0( const Vector3 &col0 );
-
-    // Set column 1 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setCol1( const Vector3 &col1 );
-
-    // Set column 2 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setCol2( const Vector3 &col2 );
-
-    // Set column 3 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setCol3( const Vector3 &col3 );
-
-    // Get column 0 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol0( ) const;
-
-    // Get column 1 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol1( ) const;
-
-    // Get column 2 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol2( ) const;
-
-    // Get column 3 of a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol3( ) const;
-
-    // Set the column of a 3x4 transformation matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setCol( int col, const Vector3 &vec );
-
-    // Set the row of a 3x4 transformation matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setRow( int row, const Vector4 &vec );
-
-    // Get the column of a 3x4 transformation matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 getCol( int col ) const;
-
-    // Get the row of a 3x4 transformation matrix referred to by the specified index
-    // 
-    VECTORMATH_FORCE_INLINE const Vector4 getRow( int row ) const;
-
-    // Subscripting operator to set or get a column
-    // 
-    VECTORMATH_FORCE_INLINE Vector3 & operator []( int col );
-
-    // Subscripting operator to get a column
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator []( int col ) const;
-
-    // Set the element of a 3x4 transformation matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setElem( int col, int row, float val );
-
-    // Set the element of a 3x4 transformation matrix referred to by column and row indices (scalar data contained in vector data type)
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & setElem( int col, int row, const floatInVec &val );
-
-    // Get the element of a 3x4 transformation matrix referred to by column and row indices
-    // 
-    VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;
-
-    // Multiply a 3x4 transformation matrix by a 3-D vector
-    // 
-    VECTORMATH_FORCE_INLINE const Vector3 operator *( const Vector3 &vec ) const;
-
-    // Multiply a 3x4 transformation matrix by a 3-D point
-    // 
-    VECTORMATH_FORCE_INLINE const Point3 operator *( const Point3 &pnt ) const;
-
-    // Multiply two 3x4 transformation matrices
-    // 
-    VECTORMATH_FORCE_INLINE const Transform3 operator *( const Transform3 & tfrm ) const;
-
-    // Perform compound assignment and multiplication by a 3x4 transformation matrix
-    // 
-    VECTORMATH_FORCE_INLINE Transform3 & operator *=( const Transform3 & tfrm );
-
-    // Construct an identity 3x4 transformation matrix
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 identity( );
-
-    // Construct a 3x4 transformation matrix to rotate around the x axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationX( float radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the y axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationY( float radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the z axis
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationZ( float radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the x axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationX( const floatInVec &radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the y axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationY( const floatInVec &radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the z axis (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationZ( const floatInVec &radians );
-
-    // Construct a 3x4 transformation matrix to rotate around the x, y, and z axes
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotationZYX( const Vector3 &radiansXYZ );
-
-    // Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotation( float radians, const Vector3 &unitVec );
-
-    // Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotation( const floatInVec &radians, const Vector3 &unitVec );
-
-    // Construct a rotation matrix from a unit-length quaternion
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 rotation( const Quat &unitQuat );
-
-    // Construct a 3x4 transformation matrix to perform scaling
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 scale( const Vector3 &scaleVec );
-
-    // Construct a 3x4 transformation matrix to perform translation
-    // 
-    static VECTORMATH_FORCE_INLINE const Transform3 translation( const Vector3 &translateVec );
-
-};
-// Append (post-multiply) a scale transformation to a 3x4 transformation matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 appendScale( const Transform3 & tfrm, const Vector3 &scaleVec );
-
-// Prepend (pre-multiply) a scale transformation to a 3x4 transformation matrix
-// NOTE: 
-// Faster than creating and multiplying a scale transformation matrix.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 prependScale( const Vector3 &scaleVec, const Transform3 & tfrm );
-
-// Multiply two 3x4 transformation matrices per element
-// 
-VECTORMATH_FORCE_INLINE const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 );
-
-// Compute the absolute value of a 3x4 transformation matrix per element
-// 
-VECTORMATH_FORCE_INLINE const Transform3 absPerElem( const Transform3 & tfrm );
-
-// Inverse of a 3x4 transformation matrix
-// NOTE: 
-// Result is unpredictable when the determinant of the left 3x3 submatrix is equal to or near 0.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 inverse( const Transform3 & tfrm );
-
-// Compute the inverse of a 3x4 transformation matrix, expected to have an orthogonal upper-left 3x3 submatrix
-// NOTE: 
-// This can be used to achieve better performance than a general inverse when the specified 3x4 transformation matrix meets the given restrictions.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 orthoInverse( const Transform3 & tfrm );
-
-// Conditionally select between two 3x4 transformation matrices
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// However, the transfer of select1 to a VMX register may use more processing time than a branch.
-// Use the boolInVec version for better performance.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 );
-
-// Conditionally select between two 3x4 transformation matrices (scalar data contained in vector data type)
-// NOTE: 
-// This function uses a conditional select instruction to avoid a branch.
-// 
-VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, const boolInVec &select1 );
-
-#ifdef _VECTORMATH_DEBUG
-
-// Print a 3x4 transformation matrix
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm );
-
-// Print a 3x4 transformation matrix and an associated string identifier
-// NOTE: 
-// Function is only defined when _VECTORMATH_DEBUG is defined.
-// 
-VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm, const char * name );
-
-#endif
-
-} // namespace Aos
-} // namespace Vectormath
-
-#include "vec_aos.h"
-#include "quat_aos.h"
-#include "mat_aos.h"
-
-#endif
+/*+Copyright (C) 2006, 2007 Sony Computer Entertainment Inc.+All rights reserved.++Redistribution and use in source and binary forms,+with or without modification, are permitted provided that the+following conditions are met:+* Redistributions of source code must retain the above copyright+notice, this list of conditions and the following disclaimer.+* Redistributions in binary form must reproduce the above copyright+notice, this list of conditions and the following disclaimer in the+documentation and/or other materials provided with the distribution.+* Neither the name of the Sony Computer Entertainment Inc nor the names+of its contributors may be used to endorse or promote products derived+from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.+*/+++#ifndef _VECTORMATH_AOS_CPP_SSE_H+#define _VECTORMATH_AOS_CPP_SSE_H++#include <math.h>+#include <xmmintrin.h>+#include <emmintrin.h>+#include <assert.h>++#define Vector3Ref Vector3&+#define QuatRef Quat&+#define Matrix3Ref Matrix3&++#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400)+#define USE_SSE3_LDDQU++#define VM_ATTRIBUTE_ALIGNED_CLASS16(a) __declspec(align(16)) a+#define VM_ATTRIBUTE_ALIGN16 __declspec(align(16))+#define VECTORMATH_FORCE_INLINE __forceinline+#else+#define VM_ATTRIBUTE_ALIGNED_CLASS16(a) a __attribute__ ((aligned (16)))+#define VM_ATTRIBUTE_ALIGN16 __attribute__ ((aligned (16)))+#define VECTORMATH_FORCE_INLINE inline+#ifdef __SSE3__+#define USE_SSE3_LDDQU+#endif //__SSE3__+#endif//_WIN32+++#ifdef USE_SSE3_LDDQU+#include <pmmintrin.h>//_mm_lddqu_si128+#endif //USE_SSE3_LDDQU+++// TODO: Tidy+typedef __m128 vec_float4;+typedef __m128 vec_uint4;+typedef __m128 vec_int4;+typedef __m128i vec_uchar16;+typedef __m128i vec_ushort8;++#define vec_splat(x, e) _mm_shuffle_ps(x, x, _MM_SHUFFLE(e,e,e,e))++#define _mm_ror_ps(vec,i) \+(((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(i+3)%4,(unsigned char)(i+2)%4,(unsigned char)(i+1)%4,(unsigned char)(i+0)%4))) : (vec))+#define _mm_rol_ps(vec,i) \+(((i)%4) ? (_mm_shuffle_ps(vec,vec, _MM_SHUFFLE((unsigned char)(7-i)%4,(unsigned char)(6-i)%4,(unsigned char)(5-i)%4,(unsigned char)(4-i)%4))) : (vec))++#define vec_sld(vec,vec2,x) _mm_ror_ps(vec, ((x)/4))++#define _mm_abs_ps(vec) _mm_andnot_ps(_MASKSIGN_,vec)+#define _mm_neg_ps(vec) _mm_xor_ps(_MASKSIGN_,vec)++#define vec_madd(a, b, c) _mm_add_ps(c, _mm_mul_ps(a, b) )++union SSEFloat+{+__m128i vi;+__m128 m128;+__m128 vf;+unsigned int ui[4];+unsigned short s[8];+float f[4];+SSEFloat(__m128 v) : m128(v) {}+SSEFloat(__m128i v) : vi(v) {}+SSEFloat() {}//uninitialized+};++static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, __m128 mask)+{+return _mm_or_ps(_mm_and_ps(mask, b), _mm_andnot_ps(mask, a));+}+static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, const unsigned int *_mask)+{+return vec_sel(a, b, _mm_load_ps((float *)_mask));+}+static VECTORMATH_FORCE_INLINE __m128 vec_sel(__m128 a, __m128 b, unsigned int _mask)+{+return vec_sel(a, b, _mm_set1_ps(*(float *)&_mask));+}++static VECTORMATH_FORCE_INLINE __m128 toM128(unsigned int x)+{+return _mm_set1_ps( *(float *)&x );+}++static VECTORMATH_FORCE_INLINE __m128 fabsf4(__m128 x)+{+return _mm_and_ps( x, toM128( 0x7fffffff ) );+}+/*+union SSE64+{+__m128 m128;+struct+{+__m64 m01;+__m64 m23;+} m64;+};++static VECTORMATH_FORCE_INLINE __m128 vec_cts(__m128 x, int a)+{+assert(a == 0); // Only 2^0 supported+(void)a;+SSE64 sse64;+sse64.m64.m01 = _mm_cvttps_pi32(x);+sse64.m64.m23 = _mm_cvttps_pi32(_mm_ror_ps(x,2));+_mm_empty();+return sse64.m128;+}++static VECTORMATH_FORCE_INLINE __m128 vec_ctf(__m128 x, int a)+{+assert(a == 0); // Only 2^0 supported+(void)a;+SSE64 sse64;+sse64.m128 = x;+__m128 result =_mm_movelh_ps(+_mm_cvt_pi2ps(_mm_setzero_ps(), sse64.m64.m01),+_mm_cvt_pi2ps(_mm_setzero_ps(), sse64.m64.m23));+_mm_empty();+return result;+}+*/+static VECTORMATH_FORCE_INLINE __m128 vec_cts(__m128 x, int a)+{+assert(a == 0); // Only 2^0 supported+(void)a;+__m128i result = _mm_cvtps_epi32(x);+return (__m128 &)result;+}++static VECTORMATH_FORCE_INLINE __m128 vec_ctf(__m128 x, int a)+{+assert(a == 0); // Only 2^0 supported+(void)a;+return _mm_cvtepi32_ps((__m128i &)x);+}++#define vec_nmsub(a,b,c) _mm_sub_ps( c, _mm_mul_ps( a, b ) )+#define vec_sub(a,b) _mm_sub_ps( a, b )+#define vec_add(a,b) _mm_add_ps( a, b )+#define vec_mul(a,b) _mm_mul_ps( a, b )+#define vec_xor(a,b) _mm_xor_ps( a, b )+#define vec_and(a,b) _mm_and_ps( a, b )+#define vec_cmpeq(a,b) _mm_cmpeq_ps( a, b )+#define vec_cmpgt(a,b) _mm_cmpgt_ps( a, b )++#define vec_mergeh(a,b) _mm_unpacklo_ps( a, b )+#define vec_mergel(a,b) _mm_unpackhi_ps( a, b )++#define vec_andc(a,b) _mm_andnot_ps( b, a )++#define sqrtf4(x) _mm_sqrt_ps( x )+#define rsqrtf4(x) _mm_rsqrt_ps( x )+#define recipf4(x) _mm_rcp_ps( x )+#define negatef4(x) _mm_sub_ps( _mm_setzero_ps(), x )++static VECTORMATH_FORCE_INLINE __m128 newtonrapson_rsqrt4( const __m128 v )+{+#define _half4 _mm_setr_ps(.5f,.5f,.5f,.5f)+#define _three _mm_setr_ps(3.f,3.f,3.f,3.f)+const __m128 approx = _mm_rsqrt_ps( v );+const __m128 muls = _mm_mul_ps(_mm_mul_ps(v, approx), approx);+return _mm_mul_ps(_mm_mul_ps(_half4, approx), _mm_sub_ps(_three, muls) );+}++static VECTORMATH_FORCE_INLINE __m128 acosf4(__m128 x)+{+__m128 xabs = fabsf4(x);+__m128 select = _mm_cmplt_ps( x, _mm_setzero_ps() );+__m128 t1 = sqrtf4(vec_sub(_mm_set1_ps(1.0f), xabs));++/* Instruction counts can be reduced if the polynomial was+* computed entirely from nested (dependent) fma's. However,+* to reduce the number of pipeline stalls, the polygon is evaluated+* in two halves (hi amd lo).+*/+__m128 xabs2 = _mm_mul_ps(xabs, xabs);+__m128 xabs4 = _mm_mul_ps(xabs2, xabs2);+__m128 hi = vec_madd(vec_madd(vec_madd(_mm_set1_ps(-0.0012624911f),+xabs, _mm_set1_ps(0.0066700901f)),+xabs, _mm_set1_ps(-0.0170881256f)),+xabs, _mm_set1_ps( 0.0308918810f));+__m128 lo = vec_madd(vec_madd(vec_madd(_mm_set1_ps(-0.0501743046f),+xabs, _mm_set1_ps(0.0889789874f)),+xabs, _mm_set1_ps(-0.2145988016f)),+xabs, _mm_set1_ps( 1.5707963050f));++__m128 result = vec_madd(hi, xabs4, lo);++// Adjust the result if x is negactive.+return vec_sel(+vec_mul(t1, result), // Positive+vec_nmsub(t1, result, _mm_set1_ps(3.1415926535898f)), // Negative+select);+}++static VECTORMATH_FORCE_INLINE __m128 sinf4(vec_float4 x)+{++//+// Common constants used to evaluate sinf4/cosf4/tanf4+//+#define _SINCOS_CC0 -0.0013602249f+#define _SINCOS_CC1 0.0416566950f+#define _SINCOS_CC2 -0.4999990225f+#define _SINCOS_SC0 -0.0001950727f+#define _SINCOS_SC1 0.0083320758f+#define _SINCOS_SC2 -0.1666665247f++#define _SINCOS_KC1 1.57079625129f+#define _SINCOS_KC2 7.54978995489e-8f++vec_float4 xl,xl2,xl3,res;++// Range reduction using : xl = angle * TwoOverPi;+//+xl = vec_mul(x, _mm_set1_ps(0.63661977236f));++// Find the quadrant the angle falls in+// using: q = (int) (ceil(abs(xl))*sign(xl))+//+vec_int4 q = vec_cts(xl,0);++// Compute an offset based on the quadrant that the angle falls in+//+vec_int4 offset = _mm_and_ps(q,toM128(0x3));++// Remainder in range [-pi/4..pi/4]+//+vec_float4 qf = vec_ctf(q,0);+xl = vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC2),vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC1),x));++// Compute x^2 and x^3+//+xl2 = vec_mul(xl,xl);+xl3 = vec_mul(xl2,xl);++// Compute both the sin and cos of the angles+// using a polynomial expression:+// cx = 1.0f + xl2 * ((C0 * xl2 + C1) * xl2 + C2), and+// sx = xl + xl3 * ((S0 * xl2 + S1) * xl2 + S2)+//++vec_float4 cx =+vec_madd(+vec_madd(+vec_madd(_mm_set1_ps(_SINCOS_CC0),xl2,_mm_set1_ps(_SINCOS_CC1)),xl2,_mm_set1_ps(_SINCOS_CC2)),xl2,_mm_set1_ps(1.0f));+vec_float4 sx =+vec_madd(+vec_madd(+vec_madd(_mm_set1_ps(_SINCOS_SC0),xl2,_mm_set1_ps(_SINCOS_SC1)),xl2,_mm_set1_ps(_SINCOS_SC2)),xl3,xl);++// Use the cosine when the offset is odd and the sin+// when the offset is even+//+res = vec_sel(cx,sx,vec_cmpeq(vec_and(offset,+toM128(0x1)),+_mm_setzero_ps()));++// Flip the sign of the result when (offset mod 4) = 1 or 2+//+return vec_sel(+vec_xor(toM128(0x80000000U), res), // Negative+res, // Positive+vec_cmpeq(vec_and(offset,toM128(0x2)),_mm_setzero_ps()));+}++static VECTORMATH_FORCE_INLINE void sincosf4(vec_float4 x, vec_float4* s, vec_float4* c)+{+vec_float4 xl,xl2,xl3;+vec_int4 offsetSin, offsetCos;++// Range reduction using : xl = angle * TwoOverPi;+//+xl = vec_mul(x, _mm_set1_ps(0.63661977236f));++// Find the quadrant the angle falls in+// using: q = (int) (ceil(abs(xl))*sign(xl))+//+//vec_int4 q = vec_cts(vec_add(xl,vec_sel(_mm_set1_ps(0.5f),xl,(0x80000000))),0);+vec_int4 q = vec_cts(xl,0);++// Compute the offset based on the quadrant that the angle falls in.+// Add 1 to the offset for the cosine.+//+offsetSin = vec_and(q,toM128((int)0x3));+__m128i temp = _mm_add_epi32(_mm_set1_epi32(1),(__m128i &)offsetSin);+offsetCos = (__m128 &)temp;++// Remainder in range [-pi/4..pi/4]+//+vec_float4 qf = vec_ctf(q,0);+xl = vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC2),vec_nmsub(qf,_mm_set1_ps(_SINCOS_KC1),x));++// Compute x^2 and x^3+//+xl2 = vec_mul(xl,xl);+xl3 = vec_mul(xl2,xl);++// Compute both the sin and cos of the angles+// using a polynomial expression:+// cx = 1.0f + xl2 * ((C0 * xl2 + C1) * xl2 + C2), and+// sx = xl + xl3 * ((S0 * xl2 + S1) * xl2 + S2)+//+vec_float4 cx =+vec_madd(+vec_madd(+vec_madd(_mm_set1_ps(_SINCOS_CC0),xl2,_mm_set1_ps(_SINCOS_CC1)),xl2,_mm_set1_ps(_SINCOS_CC2)),xl2,_mm_set1_ps(1.0f));+vec_float4 sx =+vec_madd(+vec_madd(+vec_madd(_mm_set1_ps(_SINCOS_SC0),xl2,_mm_set1_ps(_SINCOS_SC1)),xl2,_mm_set1_ps(_SINCOS_SC2)),xl3,xl);++// Use the cosine when the offset is odd and the sin+// when the offset is even+//+vec_uint4 sinMask = (vec_uint4)vec_cmpeq(vec_and(offsetSin,toM128(0x1)),_mm_setzero_ps());+vec_uint4 cosMask = (vec_uint4)vec_cmpeq(vec_and(offsetCos,toM128(0x1)),_mm_setzero_ps());+*s = vec_sel(cx,sx,sinMask);+*c = vec_sel(cx,sx,cosMask);++// Flip the sign of the result when (offset mod 4) = 1 or 2+//+sinMask = vec_cmpeq(vec_and(offsetSin,toM128(0x2)),_mm_setzero_ps());+cosMask = vec_cmpeq(vec_and(offsetCos,toM128(0x2)),_mm_setzero_ps());++*s = vec_sel((vec_float4)vec_xor(toM128(0x80000000),(vec_uint4)*s),*s,sinMask);+*c = vec_sel((vec_float4)vec_xor(toM128(0x80000000),(vec_uint4)*c),*c,cosMask);+}++#include "vecidx_aos.h"+#include "floatInVec.h"+#include "boolInVec.h"++#ifdef _VECTORMATH_DEBUG+#include <stdio.h>+#endif+namespace Vectormath {++namespace Aos {++//-----------------------------------------------------------------------------+// Forward Declarations+//++class Vector3;+class Vector4;+class Point3;+class Quat;+class Matrix3;+class Matrix4;+class Transform3;++// A 3-D vector in array-of-structures format+//+class Vector3+{ private:+__m128 mVec128;++VECTORMATH_FORCE_INLINE void set128(vec_float4 vec);++VECTORMATH_FORCE_INLINE vec_float4& get128Ref();++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Vector3( ) { };++// Default copy constructor+//+VECTORMATH_FORCE_INLINE Vector3(const Vector3& vec);++// Construct a 3-D vector from x, y, and z elements+//+VECTORMATH_FORCE_INLINE Vector3( float x, float y, float z );++// Construct a 3-D vector from x, y, and z elements (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3( const floatInVec &x, const floatInVec &y, const floatInVec &z );++// Copy elements from a 3-D point into a 3-D vector+//+explicit VECTORMATH_FORCE_INLINE Vector3( const Point3 &pnt );++// Set all elements of a 3-D vector to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Vector3( float scalar );++// Set all elements of a 3-D vector to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Vector3( const floatInVec &scalar );++// Set vector float data in a 3-D vector+//+explicit VECTORMATH_FORCE_INLINE Vector3( __m128 vf4 );++// Get vector float data from a 3-D vector+//+VECTORMATH_FORCE_INLINE __m128 get128( ) const;++// Assign one 3-D vector to another+//+VECTORMATH_FORCE_INLINE Vector3 & operator =( const Vector3 &vec );++// Set the x element of a 3-D vector+//+VECTORMATH_FORCE_INLINE Vector3 & setX( float x );++// Set the y element of a 3-D vector+//+VECTORMATH_FORCE_INLINE Vector3 & setY( float y );++// Set the z element of a 3-D vector+//+VECTORMATH_FORCE_INLINE Vector3 & setZ( float z );++// Set the x element of a 3-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & setX( const floatInVec &x );++// Set the y element of a 3-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & setY( const floatInVec &y );++// Set the z element of a 3-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & setZ( const floatInVec &z );++// Get the x element of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;++// Get the y element of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;++// Get the z element of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;++// Set an x, y, or z element of a 3-D vector by index+//+VECTORMATH_FORCE_INLINE Vector3 & setElem( int idx, float value );++// Set an x, y, or z element of a 3-D vector by index (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & setElem( int idx, const floatInVec &value );++// Get an x, y, or z element of a 3-D vector by index+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;++// Subscripting operator to set or get an element+//+VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );++// Subscripting operator to get an element+//+VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;++// Add two 3-D vectors+//+VECTORMATH_FORCE_INLINE const Vector3 operator +( const Vector3 &vec ) const;++// Subtract a 3-D vector from another 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 operator -( const Vector3 &vec ) const;++// Add a 3-D vector to a 3-D point+//+VECTORMATH_FORCE_INLINE const Point3 operator +( const Point3 &pnt ) const;++// Multiply a 3-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar ) const;++// Divide a 3-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector3 operator /( float scalar ) const;++// Multiply a 3-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar ) const;++// Divide a 3-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector3 operator /( const floatInVec &scalar ) const;++// Perform compound assignment and addition with a 3-D vector+//+VECTORMATH_FORCE_INLINE Vector3 & operator +=( const Vector3 &vec );++// Perform compound assignment and subtraction by a 3-D vector+//+VECTORMATH_FORCE_INLINE Vector3 & operator -=( const Vector3 &vec );++// Perform compound assignment and multiplication by a scalar+//+VECTORMATH_FORCE_INLINE Vector3 & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+VECTORMATH_FORCE_INLINE Vector3 & operator /=( float scalar );++// Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & operator *=( const floatInVec &scalar );++// Perform compound assignment and division by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector3 & operator /=( const floatInVec &scalar );++// Negate all elements of a 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 operator -( ) const;++// Construct x axis+//+static VECTORMATH_FORCE_INLINE const Vector3 xAxis( );++// Construct y axis+//+static VECTORMATH_FORCE_INLINE const Vector3 yAxis( );++// Construct z axis+//+static VECTORMATH_FORCE_INLINE const Vector3 zAxis( );++};++// Multiply a 3-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( float scalar, const Vector3 &vec );++// Multiply a 3-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( const floatInVec &scalar, const Vector3 &vec );++// Multiply two 3-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector3 mulPerElem( const Vector3 &vec0, const Vector3 &vec1 );++// Divide two 3-D vectors per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+VECTORMATH_FORCE_INLINE const Vector3 divPerElem( const Vector3 &vec0, const Vector3 &vec1 );++// Compute the reciprocal of a 3-D vector per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+VECTORMATH_FORCE_INLINE const Vector3 recipPerElem( const Vector3 &vec );++// Compute the absolute value of a 3-D vector per element+//+VECTORMATH_FORCE_INLINE const Vector3 absPerElem( const Vector3 &vec );++// Copy sign from one 3-D vector to another, per element+//+VECTORMATH_FORCE_INLINE const Vector3 copySignPerElem( const Vector3 &vec0, const Vector3 &vec1 );++// Maximum of two 3-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector3 maxPerElem( const Vector3 &vec0, const Vector3 &vec1 );++// Minimum of two 3-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector3 minPerElem( const Vector3 &vec0, const Vector3 &vec1 );++// Maximum element of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector3 &vec );++// Minimum element of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector3 &vec );++// Compute the sum of all elements of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector3 &vec );++// Compute the dot product of two 3-D vectors+//+VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector3 &vec0, const Vector3 &vec1 );++// Compute the square of the length of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector3 &vec );++// Compute the length of a 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec length( const Vector3 &vec );++// Normalize a 3-D vector+// NOTE:+// The result is unpredictable when all elements of vec are at or near zero.+//+VECTORMATH_FORCE_INLINE const Vector3 normalize( const Vector3 &vec );++// Compute cross product of two 3-D vectors+//+VECTORMATH_FORCE_INLINE const Vector3 cross( const Vector3 &vec0, const Vector3 &vec1 );++// Outer product of two 3-D vectors+//+VECTORMATH_FORCE_INLINE const Matrix3 outer( const Vector3 &vec0, const Vector3 &vec1 );++// Pre-multiply a row vector by a 3x3 matrix+// NOTE:+// Slower than column post-multiply.+//+VECTORMATH_FORCE_INLINE const Vector3 rowMul( const Vector3 &vec, const Matrix3 & mat );++// Cross-product matrix of a 3-D vector+//+VECTORMATH_FORCE_INLINE const Matrix3 crossMatrix( const Vector3 &vec );++// Create cross-product matrix and multiply+// NOTE:+// Faster than separately creating a cross-product matrix and multiplying.+//+VECTORMATH_FORCE_INLINE const Matrix3 crossMatrixMul( const Vector3 &vec, const Matrix3 & mat );++// Linear interpolation between two 3-D vectors+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector3 lerp( float t, const Vector3 &vec0, const Vector3 &vec1 );++// Linear interpolation between two 3-D vectors (scalar data contained in vector data type)+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector3 lerp( const floatInVec &t, const Vector3 &vec0, const Vector3 &vec1 );++// Spherical linear interpolation between two 3-D vectors+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector3 slerp( float t, const Vector3 &unitVec0, const Vector3 &unitVec1 );++// Spherical linear interpolation between two 3-D vectors (scalar data contained in vector data type)+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector3 slerp( const floatInVec &t, const Vector3 &unitVec0, const Vector3 &unitVec1 );++// Conditionally select between two 3-D vectors+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, bool select1 );++// Conditionally select between two 3-D vectors (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Vector3 select( const Vector3 &vec0, const Vector3 &vec1, const boolInVec &select1 );++// Store x, y, and z elements of 3-D vector in first three words of a quadword, preserving fourth word+//+VECTORMATH_FORCE_INLINE void storeXYZ( const Vector3 &vec, __m128 * quad );++// Load four three-float 3-D vectors, stored in three quadwords+//+VECTORMATH_FORCE_INLINE void loadXYZArray( Vector3 & vec0, Vector3 & vec1, Vector3 & vec2, Vector3 & vec3, const __m128 * threeQuads );++// Store four 3-D vectors in three quadwords+//+VECTORMATH_FORCE_INLINE void storeXYZArray( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, __m128 * threeQuads );++// Store eight 3-D vectors as half-floats+//+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector3 &vec0, const Vector3 &vec1, const Vector3 &vec2, const Vector3 &vec3, const Vector3 &vec4, const Vector3 &vec5, const Vector3 &vec6, const Vector3 &vec7, vec_ushort8 * threeQuads );++#ifdef _VECTORMATH_DEBUG++// Print a 3-D vector+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Vector3 &vec );++// Print a 3-D vector and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Vector3 &vec, const char * name );++#endif++// A 4-D vector in array-of-structures format+//+class Vector4+{ private:+__m128 mVec128;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Vector4( ) { };++// Construct a 4-D vector from x, y, z, and w elements+//+VECTORMATH_FORCE_INLINE Vector4( float x, float y, float z, float w );++// Construct a 4-D vector from x, y, z, and w elements (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4( const floatInVec &x, const floatInVec &y, const floatInVec &z, const floatInVec &w );++// Construct a 4-D vector from a 3-D vector and a scalar+//+VECTORMATH_FORCE_INLINE Vector4( const Vector3 &xyz, float w );++// Construct a 4-D vector from a 3-D vector and a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4( const Vector3 &xyz, const floatInVec &w );++// Copy x, y, and z from a 3-D vector into a 4-D vector, and set w to 0+//+explicit VECTORMATH_FORCE_INLINE Vector4( const Vector3 &vec );++// Copy x, y, and z from a 3-D point into a 4-D vector, and set w to 1+//+explicit VECTORMATH_FORCE_INLINE Vector4( const Point3 &pnt );++// Copy elements from a quaternion into a 4-D vector+//+explicit VECTORMATH_FORCE_INLINE Vector4( const Quat &quat );++// Set all elements of a 4-D vector to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Vector4( float scalar );++// Set all elements of a 4-D vector to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Vector4( const floatInVec &scalar );++// Set vector float data in a 4-D vector+//+explicit VECTORMATH_FORCE_INLINE Vector4( __m128 vf4 );++// Get vector float data from a 4-D vector+//+VECTORMATH_FORCE_INLINE __m128 get128( ) const;++// Assign one 4-D vector to another+//+VECTORMATH_FORCE_INLINE Vector4 & operator =( const Vector4 &vec );++// Set the x, y, and z elements of a 4-D vector+// NOTE:+// This function does not change the w element.+//+VECTORMATH_FORCE_INLINE Vector4 & setXYZ( const Vector3 &vec );++// Get the x, y, and z elements of a 4-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 getXYZ( ) const;++// Set the x element of a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & setX( float x );++// Set the y element of a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & setY( float y );++// Set the z element of a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & setZ( float z );++// Set the w element of a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & setW( float w );++// Set the x element of a 4-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & setX( const floatInVec &x );++// Set the y element of a 4-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & setY( const floatInVec &y );++// Set the z element of a 4-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & setZ( const floatInVec &z );++// Set the w element of a 4-D vector (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & setW( const floatInVec &w );++// Get the x element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;++// Get the y element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;++// Get the z element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;++// Get the w element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec getW( ) const;++// Set an x, y, z, or w element of a 4-D vector by index+//+VECTORMATH_FORCE_INLINE Vector4 & setElem( int idx, float value );++// Set an x, y, z, or w element of a 4-D vector by index (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & setElem( int idx, const floatInVec &value );++// Get an x, y, z, or w element of a 4-D vector by index+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;++// Subscripting operator to set or get an element+//+VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );++// Subscripting operator to get an element+//+VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;++// Add two 4-D vectors+//+VECTORMATH_FORCE_INLINE const Vector4 operator +( const Vector4 &vec ) const;++// Subtract a 4-D vector from another 4-D vector+//+VECTORMATH_FORCE_INLINE const Vector4 operator -( const Vector4 &vec ) const;++// Multiply a 4-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar ) const;++// Divide a 4-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector4 operator /( float scalar ) const;++// Multiply a 4-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar ) const;++// Divide a 4-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector4 operator /( const floatInVec &scalar ) const;++// Perform compound assignment and addition with a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & operator +=( const Vector4 &vec );++// Perform compound assignment and subtraction by a 4-D vector+//+VECTORMATH_FORCE_INLINE Vector4 & operator -=( const Vector4 &vec );++// Perform compound assignment and multiplication by a scalar+//+VECTORMATH_FORCE_INLINE Vector4 & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+VECTORMATH_FORCE_INLINE Vector4 & operator /=( float scalar );++// Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & operator *=( const floatInVec &scalar );++// Perform compound assignment and division by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Vector4 & operator /=( const floatInVec &scalar );++// Negate all elements of a 4-D vector+//+VECTORMATH_FORCE_INLINE const Vector4 operator -( ) const;++// Construct x axis+//+static VECTORMATH_FORCE_INLINE const Vector4 xAxis( );++// Construct y axis+//+static VECTORMATH_FORCE_INLINE const Vector4 yAxis( );++// Construct z axis+//+static VECTORMATH_FORCE_INLINE const Vector4 zAxis( );++// Construct w axis+//+static VECTORMATH_FORCE_INLINE const Vector4 wAxis( );++};++// Multiply a 4-D vector by a scalar+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( float scalar, const Vector4 &vec );++// Multiply a 4-D vector by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( const floatInVec &scalar, const Vector4 &vec );++// Multiply two 4-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector4 mulPerElem( const Vector4 &vec0, const Vector4 &vec1 );++// Divide two 4-D vectors per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+VECTORMATH_FORCE_INLINE const Vector4 divPerElem( const Vector4 &vec0, const Vector4 &vec1 );++// Compute the reciprocal of a 4-D vector per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+VECTORMATH_FORCE_INLINE const Vector4 recipPerElem( const Vector4 &vec );++// Compute the absolute value of a 4-D vector per element+//+VECTORMATH_FORCE_INLINE const Vector4 absPerElem( const Vector4 &vec );++// Copy sign from one 4-D vector to another, per element+//+VECTORMATH_FORCE_INLINE const Vector4 copySignPerElem( const Vector4 &vec0, const Vector4 &vec1 );++// Maximum of two 4-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector4 maxPerElem( const Vector4 &vec0, const Vector4 &vec1 );++// Minimum of two 4-D vectors per element+//+VECTORMATH_FORCE_INLINE const Vector4 minPerElem( const Vector4 &vec0, const Vector4 &vec1 );++// Maximum element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Vector4 &vec );++// Minimum element of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec minElem( const Vector4 &vec );++// Compute the sum of all elements of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec sum( const Vector4 &vec );++// Compute the dot product of two 4-D vectors+//+VECTORMATH_FORCE_INLINE const floatInVec dot( const Vector4 &vec0, const Vector4 &vec1 );++// Compute the square of the length of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec lengthSqr( const Vector4 &vec );++// Compute the length of a 4-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec length( const Vector4 &vec );++// Normalize a 4-D vector+// NOTE:+// The result is unpredictable when all elements of vec are at or near zero.+//+VECTORMATH_FORCE_INLINE const Vector4 normalize( const Vector4 &vec );++// Outer product of two 4-D vectors+//+VECTORMATH_FORCE_INLINE const Matrix4 outer( const Vector4 &vec0, const Vector4 &vec1 );++// Linear interpolation between two 4-D vectors+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector4 lerp( float t, const Vector4 &vec0, const Vector4 &vec1 );++// Linear interpolation between two 4-D vectors (scalar data contained in vector data type)+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector4 lerp( const floatInVec &t, const Vector4 &vec0, const Vector4 &vec1 );++// Spherical linear interpolation between two 4-D vectors+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector4 slerp( float t, const Vector4 &unitVec0, const Vector4 &unitVec1 );++// Spherical linear interpolation between two 4-D vectors (scalar data contained in vector data type)+// NOTE:+// The result is unpredictable if the vectors point in opposite directions.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Vector4 slerp( const floatInVec &t, const Vector4 &unitVec0, const Vector4 &unitVec1 );++// Conditionally select between two 4-D vectors+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, bool select1 );++// Conditionally select between two 4-D vectors (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Vector4 select( const Vector4 &vec0, const Vector4 &vec1, const boolInVec &select1 );++// Store four 4-D vectors as half-floats+//+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Vector4 &vec0, const Vector4 &vec1, const Vector4 &vec2, const Vector4 &vec3, vec_ushort8 * twoQuads );++#ifdef _VECTORMATH_DEBUG++// Print a 4-D vector+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Vector4 &vec );++// Print a 4-D vector and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Vector4 &vec, const char * name );++#endif++// A 3-D point in array-of-structures format+//+class Point3+{ private:+__m128 mVec128;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Point3( ) { };++// Construct a 3-D point from x, y, and z elements+//+VECTORMATH_FORCE_INLINE Point3( float x, float y, float z );++// Construct a 3-D point from x, y, and z elements (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Point3( const floatInVec &x, const floatInVec &y, const floatInVec &z );++// Copy elements from a 3-D vector into a 3-D point+//+explicit VECTORMATH_FORCE_INLINE Point3( const Vector3 &vec );++// Set all elements of a 3-D point to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Point3( float scalar );++// Set all elements of a 3-D point to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Point3( const floatInVec &scalar );++// Set vector float data in a 3-D point+//+explicit VECTORMATH_FORCE_INLINE Point3( __m128 vf4 );++// Get vector float data from a 3-D point+//+VECTORMATH_FORCE_INLINE __m128 get128( ) const;++// Assign one 3-D point to another+//+VECTORMATH_FORCE_INLINE Point3 & operator =( const Point3 &pnt );++// Set the x element of a 3-D point+//+VECTORMATH_FORCE_INLINE Point3 & setX( float x );++// Set the y element of a 3-D point+//+VECTORMATH_FORCE_INLINE Point3 & setY( float y );++// Set the z element of a 3-D point+//+VECTORMATH_FORCE_INLINE Point3 & setZ( float z );++// Set the x element of a 3-D point (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Point3 & setX( const floatInVec &x );++// Set the y element of a 3-D point (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Point3 & setY( const floatInVec &y );++// Set the z element of a 3-D point (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Point3 & setZ( const floatInVec &z );++// Get the x element of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;++// Get the y element of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;++// Get the z element of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;++// Set an x, y, or z element of a 3-D point by index+//+VECTORMATH_FORCE_INLINE Point3 & setElem( int idx, float value );++// Set an x, y, or z element of a 3-D point by index (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Point3 & setElem( int idx, const floatInVec &value );++// Get an x, y, or z element of a 3-D point by index+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;++// Subscripting operator to set or get an element+//+VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );++// Subscripting operator to get an element+//+VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;++// Subtract a 3-D point from another 3-D point+//+VECTORMATH_FORCE_INLINE const Vector3 operator -( const Point3 &pnt ) const;++// Add a 3-D point to a 3-D vector+//+VECTORMATH_FORCE_INLINE const Point3 operator +( const Vector3 &vec ) const;++// Subtract a 3-D vector from a 3-D point+//+VECTORMATH_FORCE_INLINE const Point3 operator -( const Vector3 &vec ) const;++// Perform compound assignment and addition with a 3-D vector+//+VECTORMATH_FORCE_INLINE Point3 & operator +=( const Vector3 &vec );++// Perform compound assignment and subtraction by a 3-D vector+//+VECTORMATH_FORCE_INLINE Point3 & operator -=( const Vector3 &vec );++};++// Multiply two 3-D points per element+//+VECTORMATH_FORCE_INLINE const Point3 mulPerElem( const Point3 &pnt0, const Point3 &pnt1 );++// Divide two 3-D points per element+// NOTE:+// Floating-point behavior matches standard library function divf4.+//+VECTORMATH_FORCE_INLINE const Point3 divPerElem( const Point3 &pnt0, const Point3 &pnt1 );++// Compute the reciprocal of a 3-D point per element+// NOTE:+// Floating-point behavior matches standard library function recipf4.+//+VECTORMATH_FORCE_INLINE const Point3 recipPerElem( const Point3 &pnt );++// Compute the absolute value of a 3-D point per element+//+VECTORMATH_FORCE_INLINE const Point3 absPerElem( const Point3 &pnt );++// Copy sign from one 3-D point to another, per element+//+VECTORMATH_FORCE_INLINE const Point3 copySignPerElem( const Point3 &pnt0, const Point3 &pnt1 );++// Maximum of two 3-D points per element+//+VECTORMATH_FORCE_INLINE const Point3 maxPerElem( const Point3 &pnt0, const Point3 &pnt1 );++// Minimum of two 3-D points per element+//+VECTORMATH_FORCE_INLINE const Point3 minPerElem( const Point3 &pnt0, const Point3 &pnt1 );++// Maximum element of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec maxElem( const Point3 &pnt );++// Minimum element of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec minElem( const Point3 &pnt );++// Compute the sum of all elements of a 3-D point+//+VECTORMATH_FORCE_INLINE const floatInVec sum( const Point3 &pnt );++// Apply uniform scale to a 3-D point+//+VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, float scaleVal );++// Apply uniform scale to a 3-D point (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const floatInVec &scaleVal );++// Apply non-uniform scale to a 3-D point+//+VECTORMATH_FORCE_INLINE const Point3 scale( const Point3 &pnt, const Vector3 &scaleVec );++// Scalar projection of a 3-D point on a unit-length 3-D vector+//+VECTORMATH_FORCE_INLINE const floatInVec projection( const Point3 &pnt, const Vector3 &unitVec );++// Compute the square of the distance of a 3-D point from the coordinate-system origin+//+VECTORMATH_FORCE_INLINE const floatInVec distSqrFromOrigin( const Point3 &pnt );++// Compute the distance of a 3-D point from the coordinate-system origin+//+VECTORMATH_FORCE_INLINE const floatInVec distFromOrigin( const Point3 &pnt );++// Compute the square of the distance between two 3-D points+//+VECTORMATH_FORCE_INLINE const floatInVec distSqr( const Point3 &pnt0, const Point3 &pnt1 );++// Compute the distance between two 3-D points+//+VECTORMATH_FORCE_INLINE const floatInVec dist( const Point3 &pnt0, const Point3 &pnt1 );++// Linear interpolation between two 3-D points+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Point3 lerp( float t, const Point3 &pnt0, const Point3 &pnt1 );++// Linear interpolation between two 3-D points (scalar data contained in vector data type)+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Point3 lerp( const floatInVec &t, const Point3 &pnt0, const Point3 &pnt1 );++// Conditionally select between two 3-D points+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, bool select1 );++// Conditionally select between two 3-D points (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Point3 select( const Point3 &pnt0, const Point3 &pnt1, const boolInVec &select1 );++// Store x, y, and z elements of 3-D point in first three words of a quadword, preserving fourth word+//+VECTORMATH_FORCE_INLINE void storeXYZ( const Point3 &pnt, __m128 * quad );++// Load four three-float 3-D points, stored in three quadwords+//+VECTORMATH_FORCE_INLINE void loadXYZArray( Point3 & pnt0, Point3 & pnt1, Point3 & pnt2, Point3 & pnt3, const __m128 * threeQuads );++// Store four 3-D points in three quadwords+//+VECTORMATH_FORCE_INLINE void storeXYZArray( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, __m128 * threeQuads );++// Store eight 3-D points as half-floats+//+VECTORMATH_FORCE_INLINE void storeHalfFloats( const Point3 &pnt0, const Point3 &pnt1, const Point3 &pnt2, const Point3 &pnt3, const Point3 &pnt4, const Point3 &pnt5, const Point3 &pnt6, const Point3 &pnt7, vec_ushort8 * threeQuads );++#ifdef _VECTORMATH_DEBUG++// Print a 3-D point+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Point3 &pnt );++// Print a 3-D point and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Point3 &pnt, const char * name );++#endif++// A quaternion in array-of-structures format+//+class Quat+{ private:+__m128 mVec128;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Quat( ) { };++VECTORMATH_FORCE_INLINE Quat(const Quat& quat);++// Construct a quaternion from x, y, z, and w elements+//+VECTORMATH_FORCE_INLINE Quat( float x, float y, float z, float w );++// Construct a quaternion from x, y, z, and w elements (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat( const floatInVec &x, const floatInVec &y, const floatInVec &z, const floatInVec &w );++// Construct a quaternion from a 3-D vector and a scalar+//+VECTORMATH_FORCE_INLINE Quat( const Vector3 &xyz, float w );++// Construct a quaternion from a 3-D vector and a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat( const Vector3 &xyz, const floatInVec &w );++// Copy elements from a 4-D vector into a quaternion+//+explicit VECTORMATH_FORCE_INLINE Quat( const Vector4 &vec );++// Convert a rotation matrix to a unit-length quaternion+//+explicit VECTORMATH_FORCE_INLINE Quat( const Matrix3 & rotMat );++// Set all elements of a quaternion to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Quat( float scalar );++// Set all elements of a quaternion to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Quat( const floatInVec &scalar );++// Set vector float data in a quaternion+//+explicit VECTORMATH_FORCE_INLINE Quat( __m128 vf4 );++// Get vector float data from a quaternion+//+VECTORMATH_FORCE_INLINE __m128 get128( ) const;++// Set a quaterion from vector float data+//+VECTORMATH_FORCE_INLINE void set128(vec_float4 vec);++// Assign one quaternion to another+//+VECTORMATH_FORCE_INLINE Quat & operator =( const Quat &quat );++// Set the x, y, and z elements of a quaternion+// NOTE:+// This function does not change the w element.+//+VECTORMATH_FORCE_INLINE Quat & setXYZ( const Vector3 &vec );++// Get the x, y, and z elements of a quaternion+//+VECTORMATH_FORCE_INLINE const Vector3 getXYZ( ) const;++// Set the x element of a quaternion+//+VECTORMATH_FORCE_INLINE Quat & setX( float x );++// Set the y element of a quaternion+//+VECTORMATH_FORCE_INLINE Quat & setY( float y );++// Set the z element of a quaternion+//+VECTORMATH_FORCE_INLINE Quat & setZ( float z );++// Set the w element of a quaternion+//+VECTORMATH_FORCE_INLINE Quat & setW( float w );++// Set the x element of a quaternion (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & setX( const floatInVec &x );++// Set the y element of a quaternion (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & setY( const floatInVec &y );++// Set the z element of a quaternion (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & setZ( const floatInVec &z );++// Set the w element of a quaternion (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & setW( const floatInVec &w );++// Get the x element of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec getX( ) const;++// Get the y element of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec getY( ) const;++// Get the z element of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec getZ( ) const;++// Get the w element of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec getW( ) const;++// Set an x, y, z, or w element of a quaternion by index+//+VECTORMATH_FORCE_INLINE Quat & setElem( int idx, float value );++// Set an x, y, z, or w element of a quaternion by index (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & setElem( int idx, const floatInVec &value );++// Get an x, y, z, or w element of a quaternion by index+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int idx ) const;++// Subscripting operator to set or get an element+//+VECTORMATH_FORCE_INLINE VecIdx operator []( int idx );++// Subscripting operator to get an element+//+VECTORMATH_FORCE_INLINE const floatInVec operator []( int idx ) const;++// Add two quaternions+//+VECTORMATH_FORCE_INLINE const Quat operator +( const Quat &quat ) const;++// Subtract a quaternion from another quaternion+//+VECTORMATH_FORCE_INLINE const Quat operator -( const Quat &quat ) const;++// Multiply two quaternions+//+VECTORMATH_FORCE_INLINE const Quat operator *( const Quat &quat ) const;++// Multiply a quaternion by a scalar+//+VECTORMATH_FORCE_INLINE const Quat operator *( float scalar ) const;++// Divide a quaternion by a scalar+//+VECTORMATH_FORCE_INLINE const Quat operator /( float scalar ) const;++// Multiply a quaternion by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar ) const;++// Divide a quaternion by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Quat operator /( const floatInVec &scalar ) const;++// Perform compound assignment and addition with a quaternion+//+VECTORMATH_FORCE_INLINE Quat & operator +=( const Quat &quat );++// Perform compound assignment and subtraction by a quaternion+//+VECTORMATH_FORCE_INLINE Quat & operator -=( const Quat &quat );++// Perform compound assignment and multiplication by a quaternion+//+VECTORMATH_FORCE_INLINE Quat & operator *=( const Quat &quat );++// Perform compound assignment and multiplication by a scalar+//+VECTORMATH_FORCE_INLINE Quat & operator *=( float scalar );++// Perform compound assignment and division by a scalar+//+VECTORMATH_FORCE_INLINE Quat & operator /=( float scalar );++// Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & operator *=( const floatInVec &scalar );++// Perform compound assignment and division by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Quat & operator /=( const floatInVec &scalar );++// Negate all elements of a quaternion+//+VECTORMATH_FORCE_INLINE const Quat operator -( ) const;++// Construct an identity quaternion+//+static VECTORMATH_FORCE_INLINE const Quat identity( );++// Construct a quaternion to rotate between two unit-length 3-D vectors+// NOTE:+// The result is unpredictable if unitVec0 and unitVec1 point in opposite directions.+//+static VECTORMATH_FORCE_INLINE const Quat rotation( const Vector3 &unitVec0, const Vector3 &unitVec1 );++// Construct a quaternion to rotate around a unit-length 3-D vector+//+static VECTORMATH_FORCE_INLINE const Quat rotation( float radians, const Vector3 &unitVec );++// Construct a quaternion to rotate around a unit-length 3-D vector (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Quat rotation( const floatInVec &radians, const Vector3 &unitVec );++// Construct a quaternion to rotate around the x axis+//+static VECTORMATH_FORCE_INLINE const Quat rotationX( float radians );++// Construct a quaternion to rotate around the y axis+//+static VECTORMATH_FORCE_INLINE const Quat rotationY( float radians );++// Construct a quaternion to rotate around the z axis+//+static VECTORMATH_FORCE_INLINE const Quat rotationZ( float radians );++// Construct a quaternion to rotate around the x axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Quat rotationX( const floatInVec &radians );++// Construct a quaternion to rotate around the y axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Quat rotationY( const floatInVec &radians );++// Construct a quaternion to rotate around the z axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Quat rotationZ( const floatInVec &radians );++};++// Multiply a quaternion by a scalar+//+VECTORMATH_FORCE_INLINE const Quat operator *( float scalar, const Quat &quat );++// Multiply a quaternion by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Quat operator *( const floatInVec &scalar, const Quat &quat );++// Compute the conjugate of a quaternion+//+VECTORMATH_FORCE_INLINE const Quat conj( const Quat &quat );++// Use a unit-length quaternion to rotate a 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 rotate( const Quat &unitQuat, const Vector3 &vec );++// Compute the dot product of two quaternions+//+VECTORMATH_FORCE_INLINE const floatInVec dot( const Quat &quat0, const Quat &quat1 );++// Compute the norm of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec norm( const Quat &quat );++// Compute the length of a quaternion+//+VECTORMATH_FORCE_INLINE const floatInVec length( const Quat &quat );++// Normalize a quaternion+// NOTE:+// The result is unpredictable when all elements of quat are at or near zero.+//+VECTORMATH_FORCE_INLINE const Quat normalize( const Quat &quat );++// Linear interpolation between two quaternions+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Quat lerp( float t, const Quat &quat0, const Quat &quat1 );++// Linear interpolation between two quaternions (scalar data contained in vector data type)+// NOTE:+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Quat lerp( const floatInVec &t, const Quat &quat0, const Quat &quat1 );++// Spherical linear interpolation between two quaternions+// NOTE:+// Interpolates along the shortest path between orientations.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Quat slerp( float t, const Quat &unitQuat0, const Quat &unitQuat1 );++// Spherical linear interpolation between two quaternions (scalar data contained in vector data type)+// NOTE:+// Interpolates along the shortest path between orientations.+// Does not clamp t between 0 and 1.+//+VECTORMATH_FORCE_INLINE const Quat slerp( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1 );++// Spherical quadrangle interpolation+//+VECTORMATH_FORCE_INLINE const Quat squad( float t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 );++// Spherical quadrangle interpolation (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Quat squad( const floatInVec &t, const Quat &unitQuat0, const Quat &unitQuat1, const Quat &unitQuat2, const Quat &unitQuat3 );++// Conditionally select between two quaternions+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, bool select1 );++// Conditionally select between two quaternions (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Quat select( const Quat &quat0, const Quat &quat1, const boolInVec &select1 );++#ifdef _VECTORMATH_DEBUG++// Print a quaternion+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Quat &quat );++// Print a quaternion and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Quat &quat, const char * name );++#endif++// A 3x3 matrix in array-of-structures format+//+class Matrix3+{ private:+Vector3 mCol0;+Vector3 mCol1;+Vector3 mCol2;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Matrix3( ) { };++// Copy a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3( const Matrix3 & mat );++// Construct a 3x3 matrix containing the specified columns+//+VECTORMATH_FORCE_INLINE Matrix3( const Vector3 &col0, const Vector3 &col1, const Vector3 &col2 );++// Construct a 3x3 rotation matrix from a unit-length quaternion+//+explicit VECTORMATH_FORCE_INLINE Matrix3( const Quat &unitQuat );++// Set all elements of a 3x3 matrix to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Matrix3( float scalar );++// Set all elements of a 3x3 matrix to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Matrix3( const floatInVec &scalar );++// Assign one 3x3 matrix to another+//+VECTORMATH_FORCE_INLINE Matrix3 & operator =( const Matrix3 & mat );++// Set column 0 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & setCol0( const Vector3 &col0 );++// Set column 1 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & setCol1( const Vector3 &col1 );++// Set column 2 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & setCol2( const Vector3 &col2 );++// Get column 0 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol0( ) const;++// Get column 1 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol1( ) const;++// Get column 2 of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol2( ) const;++// Set the column of a 3x3 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Matrix3 & setCol( int col, const Vector3 &vec );++// Set the row of a 3x3 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Matrix3 & setRow( int row, const Vector3 &vec );++// Get the column of a 3x3 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector3 getCol( int col ) const;++// Get the row of a 3x3 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector3 getRow( int row ) const;++// Subscripting operator to set or get a column+//+VECTORMATH_FORCE_INLINE Vector3 & operator []( int col );++// Subscripting operator to get a column+//+VECTORMATH_FORCE_INLINE const Vector3 operator []( int col ) const;++// Set the element of a 3x3 matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE Matrix3 & setElem( int col, int row, float val );++// Set the element of a 3x3 matrix referred to by column and row indices (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Matrix3 & setElem( int col, int row, const floatInVec &val );++// Get the element of a 3x3 matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;++// Add two 3x3 matrices+//+VECTORMATH_FORCE_INLINE const Matrix3 operator +( const Matrix3 & mat ) const;++// Subtract a 3x3 matrix from another 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Matrix3 operator -( const Matrix3 & mat ) const;++// Negate all elements of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Matrix3 operator -( ) const;++// Multiply a 3x3 matrix by a scalar+//+VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar ) const;++// Multiply a 3x3 matrix by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar ) const;++// Multiply a 3x3 matrix by a 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( const Vector3 &vec ) const;++// Multiply two 3x3 matrices+//+VECTORMATH_FORCE_INLINE const Matrix3 operator *( const Matrix3 & mat ) const;++// Perform compound assignment and addition with a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & operator +=( const Matrix3 & mat );++// Perform compound assignment and subtraction by a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & operator -=( const Matrix3 & mat );++// Perform compound assignment and multiplication by a scalar+//+VECTORMATH_FORCE_INLINE Matrix3 & operator *=( float scalar );++// Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Matrix3 & operator *=( const floatInVec &scalar );++// Perform compound assignment and multiplication by a 3x3 matrix+//+VECTORMATH_FORCE_INLINE Matrix3 & operator *=( const Matrix3 & mat );++// Construct an identity 3x3 matrix+//+static VECTORMATH_FORCE_INLINE const Matrix3 identity( );++// Construct a 3x3 matrix to rotate around the x axis+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationX( float radians );++// Construct a 3x3 matrix to rotate around the y axis+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationY( float radians );++// Construct a 3x3 matrix to rotate around the z axis+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationZ( float radians );++// Construct a 3x3 matrix to rotate around the x axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationX( const floatInVec &radians );++// Construct a 3x3 matrix to rotate around the y axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationY( const floatInVec &radians );++// Construct a 3x3 matrix to rotate around the z axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationZ( const floatInVec &radians );++// Construct a 3x3 matrix to rotate around the x, y, and z axes+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotationZYX( const Vector3 &radiansXYZ );++// Construct a 3x3 matrix to rotate around a unit-length 3-D vector+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotation( float radians, const Vector3 &unitVec );++// Construct a 3x3 matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotation( const floatInVec &radians, const Vector3 &unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static VECTORMATH_FORCE_INLINE const Matrix3 rotation( const Quat &unitQuat );++// Construct a 3x3 matrix to perform scaling+//+static VECTORMATH_FORCE_INLINE const Matrix3 scale( const Vector3 &scaleVec );++};+// Multiply a 3x3 matrix by a scalar+//+VECTORMATH_FORCE_INLINE const Matrix3 operator *( float scalar, const Matrix3 & mat );++// Multiply a 3x3 matrix by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Matrix3 operator *( const floatInVec &scalar, const Matrix3 & mat );++// Append (post-multiply) a scale transformation to a 3x3 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Matrix3 appendScale( const Matrix3 & mat, const Vector3 &scaleVec );++// Prepend (pre-multiply) a scale transformation to a 3x3 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Matrix3 prependScale( const Vector3 &scaleVec, const Matrix3 & mat );++// Multiply two 3x3 matrices per element+//+VECTORMATH_FORCE_INLINE const Matrix3 mulPerElem( const Matrix3 & mat0, const Matrix3 & mat1 );++// Compute the absolute value of a 3x3 matrix per element+//+VECTORMATH_FORCE_INLINE const Matrix3 absPerElem( const Matrix3 & mat );++// Transpose of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const Matrix3 transpose( const Matrix3 & mat );++// Compute the inverse of a 3x3 matrix+// NOTE:+// Result is unpredictable when the determinant of mat is equal to or near 0.+//+VECTORMATH_FORCE_INLINE const Matrix3 inverse( const Matrix3 & mat );++// Determinant of a 3x3 matrix+//+VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix3 & mat );++// Conditionally select between two 3x3 matrices+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, bool select1 );++// Conditionally select between two 3x3 matrices (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Matrix3 select( const Matrix3 & mat0, const Matrix3 & mat1, const boolInVec &select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 3x3 matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat );++// Print a 3x3 matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Matrix3 & mat, const char * name );++#endif++// A 4x4 matrix in array-of-structures format+//+class Matrix4+{ private:+Vector4 mCol0;+Vector4 mCol1;+Vector4 mCol2;+Vector4 mCol3;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Matrix4( ) { };++// Copy a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4( const Matrix4 & mat );++// Construct a 4x4 matrix containing the specified columns+//+VECTORMATH_FORCE_INLINE Matrix4( const Vector4 &col0, const Vector4 &col1, const Vector4 &col2, const Vector4 &col3 );++// Construct a 4x4 matrix from a 3x4 transformation matrix+//+explicit VECTORMATH_FORCE_INLINE Matrix4( const Transform3 & mat );++// Construct a 4x4 matrix from a 3x3 matrix and a 3-D vector+//+VECTORMATH_FORCE_INLINE Matrix4( const Matrix3 & mat, const Vector3 &translateVec );++// Construct a 4x4 matrix from a unit-length quaternion and a 3-D vector+//+VECTORMATH_FORCE_INLINE Matrix4( const Quat &unitQuat, const Vector3 &translateVec );++// Set all elements of a 4x4 matrix to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Matrix4( float scalar );++// Set all elements of a 4x4 matrix to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Matrix4( const floatInVec &scalar );++// Assign one 4x4 matrix to another+//+VECTORMATH_FORCE_INLINE Matrix4 & operator =( const Matrix4 & mat );++// Set the upper-left 3x3 submatrix+// NOTE:+// This function does not change the bottom row elements.+//+VECTORMATH_FORCE_INLINE Matrix4 & setUpper3x3( const Matrix3 & mat3 );++// Get the upper-left 3x3 submatrix of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Matrix3 getUpper3x3( ) const;++// Set translation component+// NOTE:+// This function does not change the bottom row elements.+//+VECTORMATH_FORCE_INLINE Matrix4 & setTranslation( const Vector3 &translateVec );++// Get the translation component of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getTranslation( ) const;++// Set column 0 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & setCol0( const Vector4 &col0 );++// Set column 1 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & setCol1( const Vector4 &col1 );++// Set column 2 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & setCol2( const Vector4 &col2 );++// Set column 3 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & setCol3( const Vector4 &col3 );++// Get column 0 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Vector4 getCol0( ) const;++// Get column 1 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Vector4 getCol1( ) const;++// Get column 2 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Vector4 getCol2( ) const;++// Get column 3 of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Vector4 getCol3( ) const;++// Set the column of a 4x4 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Matrix4 & setCol( int col, const Vector4 &vec );++// Set the row of a 4x4 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Matrix4 & setRow( int row, const Vector4 &vec );++// Get the column of a 4x4 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector4 getCol( int col ) const;++// Get the row of a 4x4 matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector4 getRow( int row ) const;++// Subscripting operator to set or get a column+//+VECTORMATH_FORCE_INLINE Vector4 & operator []( int col );++// Subscripting operator to get a column+//+VECTORMATH_FORCE_INLINE const Vector4 operator []( int col ) const;++// Set the element of a 4x4 matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE Matrix4 & setElem( int col, int row, float val );++// Set the element of a 4x4 matrix referred to by column and row indices (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Matrix4 & setElem( int col, int row, const floatInVec &val );++// Get the element of a 4x4 matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;++// Add two 4x4 matrices+//+VECTORMATH_FORCE_INLINE const Matrix4 operator +( const Matrix4 & mat ) const;++// Subtract a 4x4 matrix from another 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Matrix4 operator -( const Matrix4 & mat ) const;++// Negate all elements of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Matrix4 operator -( ) const;++// Multiply a 4x4 matrix by a scalar+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar ) const;++// Multiply a 4x4 matrix by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar ) const;++// Multiply a 4x4 matrix by a 4-D vector+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( const Vector4 &vec ) const;++// Multiply a 4x4 matrix by a 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( const Vector3 &vec ) const;++// Multiply a 4x4 matrix by a 3-D point+//+VECTORMATH_FORCE_INLINE const Vector4 operator *( const Point3 &pnt ) const;++// Multiply two 4x4 matrices+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( const Matrix4 & mat ) const;++// Multiply a 4x4 matrix by a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( const Transform3 & tfrm ) const;++// Perform compound assignment and addition with a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & operator +=( const Matrix4 & mat );++// Perform compound assignment and subtraction by a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & operator -=( const Matrix4 & mat );++// Perform compound assignment and multiplication by a scalar+//+VECTORMATH_FORCE_INLINE Matrix4 & operator *=( float scalar );++// Perform compound assignment and multiplication by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const floatInVec &scalar );++// Perform compound assignment and multiplication by a 4x4 matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const Matrix4 & mat );++// Perform compound assignment and multiplication by a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Matrix4 & operator *=( const Transform3 & tfrm );++// Construct an identity 4x4 matrix+//+static VECTORMATH_FORCE_INLINE const Matrix4 identity( );++// Construct a 4x4 matrix to rotate around the x axis+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationX( float radians );++// Construct a 4x4 matrix to rotate around the y axis+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationY( float radians );++// Construct a 4x4 matrix to rotate around the z axis+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationZ( float radians );++// Construct a 4x4 matrix to rotate around the x axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationX( const floatInVec &radians );++// Construct a 4x4 matrix to rotate around the y axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationY( const floatInVec &radians );++// Construct a 4x4 matrix to rotate around the z axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationZ( const floatInVec &radians );++// Construct a 4x4 matrix to rotate around the x, y, and z axes+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotationZYX( const Vector3 &radiansXYZ );++// Construct a 4x4 matrix to rotate around a unit-length 3-D vector+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotation( float radians, const Vector3 &unitVec );++// Construct a 4x4 matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotation( const floatInVec &radians, const Vector3 &unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static VECTORMATH_FORCE_INLINE const Matrix4 rotation( const Quat &unitQuat );++// Construct a 4x4 matrix to perform scaling+//+static VECTORMATH_FORCE_INLINE const Matrix4 scale( const Vector3 &scaleVec );++// Construct a 4x4 matrix to perform translation+//+static VECTORMATH_FORCE_INLINE const Matrix4 translation( const Vector3 &translateVec );++// Construct viewing matrix based on eye, position looked at, and up direction+//+static VECTORMATH_FORCE_INLINE const Matrix4 lookAt( const Point3 &eyePos, const Point3 &lookAtPos, const Vector3 &upVec );++// Construct a perspective projection matrix+//+static VECTORMATH_FORCE_INLINE const Matrix4 perspective( float fovyRadians, float aspect, float zNear, float zFar );++// Construct a perspective projection matrix based on frustum+//+static VECTORMATH_FORCE_INLINE const Matrix4 frustum( float left, float right, float bottom, float top, float zNear, float zFar );++// Construct an orthographic projection matrix+//+static VECTORMATH_FORCE_INLINE const Matrix4 orthographic( float left, float right, float bottom, float top, float zNear, float zFar );++};+// Multiply a 4x4 matrix by a scalar+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( float scalar, const Matrix4 & mat );++// Multiply a 4x4 matrix by a scalar (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE const Matrix4 operator *( const floatInVec &scalar, const Matrix4 & mat );++// Append (post-multiply) a scale transformation to a 4x4 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Matrix4 appendScale( const Matrix4 & mat, const Vector3 &scaleVec );++// Prepend (pre-multiply) a scale transformation to a 4x4 matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Matrix4 prependScale( const Vector3 &scaleVec, const Matrix4 & mat );++// Multiply two 4x4 matrices per element+//+VECTORMATH_FORCE_INLINE const Matrix4 mulPerElem( const Matrix4 & mat0, const Matrix4 & mat1 );++// Compute the absolute value of a 4x4 matrix per element+//+VECTORMATH_FORCE_INLINE const Matrix4 absPerElem( const Matrix4 & mat );++// Transpose of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const Matrix4 transpose( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix+// NOTE:+// Result is unpredictable when the determinant of mat is equal to or near 0.+//+VECTORMATH_FORCE_INLINE const Matrix4 inverse( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions. The result is unpredictable when the determinant of mat is equal to or near 0.+//+VECTORMATH_FORCE_INLINE const Matrix4 affineInverse( const Matrix4 & mat );++// Compute the inverse of a 4x4 matrix, which is expected to be an affine matrix with an orthogonal upper-left 3x3 submatrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 4x4 matrix meets the given restrictions.+//+VECTORMATH_FORCE_INLINE const Matrix4 orthoInverse( const Matrix4 & mat );++// Determinant of a 4x4 matrix+//+VECTORMATH_FORCE_INLINE const floatInVec determinant( const Matrix4 & mat );++// Conditionally select between two 4x4 matrices+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, bool select1 );++// Conditionally select between two 4x4 matrices (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Matrix4 select( const Matrix4 & mat0, const Matrix4 & mat1, const boolInVec &select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 4x4 matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat );++// Print a 4x4 matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Matrix4 & mat, const char * name );++#endif++// A 3x4 transformation matrix in array-of-structures format+//+class Transform3+{ private:+Vector3 mCol0;+Vector3 mCol1;+Vector3 mCol2;+Vector3 mCol3;++public:+// Default constructor; does no initialization+//+VECTORMATH_FORCE_INLINE Transform3( ) { };++// Copy a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3( const Transform3 & tfrm );++// Construct a 3x4 transformation matrix containing the specified columns+//+VECTORMATH_FORCE_INLINE Transform3( const Vector3 &col0, const Vector3 &col1, const Vector3 &col2, const Vector3 &col3 );++// Construct a 3x4 transformation matrix from a 3x3 matrix and a 3-D vector+//+VECTORMATH_FORCE_INLINE Transform3( const Matrix3 & tfrm, const Vector3 &translateVec );++// Construct a 3x4 transformation matrix from a unit-length quaternion and a 3-D vector+//+VECTORMATH_FORCE_INLINE Transform3( const Quat &unitQuat, const Vector3 &translateVec );++// Set all elements of a 3x4 transformation matrix to the same scalar value+//+explicit VECTORMATH_FORCE_INLINE Transform3( float scalar );++// Set all elements of a 3x4 transformation matrix to the same scalar value (scalar data contained in vector data type)+//+explicit VECTORMATH_FORCE_INLINE Transform3( const floatInVec &scalar );++// Assign one 3x4 transformation matrix to another+//+VECTORMATH_FORCE_INLINE Transform3 & operator =( const Transform3 & tfrm );++// Set the upper-left 3x3 submatrix+//+VECTORMATH_FORCE_INLINE Transform3 & setUpper3x3( const Matrix3 & mat3 );++// Get the upper-left 3x3 submatrix of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Matrix3 getUpper3x3( ) const;++// Set translation component+//+VECTORMATH_FORCE_INLINE Transform3 & setTranslation( const Vector3 &translateVec );++// Get the translation component of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getTranslation( ) const;++// Set column 0 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3 & setCol0( const Vector3 &col0 );++// Set column 1 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3 & setCol1( const Vector3 &col1 );++// Set column 2 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3 & setCol2( const Vector3 &col2 );++// Set column 3 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3 & setCol3( const Vector3 &col3 );++// Get column 0 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol0( ) const;++// Get column 1 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol1( ) const;++// Get column 2 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol2( ) const;++// Get column 3 of a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE const Vector3 getCol3( ) const;++// Set the column of a 3x4 transformation matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Transform3 & setCol( int col, const Vector3 &vec );++// Set the row of a 3x4 transformation matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE Transform3 & setRow( int row, const Vector4 &vec );++// Get the column of a 3x4 transformation matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector3 getCol( int col ) const;++// Get the row of a 3x4 transformation matrix referred to by the specified index+//+VECTORMATH_FORCE_INLINE const Vector4 getRow( int row ) const;++// Subscripting operator to set or get a column+//+VECTORMATH_FORCE_INLINE Vector3 & operator []( int col );++// Subscripting operator to get a column+//+VECTORMATH_FORCE_INLINE const Vector3 operator []( int col ) const;++// Set the element of a 3x4 transformation matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE Transform3 & setElem( int col, int row, float val );++// Set the element of a 3x4 transformation matrix referred to by column and row indices (scalar data contained in vector data type)+//+VECTORMATH_FORCE_INLINE Transform3 & setElem( int col, int row, const floatInVec &val );++// Get the element of a 3x4 transformation matrix referred to by column and row indices+//+VECTORMATH_FORCE_INLINE const floatInVec getElem( int col, int row ) const;++// Multiply a 3x4 transformation matrix by a 3-D vector+//+VECTORMATH_FORCE_INLINE const Vector3 operator *( const Vector3 &vec ) const;++// Multiply a 3x4 transformation matrix by a 3-D point+//+VECTORMATH_FORCE_INLINE const Point3 operator *( const Point3 &pnt ) const;++// Multiply two 3x4 transformation matrices+//+VECTORMATH_FORCE_INLINE const Transform3 operator *( const Transform3 & tfrm ) const;++// Perform compound assignment and multiplication by a 3x4 transformation matrix+//+VECTORMATH_FORCE_INLINE Transform3 & operator *=( const Transform3 & tfrm );++// Construct an identity 3x4 transformation matrix+//+static VECTORMATH_FORCE_INLINE const Transform3 identity( );++// Construct a 3x4 transformation matrix to rotate around the x axis+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationX( float radians );++// Construct a 3x4 transformation matrix to rotate around the y axis+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationY( float radians );++// Construct a 3x4 transformation matrix to rotate around the z axis+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationZ( float radians );++// Construct a 3x4 transformation matrix to rotate around the x axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationX( const floatInVec &radians );++// Construct a 3x4 transformation matrix to rotate around the y axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationY( const floatInVec &radians );++// Construct a 3x4 transformation matrix to rotate around the z axis (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationZ( const floatInVec &radians );++// Construct a 3x4 transformation matrix to rotate around the x, y, and z axes+//+static VECTORMATH_FORCE_INLINE const Transform3 rotationZYX( const Vector3 &radiansXYZ );++// Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector+//+static VECTORMATH_FORCE_INLINE const Transform3 rotation( float radians, const Vector3 &unitVec );++// Construct a 3x4 transformation matrix to rotate around a unit-length 3-D vector (scalar data contained in vector data type)+//+static VECTORMATH_FORCE_INLINE const Transform3 rotation( const floatInVec &radians, const Vector3 &unitVec );++// Construct a rotation matrix from a unit-length quaternion+//+static VECTORMATH_FORCE_INLINE const Transform3 rotation( const Quat &unitQuat );++// Construct a 3x4 transformation matrix to perform scaling+//+static VECTORMATH_FORCE_INLINE const Transform3 scale( const Vector3 &scaleVec );++// Construct a 3x4 transformation matrix to perform translation+//+static VECTORMATH_FORCE_INLINE const Transform3 translation( const Vector3 &translateVec );++};+// Append (post-multiply) a scale transformation to a 3x4 transformation matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Transform3 appendScale( const Transform3 & tfrm, const Vector3 &scaleVec );++// Prepend (pre-multiply) a scale transformation to a 3x4 transformation matrix+// NOTE:+// Faster than creating and multiplying a scale transformation matrix.+//+VECTORMATH_FORCE_INLINE const Transform3 prependScale( const Vector3 &scaleVec, const Transform3 & tfrm );++// Multiply two 3x4 transformation matrices per element+//+VECTORMATH_FORCE_INLINE const Transform3 mulPerElem( const Transform3 & tfrm0, const Transform3 & tfrm1 );++// Compute the absolute value of a 3x4 transformation matrix per element+//+VECTORMATH_FORCE_INLINE const Transform3 absPerElem( const Transform3 & tfrm );++// Inverse of a 3x4 transformation matrix+// NOTE:+// Result is unpredictable when the determinant of the left 3x3 submatrix is equal to or near 0.+//+VECTORMATH_FORCE_INLINE const Transform3 inverse( const Transform3 & tfrm );++// Compute the inverse of a 3x4 transformation matrix, expected to have an orthogonal upper-left 3x3 submatrix+// NOTE:+// This can be used to achieve better performance than a general inverse when the specified 3x4 transformation matrix meets the given restrictions.+//+VECTORMATH_FORCE_INLINE const Transform3 orthoInverse( const Transform3 & tfrm );++// Conditionally select between two 3x4 transformation matrices+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+// However, the transfer of select1 to a VMX register may use more processing time than a branch.+// Use the boolInVec version for better performance.+//+VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, bool select1 );++// Conditionally select between two 3x4 transformation matrices (scalar data contained in vector data type)+// NOTE:+// This function uses a conditional select instruction to avoid a branch.+//+VECTORMATH_FORCE_INLINE const Transform3 select( const Transform3 & tfrm0, const Transform3 & tfrm1, const boolInVec &select1 );++#ifdef _VECTORMATH_DEBUG++// Print a 3x4 transformation matrix+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm );++// Print a 3x4 transformation matrix and an associated string identifier+// NOTE:+// Function is only defined when _VECTORMATH_DEBUG is defined.+//+VECTORMATH_FORCE_INLINE void print( const Transform3 & tfrm, const char * name );++#endif++} // namespace Aos+} // namespace Vectormath++#include "vec_aos.h"+#include "quat_aos.h"+#include "mat_aos.h"++#endif
bullet/vectormath/vmInclude.h view
@@ -1,27 +1,27 @@-
-#ifndef __VM_INCLUDE_H
-#define __VM_INCLUDE_H
-
-#include "LinearMath/btScalar.h"
-
-#if defined (USE_SYSTEM_VECTORMATH) || defined (__CELLOS_LV2__)
-	#include <vectormath_aos.h>
-#else //(USE_SYSTEM_VECTORMATH)
-	#if defined (BT_USE_SSE) && defined (_WIN32)
-		#include "sse/vectormath_aos.h"
-	#else //all other platforms
-		#include "scalar/vectormath_aos.h"
-	#endif //(BT_USE_SSE) && defined (_WIN32)
-#endif //(USE_SYSTEM_VECTORMATH)
-
-
-
-typedef Vectormath::Aos::Vector3    vmVector3;
-typedef Vectormath::Aos::Quat       vmQuat;
-typedef Vectormath::Aos::Matrix3    vmMatrix3;
-typedef Vectormath::Aos::Transform3 vmTransform3;
-typedef Vectormath::Aos::Point3     vmPoint3;
-
-#endif //__VM_INCLUDE_H
-
-
++#ifndef __VM_INCLUDE_H+#define __VM_INCLUDE_H++#include "LinearMath/btScalar.h"++#if defined (USE_SYSTEM_VECTORMATH) || defined (__CELLOS_LV2__)+#include <vectormath_aos.h>+#else //(USE_SYSTEM_VECTORMATH)+#if defined (BT_USE_SSE) && defined (_WIN32)+#include "sse/vectormath_aos.h"+#else //all other platforms+#include "scalar/vectormath_aos.h"+#endif //(BT_USE_SSE) && defined (_WIN32)+#endif //(USE_SYSTEM_VECTORMATH)++++typedef Vectormath::Aos::Vector3 vmVector3;+typedef Vectormath::Aos::Quat vmQuat;+typedef Vectormath::Aos::Matrix3 vmMatrix3;+typedef Vectormath::Aos::Transform3 vmTransform3;+typedef Vectormath::Aos::Point3 vmPoint3;++#endif //__VM_INCLUDE_H++
cbits/Bullet.cpp view

file too large to diff

cbits/Bullet.h view
@@ -65,4274 +65,9885 @@ typedef void* O_btAABB; typedef void* O_btActionInterface; typedef void* O_btActivatingCollisionAlgorithm;-typedef void* O_btAngularLimit;-typedef void* O_btAxisSweep3;-typedef void* O_btBU_Simplex1to4;-typedef void* O_btBlock;-typedef void* O_btBoxShape;-typedef void* O_btBroadphaseAabbCallback;-typedef void* O_btBroadphaseInterface;-typedef void* O_btBroadphasePair;-typedef void* O_btBroadphasePairSortPredicate;-typedef void* O_btBroadphaseProxy;-typedef void* O_btBroadphaseRayCallback;-typedef void* O_btBvhSubtreeInfo;-typedef void* O_btBvhSubtreeInfoData;-typedef void* O_btBvhTree;-typedef void* O_btBvhTriangleMeshShape;-typedef void* O_btCapsuleShape;-typedef void* O_btCapsuleShapeData;-typedef void* O_btCapsuleShapeX;-typedef void* O_btCapsuleShapeZ;-typedef void* O_btCharIndexTripletData;-typedef void* O_btChunk;-typedef void* O_btClock;-typedef void* O_btCollisionAlgorithm;-typedef void* O_btCollisionAlgorithmConstructionInfo;-typedef void* O_btCollisionAlgorithmCreateFunc;-typedef void* O_btCollisionConfiguration;-typedef void* O_btCollisionDispatcher;-typedef void* O_btCollisionObject;-typedef void* O_btCollisionObjectDoubleData;-typedef void* O_btCollisionObjectFloatData;-typedef void* O_btCollisionShape;-typedef void* O_btCollisionShapeData;-typedef void* O_btCollisionWorld;-typedef void* O_btCompoundShape;-typedef void* O_btCompoundShapeChild;-typedef void* O_btCompoundShapeChildData;-typedef void* O_btCompoundShapeData;-typedef void* O_btConcaveShape;-typedef void* O_btConeShape;-typedef void* O_btConeShapeX;-typedef void* O_btConeShapeZ;-typedef void* O_btConeTwistConstraint;-typedef void* O_btConeTwistConstraintData;-typedef void* O_btTypedConstraint_btConstraintInfo1;-typedef void* O_btTypedConstraint_btConstraintInfo2;-typedef void* O_btConstraintRow;-typedef void* O_btConstraintSetting;-typedef void* O_btConstraintSolver;-typedef void* O_btContactConstraint;-typedef void* O_btContactSolverInfo;-typedef void* O_btContactSolverInfoData;-typedef void* O_btContinuousDynamicsWorld;-typedef void* O_btConvexConvexAlgorithm;-typedef void* O_btConvexHullShape;-typedef void* O_btConvexHullShapeData;-typedef void* O_btConvexInternalAabbCachingShape;-typedef void* O_btConvexInternalShape;-typedef void* O_btConvexInternalShapeData;-typedef void* O_btConvexSeparatingDistanceUtil;-typedef void* O_btConvexShape;-typedef void* O_btConvexTriangleMeshShape;-typedef void* O_btCylinderShape;-typedef void* O_btCylinderShapeData;-typedef void* O_btCylinderShapeX;-typedef void* O_btCylinderShapeZ;-typedef void* O_btDbvt;-typedef void* O_btDbvtAabbMm;-typedef void* O_btDbvtBroadphase;-typedef void* O_btDbvtNode;-typedef void* O_btDbvtProxy;-typedef void* O_btDefaultCollisionConfiguration;-typedef void* O_btDefaultCollisionConstructionInfo;-typedef void* O_btDefaultMotionState;-typedef void* O_btDefaultSerializer;-typedef void* O_btDefaultVehicleRaycaster;-typedef void* O_btDiscreteCollisionDetectorInterface;-typedef void* O_btDiscreteDynamicsWorld;-typedef void* O_btDispatcher;-typedef void* O_btDispatcherInfo;-typedef void* O_btDynamicsWorld;-typedef void* O_btEmptyShape;-typedef void* O_btGImpactBvh;-typedef void* O_btGImpactCollisionAlgorithm;-typedef void* O_btGImpactCompoundShape;-typedef void* O_btGImpactMeshShape;-typedef void* O_btGImpactMeshShapeData;-typedef void* O_btGImpactMeshShapePart;-typedef void* O_btGImpactQuantizedBvh;-typedef void* O_btGImpactShapeInterface;-typedef void* O_btGLDebugDrawer;-typedef void* O_btGeneric6DofConstraint;-typedef void* O_btGeneric6DofConstraintData;-typedef void* O_btGeneric6DofSpringConstraint;-typedef void* O_btGeneric6DofSpringConstraintData;-typedef void* O_btGeometryUtil;-typedef void* O_btGjkEpaSolver2;-typedef void* O_btGjkPairDetector;-typedef void* O_btHashInt;-typedef void* O_btHashPtr;-typedef void* O_btHashString;-typedef void* O_btHashedOverlappingPairCache;-typedef void* O_btHinge2Constraint;-typedef void* O_btHingeConstraint;-typedef void* O_btHingeConstraintDoubleData;-typedef void* O_btHingeConstraintFloatData;-typedef void* O_btIDebugDraw;-typedef void* O_btIndexedMesh;-typedef void* O_btIntIndexData;-typedef void* O_btInternalTriangleIndexCallback;-typedef void* O_btJacobianEntry;-typedef void* O_btManifoldPoint;-typedef void* O_btManifoldResult;-typedef void* O_btMatrix3x3DoubleData;-typedef void* O_btMatrix3x3FloatData;-typedef void* O_btMeshPartData;-typedef void* O_btMotionState;-typedef void* O_btMultiSapBroadphase;-typedef void* O_btMultiSapBroadphase_btMultiSapProxy;-typedef void* O_btMultiSphereShape;-typedef void* O_btMultiSphereShapeData;-typedef void* O_btNodeOverlapCallback;-typedef void* O_btNullPairCache;-typedef void* O_btOptimizedBvh;-typedef void* O_btOptimizedBvhNode;-typedef void* O_btOptimizedBvhNodeDoubleData;-typedef void* O_btOptimizedBvhNodeFloatData;-typedef void* O_btOverlapCallback;-typedef void* O_btOverlapFilterCallback;-typedef void* O_btOverlappingPairCache;-typedef void* O_btOverlappingPairCallback;-typedef void* O_btPairSet;-typedef void* O_btPersistentManifold;-typedef void* O_btPoint2PointConstraint;-typedef void* O_btPoint2PointConstraintDoubleData;-typedef void* O_btPoint2PointConstraintFloatData;-typedef void* O_btPointerUid;-typedef void* O_btPolyhedralConvexAabbCachingShape;-typedef void* O_btPolyhedralConvexShape;-typedef void* O_btPositionAndRadius;-typedef void* O_btPrimitiveManagerBase;-typedef void* O_btPrimitiveTriangle;-typedef void* O_btQuadWord;-typedef void* O_btQuantizedBvh;-typedef void* O_btQuantizedBvhDoubleData;-typedef void* O_btQuantizedBvhFloatData;-typedef void* O_btQuantizedBvhNode;-typedef void* O_btQuantizedBvhNodeData;-typedef void* O_btQuantizedBvhTree;-typedef void* O_btRaycastVehicle;-typedef void* O_btRigidBody;-typedef void* O_btRigidBody_btRigidBodyConstructionInfo;-typedef void* O_btRigidBodyDoubleData;-typedef void* O_btRigidBodyFloatData;-typedef void* O_btRotationalLimitMotor;-typedef void* O_btScaledBvhTriangleMeshShape;-typedef void* O_btScaledTriangleMeshShapeData;-typedef void* O_btSequentialImpulseConstraintSolver;-typedef void* O_btSerializer;-typedef void* O_btShortIntIndexData;-typedef void* O_btShortIntIndexTripletData;-typedef void* O_btSimpleBroadphase;-typedef void* O_btSimpleBroadphaseProxy;-typedef void* O_btSimpleDynamicsWorld;-typedef void* O_btSliderConstraint;-typedef void* O_btSliderConstraintData;-typedef void* O_btSoftBody;-typedef void* O_btSoftBodyHelpers;-typedef void* O_btSoftBodyRigidBodyCollisionConfiguration;-typedef void* O_btSoftBodyWorldInfo;-typedef void* O_btSoftRigidDynamicsWorld;-typedef void* O_btSolverBodyObsolete;-typedef void* O_btSolverConstraint;-typedef void* O_btSortedOverlappingPairCache;-typedef void* O_btSphereShape;-typedef void* O_btSphereSphereCollisionAlgorithm;-typedef void* O_btStackAlloc;-typedef void* O_btStaticPlaneShape;-typedef void* O_btStaticPlaneShapeData;-typedef void* O_btStorageResult;-typedef void* O_btStridingMeshInterface;-typedef void* O_btStridingMeshInterfaceData;-typedef void* O_btSubSimplexClosestResult;-typedef void* O_btTetrahedronShapeEx;-typedef void* O_btTransformDoubleData;-typedef void* O_btTransformFloatData;-typedef void* O_btTransformUtil;-typedef void* O_btTranslationalLimitMotor;-typedef void* O_btTriangleCallback;-typedef void* O_btTriangleIndexVertexArray;-typedef void* O_btTriangleInfo;-typedef void* O_btTriangleInfoData;-typedef void* O_btTriangleInfoMap;-typedef void* O_btTriangleInfoMapData;-typedef void* O_btTriangleMesh;-typedef void* O_btTriangleMeshShape;-typedef void* O_btTriangleMeshShapeData;-typedef void* O_btTriangleShape;-typedef void* O_btTriangleShapeEx;-typedef void* O_btTypedConstraint;-typedef void* O_btTypedConstraintData;-typedef void* O_btTypedObject;-typedef void* O_btUniformScalingShape;-typedef void* O_btUniversalConstraint;-typedef void* O_btUsageBitfield;-typedef void* O_btVector3DoubleData;-typedef void* O_btVector3FloatData;-typedef void* O_btVehicleRaycaster;-typedef void* O_btVehicleRaycaster_btVehicleRaycasterResult;-typedef void* O_btRaycastVehicle_btVehicleTuning;-typedef void* O_btVoronoiSimplexSolver;-typedef void* O_btWheelInfo;-typedef void* O_btWheelInfoConstructionInfo;-typedef void* O_btSoftBody_eAeroModel;-typedef void* O_btSoftBody_eFeature;-typedef void* O_btSoftBody_ePSolver;-typedef void* O_btSoftBody_eSolverPresets;-typedef void* O_btSoftBody_Joint_eType;-typedef void* O_btSoftBody_eVSolver;-typedef void* O_btSoftBody_fCollision;-typedef void* O_fDrawFlags;-typedef void* O_btSoftBody_fMaterial;-typedef void* O_btSoftBody_sCti;-typedef void* O_btSoftBody_sMedium;-typedef void* O_btSoftBody_sRayCast;-typedef void* O_btGjkEpaSolver2_sResults;-typedef void* O_btDbvt_sStkCLN;-typedef void* O_btDbvt_sStkNN;-typedef void* O_btDbvt_sStkNP;-typedef void* O_btDbvt_sStkNPS;-void* btGLDebugDrawer_new(); //constructor: btGLDebugDrawer  ( ::btGLDebugDrawer::* )(  ) -void btGLDebugDrawer_free(void *c); void btGLDebugDrawer_draw3dText(void *c,float* p0,char const * p1); //method: draw3dText void ( ::btGLDebugDrawer::* )( ::btVector3 const &,char const * ) -void btGLDebugDrawer_drawTriangle(void *c,float* p0,float* p1,float* p2,float* p3,float p4); //method: drawTriangle void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btGLDebugDrawer_drawBox(void *c,float* p0,float* p1,float* p2,float p3); //method: drawBox void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btGLDebugDrawer_drawContactPoint(void *c,float* p0,float* p1,float p2,int p3,float* p4); //method: drawContactPoint void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btScalar,int,::btVector3 const & ) -void btGLDebugDrawer_drawLine(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btGLDebugDrawer_drawLine0(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btGLDebugDrawer_drawLine1(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btGLDebugDrawer_reportErrorWarning(void *c,char const * p0); //method: reportErrorWarning void ( ::btGLDebugDrawer::* )( char const * ) -int btGLDebugDrawer_getDebugMode(void *c); //method: getDebugMode int ( ::btGLDebugDrawer::* )(  ) const-void btGLDebugDrawer_setDebugMode(void *c,int p0); //method: setDebugMode void ( ::btGLDebugDrawer::* )( int ) -void btGLDebugDrawer_drawSphere(void *c,float* p0,float p1,float* p2); //method: drawSphere void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btScalar,::btVector3 const & ) -void* btSoftBody_AJoint_new(); //constructor: AJoint  ( ::btSoftBody::AJoint::* )(  ) -void btSoftBody_AJoint_free(void *c); void btSoftBody_AJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::AJoint::* )( ::btScalar ) -//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::AJoint::* )(  ) const-void btSoftBody_AJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::AJoint::* )( ::btScalar,::btScalar ) -void btSoftBody_AJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::AJoint::* )( ::btScalar,int ) -// attribute not supported: //attribute: ::btVector3[2] btSoftBody_AJoint->m_axis-void btSoftBody_AJoint_m_icontrol_set(void *c,void* a); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint->m_icontrol-// attribute getter not supported: //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint->m_icontrol-void* btSoftBody_Anchor_new(); //constructor: Anchor  ( ::btSoftBody::Anchor::* )(  ) -void btSoftBody_Anchor_free(void *c); void btSoftBody_Anchor_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_Anchor->m_node-// attribute getter not supported: //attribute: ::btSoftBody::Node * btSoftBody_Anchor->m_node-void btSoftBody_Anchor_m_local_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Anchor->m_local-void btSoftBody_Anchor_m_local_get(void *c,float* a);-void btSoftBody_Anchor_m_body_set(void *c,void* a); //attribute: ::btRigidBody * btSoftBody_Anchor->m_body-// attribute getter not supported: //attribute: ::btRigidBody * btSoftBody_Anchor->m_body-void btSoftBody_Anchor_m_influence_set(void *c,float a); //attribute: ::btScalar btSoftBody_Anchor->m_influence-float btSoftBody_Anchor_m_influence_get(void *c); //attribute: ::btScalar btSoftBody_Anchor->m_influence-void btSoftBody_Anchor_m_c0_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Anchor->m_c0-void btSoftBody_Anchor_m_c0_get(void *c,float* a);-void btSoftBody_Anchor_m_c1_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Anchor->m_c1-void btSoftBody_Anchor_m_c1_get(void *c,float* a);-void btSoftBody_Anchor_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Anchor->m_c2-float btSoftBody_Anchor_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Anchor->m_c2-void* btSoftBody_Body_new0(); //constructor: Body  ( ::btSoftBody::Body::* )(  ) -void* btSoftBody_Body_new1(void* p0); //constructor: Body  ( ::btSoftBody::Body::* )( ::btSoftBody::Cluster * ) -void* btSoftBody_Body_new2(void* p0); //constructor: Body  ( ::btSoftBody::Body::* )( ::btCollisionObject * ) -void btSoftBody_Body_free(void *c); void btSoftBody_Body_invWorldInertia(void *c,float* ret); //method: invWorldInertia ::btMatrix3x3 const & ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_activate(void *c); //method: activate void ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_linearVelocity(void *c,float* ret); //method: linearVelocity ::btVector3 ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_applyVImpulse(void *c,float* p0,float* p1); //method: applyVImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const &,::btVector3 const & ) const-void btSoftBody_Body_applyDImpulse(void *c,float* p0,float* p1); //method: applyDImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const &,::btVector3 const & ) const-void btSoftBody_Body_applyDCImpulse(void *c,float* p0); //method: applyDCImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-void btSoftBody_Body_applyAImpulse(void *c,void* p0); //method: applyAImpulse void ( ::btSoftBody::Body::* )( ::btSoftBody::Impulse const & ) const-void btSoftBody_Body_angularVelocity(void *c,float* p0,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-void btSoftBody_Body_angularVelocity0(void *c,float* p0,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-void btSoftBody_Body_angularVelocity1(void *c,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_applyVAImpulse(void *c,float* p0); //method: applyVAImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-void btSoftBody_Body_applyImpulse(void *c,void* p0,float* p1); //method: applyImpulse void ( ::btSoftBody::Body::* )( ::btSoftBody::Impulse const &,::btVector3 const & ) const-void btSoftBody_Body_applyDAImpulse(void *c,float* p0); //method: applyDAImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-void btSoftBody_Body_velocity(void *c,float* p0,float* ret); //method: velocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const-float btSoftBody_Body_invMass(void *c); //method: invMass ::btScalar ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_xform(void *c,float* ret); //method: xform ::btTransform const & ( ::btSoftBody::Body::* )(  ) const-void btSoftBody_Body_m_soft_set(void *c,void* a); //attribute: ::btSoftBody::Cluster * btSoftBody_Body->m_soft-// attribute getter not supported: //attribute: ::btSoftBody::Cluster * btSoftBody_Body->m_soft-void btSoftBody_Body_m_rigid_set(void *c,void* a); //attribute: ::btRigidBody * btSoftBody_Body->m_rigid-// attribute getter not supported: //attribute: ::btRigidBody * btSoftBody_Body->m_rigid-void btSoftBody_Body_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btSoftBody_Body->m_collisionObject-// attribute getter not supported: //attribute: ::btCollisionObject * btSoftBody_Body->m_collisionObject-void* btSoftBody_CJoint_new(); //constructor: CJoint  ( ::btSoftBody::CJoint::* )(  ) -void btSoftBody_CJoint_free(void *c); void btSoftBody_CJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::CJoint::* )( ::btScalar ) -//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::CJoint::* )(  ) const-void btSoftBody_CJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::CJoint::* )( ::btScalar,::btScalar ) -void btSoftBody_CJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::CJoint::* )( ::btScalar,int ) -void btSoftBody_CJoint_m_life_set(void *c,int a); //attribute: int btSoftBody_CJoint->m_life-int btSoftBody_CJoint_m_life_get(void *c); //attribute: int btSoftBody_CJoint->m_life-void btSoftBody_CJoint_m_maxlife_set(void *c,int a); //attribute: int btSoftBody_CJoint->m_maxlife-int btSoftBody_CJoint_m_maxlife_get(void *c); //attribute: int btSoftBody_CJoint->m_maxlife-// attribute not supported: //attribute: ::btVector3[2] btSoftBody_CJoint->m_rpos-void btSoftBody_CJoint_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_CJoint->m_normal-void btSoftBody_CJoint_m_normal_get(void *c,float* a);-void btSoftBody_CJoint_m_friction_set(void *c,float a); //attribute: ::btScalar btSoftBody_CJoint->m_friction-float btSoftBody_CJoint_m_friction_get(void *c); //attribute: ::btScalar btSoftBody_CJoint->m_friction-void* btSoftBody_Cluster_new(); //constructor: Cluster  ( ::btSoftBody::Cluster::* )(  ) -void btSoftBody_Cluster_free(void *c); void btSoftBody_Cluster_m_adamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_adamping-float btSoftBody_Cluster_m_adamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_adamping-void btSoftBody_Cluster_m_av_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_av-void btSoftBody_Cluster_m_av_get(void *c,float* a);-void btSoftBody_Cluster_m_clusterIndex_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_clusterIndex-int btSoftBody_Cluster_m_clusterIndex_get(void *c); //attribute: int btSoftBody_Cluster->m_clusterIndex-void btSoftBody_Cluster_m_collide_set(void *c,int a); //attribute: bool btSoftBody_Cluster->m_collide-int btSoftBody_Cluster_m_collide_get(void *c); //attribute: bool btSoftBody_Cluster->m_collide-void btSoftBody_Cluster_m_com_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_com-void btSoftBody_Cluster_m_com_get(void *c,float* a);-void btSoftBody_Cluster_m_containsAnchor_set(void *c,int a); //attribute: bool btSoftBody_Cluster->m_containsAnchor-int btSoftBody_Cluster_m_containsAnchor_get(void *c); //attribute: bool btSoftBody_Cluster->m_containsAnchor-// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Cluster->m_dimpulses-// attribute not supported: //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Cluster->m_framerefs-void btSoftBody_Cluster_m_framexform_set(void *c,float* a); //attribute: ::btTransform btSoftBody_Cluster->m_framexform-void btSoftBody_Cluster_m_framexform_get(void *c,float* a);-void btSoftBody_Cluster_m_idmass_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_idmass-float btSoftBody_Cluster_m_idmass_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_idmass-void btSoftBody_Cluster_m_imass_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_imass-float btSoftBody_Cluster_m_imass_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_imass-void btSoftBody_Cluster_m_invwi_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Cluster->m_invwi-void btSoftBody_Cluster_m_invwi_get(void *c,float* a);-void btSoftBody_Cluster_m_ldamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_ldamping-float btSoftBody_Cluster_m_ldamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_ldamping-void btSoftBody_Cluster_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Cluster->m_leaf-// attribute getter not supported: //attribute: ::btDbvtNode * btSoftBody_Cluster->m_leaf-void btSoftBody_Cluster_m_locii_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Cluster->m_locii-void btSoftBody_Cluster_m_locii_get(void *c,float* a);-void btSoftBody_Cluster_m_lv_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_lv-void btSoftBody_Cluster_m_lv_get(void *c,float* a);-// attribute not supported: //attribute: ::btAlignedObjectArray<float> btSoftBody_Cluster->m_masses-void btSoftBody_Cluster_m_matching_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_matching-float btSoftBody_Cluster_m_matching_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_matching-void btSoftBody_Cluster_m_maxSelfCollisionImpulse_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_maxSelfCollisionImpulse-float btSoftBody_Cluster_m_maxSelfCollisionImpulse_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_maxSelfCollisionImpulse-void btSoftBody_Cluster_m_ndamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_ndamping-float btSoftBody_Cluster_m_ndamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_ndamping-void btSoftBody_Cluster_m_ndimpulses_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_ndimpulses-int btSoftBody_Cluster_m_ndimpulses_get(void *c); //attribute: int btSoftBody_Cluster->m_ndimpulses-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Node*> btSoftBody_Cluster->m_nodes-void btSoftBody_Cluster_m_nvimpulses_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_nvimpulses-int btSoftBody_Cluster_m_nvimpulses_get(void *c); //attribute: int btSoftBody_Cluster->m_nvimpulses-void btSoftBody_Cluster_m_selfCollisionImpulseFactor_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_selfCollisionImpulseFactor-float btSoftBody_Cluster_m_selfCollisionImpulseFactor_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_selfCollisionImpulseFactor-// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Cluster->m_vimpulses-void* btSoftBody_Config_new(); //constructor: Config  ( ::btSoftBody::Config::* )(  ) -void btSoftBody_Config_free(void *c); // attribute not supported: //attribute: ::btSoftBody::eAeroModel::_ btSoftBody_Config->aeromodel-void btSoftBody_Config_kVCF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kVCF-float btSoftBody_Config_kVCF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kVCF-void btSoftBody_Config_kDP_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDP-float btSoftBody_Config_kDP_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDP-void btSoftBody_Config_kDG_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDG-float btSoftBody_Config_kDG_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDG-void btSoftBody_Config_kLF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kLF-float btSoftBody_Config_kLF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kLF-void btSoftBody_Config_kPR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kPR-float btSoftBody_Config_kPR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kPR-void btSoftBody_Config_kVC_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kVC-float btSoftBody_Config_kVC_get(void *c); //attribute: ::btScalar btSoftBody_Config->kVC-void btSoftBody_Config_kDF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDF-float btSoftBody_Config_kDF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDF-void btSoftBody_Config_kMT_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kMT-float btSoftBody_Config_kMT_get(void *c); //attribute: ::btScalar btSoftBody_Config->kMT-void btSoftBody_Config_kCHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kCHR-float btSoftBody_Config_kCHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kCHR-void btSoftBody_Config_kKHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kKHR-float btSoftBody_Config_kKHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kKHR-void btSoftBody_Config_kSHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSHR-float btSoftBody_Config_kSHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSHR-void btSoftBody_Config_kAHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kAHR-float btSoftBody_Config_kAHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kAHR-void btSoftBody_Config_kSRHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSRHR_CL-float btSoftBody_Config_kSRHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSRHR_CL-void btSoftBody_Config_kSKHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSKHR_CL-float btSoftBody_Config_kSKHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSKHR_CL-void btSoftBody_Config_kSSHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSSHR_CL-float btSoftBody_Config_kSSHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSSHR_CL-void btSoftBody_Config_kSR_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSR_SPLT_CL-float btSoftBody_Config_kSR_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSR_SPLT_CL-void btSoftBody_Config_kSK_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSK_SPLT_CL-float btSoftBody_Config_kSK_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSK_SPLT_CL-void btSoftBody_Config_kSS_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSS_SPLT_CL-float btSoftBody_Config_kSS_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSS_SPLT_CL-void btSoftBody_Config_maxvolume_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->maxvolume-float btSoftBody_Config_maxvolume_get(void *c); //attribute: ::btScalar btSoftBody_Config->maxvolume-void btSoftBody_Config_timescale_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->timescale-float btSoftBody_Config_timescale_get(void *c); //attribute: ::btScalar btSoftBody_Config->timescale-void btSoftBody_Config_viterations_set(void *c,int a); //attribute: int btSoftBody_Config->viterations-int btSoftBody_Config_viterations_get(void *c); //attribute: int btSoftBody_Config->viterations-void btSoftBody_Config_piterations_set(void *c,int a); //attribute: int btSoftBody_Config->piterations-int btSoftBody_Config_piterations_get(void *c); //attribute: int btSoftBody_Config->piterations-void btSoftBody_Config_diterations_set(void *c,int a); //attribute: int btSoftBody_Config->diterations-int btSoftBody_Config_diterations_get(void *c); //attribute: int btSoftBody_Config->diterations-void btSoftBody_Config_citerations_set(void *c,int a); //attribute: int btSoftBody_Config->citerations-int btSoftBody_Config_citerations_get(void *c); //attribute: int btSoftBody_Config->citerations-void btSoftBody_Config_collisions_set(void *c,int a); //attribute: int btSoftBody_Config->collisions-int btSoftBody_Config_collisions_get(void *c); //attribute: int btSoftBody_Config->collisions-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::eVSolver::_> btSoftBody_Config->m_vsequence-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_psequence-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_dsequence-void* btSoftBody_Element_new(); //constructor: Element  ( ::btSoftBody::Element::* )(  ) -void btSoftBody_Element_free(void *c); // attribute not supported: //attribute: void * btSoftBody_Element->m_tag-void* btSoftBody_Face_new(); //constructor: Face  ( ::btSoftBody::Face::* )(  ) -void btSoftBody_Face_free(void *c); // attribute not supported: //attribute: ::btSoftBody::Node *[3] btSoftBody_Face->m_n-void btSoftBody_Face_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Face->m_normal-void btSoftBody_Face_m_normal_get(void *c,float* a);-void btSoftBody_Face_m_ra_set(void *c,float a); //attribute: ::btScalar btSoftBody_Face->m_ra-float btSoftBody_Face_m_ra_get(void *c); //attribute: ::btScalar btSoftBody_Face->m_ra-void btSoftBody_Face_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Face->m_leaf-// attribute getter not supported: //attribute: ::btDbvtNode * btSoftBody_Face->m_leaf-void* btSoftBody_Feature_new(); //constructor: Feature  ( ::btSoftBody::Feature::* )(  ) -void btSoftBody_Feature_free(void *c); void btSoftBody_Feature_m_material_set(void *c,void* a); //attribute: ::btSoftBody::Material * btSoftBody_Feature->m_material-// attribute getter not supported: //attribute: ::btSoftBody::Material * btSoftBody_Feature->m_material-void* btSoftBody_AJoint_IControl_new(); //constructor: IControl  ( ::btSoftBody::AJoint::IControl::* )(  ) -void btSoftBody_AJoint_IControl_free(void *c); void* btSoftBody_AJoint_IControl_Default(); //method: Default ::btSoftBody::AJoint::IControl * (*)(  )-float btSoftBody_AJoint_IControl_Speed(void *c,void* p0,float p1); //method: Speed ::btScalar ( ::btSoftBody::AJoint::IControl::* )( ::btSoftBody::AJoint *,::btScalar ) -void btSoftBody_AJoint_IControl_Prepare(void *c,void* p0); //method: Prepare void ( ::btSoftBody::AJoint::IControl::* )( ::btSoftBody::AJoint * ) -float btSoftBody_ImplicitFn_Eval(void *c,float* p0); //method: Eval ::btScalar ( ::btSoftBody::ImplicitFn::* )( ::btVector3 const & ) -void* btSoftBody_Impulse_new(); //constructor: Impulse  ( ::btSoftBody::Impulse::* )(  ) -void btSoftBody_Impulse_free(void *c); void btSoftBody_Impulse_m_asDrift_set(void *c,int a); //attribute: int btSoftBody_Impulse->m_asDrift-int btSoftBody_Impulse_m_asDrift_get(void *c); //attribute: int btSoftBody_Impulse->m_asDrift-void btSoftBody_Impulse_m_asVelocity_set(void *c,int a); //attribute: int btSoftBody_Impulse->m_asVelocity-int btSoftBody_Impulse_m_asVelocity_get(void *c); //attribute: int btSoftBody_Impulse->m_asVelocity-void btSoftBody_Impulse_m_drift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Impulse->m_drift-void btSoftBody_Impulse_m_drift_get(void *c,float* a);-void btSoftBody_Impulse_m_velocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Impulse->m_velocity-void btSoftBody_Impulse_m_velocity_get(void *c,float* a);-void btSoftBody_Joint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::Joint::* )( ::btScalar ) -//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::Joint::* )(  ) const-void btSoftBody_Joint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::Joint::* )( ::btScalar,::btScalar ) -void btSoftBody_Joint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::Joint::* )( ::btScalar,int ) -// attribute not supported: //attribute: ::btSoftBody::Body[2] btSoftBody_Joint->m_bodies-// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Joint->m_refs-void btSoftBody_Joint_m_cfm_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_cfm-float btSoftBody_Joint_m_cfm_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_cfm-void btSoftBody_Joint_m_erp_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_erp-float btSoftBody_Joint_m_erp_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_erp-void btSoftBody_Joint_m_split_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_split-float btSoftBody_Joint_m_split_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_split-void btSoftBody_Joint_m_drift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Joint->m_drift-void btSoftBody_Joint_m_drift_get(void *c,float* a);-void btSoftBody_Joint_m_sdrift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Joint->m_sdrift-void btSoftBody_Joint_m_sdrift_get(void *c,float* a);-void btSoftBody_Joint_m_massmatrix_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Joint->m_massmatrix-void btSoftBody_Joint_m_massmatrix_get(void *c,float* a);-void btSoftBody_Joint_m_delete_set(void *c,int a); //attribute: bool btSoftBody_Joint->m_delete-int btSoftBody_Joint_m_delete_get(void *c); //attribute: bool btSoftBody_Joint->m_delete-void* btSoftBody_LJoint_new(); //constructor: LJoint  ( ::btSoftBody::LJoint::* )(  ) -void btSoftBody_LJoint_free(void *c); void btSoftBody_LJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::LJoint::* )( ::btScalar ) -//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::LJoint::* )(  ) const-void btSoftBody_LJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::LJoint::* )( ::btScalar,::btScalar ) -void btSoftBody_LJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::LJoint::* )( ::btScalar,int ) -// attribute not supported: //attribute: ::btVector3[2] btSoftBody_LJoint->m_rpos-void* btSoftBody_Link_new(); //constructor: Link  ( ::btSoftBody::Link::* )(  ) -void btSoftBody_Link_free(void *c); // attribute not supported: //attribute: ::btSoftBody::Node *[2] btSoftBody_Link->m_n-void btSoftBody_Link_m_rl_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_rl-float btSoftBody_Link_m_rl_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_rl-void btSoftBody_Link_m_bbending_set(void *c,int a); //attribute: int btSoftBody_Link->m_bbending-int btSoftBody_Link_m_bbending_get(void *c); //attribute: int btSoftBody_Link->m_bbending-void btSoftBody_Link_m_c0_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c0-float btSoftBody_Link_m_c0_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c0-void btSoftBody_Link_m_c1_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c1-float btSoftBody_Link_m_c1_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c1-void btSoftBody_Link_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c2-float btSoftBody_Link_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c2-void btSoftBody_Link_m_c3_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Link->m_c3-void btSoftBody_Link_m_c3_get(void *c,float* a);-void* btSoftBody_Material_new(); //constructor: Material  ( ::btSoftBody::Material::* )(  ) -void btSoftBody_Material_free(void *c); void btSoftBody_Material_m_flags_set(void *c,int a); //attribute: int btSoftBody_Material->m_flags-int btSoftBody_Material_m_flags_get(void *c); //attribute: int btSoftBody_Material->m_flags-void btSoftBody_Material_m_kAST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kAST-float btSoftBody_Material_m_kAST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kAST-void btSoftBody_Material_m_kLST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kLST-float btSoftBody_Material_m_kLST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kLST-void btSoftBody_Material_m_kVST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kVST-float btSoftBody_Material_m_kVST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kVST-void* btSoftBody_Node_new(); //constructor: Node  ( ::btSoftBody::Node::* )(  ) -void btSoftBody_Node_free(void *c); void btSoftBody_Node_m_area_set(void *c,float a); //attribute: ::btScalar btSoftBody_Node->m_area-float btSoftBody_Node_m_area_get(void *c); //attribute: ::btScalar btSoftBody_Node->m_area-void btSoftBody_Node_m_battach_set(void *c,int a); //attribute: int btSoftBody_Node->m_battach-int btSoftBody_Node_m_battach_get(void *c); //attribute: int btSoftBody_Node->m_battach-void btSoftBody_Node_m_f_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_f-void btSoftBody_Node_m_f_get(void *c,float* a);-void btSoftBody_Node_m_im_set(void *c,float a); //attribute: ::btScalar btSoftBody_Node->m_im-float btSoftBody_Node_m_im_get(void *c); //attribute: ::btScalar btSoftBody_Node->m_im-void btSoftBody_Node_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Node->m_leaf-// attribute getter not supported: //attribute: ::btDbvtNode * btSoftBody_Node->m_leaf-void btSoftBody_Node_m_n_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_n-void btSoftBody_Node_m_n_get(void *c,float* a);-void btSoftBody_Node_m_q_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_q-void btSoftBody_Node_m_q_get(void *c,float* a);-void btSoftBody_Node_m_v_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_v-void btSoftBody_Node_m_v_get(void *c,float* a);-void btSoftBody_Node_m_x_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_x-void btSoftBody_Node_m_x_get(void *c,float* a);-void* btSoftBody_Note_new(); //constructor: Note  ( ::btSoftBody::Note::* )(  ) -void btSoftBody_Note_free(void *c); void btSoftBody_Note_m_text_set(void *c,char const * a); //attribute: char const * btSoftBody_Note->m_text-char const * btSoftBody_Note_m_text_get(void *c); //attribute: char const * btSoftBody_Note->m_text-void btSoftBody_Note_m_offset_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Note->m_offset-void btSoftBody_Note_m_offset_get(void *c,float* a);-void btSoftBody_Note_m_rank_set(void *c,int a); //attribute: int btSoftBody_Note->m_rank-int btSoftBody_Note_m_rank_get(void *c); //attribute: int btSoftBody_Note->m_rank-// attribute not supported: //attribute: ::btSoftBody::Node *[4] btSoftBody_Note->m_nodes-// attribute not supported: //attribute: ::btScalar[4] btSoftBody_Note->m_coords-void* btSoftBody_Pose_new(); //constructor: Pose  ( ::btSoftBody::Pose::* )(  ) -void btSoftBody_Pose_free(void *c); void btSoftBody_Pose_m_bvolume_set(void *c,int a); //attribute: bool btSoftBody_Pose->m_bvolume-int btSoftBody_Pose_m_bvolume_get(void *c); //attribute: bool btSoftBody_Pose->m_bvolume-void btSoftBody_Pose_m_bframe_set(void *c,int a); //attribute: bool btSoftBody_Pose->m_bframe-int btSoftBody_Pose_m_bframe_get(void *c); //attribute: bool btSoftBody_Pose->m_bframe-void btSoftBody_Pose_m_volume_set(void *c,float a); //attribute: ::btScalar btSoftBody_Pose->m_volume-float btSoftBody_Pose_m_volume_get(void *c); //attribute: ::btScalar btSoftBody_Pose->m_volume-// attribute not supported: //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Pose->m_pos-// attribute not supported: //attribute: ::btAlignedObjectArray<float> btSoftBody_Pose->m_wgh-void btSoftBody_Pose_m_com_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Pose->m_com-void btSoftBody_Pose_m_com_get(void *c,float* a);-void btSoftBody_Pose_m_rot_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_rot-void btSoftBody_Pose_m_rot_get(void *c,float* a);-void btSoftBody_Pose_m_scl_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_scl-void btSoftBody_Pose_m_scl_get(void *c,float* a);-void btSoftBody_Pose_m_aqq_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_aqq-void btSoftBody_Pose_m_aqq_get(void *c,float* a);-void* btSoftBody_RContact_new(); //constructor: RContact  ( ::btSoftBody::RContact::* )(  ) -void btSoftBody_RContact_free(void *c); // attribute not supported: //attribute: ::btSoftBody::sCti btSoftBody_RContact->m_cti-void btSoftBody_RContact_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_RContact->m_node-// attribute getter not supported: //attribute: ::btSoftBody::Node * btSoftBody_RContact->m_node-void btSoftBody_RContact_m_c0_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_RContact->m_c0-void btSoftBody_RContact_m_c0_get(void *c,float* a);-void btSoftBody_RContact_m_c1_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RContact->m_c1-void btSoftBody_RContact_m_c1_get(void *c,float* a);-void btSoftBody_RContact_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c2-float btSoftBody_RContact_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c2-void btSoftBody_RContact_m_c3_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c3-float btSoftBody_RContact_m_c3_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c3-void btSoftBody_RContact_m_c4_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c4-float btSoftBody_RContact_m_c4_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c4-void* btSoftBody_RayFromToCaster_new(float* p0,float* p1,float p2); //constructor: RayFromToCaster  ( ::btSoftBody::RayFromToCaster::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void btSoftBody_RayFromToCaster_free(void *c); void btSoftBody_RayFromToCaster_Process(void *c,void* p0); //method: Process void ( ::btSoftBody::RayFromToCaster::* )( ::btDbvtNode const * ) -void btSoftBody_RayFromToCaster_m_rayFrom_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayFrom-void btSoftBody_RayFromToCaster_m_rayFrom_get(void *c,float* a);-void btSoftBody_RayFromToCaster_m_rayTo_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayTo-void btSoftBody_RayFromToCaster_m_rayTo_get(void *c,float* a);-void btSoftBody_RayFromToCaster_m_rayNormalizedDirection_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayNormalizedDirection-void btSoftBody_RayFromToCaster_m_rayNormalizedDirection_get(void *c,float* a);-void btSoftBody_RayFromToCaster_m_mint_set(void *c,float a); //attribute: ::btScalar btSoftBody_RayFromToCaster->m_mint-float btSoftBody_RayFromToCaster_m_mint_get(void *c); //attribute: ::btScalar btSoftBody_RayFromToCaster->m_mint-void btSoftBody_RayFromToCaster_m_face_set(void *c,void* a); //attribute: ::btSoftBody::Face * btSoftBody_RayFromToCaster->m_face-// attribute getter not supported: //attribute: ::btSoftBody::Face * btSoftBody_RayFromToCaster->m_face-void btSoftBody_RayFromToCaster_m_tests_set(void *c,int a); //attribute: int btSoftBody_RayFromToCaster->m_tests-int btSoftBody_RayFromToCaster_m_tests_get(void *c); //attribute: int btSoftBody_RayFromToCaster->m_tests-void* btSoftBody_SContact_new(); //constructor: SContact  ( ::btSoftBody::SContact::* )(  ) -void btSoftBody_SContact_free(void *c); void btSoftBody_SContact_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_SContact->m_node-// attribute getter not supported: //attribute: ::btSoftBody::Node * btSoftBody_SContact->m_node-void btSoftBody_SContact_m_face_set(void *c,void* a); //attribute: ::btSoftBody::Face * btSoftBody_SContact->m_face-// attribute getter not supported: //attribute: ::btSoftBody::Face * btSoftBody_SContact->m_face-void btSoftBody_SContact_m_weights_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_SContact->m_weights-void btSoftBody_SContact_m_weights_get(void *c,float* a);-void btSoftBody_SContact_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_SContact->m_normal-void btSoftBody_SContact_m_normal_get(void *c,float* a);-void btSoftBody_SContact_m_margin_set(void *c,float a); //attribute: ::btScalar btSoftBody_SContact->m_margin-float btSoftBody_SContact_m_margin_get(void *c); //attribute: ::btScalar btSoftBody_SContact->m_margin-void btSoftBody_SContact_m_friction_set(void *c,float a); //attribute: ::btScalar btSoftBody_SContact->m_friction-float btSoftBody_SContact_m_friction_get(void *c); //attribute: ::btScalar btSoftBody_SContact->m_friction-// attribute not supported: //attribute: ::btScalar[2] btSoftBody_SContact->m_cfm-void* btSoftBody_SolverState_new(); //constructor: SolverState  ( ::btSoftBody::SolverState::* )(  ) -void btSoftBody_SolverState_free(void *c); void btSoftBody_SolverState_sdt_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->sdt-float btSoftBody_SolverState_sdt_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->sdt-void btSoftBody_SolverState_isdt_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->isdt-float btSoftBody_SolverState_isdt_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->isdt-void btSoftBody_SolverState_velmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->velmrg-float btSoftBody_SolverState_velmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->velmrg-void btSoftBody_SolverState_radmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->radmrg-float btSoftBody_SolverState_radmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->radmrg-void btSoftBody_SolverState_updmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->updmrg-float btSoftBody_SolverState_updmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->updmrg-void* btSoftBody_Joint_Specs_new(); //constructor: Specs  ( ::btSoftBody::Joint::Specs::* )(  ) -void btSoftBody_Joint_Specs_free(void *c); void btSoftBody_Joint_Specs_erp_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->erp-float btSoftBody_Joint_Specs_erp_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->erp-void btSoftBody_Joint_Specs_cfm_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->cfm-float btSoftBody_Joint_Specs_cfm_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->cfm-void btSoftBody_Joint_Specs_split_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->split-float btSoftBody_Joint_Specs_split_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->split-void* btSoftBody_LJoint_Specs_new(); //constructor: Specs  ( ::btSoftBody::LJoint::Specs::* )(  ) -void btSoftBody_LJoint_Specs_free(void *c); void btSoftBody_LJoint_Specs_position_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_LJoint_Specs->position-void btSoftBody_LJoint_Specs_position_get(void *c,float* a);-void* btSoftBody_AJoint_Specs_new(); //constructor: Specs  ( ::btSoftBody::AJoint::Specs::* )(  ) -void btSoftBody_AJoint_Specs_free(void *c); void btSoftBody_AJoint_Specs_axis_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_AJoint_Specs->axis-void btSoftBody_AJoint_Specs_axis_get(void *c,float* a);-void btSoftBody_AJoint_Specs_icontrol_set(void *c,void* a); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint_Specs->icontrol-// attribute getter not supported: //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint_Specs->icontrol-void* btSoftBody_Tetra_new(); //constructor: Tetra  ( ::btSoftBody::Tetra::* )(  ) -void btSoftBody_Tetra_free(void *c); // attribute not supported: //attribute: ::btSoftBody::Node *[4] btSoftBody_Tetra->m_n-void btSoftBody_Tetra_m_rv_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_rv-float btSoftBody_Tetra_m_rv_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_rv-void btSoftBody_Tetra_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Tetra->m_leaf-// attribute getter not supported: //attribute: ::btDbvtNode * btSoftBody_Tetra->m_leaf-// attribute not supported: //attribute: ::btVector3[4] btSoftBody_Tetra->m_c0-void btSoftBody_Tetra_m_c1_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_c1-float btSoftBody_Tetra_m_c1_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_c1-void btSoftBody_Tetra_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_c2-float btSoftBody_Tetra_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_c2-//not supported constructor: btSoftBody  ( ::btSoftBody::* )( ::btSoftBodyWorldInfo *,int,::btVector3 const *,::btScalar const * ) -void* btSoftBody_new1(void* p0); //constructor: btSoftBody  ( ::btSoftBody::* )( ::btSoftBodyWorldInfo * ) -void btSoftBody_free(void *c); float btSoftBody_getVolume(void *c); //method: getVolume ::btScalar ( ::btSoftBody::* )(  ) const-int btSoftBody_cutLink(void *c,int p0,int p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( int,int,::btScalar ) -int btSoftBody_cutLink0(void *c,int p0,int p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( int,int,::btScalar ) -int btSoftBody_cutLink1(void *c,void* p0,void* p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( ::btSoftBody::Node const *,::btSoftBody::Node const *,::btScalar ) -void btSoftBody_PSolve_Links(void* p0,float p1,float p2); //method: PSolve_Links void (*)( ::btSoftBody *,::btScalar,::btScalar )-int btSoftBody_generateClusters(void *c,int p0,int p1); //method: generateClusters int ( ::btSoftBody::* )( int,int ) -void btSoftBody_setCollisionShape(void *c,void* p0); //method: setCollisionShape void ( ::btSoftBody::* )( ::btCollisionShape * ) -void btSoftBody_initializeClusters(void *c); //method: initializeClusters void ( ::btSoftBody::* )(  ) -void btSoftBody_clusterVAImpulse(void* p0,float* p1); //method: clusterVAImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )-void btSoftBody_addForce(void *c,float* p0); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_addForce0(void *c,float* p0); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_addForce1(void *c,float* p0,int p1); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const &,int ) -//not supported method: serialize char const * ( ::btSoftBody::* )( void *,::btSerializer * ) const-void btSoftBody_updateBounds(void *c); //method: updateBounds void ( ::btSoftBody::* )(  ) -void btSoftBody_rotate(void *c,float* p0); //method: rotate void ( ::btSoftBody::* )( ::btQuaternion const & ) -void btSoftBody_releaseCluster(void *c,int p0); //method: releaseCluster void ( ::btSoftBody::* )( int ) -void btSoftBody_updateNormals(void *c); //method: updateNormals void ( ::btSoftBody::* )(  ) -void btSoftBody_prepareClusters(void *c,int p0); //method: prepareClusters void ( ::btSoftBody::* )( int ) -void btSoftBody_releaseClusters(void *c); //method: releaseClusters void ( ::btSoftBody::* )(  ) -float btSoftBody_getTotalMass(void *c); //method: getTotalMass ::btScalar ( ::btSoftBody::* )(  ) const-int btSoftBody_checkContact(void *c,void* p0,float* p1,float p2,void* p3); //method: checkContact bool ( ::btSoftBody::* )( ::btCollisionObject *,::btVector3 const &,::btScalar,::btSoftBody::sCti & ) const-//not supported method: indicesToPointers void ( ::btSoftBody::* )( int const * ) -void btSoftBody_clusterDImpulse(void* p0,float* p1,float* p2); //method: clusterDImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btVector3 const & )-void btSoftBody_initDefaults(void *c); //method: initDefaults void ( ::btSoftBody::* )(  ) -int btSoftBody_checkLink(void *c,int p0,int p1); //method: checkLink bool ( ::btSoftBody::* )( int,int ) const-int btSoftBody_checkLink0(void *c,int p0,int p1); //method: checkLink bool ( ::btSoftBody::* )( int,int ) const-int btSoftBody_checkLink1(void *c,void* p0,void* p1); //method: checkLink bool ( ::btSoftBody::* )( ::btSoftBody::Node const *,::btSoftBody::Node const * ) const-void btSoftBody_setVolumeMass(void *c,float p0); //method: setVolumeMass void ( ::btSoftBody::* )( ::btScalar ) -void btSoftBody_clusterImpulse(void* p0,float* p1,void* p2); //method: clusterImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btSoftBody::Impulse const & )-int btSoftBody_checkFace(void *c,int p0,int p1,int p2); //method: checkFace bool ( ::btSoftBody::* )( int,int,int ) const-void btSoftBody_evaluateCom(void *c,float* ret); //method: evaluateCom ::btVector3 ( ::btSoftBody::* )(  ) const-void btSoftBody_clusterDAImpulse(void* p0,float* p1); //method: clusterDAImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )-void btSoftBody_VSolve_Links(void* p0,float p1); //method: VSolve_Links void (*)( ::btSoftBody *,::btScalar )-void btSoftBody_setTotalMass(void *c,float p0,int p1); //method: setTotalMass void ( ::btSoftBody::* )( ::btScalar,bool ) -void btSoftBody_clusterDCImpulse(void* p0,float* p1); //method: clusterDCImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )-void btSoftBody_clusterVelocity(void* p0,float* p1,float* ret); //method: clusterVelocity ::btVector3 (*)( ::btSoftBody::Cluster const *,::btVector3 const & )-int btSoftBody_generateBendingConstraints(void *c,int p0,void* p1); //method: generateBendingConstraints int ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_updateClusters(void *c); //method: updateClusters void ( ::btSoftBody::* )(  ) -void btSoftBody_appendAnchor(void *c,int p0,void* p1,int p2,float p3); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,bool,::btScalar ) -void btSoftBody_appendAnchor0(void *c,int p0,void* p1,int p2,float p3); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,bool,::btScalar ) -void btSoftBody_appendAnchor1(void *c,int p0,void* p1,float* p2,int p3,float p4); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,::btVector3 const &,bool,::btScalar ) -void btSoftBody_applyClusters(void *c,int p0); //method: applyClusters void ( ::btSoftBody::* )( bool ) -void btSoftBody_setVelocity(void *c,float* p0); //method: setVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) -int btSoftBody_clusterCount(void *c); //method: clusterCount int ( ::btSoftBody::* )(  ) const-void* btSoftBody_upcast(void* p0); //method: upcast ::btSoftBody const * (*)( ::btCollisionObject const * )-void* btSoftBody_upcast0(void* p0); //method: upcast ::btSoftBody const * (*)( ::btCollisionObject const * )-void* btSoftBody_upcast1(void* p0); //method: upcast ::btSoftBody * (*)( ::btCollisionObject * )-void btSoftBody_getWindVelocity(void *c,float* ret); //method: getWindVelocity ::btVector3 const & ( ::btSoftBody::* )(  ) -void btSoftBody_predictMotion(void *c,float p0); //method: predictMotion void ( ::btSoftBody::* )( ::btScalar ) -void btSoftBody_pointersToIndices(void *c); //method: pointersToIndices void ( ::btSoftBody::* )(  ) -float btSoftBody_getMass(void *c,int p0); //method: getMass ::btScalar ( ::btSoftBody::* )( int ) const-void btSoftBody_PSolve_RContacts(void* p0,float p1,float p2); //method: PSolve_RContacts void (*)( ::btSoftBody *,::btScalar,::btScalar )-void btSoftBody_initializeFaceTree(void *c); //method: initializeFaceTree void ( ::btSoftBody::* )(  ) -void btSoftBody_addVelocity(void *c,float* p0); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_addVelocity0(void *c,float* p0); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_addVelocity1(void *c,float* p0,int p1); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const &,int ) -void btSoftBody_PSolve_Anchors(void* p0,float p1,float p2); //method: PSolve_Anchors void (*)( ::btSoftBody *,::btScalar,::btScalar )-void btSoftBody_cleanupClusters(void *c); //method: cleanupClusters void ( ::btSoftBody::* )(  ) -void btSoftBody_transform(void *c,float* p0); //method: transform void ( ::btSoftBody::* )( ::btTransform const & ) -//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) -//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) -//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Body ) -void btSoftBody_appendLinearJoint2(void *c,void* p0,void* p1); //method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody * ) -void btSoftBody_randomizeConstraints(void *c); //method: randomizeConstraints void ( ::btSoftBody::* )(  ) -void btSoftBody_updatePose(void *c); //method: updatePose void ( ::btSoftBody::* )(  ) -void btSoftBody_translate(void *c,float* p0); //method: translate void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_getAabb(void *c,float* p0,float* p1); //method: getAabb void ( ::btSoftBody::* )( ::btVector3 &,::btVector3 & ) const-void btSoftBody_PSolve_SContacts(void* p0,float p1,float p2); //method: PSolve_SContacts void (*)( ::btSoftBody *,::btScalar,::btScalar )-void* btSoftBody_appendMaterial(void *c); //method: appendMaterial ::btSoftBody::Material * ( ::btSoftBody::* )(  ) -void btSoftBody_appendNode(void *c,float* p0,float p1); //method: appendNode void ( ::btSoftBody::* )( ::btVector3 const &,::btScalar ) -void btSoftBody_setMass(void *c,int p0,float p1); //method: setMass void ( ::btSoftBody::* )( int,::btScalar ) -void btSoftBody_integrateMotion(void *c); //method: integrateMotion void ( ::btSoftBody::* )(  ) -void btSoftBody_defaultCollisionHandler(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btCollisionObject * ) -void btSoftBody_defaultCollisionHandler0(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btCollisionObject * ) -void btSoftBody_defaultCollisionHandler1(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btSoftBody * ) -void btSoftBody_solveConstraints(void *c); //method: solveConstraints void ( ::btSoftBody::* )(  ) -void btSoftBody_setTotalDensity(void *c,float p0); //method: setTotalDensity void ( ::btSoftBody::* )( ::btScalar ) -void btSoftBody_appendNote(void *c,char const * p0,float* p1,float* p2,void* p3,void* p4,void* p5,void* p6); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btVector4 const &,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node * ) -void btSoftBody_appendNote0(void *c,char const * p0,float* p1,float* p2,void* p3,void* p4,void* p5,void* p6); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btVector4 const &,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node * ) -void btSoftBody_appendNote1(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Node * ) -void btSoftBody_appendNote2(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Link * ) -void btSoftBody_appendNote3(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Face * ) -void btSoftBody_setVolumeDensity(void *c,float p0); //method: setVolumeDensity void ( ::btSoftBody::* )( ::btScalar ) -//not supported method: solveCommonConstraints void (*)( ::btSoftBody * *,int,int )-void btSoftBody_updateConstants(void *c); //method: updateConstants void ( ::btSoftBody::* )(  ) -void btSoftBody_staticSolve(void *c,int p0); //method: staticSolve void ( ::btSoftBody::* )( int ) -//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) -//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) -//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) const-void btSoftBody_refine(void *c,void* p0,float p1,int p2); //method: refine void ( ::btSoftBody::* )( ::btSoftBody::ImplicitFn *,::btScalar,bool ) -void btSoftBody_appendLink(void *c,int p0,void* p1); //method: appendLink void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendLink0(void *c,int p0,void* p1); //method: appendLink void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendLink1(void *c,int p0,int p1,void* p2,int p3); //method: appendLink void ( ::btSoftBody::* )( int,int,::btSoftBody::Material *,bool ) -void btSoftBody_appendLink2(void *c,void* p0,void* p1,void* p2,int p3); //method: appendLink void ( ::btSoftBody::* )( ::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Material *,bool ) -int btSoftBody_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btSoftBody::* )(  ) const-//not supported method: solveClusters void (*)( ::btAlignedObjectArray<btSoftBody*> const & )-//not supported method: solveClusters void (*)( ::btAlignedObjectArray<btSoftBody*> const & )-void btSoftBody_solveClusters1(void *c,float p0); //method: solveClusters void ( ::btSoftBody::* )( ::btScalar ) -int btSoftBody_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest bool ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btSoftBody::sRayCast & ) -int btSoftBody_rayTest0(void *c,float* p0,float* p1,void* p2); //method: rayTest bool ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btSoftBody::sRayCast & ) -//not supported method: rayTest int ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar &,::btSoftBody::eFeature::_ &,int &,bool ) const-void btSoftBody_setPose(void *c,int p0,int p1); //method: setPose void ( ::btSoftBody::* )( bool,bool ) -void btSoftBody_appendFace(void *c,int p0,void* p1); //method: appendFace void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendFace0(void *c,int p0,void* p1); //method: appendFace void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendFace1(void *c,int p0,int p1,int p2,void* p3); //method: appendFace void ( ::btSoftBody::* )( int,int,int,::btSoftBody::Material * ) -void btSoftBody_dampClusters(void *c); //method: dampClusters void ( ::btSoftBody::* )(  ) -void* btSoftBody_getWorldInfo(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo * ( ::btSoftBody::* )(  ) -//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) -//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) -//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Body ) -void btSoftBody_appendAngularJoint2(void *c,void* p0,void* p1); //method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody * ) -//not supported method: setSolver void ( ::btSoftBody::* )( ::btSoftBody::eSolverPresets::_ ) -void btSoftBody_clusterVImpulse(void* p0,float* p1,float* p2); //method: clusterVImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btVector3 const & )-void btSoftBody_scale(void *c,float* p0); //method: scale void ( ::btSoftBody::* )( ::btVector3 const & ) -void btSoftBody_clusterAImpulse(void* p0,void* p1); //method: clusterAImpulse void (*)( ::btSoftBody::Cluster *,::btSoftBody::Impulse const & )-void btSoftBody_clusterCom(void* p0,float* ret); //method: clusterCom ::btVector3 (*)( ::btSoftBody::Cluster const * )-void btSoftBody_clusterCom0(void* p0,float* ret); //method: clusterCom ::btVector3 (*)( ::btSoftBody::Cluster const * )-void btSoftBody_clusterCom1(void *c,int p0,float* ret); //method: clusterCom ::btVector3 ( ::btSoftBody::* )( int ) const-//not supported method: setSoftBodySolver void ( ::btSoftBody::* )( ::btSoftBodySolver * ) -void btSoftBody_setWindVelocity(void *c,float* p0); //method: setWindVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) -//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar,::btScalar ) * (*)( ::btSoftBody::ePSolver::_ )-//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar,::btScalar ) * (*)( ::btSoftBody::ePSolver::_ )-//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar ) * (*)( ::btSoftBody::eVSolver::_ )-void btSoftBody_applyForces(void *c); //method: applyForces void ( ::btSoftBody::* )(  ) -void btSoftBody_appendTetra(void *c,int p0,void* p1); //method: appendTetra void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendTetra0(void *c,int p0,void* p1); //method: appendTetra void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) -void btSoftBody_appendTetra1(void *c,int p0,int p1,int p2,int p3,void* p4); //method: appendTetra void ( ::btSoftBody::* )( int,int,int,int,::btSoftBody::Material * ) -// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Anchor> btSoftBody->m_anchors-void btSoftBody_m_bUpdateRtCst_set(void *c,int a); //attribute: bool btSoftBody->m_bUpdateRtCst-int btSoftBody_m_bUpdateRtCst_get(void *c); //attribute: bool btSoftBody->m_bUpdateRtCst-// attribute not supported: //attribute: ::btVector3[2] btSoftBody->m_bounds-// attribute not supported: //attribute: ::btDbvt btSoftBody->m_cdbvt-// attribute not supported: //attribute: ::btSoftBody::Config btSoftBody->m_cfg-// attribute not supported: //attribute: ::btAlignedObjectArray<bool> btSoftBody->m_clusterConnectivity-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Cluster*> btSoftBody->m_clusters-// attribute not supported: //attribute: ::btAlignedObjectArray<btCollisionObject*> btSoftBody->m_collisionDisabledObjects-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Face> btSoftBody->m_faces-// attribute not supported: //attribute: ::btDbvt btSoftBody->m_fdbvt-void btSoftBody_m_initialWorldTransform_set(void *c,float* a); //attribute: ::btTransform btSoftBody->m_initialWorldTransform-void btSoftBody_m_initialWorldTransform_get(void *c,float* a);-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Joint*> btSoftBody->m_joints-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Link> btSoftBody->m_links-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Material*> btSoftBody->m_materials-// attribute not supported: //attribute: ::btDbvt btSoftBody->m_ndbvt-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Node> btSoftBody->m_nodes-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Note> btSoftBody->m_notes-// attribute not supported: //attribute: ::btSoftBody::Pose btSoftBody->m_pose-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::RContact> btSoftBody->m_rcontacts-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::SContact> btSoftBody->m_scontacts-// attribute not supported: //attribute: ::btSoftBodySolver * btSoftBody->m_softBodySolver-// attribute not supported: //attribute: ::btSoftBody::SolverState btSoftBody->m_sst-// attribute not supported: //attribute: void * btSoftBody->m_tag-// attribute not supported: //attribute: ::btAlignedObjectArray<btSoftBody::Tetra> btSoftBody->m_tetras-void btSoftBody_m_timeacc_set(void *c,float a); //attribute: ::btScalar btSoftBody->m_timeacc-float btSoftBody_m_timeacc_get(void *c); //attribute: ::btScalar btSoftBody->m_timeacc-// attribute not supported: //attribute: ::btAlignedObjectArray<int> btSoftBody->m_userIndexMapping-void btSoftBody_m_windVelocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody->m_windVelocity-void btSoftBody_m_windVelocity_get(void *c,float* a);-void btSoftBody_m_worldInfo_set(void *c,void* a); //attribute: ::btSoftBodyWorldInfo * btSoftBody->m_worldInfo-// attribute getter not supported: //attribute: ::btSoftBodyWorldInfo * btSoftBody->m_worldInfo-void* btSoftBodyHelpers_new(); //constructor: btSoftBodyHelpers  ( ::btSoftBodyHelpers::* )(  ) -void btSoftBodyHelpers_free(void *c); void btSoftBodyHelpers_DrawInfos(void* p0,void* p1,int p2,int p3,int p4); //method: DrawInfos void (*)( ::btSoftBody *,::btIDebugDraw *,bool,bool,bool )-void btSoftBodyHelpers_Draw(void* p0,void* p1,int p2); //method: Draw void (*)( ::btSoftBody *,::btIDebugDraw *,int )-void* btSoftBodyHelpers_CreateEllipsoid(void* p0,float* p1,float* p2,int p3); //method: CreateEllipsoid ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,int )-void* btSoftBodyHelpers_CreateFromTetGenData(void* p0,char const * p1,char const * p2,char const * p3,int p4,int p5,int p6); //method: CreateFromTetGenData ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,char const *,char const *,char const *,bool,bool,bool )-void btSoftBodyHelpers_DrawFrame(void* p0,void* p1); //method: DrawFrame void (*)( ::btSoftBody *,::btIDebugDraw * )-void* btSoftBodyHelpers_CreateRope(void* p0,float* p1,float* p2,int p3,int p4); //method: CreateRope ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,int,int )-float btSoftBodyHelpers_CalculateUV(int p0,int p1,int p2,int p3,int p4); //method: CalculateUV float (*)( int,int,int,int,int )-void btSoftBodyHelpers_DrawFaceTree(void* p0,void* p1,int p2,int p3); //method: DrawFaceTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )-void btSoftBodyHelpers_DrawClusterTree(void* p0,void* p1,int p2,int p3); //method: DrawClusterTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )-//not supported method: CreateFromTriMesh ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btScalar const *,int const *,int,bool )-void btSoftBodyHelpers_DrawNodeTree(void* p0,void* p1,int p2,int p3); //method: DrawNodeTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )-//not supported method: CreateFromConvexHull ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const *,int,bool )-void* btSoftBodyHelpers_CreatePatch(void* p0,float* p1,float* p2,float* p3,float* p4,int p5,int p6,int p7,int p8); //method: CreatePatch ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int,int,bool )-//not supported method: CreatePatchUV ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int,int,bool,float * )-void* btSoftBodyRigidBodyCollisionConfiguration_new(void* p0); //constructor: btSoftBodyRigidBodyCollisionConfiguration  ( ::btSoftBodyRigidBodyCollisionConfiguration::* )( ::btDefaultCollisionConstructionInfo const & ) -void btSoftBodyRigidBodyCollisionConfiguration_free(void *c); void* btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btSoftBodyRigidBodyCollisionConfiguration::* )( int,int ) -void* btSoftBodyWorldInfo_new(); //constructor: btSoftBodyWorldInfo  ( ::btSoftBodyWorldInfo::* )(  ) -void btSoftBodyWorldInfo_free(void *c); void btSoftBodyWorldInfo_air_density_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->air_density-float btSoftBodyWorldInfo_air_density_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->air_density-void btSoftBodyWorldInfo_m_broadphase_set(void *c,void* a); //attribute: ::btBroadphaseInterface * btSoftBodyWorldInfo->m_broadphase-// attribute getter not supported: //attribute: ::btBroadphaseInterface * btSoftBodyWorldInfo->m_broadphase-void btSoftBodyWorldInfo_m_dispatcher_set(void *c,void* a); //attribute: ::btDispatcher * btSoftBodyWorldInfo->m_dispatcher-// attribute getter not supported: //attribute: ::btDispatcher * btSoftBodyWorldInfo->m_dispatcher-void btSoftBodyWorldInfo_m_gravity_set(void *c,float* a); //attribute: ::btVector3 btSoftBodyWorldInfo->m_gravity-void btSoftBodyWorldInfo_m_gravity_get(void *c,float* a);-// attribute not supported: //attribute: ::btSparseSdf<3> btSoftBodyWorldInfo->m_sparsesdf-void btSoftBodyWorldInfo_water_density_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->water_density-float btSoftBodyWorldInfo_water_density_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->water_density-void btSoftBodyWorldInfo_water_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBodyWorldInfo->water_normal-void btSoftBodyWorldInfo_water_normal_get(void *c,float* a);-void btSoftBodyWorldInfo_water_offset_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->water_offset-float btSoftBodyWorldInfo_water_offset_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->water_offset-//not supported constructor: btSoftRigidDynamicsWorld  ( ::btSoftRigidDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration *,::btSoftBodySolver * ) -void btSoftRigidDynamicsWorld_free(void *c); void* btSoftRigidDynamicsWorld_getWorldInfo(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo & ( ::btSoftRigidDynamicsWorld::* )(  ) -void* btSoftRigidDynamicsWorld_getWorldInfo0(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo & ( ::btSoftRigidDynamicsWorld::* )(  ) -void* btSoftRigidDynamicsWorld_getWorldInfo1(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo const & ( ::btSoftRigidDynamicsWorld::* )(  ) const-void btSoftRigidDynamicsWorld_setDrawFlags(void *c,int p0); //method: setDrawFlags void ( ::btSoftRigidDynamicsWorld::* )( int ) -//not supported method: getSoftBodyArray ::btSoftBodyArray & ( ::btSoftRigidDynamicsWorld::* )(  ) -//not supported method: getSoftBodyArray ::btSoftBodyArray & ( ::btSoftRigidDynamicsWorld::* )(  ) -//not supported method: getSoftBodyArray ::btSoftBodyArray const & ( ::btSoftRigidDynamicsWorld::* )(  ) const-void btSoftRigidDynamicsWorld_serialize(void *c,void* p0); //method: serialize void ( ::btSoftRigidDynamicsWorld::* )( ::btSerializer * ) -void btSoftRigidDynamicsWorld_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btSoftRigidDynamicsWorld::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const-//not supported method: getWorldType ::btDynamicsWorldType ( ::btSoftRigidDynamicsWorld::* )(  ) const-void btSoftRigidDynamicsWorld_addSoftBody(void *c,void* p0,short int p1,short int p2); //method: addSoftBody void ( ::btSoftRigidDynamicsWorld::* )( ::btSoftBody *,short int,short int ) -void btSoftRigidDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btSoftRigidDynamicsWorld::* )( ::btCollisionObject * ) -void btSoftRigidDynamicsWorld_rayTestSingle(float* p0,float* p1,void* p2,void* p3,float* p4,void* p5); //method: rayTestSingle void (*)( ::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::RayResultCallback & )-void btSoftRigidDynamicsWorld_removeSoftBody(void *c,void* p0); //method: removeSoftBody void ( ::btSoftRigidDynamicsWorld::* )( ::btSoftBody * ) -void btSoftRigidDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btSoftRigidDynamicsWorld::* )(  ) -int btSoftRigidDynamicsWorld_getDrawFlags(void *c); //method: getDrawFlags int ( ::btSoftRigidDynamicsWorld::* )(  ) const-void* btSoftBody_eAeroModel_new(); //constructor: eAeroModel  ( ::btSoftBody::eAeroModel::* )(  ) -void btSoftBody_eAeroModel_free(void *c); void* btSoftBody_eFeature_new(); //constructor: eFeature  ( ::btSoftBody::eFeature::* )(  ) -void btSoftBody_eFeature_free(void *c); void* btSoftBody_ePSolver_new(); //constructor: ePSolver  ( ::btSoftBody::ePSolver::* )(  ) -void btSoftBody_ePSolver_free(void *c); void* btSoftBody_eSolverPresets_new(); //constructor: eSolverPresets  ( ::btSoftBody::eSolverPresets::* )(  ) -void btSoftBody_eSolverPresets_free(void *c); void* btSoftBody_Joint_eType_new(); //constructor: eType  ( ::btSoftBody::Joint::eType::* )(  ) -void btSoftBody_Joint_eType_free(void *c); void* btSoftBody_eVSolver_new(); //constructor: eVSolver  ( ::btSoftBody::eVSolver::* )(  ) -void btSoftBody_eVSolver_free(void *c); void* btSoftBody_fCollision_new(); //constructor: fCollision  ( ::btSoftBody::fCollision::* )(  ) -void btSoftBody_fCollision_free(void *c); void* fDrawFlags_new(); //constructor: fDrawFlags  ( ::fDrawFlags::* )(  ) -void fDrawFlags_free(void *c); void* btSoftBody_fMaterial_new(); //constructor: fMaterial  ( ::btSoftBody::fMaterial::* )(  ) -void btSoftBody_fMaterial_free(void *c); void* btSoftBody_sCti_new(); //constructor: sCti  ( ::btSoftBody::sCti::* )(  ) -void btSoftBody_sCti_free(void *c); void btSoftBody_sCti_m_colObj_set(void *c,void* a); //attribute: ::btCollisionObject * btSoftBody_sCti->m_colObj-// attribute getter not supported: //attribute: ::btCollisionObject * btSoftBody_sCti->m_colObj-void btSoftBody_sCti_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_sCti->m_normal-void btSoftBody_sCti_m_normal_get(void *c,float* a);-void btSoftBody_sCti_m_offset_set(void *c,float a); //attribute: ::btScalar btSoftBody_sCti->m_offset-float btSoftBody_sCti_m_offset_get(void *c); //attribute: ::btScalar btSoftBody_sCti->m_offset-void* btSoftBody_sMedium_new(); //constructor: sMedium  ( ::btSoftBody::sMedium::* )(  ) -void btSoftBody_sMedium_free(void *c); void btSoftBody_sMedium_m_density_set(void *c,float a); //attribute: ::btScalar btSoftBody_sMedium->m_density-float btSoftBody_sMedium_m_density_get(void *c); //attribute: ::btScalar btSoftBody_sMedium->m_density-void btSoftBody_sMedium_m_pressure_set(void *c,float a); //attribute: ::btScalar btSoftBody_sMedium->m_pressure-float btSoftBody_sMedium_m_pressure_get(void *c); //attribute: ::btScalar btSoftBody_sMedium->m_pressure-void btSoftBody_sMedium_m_velocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_sMedium->m_velocity-void btSoftBody_sMedium_m_velocity_get(void *c,float* a);-void* btSoftBody_sRayCast_new(); //constructor: sRayCast  ( ::btSoftBody::sRayCast::* )(  ) -void btSoftBody_sRayCast_free(void *c); void btSoftBody_sRayCast_body_set(void *c,void* a); //attribute: ::btSoftBody * btSoftBody_sRayCast->body-// attribute getter not supported: //attribute: ::btSoftBody * btSoftBody_sRayCast->body-// attribute not supported: //attribute: ::btSoftBody::eFeature::_ btSoftBody_sRayCast->feature-void btSoftBody_sRayCast_fraction_set(void *c,float a); //attribute: ::btScalar btSoftBody_sRayCast->fraction-float btSoftBody_sRayCast_fraction_get(void *c); //attribute: ::btScalar btSoftBody_sRayCast->fraction-void btSoftBody_sRayCast_index_set(void *c,int a); //attribute: int btSoftBody_sRayCast->index-int btSoftBody_sRayCast_index_get(void *c); //attribute: int btSoftBody_sRayCast->index-void cProfileIterator_free(void *c); char const * cProfileIterator_Get_Current_Name(void *c); //method: Get_Current_Name char const * ( ::CProfileIterator::* )(  ) -int cProfileIterator_Get_Current_Total_Calls(void *c); //method: Get_Current_Total_Calls int ( ::CProfileIterator::* )(  ) -float cProfileIterator_Get_Current_Total_Time(void *c); //method: Get_Current_Total_Time float ( ::CProfileIterator::* )(  ) -void cProfileIterator_Enter_Child(void *c,int p0); //method: Enter_Child void ( ::CProfileIterator::* )( int ) -int cProfileIterator_Is_Done(void *c); //method: Is_Done bool ( ::CProfileIterator::* )(  ) -void cProfileIterator_Next(void *c); //method: Next void ( ::CProfileIterator::* )(  ) -int cProfileIterator_Is_Root(void *c); //method: Is_Root bool ( ::CProfileIterator::* )(  ) -char const * cProfileIterator_Get_Current_Parent_Name(void *c); //method: Get_Current_Parent_Name char const * ( ::CProfileIterator::* )(  ) -int cProfileIterator_Get_Current_Parent_Total_Calls(void *c); //method: Get_Current_Parent_Total_Calls int ( ::CProfileIterator::* )(  ) -float cProfileIterator_Get_Current_Parent_Total_Time(void *c); //method: Get_Current_Parent_Total_Time float ( ::CProfileIterator::* )(  ) -void cProfileIterator_Enter_Parent(void *c); //method: Enter_Parent void ( ::CProfileIterator::* )(  ) -void cProfileIterator_First(void *c); //method: First void ( ::CProfileIterator::* )(  ) -void* cProfileManager_new(); //constructor: CProfileManager  ( ::CProfileManager::* )(  ) -void cProfileManager_free(void *c); void cProfileManager_Reset(); //method: Reset void (*)(  )-void cProfileManager_dumpAll(); //method: dumpAll void (*)(  )-int cProfileManager_Get_Frame_Count_Since_Reset(); //method: Get_Frame_Count_Since_Reset int (*)(  )-void cProfileManager_Release_Iterator(void* p0); //method: Release_Iterator void (*)( ::CProfileIterator * )-void cProfileManager_Stop_Profile(); //method: Stop_Profile void (*)(  )-void cProfileManager_CleanupMemory(); //method: CleanupMemory void (*)(  )-float cProfileManager_Get_Time_Since_Reset(); //method: Get_Time_Since_Reset float (*)(  )-void cProfileManager_Start_Profile(char const * p0); //method: Start_Profile void (*)( char const * )-void cProfileManager_Increment_Frame_Counter(); //method: Increment_Frame_Counter void (*)(  )-void cProfileManager_dumpRecursive(void* p0,int p1); //method: dumpRecursive void (*)( ::CProfileIterator *,int )-void* cProfileManager_Get_Iterator(); //method: Get_Iterator ::CProfileIterator * (*)(  )-void* cProfileNode_new(char const * p0,void* p1); //constructor: CProfileNode  ( ::CProfileNode::* )( char const *,::CProfileNode * ) -void cProfileNode_free(void *c); void cProfileNode_Reset(void *c); //method: Reset void ( ::CProfileNode::* )(  ) -int cProfileNode_Return(void *c); //method: Return bool ( ::CProfileNode::* )(  ) -void* cProfileNode_Get_Sub_Node(void *c,char const * p0); //method: Get_Sub_Node ::CProfileNode * ( ::CProfileNode::* )( char const * ) -void cProfileNode_CleanupMemory(void *c); //method: CleanupMemory void ( ::CProfileNode::* )(  ) -void* cProfileNode_Get_Parent(void *c); //method: Get_Parent ::CProfileNode * ( ::CProfileNode::* )(  ) -int cProfileNode_Get_Total_Calls(void *c); //method: Get_Total_Calls int ( ::CProfileNode::* )(  ) -char const * cProfileNode_Get_Name(void *c); //method: Get_Name char const * ( ::CProfileNode::* )(  ) -float cProfileNode_Get_Total_Time(void *c); //method: Get_Total_Time float ( ::CProfileNode::* )(  ) -void cProfileNode_Call(void *c); //method: Call void ( ::CProfileNode::* )(  ) -void* cProfileNode_Get_Sibling(void *c); //method: Get_Sibling ::CProfileNode * ( ::CProfileNode::* )(  ) -void* cProfileNode_Get_Child(void *c); //method: Get_Child ::CProfileNode * ( ::CProfileNode::* )(  ) -void* cProfileSample_new(char const * p0); //constructor: CProfileSample  ( ::CProfileSample::* )( char const * ) -void cProfileSample_free(void *c); void* btBlock_new(); //constructor: btBlock  ( ::btBlock::* )(  ) -void btBlock_free(void *c); void btBlock_previous_set(void *c,void* a); //attribute: ::btBlock * btBlock->previous-// attribute getter not supported: //attribute: ::btBlock * btBlock->previous-// attribute not supported: //attribute: unsigned char * btBlock->address-void* btChunk_new(); //constructor: btChunk  ( ::btChunk::* )(  ) -void btChunk_free(void *c); void btChunk_m_chunkCode_set(void *c,int a); //attribute: int btChunk->m_chunkCode-int btChunk_m_chunkCode_get(void *c); //attribute: int btChunk->m_chunkCode-void btChunk_m_length_set(void *c,int a); //attribute: int btChunk->m_length-int btChunk_m_length_get(void *c); //attribute: int btChunk->m_length-// attribute not supported: //attribute: void * btChunk->m_oldPtr-void btChunk_m_dna_nr_set(void *c,int a); //attribute: int btChunk->m_dna_nr-int btChunk_m_dna_nr_get(void *c); //attribute: int btChunk->m_dna_nr-void btChunk_m_number_set(void *c,int a); //attribute: int btChunk->m_number-int btChunk_m_number_get(void *c); //attribute: int btChunk->m_number-void* btClock_new(); //constructor: btClock  ( ::btClock::* )(  ) -void btClock_free(void *c); void btClock_reset(void *c); //method: reset void ( ::btClock::* )(  ) -long unsigned int btClock_getTimeMilliseconds(void *c); //method: getTimeMilliseconds long unsigned int ( ::btClock::* )(  ) -long unsigned int btClock_getTimeMicroseconds(void *c); //method: getTimeMicroseconds long unsigned int ( ::btClock::* )(  ) -void* btConvexSeparatingDistanceUtil_new(float p0,float p1); //constructor: btConvexSeparatingDistanceUtil  ( ::btConvexSeparatingDistanceUtil::* )( ::btScalar,::btScalar ) -void btConvexSeparatingDistanceUtil_free(void *c); void btConvexSeparatingDistanceUtil_updateSeparatingDistance(void *c,float* p0,float* p1); //method: updateSeparatingDistance void ( ::btConvexSeparatingDistanceUtil::* )( ::btTransform const &,::btTransform const & ) -float btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance(void *c); //method: getConservativeSeparatingDistance ::btScalar ( ::btConvexSeparatingDistanceUtil::* )(  ) -void btConvexSeparatingDistanceUtil_initSeparatingDistance(void *c,float* p0,float p1,float* p2,float* p3); //method: initSeparatingDistance void ( ::btConvexSeparatingDistanceUtil::* )( ::btVector3 const &,::btScalar,::btTransform const &,::btTransform const & ) -void* btDefaultMotionState_new(float* p0,float* p1); //constructor: btDefaultMotionState  ( ::btDefaultMotionState::* )( ::btTransform const &,::btTransform const & ) -void btDefaultMotionState_free(void *c); void btDefaultMotionState_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btDefaultMotionState::* )( ::btTransform const & ) -void btDefaultMotionState_getWorldTransform(void *c,float* p0); //method: getWorldTransform void ( ::btDefaultMotionState::* )( ::btTransform & ) const-void btDefaultMotionState_m_graphicsWorldTrans_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_graphicsWorldTrans-void btDefaultMotionState_m_graphicsWorldTrans_get(void *c,float* a);-void btDefaultMotionState_m_centerOfMassOffset_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_centerOfMassOffset-void btDefaultMotionState_m_centerOfMassOffset_get(void *c,float* a);-void btDefaultMotionState_m_startWorldTrans_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_startWorldTrans-void btDefaultMotionState_m_startWorldTrans_get(void *c,float* a);-// attribute not supported: //attribute: void * btDefaultMotionState->m_userPointer-void* btDefaultSerializer_new(int p0); //constructor: btDefaultSerializer  ( ::btDefaultSerializer::* )( int ) -void btDefaultSerializer_free(void *c); void btDefaultSerializer_setSerializationFlags(void *c,int p0); //method: setSerializationFlags void ( ::btDefaultSerializer::* )( int ) -//not supported method: findNameForPointer char const * ( ::btDefaultSerializer::* )( void const * ) const-//not supported method: writeHeader void ( ::btDefaultSerializer::* )( unsigned char * ) const-void btDefaultSerializer_startSerialization(void *c); //method: startSerialization void ( ::btDefaultSerializer::* )(  ) -int btDefaultSerializer_getSerializationFlags(void *c); //method: getSerializationFlags int ( ::btDefaultSerializer::* )(  ) const-void btDefaultSerializer_finishSerialization(void *c); //method: finishSerialization void ( ::btDefaultSerializer::* )(  ) -//not supported method: finalizeChunk void ( ::btDefaultSerializer::* )( ::btChunk *,char const *,int,void * ) -//not supported method: getBufferPointer unsigned char const * ( ::btDefaultSerializer::* )(  ) const-int btDefaultSerializer_getCurrentBufferSize(void *c); //method: getCurrentBufferSize int ( ::btDefaultSerializer::* )(  ) const-//not supported method: getUniquePointer void * ( ::btDefaultSerializer::* )( void * ) -void btDefaultSerializer_serializeName(void *c,char const * p0); //method: serializeName void ( ::btDefaultSerializer::* )( char const * ) -//not supported method: internalAlloc unsigned char * ( ::btDefaultSerializer::* )( ::size_t ) -//not supported method: registerNameForPointer void ( ::btDefaultSerializer::* )( void const *,char const * ) -//not supported method: allocate ::btChunk * ( ::btDefaultSerializer::* )( ::size_t,int ) -void* btGeometryUtil_new(); //constructor: btGeometryUtil  ( ::btGeometryUtil::* )(  ) -void btGeometryUtil_free(void *c); //not supported method: isPointInsidePlanes bool (*)( ::btAlignedObjectArray<btVector3> const &,::btVector3 const &,::btScalar )-//not supported method: getVerticesFromPlaneEquations void (*)( ::btAlignedObjectArray<btVector3> const &,::btAlignedObjectArray<btVector3> & )-//not supported method: isInside bool (*)( ::btAlignedObjectArray<btVector3> const &,::btVector3 const &,::btScalar )-//not supported method: areVerticesBehindPlane bool (*)( ::btVector3 const &,::btAlignedObjectArray<btVector3> const &,::btScalar )-//not supported method: getPlaneEquationsFromVertices void (*)( ::btAlignedObjectArray<btVector3> &,::btAlignedObjectArray<btVector3> & )-void* btHashInt_new(int p0); //constructor: btHashInt  ( ::btHashInt::* )( int ) -void btHashInt_free(void *c); int btHashInt_getUid1(void *c); //method: getUid1 int ( ::btHashInt::* )(  ) const-unsigned int btHashInt_getHash(void *c); //method: getHash unsigned int ( ::btHashInt::* )(  ) const-void btHashInt_setUid1(void *c,int p0); //method: setUid1 void ( ::btHashInt::* )( int ) -int btHashInt_equals(void *c,void* p0); //method: equals bool ( ::btHashInt::* )( ::btHashInt const & ) const-//not supported constructor: btHashPtr  ( ::btHashPtr::* )( void const * ) -void btHashPtr_free(void *c); unsigned int btHashPtr_getHash(void *c); //method: getHash unsigned int ( ::btHashPtr::* )(  ) const-//not supported method: getPointer void const * ( ::btHashPtr::* )(  ) const-int btHashPtr_equals(void *c,void* p0); //method: equals bool ( ::btHashPtr::* )( ::btHashPtr const & ) const-void* btHashString_new(char const * p0); //constructor: btHashString  ( ::btHashString::* )( char const * ) -void btHashString_free(void *c); unsigned int btHashString_getHash(void *c); //method: getHash unsigned int ( ::btHashString::* )(  ) const-int btHashString_equals(void *c,void* p0); //method: equals bool ( ::btHashString::* )( ::btHashString const & ) const-int btHashString_portableStringCompare(void *c,char const * p0,char const * p1); //method: portableStringCompare int ( ::btHashString::* )( char const *,char const * ) const-void btHashString_m_hash_set(void *c,unsigned int a); //attribute: unsigned int btHashString->m_hash-unsigned int btHashString_m_hash_get(void *c); //attribute: unsigned int btHashString->m_hash-void btHashString_m_string_set(void *c,char const * a); //attribute: char const * btHashString->m_string-char const * btHashString_m_string_get(void *c); //attribute: char const * btHashString->m_string-void btIDebugDraw_draw3dText(void *c,float* p0,char const * p1); //method: draw3dText void ( ::btIDebugDraw::* )( ::btVector3 const &,char const * ) -void btIDebugDraw_drawBox(void *c,float* p0,float* p1,float* p2); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawBox0(void *c,float* p0,float* p1,float* p2); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawBox1(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawCone(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCone void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawCapsule(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCapsule void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawArc(void *c,float* p0,float* p1,float* p2,float p3,float p4,float p5,float p6,float* p7,int p8,float p9); //method: drawArc void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btScalar,::btScalar,::btVector3 const &,bool,::btScalar ) -void btIDebugDraw_drawCylinder(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCylinder void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_reportErrorWarning(void *c,char const * p0); //method: reportErrorWarning void ( ::btIDebugDraw::* )( char const * ) -void btIDebugDraw_drawTriangle(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,float p7); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btIDebugDraw_drawTriangle0(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,float p7); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btIDebugDraw_drawTriangle1(void *c,float* p0,float* p1,float* p2,float* p3,float p4); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -int btIDebugDraw_getDebugMode(void *c); //method: getDebugMode int ( ::btIDebugDraw::* )(  ) const-void btIDebugDraw_drawLine(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawLine0(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawLine1(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawTransform(void *c,float* p0,float p1); //method: drawTransform void ( ::btIDebugDraw::* )( ::btTransform const &,::btScalar ) -void btIDebugDraw_drawAabb(void *c,float* p0,float* p1,float* p2); //method: drawAabb void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btIDebugDraw_drawPlane(void *c,float* p0,float p1,float* p2,float* p3); //method: drawPlane void ( ::btIDebugDraw::* )( ::btVector3 const &,::btScalar,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawContactPoint(void *c,float* p0,float* p1,float p2,int p3,float* p4); //method: drawContactPoint void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btScalar,int,::btVector3 const & ) -void btIDebugDraw_setDebugMode(void *c,int p0); //method: setDebugMode void ( ::btIDebugDraw::* )( int ) -void btIDebugDraw_drawSpherePatch(void *c,float* p0,float* p1,float* p2,float p3,float p4,float p5,float p6,float p7,float* p8,float p9); //method: drawSpherePatch void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btScalar,::btScalar,::btScalar,::btVector3 const &,::btScalar ) -void btIDebugDraw_drawSphere(void *c,float p0,float* p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btScalar,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawSphere0(void *c,float p0,float* p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btScalar,::btTransform const &,::btVector3 const & ) -void btIDebugDraw_drawSphere1(void *c,float* p0,float p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btVector3 const &,::btScalar,::btVector3 const & ) -void* btMatrix3x3DoubleData_new(); //constructor: btMatrix3x3DoubleData  ( ::btMatrix3x3DoubleData::* )(  ) -void btMatrix3x3DoubleData_free(void *c); // attribute not supported: //attribute: ::btVector3DoubleData[3] btMatrix3x3DoubleData->m_el-void* btMatrix3x3FloatData_new(); //constructor: btMatrix3x3FloatData  ( ::btMatrix3x3FloatData::* )(  ) -void btMatrix3x3FloatData_free(void *c); // attribute not supported: //attribute: ::btVector3FloatData[3] btMatrix3x3FloatData->m_el-void btMotionState_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btMotionState::* )( ::btTransform const & ) -void btMotionState_getWorldTransform(void *c,float* p0); //method: getWorldTransform void ( ::btMotionState::* )( ::btTransform & ) const-void* btPointerUid_new(); //constructor: btPointerUid  ( ::btPointerUid::* )(  ) -void btPointerUid_free(void *c); // attribute not supported: //attribute: ::btPointerUid btPointerUid->-void* btQuadWord_new0(); //constructor: btQuadWord  ( ::btQuadWord::* )(  ) -void* btQuadWord_new1(float p0,float p1,float p2); //constructor: btQuadWord  ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) -void* btQuadWord_new2(float p0,float p1,float p2,float p3); //constructor: btQuadWord  ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const &,::btScalar const & ) -void btQuadWord_free(void *c); void btQuadWord_setMin(void *c,void* p0); //method: setMin void ( ::btQuadWord::* )( ::btQuadWord const & ) -void btQuadWord_setValue(void *c,float p0,float p1,float p2); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) -void btQuadWord_setValue0(void *c,float p0,float p1,float p2); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) -void btQuadWord_setValue1(void *c,float p0,float p1,float p2,float p3); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const &,::btScalar const & ) -void btQuadWord_setMax(void *c,void* p0); //method: setMax void ( ::btQuadWord::* )( ::btQuadWord const & ) -float btQuadWord_getX(void *c); //method: getX ::btScalar const & ( ::btQuadWord::* )(  ) const-float btQuadWord_getY(void *c); //method: getY ::btScalar const & ( ::btQuadWord::* )(  ) const-float btQuadWord_getZ(void *c); //method: getZ ::btScalar const & ( ::btQuadWord::* )(  ) const-void btQuadWord_setW(void *c,float p0); //method: setW void ( ::btQuadWord::* )( ::btScalar ) -float btQuadWord_w(void *c); //method: w ::btScalar const & ( ::btQuadWord::* )(  ) const-float btQuadWord_y(void *c); //method: y ::btScalar const & ( ::btQuadWord::* )(  ) const-float btQuadWord_x(void *c); //method: x ::btScalar const & ( ::btQuadWord::* )(  ) const-float btQuadWord_z(void *c); //method: z ::btScalar const & ( ::btQuadWord::* )(  ) const-void btQuadWord_setX(void *c,float p0); //method: setX void ( ::btQuadWord::* )( ::btScalar ) -void btQuadWord_setY(void *c,float p0); //method: setY void ( ::btQuadWord::* )( ::btScalar ) -void btQuadWord_setZ(void *c,float p0); //method: setZ void ( ::btQuadWord::* )( ::btScalar ) -void btSerializer_setSerializationFlags(void *c,int p0); //method: setSerializationFlags void ( ::btSerializer::* )( int ) -int btSerializer_getCurrentBufferSize(void *c); //method: getCurrentBufferSize int ( ::btSerializer::* )(  ) const-void btSerializer_startSerialization(void *c); //method: startSerialization void ( ::btSerializer::* )(  ) -int btSerializer_getSerializationFlags(void *c); //method: getSerializationFlags int ( ::btSerializer::* )(  ) const-void btSerializer_finishSerialization(void *c); //method: finishSerialization void ( ::btSerializer::* )(  ) -//not supported method: getUniquePointer void * ( ::btSerializer::* )( void * ) -//not supported method: allocate ::btChunk * ( ::btSerializer::* )( ::size_t,int ) -//not supported method: findNameForPointer char const * ( ::btSerializer::* )( void const * ) const-//not supported method: finalizeChunk void ( ::btSerializer::* )( ::btChunk *,char const *,int,void * ) -void btSerializer_serializeName(void *c,char const * p0); //method: serializeName void ( ::btSerializer::* )( char const * ) -//not supported method: findPointer void * ( ::btSerializer::* )( void * ) -//not supported method: registerNameForPointer void ( ::btSerializer::* )( void const *,char const * ) -//not supported method: getBufferPointer unsigned char const * ( ::btSerializer::* )(  ) const-void* btStackAlloc_new(unsigned int p0); //constructor: btStackAlloc  ( ::btStackAlloc::* )( unsigned int ) -void btStackAlloc_free(void *c); void btStackAlloc_create(void *c,unsigned int p0); //method: create void ( ::btStackAlloc::* )( unsigned int ) -//not supported method: allocate unsigned char * ( ::btStackAlloc::* )( unsigned int ) -void btStackAlloc_destroy(void *c); //method: destroy void ( ::btStackAlloc::* )(  ) -void* btStackAlloc_beginBlock(void *c); //method: beginBlock ::btBlock * ( ::btStackAlloc::* )(  ) -int btStackAlloc_getAvailableMemory(void *c); //method: getAvailableMemory int ( ::btStackAlloc::* )(  ) const-void btStackAlloc_endBlock(void *c,void* p0); //method: endBlock void ( ::btStackAlloc::* )( ::btBlock * ) -void* btTransformDoubleData_new(); //constructor: btTransformDoubleData  ( ::btTransformDoubleData::* )(  ) -void btTransformDoubleData_free(void *c); // attribute not supported: //attribute: ::btMatrix3x3DoubleData btTransformDoubleData->m_basis-// attribute not supported: //attribute: ::btVector3DoubleData btTransformDoubleData->m_origin-void* btTransformFloatData_new(); //constructor: btTransformFloatData  ( ::btTransformFloatData::* )(  ) -void btTransformFloatData_free(void *c); // attribute not supported: //attribute: ::btMatrix3x3FloatData btTransformFloatData->m_basis-// attribute not supported: //attribute: ::btVector3FloatData btTransformFloatData->m_origin-void* btTransformUtil_new(); //constructor: btTransformUtil  ( ::btTransformUtil::* )(  ) -void btTransformUtil_free(void *c); //not supported method: calculateDiffAxisAngle void (*)( ::btTransform const &,::btTransform const &,::btVector3 &,::btScalar & )-void btTransformUtil_calculateVelocity(float* p0,float* p1,float p2,float* p3,float* p4); //method: calculateVelocity void (*)( ::btTransform const &,::btTransform const &,::btScalar,::btVector3 &,::btVector3 & )-void btTransformUtil_integrateTransform(float* p0,float* p1,float* p2,float p3,float* p4); //method: integrateTransform void (*)( ::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btTransform & )-void btTransformUtil_calculateVelocityQuaternion(float* p0,float* p1,float* p2,float* p3,float p4,float* p5,float* p6); //method: calculateVelocityQuaternion void (*)( ::btVector3 const &,::btVector3 const &,::btQuaternion const &,::btQuaternion const &,::btScalar,::btVector3 &,::btVector3 & )-//not supported method: calculateDiffAxisAngleQuaternion void (*)( ::btQuaternion const &,::btQuaternion const &,::btVector3 &,::btScalar & )-void* btTypedObject_new(int p0); //constructor: btTypedObject  ( ::btTypedObject::* )( int ) -void btTypedObject_free(void *c); int btTypedObject_getObjectType(void *c); //method: getObjectType int ( ::btTypedObject::* )(  ) const-void btTypedObject_m_objectType_set(void *c,int a); //attribute: int btTypedObject->m_objectType-int btTypedObject_m_objectType_get(void *c); //attribute: int btTypedObject->m_objectType-void* btVector3DoubleData_new(); //constructor: btVector3DoubleData  ( ::btVector3DoubleData::* )(  ) -void btVector3DoubleData_free(void *c); // attribute not supported: //attribute: double[4] btVector3DoubleData->m_floats-void* btVector3FloatData_new(); //constructor: btVector3FloatData  ( ::btVector3FloatData::* )(  ) -void btVector3FloatData_free(void *c); // attribute not supported: //attribute: float[4] btVector3FloatData->m_floats-void* btAngularLimit_new(); //constructor: btAngularLimit  ( ::btAngularLimit::* )(  ) -void btAngularLimit_free(void *c); float btAngularLimit_getCorrection(void *c); //method: getCorrection ::btScalar ( ::btAngularLimit::* )(  ) const-void btAngularLimit_set(void *c,float p0,float p1,float p2,float p3,float p4); //method: set void ( ::btAngularLimit::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) -float btAngularLimit_getError(void *c); //method: getError ::btScalar ( ::btAngularLimit::* )(  ) const-//not supported method: fit void ( ::btAngularLimit::* )( ::btScalar & ) const-int btAngularLimit_isLimit(void *c); //method: isLimit bool ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getSign(void *c); //method: getSign ::btScalar ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getBiasFactor(void *c); //method: getBiasFactor ::btScalar ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getSoftness(void *c); //method: getSoftness ::btScalar ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getHigh(void *c); //method: getHigh ::btScalar ( ::btAngularLimit::* )(  ) const-//not supported method: test void ( ::btAngularLimit::* )( ::btScalar const ) -float btAngularLimit_getHalfRange(void *c); //method: getHalfRange ::btScalar ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getLow(void *c); //method: getLow ::btScalar ( ::btAngularLimit::* )(  ) const-float btAngularLimit_getRelaxationFactor(void *c); //method: getRelaxationFactor ::btScalar ( ::btAngularLimit::* )(  ) const-void* btConeTwistConstraint_new0(void* p0,void* p1,float* p2,float* p3); //constructor: btConeTwistConstraint  ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const & ) -void* btConeTwistConstraint_new1(void* p0,float* p1); //constructor: btConeTwistConstraint  ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btTransform const & ) -void btConeTwistConstraint_free(void *c); void* btConeTwistConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btConeTwistConstraint::* )(  ) const-void btConeTwistConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2NonVirtual void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btMatrix3x3 const &,::btMatrix3x3 const & ) -void* btConeTwistConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btConeTwistConstraint::* )(  ) const-int btConeTwistConstraint_isPastSwingLimit(void *c); //method: isPastSwingLimit bool ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btConeTwistConstraint::* )(  ) const-void btConeTwistConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btConeTwistConstraint::* )(  ) const-float btConeTwistConstraint_getSwingSpan2(void *c); //method: getSwingSpan2 ::btScalar ( ::btConeTwistConstraint::* )(  ) -float btConeTwistConstraint_getSwingSpan1(void *c); //method: getSwingSpan1 ::btScalar ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_calcAngleInfo2(void *c,float* p0,float* p1,float* p2,float* p3); //method: calcAngleInfo2 void ( ::btConeTwistConstraint::* )( ::btTransform const &,::btTransform const &,::btMatrix3x3 const &,::btMatrix3x3 const & ) -void btConeTwistConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btConeTwistConstraint::* )( int,::btScalar,int ) -float btConeTwistConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btConeTwistConstraint::* )( int,int ) const-void btConeTwistConstraint_setDamping(void *c,float p0); //method: setDamping void ( ::btConeTwistConstraint::* )( ::btScalar ) -void btConeTwistConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btConeTwistConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -int btConeTwistConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConeTwistConstraint::* )(  ) const-float btConeTwistConstraint_getTwistAngle(void *c); //method: getTwistAngle ::btScalar ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_setMaxMotorImpulseNormalized(void *c,float p0); //method: setMaxMotorImpulseNormalized void ( ::btConeTwistConstraint::* )( ::btScalar ) -int btConeTwistConstraint_getSolveTwistLimit(void *c); //method: getSolveTwistLimit int ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_enableMotor(void *c,int p0); //method: enableMotor void ( ::btConeTwistConstraint::* )( bool ) -void btConeTwistConstraint_getBFrame(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -//not supported method: serialize char const * ( ::btConeTwistConstraint::* )( void *,::btSerializer * ) const-float btConeTwistConstraint_getFixThresh(void *c); //method: getFixThresh ::btScalar ( ::btConeTwistConstraint::* )(  ) -int btConeTwistConstraint_getSolveSwingLimit(void *c); //method: getSolveSwingLimit int ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_setAngularOnly(void *c,int p0); //method: setAngularOnly void ( ::btConeTwistConstraint::* )( bool ) -void btConeTwistConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btConeTwistConstraint::* )( ::btTransform const &,::btTransform const & ) -void btConeTwistConstraint_setLimit(void *c,int p0,float p1); //method: setLimit void ( ::btConeTwistConstraint::* )( int,::btScalar ) -void btConeTwistConstraint_setLimit0(void *c,int p0,float p1); //method: setLimit void ( ::btConeTwistConstraint::* )( int,::btScalar ) -void btConeTwistConstraint_setLimit1(void *c,float p0,float p1,float p2,float p3,float p4,float p5); //method: setLimit void ( ::btConeTwistConstraint::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) -void btConeTwistConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btConeTwistConstraint::* )(  ) -float btConeTwistConstraint_getTwistLimitSign(void *c); //method: getTwistLimitSign ::btScalar ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_setMaxMotorImpulse(void *c,float p0); //method: setMaxMotorImpulse void ( ::btConeTwistConstraint::* )( ::btScalar ) -void btConeTwistConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btConeTwistConstraint::* )( ::btScalar ) -void btConeTwistConstraint_setMotorTarget(void *c,float* p0); //method: setMotorTarget void ( ::btConeTwistConstraint::* )( ::btQuaternion const & ) -void btConeTwistConstraint_setFixThresh(void *c,float p0); //method: setFixThresh void ( ::btConeTwistConstraint::* )( ::btScalar ) -void btConeTwistConstraint_setMotorTargetInConstraintSpace(void *c,float* p0); //method: setMotorTargetInConstraintSpace void ( ::btConeTwistConstraint::* )( ::btQuaternion const & ) -void btConeTwistConstraint_solveConstraintObsolete(void *c,void* p0,void* p1,float p2); //method: solveConstraintObsolete void ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btRigidBody &,::btScalar ) -void btConeTwistConstraint_GetPointForAngle(void *c,float p0,float p1,float* ret); //method: GetPointForAngle ::btVector3 ( ::btConeTwistConstraint::* )( ::btScalar,::btScalar ) const-void btConeTwistConstraint_calcAngleInfo(void *c); //method: calcAngleInfo void ( ::btConeTwistConstraint::* )(  ) -float btConeTwistConstraint_getTwistSpan(void *c); //method: getTwistSpan ::btScalar ( ::btConeTwistConstraint::* )(  ) -void btConeTwistConstraint_getAFrame(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btConeTwistConstraint::* )(  ) -void* btConeTwistConstraintData_new(); //constructor: btConeTwistConstraintData  ( ::btConeTwistConstraintData::* )(  ) -void btConeTwistConstraintData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btConeTwistConstraintData->m_typeConstraintData-// attribute not supported: //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbAFrame-// attribute not supported: //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbBFrame-void btConeTwistConstraintData_m_swingSpan1_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_swingSpan1-float btConeTwistConstraintData_m_swingSpan1_get(void *c); //attribute: float btConeTwistConstraintData->m_swingSpan1-void btConeTwistConstraintData_m_swingSpan2_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_swingSpan2-float btConeTwistConstraintData_m_swingSpan2_get(void *c); //attribute: float btConeTwistConstraintData->m_swingSpan2-void btConeTwistConstraintData_m_twistSpan_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_twistSpan-float btConeTwistConstraintData_m_twistSpan_get(void *c); //attribute: float btConeTwistConstraintData->m_twistSpan-void btConeTwistConstraintData_m_limitSoftness_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_limitSoftness-float btConeTwistConstraintData_m_limitSoftness_get(void *c); //attribute: float btConeTwistConstraintData->m_limitSoftness-void btConeTwistConstraintData_m_biasFactor_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_biasFactor-float btConeTwistConstraintData_m_biasFactor_get(void *c); //attribute: float btConeTwistConstraintData->m_biasFactor-void btConeTwistConstraintData_m_relaxationFactor_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_relaxationFactor-float btConeTwistConstraintData_m_relaxationFactor_get(void *c); //attribute: float btConeTwistConstraintData->m_relaxationFactor-void btConeTwistConstraintData_m_damping_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_damping-float btConeTwistConstraintData_m_damping_get(void *c); //attribute: float btConeTwistConstraintData->m_damping-// attribute not supported: //attribute: char[4] btConeTwistConstraintData->m_pad-void* btTypedConstraint_btConstraintInfo1_new(); //constructor: btConstraintInfo1  ( ::btTypedConstraint::btConstraintInfo1::* )(  ) -void btTypedConstraint_btConstraintInfo1_free(void *c); void btTypedConstraint_btConstraintInfo1_m_numConstraintRows_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo1->m_numConstraintRows-int btTypedConstraint_btConstraintInfo1_m_numConstraintRows_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo1->m_numConstraintRows-void btTypedConstraint_btConstraintInfo1_nub_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo1->nub-int btTypedConstraint_btConstraintInfo1_nub_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo1->nub-void* btTypedConstraint_btConstraintInfo2_new(); //constructor: btConstraintInfo2  ( ::btTypedConstraint::btConstraintInfo2::* )(  ) -void btTypedConstraint_btConstraintInfo2_free(void *c); // attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->cfm-void btTypedConstraint_btConstraintInfo2_erp_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->erp-float btTypedConstraint_btConstraintInfo2_erp_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->erp-// attribute not supported: //attribute: int * btTypedConstraint_btConstraintInfo2->findex-void btTypedConstraint_btConstraintInfo2_fps_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->fps-float btTypedConstraint_btConstraintInfo2_fps_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->fps-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J1angularAxis-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J1linearAxis-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J2angularAxis-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J2linearAxis-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_constraintError-void btTypedConstraint_btConstraintInfo2_m_damping_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->m_damping-float btTypedConstraint_btConstraintInfo2_m_damping_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->m_damping-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_lowerLimit-void btTypedConstraint_btConstraintInfo2_m_numIterations_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo2->m_numIterations-int btTypedConstraint_btConstraintInfo2_m_numIterations_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo2->m_numIterations-// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_upperLimit-void btTypedConstraint_btConstraintInfo2_rowskip_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo2->rowskip-int btTypedConstraint_btConstraintInfo2_rowskip_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo2->rowskip-void* btConstraintSetting_new(); //constructor: btConstraintSetting  ( ::btConstraintSetting::* )(  ) -void btConstraintSetting_free(void *c); void btConstraintSetting_m_tau_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_tau-float btConstraintSetting_m_tau_get(void *c); //attribute: ::btScalar btConstraintSetting->m_tau-void btConstraintSetting_m_damping_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_damping-float btConstraintSetting_m_damping_get(void *c); //attribute: ::btScalar btConstraintSetting->m_damping-void btConstraintSetting_m_impulseClamp_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_impulseClamp-float btConstraintSetting_m_impulseClamp_get(void *c); //attribute: ::btScalar btConstraintSetting->m_impulseClamp-void btConstraintSolver_reset(void *c); //method: reset void ( ::btConstraintSolver::* )(  ) -void btConstraintSolver_allSolved(void *c,void* p0,void* p1,void* p2); //method: allSolved void ( ::btConstraintSolver::* )( ::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) -//not supported method: solveGroup ::btScalar ( ::btConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc *,::btDispatcher * ) -void btConstraintSolver_prepareSolve(void *c,int p0,int p1); //method: prepareSolve void ( ::btConstraintSolver::* )( int,int ) -void btContactConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btContactConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btContactConstraint_setContactManifold(void *c,void* p0); //method: setContactManifold void ( ::btContactConstraint::* )( ::btPersistentManifold * ) -void btContactConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btContactConstraint::* )(  ) -void btContactConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btContactConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void* btContactConstraint_getContactManifold(void *c); //method: getContactManifold ::btPersistentManifold * ( ::btContactConstraint::* )(  ) -void* btContactConstraint_getContactManifold0(void *c); //method: getContactManifold ::btPersistentManifold * ( ::btContactConstraint::* )(  ) -void* btContactConstraint_getContactManifold1(void *c); //method: getContactManifold ::btPersistentManifold const * ( ::btContactConstraint::* )(  ) const-void* btContactSolverInfo_new(); //constructor: btContactSolverInfo  ( ::btContactSolverInfo::* )(  ) -void btContactSolverInfo_free(void *c); void* btContactSolverInfoData_new(); //constructor: btContactSolverInfoData  ( ::btContactSolverInfoData::* )(  ) -void btContactSolverInfoData_free(void *c); void btContactSolverInfoData_m_tau_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_tau-float btContactSolverInfoData_m_tau_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_tau-void btContactSolverInfoData_m_damping_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_damping-float btContactSolverInfoData_m_damping_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_damping-void btContactSolverInfoData_m_friction_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_friction-float btContactSolverInfoData_m_friction_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_friction-void btContactSolverInfoData_m_timeStep_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_timeStep-float btContactSolverInfoData_m_timeStep_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_timeStep-void btContactSolverInfoData_m_restitution_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_restitution-float btContactSolverInfoData_m_restitution_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_restitution-void btContactSolverInfoData_m_numIterations_set(void *c,int a); //attribute: int btContactSolverInfoData->m_numIterations-int btContactSolverInfoData_m_numIterations_get(void *c); //attribute: int btContactSolverInfoData->m_numIterations-void btContactSolverInfoData_m_maxErrorReduction_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_maxErrorReduction-float btContactSolverInfoData_m_maxErrorReduction_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_maxErrorReduction-void btContactSolverInfoData_m_sor_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_sor-float btContactSolverInfoData_m_sor_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_sor-void btContactSolverInfoData_m_erp_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_erp-float btContactSolverInfoData_m_erp_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_erp-void btContactSolverInfoData_m_erp2_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_erp2-float btContactSolverInfoData_m_erp2_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_erp2-void btContactSolverInfoData_m_globalCfm_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_globalCfm-float btContactSolverInfoData_m_globalCfm_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_globalCfm-void btContactSolverInfoData_m_splitImpulse_set(void *c,int a); //attribute: int btContactSolverInfoData->m_splitImpulse-int btContactSolverInfoData_m_splitImpulse_get(void *c); //attribute: int btContactSolverInfoData->m_splitImpulse-void btContactSolverInfoData_m_splitImpulsePenetrationThreshold_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_splitImpulsePenetrationThreshold-float btContactSolverInfoData_m_splitImpulsePenetrationThreshold_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_splitImpulsePenetrationThreshold-void btContactSolverInfoData_m_linearSlop_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_linearSlop-float btContactSolverInfoData_m_linearSlop_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_linearSlop-void btContactSolverInfoData_m_warmstartingFactor_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_warmstartingFactor-float btContactSolverInfoData_m_warmstartingFactor_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_warmstartingFactor-void btContactSolverInfoData_m_solverMode_set(void *c,int a); //attribute: int btContactSolverInfoData->m_solverMode-int btContactSolverInfoData_m_solverMode_get(void *c); //attribute: int btContactSolverInfoData->m_solverMode-void btContactSolverInfoData_m_restingContactRestitutionThreshold_set(void *c,int a); //attribute: int btContactSolverInfoData->m_restingContactRestitutionThreshold-int btContactSolverInfoData_m_restingContactRestitutionThreshold_get(void *c); //attribute: int btContactSolverInfoData->m_restingContactRestitutionThreshold-void btContactSolverInfoData_m_minimumSolverBatchSize_set(void *c,int a); //attribute: int btContactSolverInfoData->m_minimumSolverBatchSize-int btContactSolverInfoData_m_minimumSolverBatchSize_get(void *c); //attribute: int btContactSolverInfoData->m_minimumSolverBatchSize-void* btGeneric6DofConstraint_new0(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btGeneric6DofConstraint  ( ::btGeneric6DofConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) -void* btGeneric6DofConstraint_new1(void* p0,float* p1,int p2); //constructor: btGeneric6DofConstraint  ( ::btGeneric6DofConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) -void btGeneric6DofConstraint_free(void *c); void btGeneric6DofConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btGeneric6DofConstraint::* )(  ) -void btGeneric6DofConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btGeneric6DofConstraint::* )( int,::btScalar,int ) -void btGeneric6DofConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_getFrameOffsetA0(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_getFrameOffsetA1(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btGeneric6DofConstraint::* )(  ) -float btGeneric6DofConstraint_getRelativePivotPosition(void *c,int p0); //method: getRelativePivotPosition ::btScalar ( ::btGeneric6DofConstraint::* )( int ) const-void btGeneric6DofConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_getFrameOffsetB0(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_getFrameOffsetB1(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btGeneric6DofConstraint::* )(  ) -void btGeneric6DofConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6); //method: getInfo2NonVirtual void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btGeneric6DofConstraint_getCalculatedTransformA(void *c,float* ret); //method: getCalculatedTransformA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-float btGeneric6DofConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btGeneric6DofConstraint::* )( int,int ) const-void btGeneric6DofConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btGeneric6DofConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void btGeneric6DofConstraint_calcAnchorPos(void *c); //method: calcAnchorPos void ( ::btGeneric6DofConstraint::* )(  ) -void btGeneric6DofConstraint_getAngularLowerLimit(void *c,float* p0); //method: getAngularLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) -int btGeneric6DofConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_getAxis(void *c,int p0,float* ret); //method: getAxis ::btVector3 ( ::btGeneric6DofConstraint::* )( int ) const-void btGeneric6DofConstraint_getLinearUpperLimit(void *c,float* p0); //method: getLinearUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) -void btGeneric6DofConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btGeneric6DofConstraint::* )( bool ) -void* btGeneric6DofConstraint_getRotationalLimitMotor(void *c,int p0); //method: getRotationalLimitMotor ::btRotationalLimitMotor * ( ::btGeneric6DofConstraint::* )( int ) -void btGeneric6DofConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -//not supported method: serialize char const * ( ::btGeneric6DofConstraint::* )( void *,::btSerializer * ) const-void btGeneric6DofConstraint_setLinearLowerLimit(void *c,float* p0); //method: setLinearLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) -void btGeneric6DofConstraint_getLinearLowerLimit(void *c,float* p0); //method: getLinearLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) -int btGeneric6DofConstraint_isLimited(void *c,int p0); //method: isLimited bool ( ::btGeneric6DofConstraint::* )( int ) -int btGeneric6DofConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btGeneric6DofConstraint::* )(  ) -void btGeneric6DofConstraint_getCalculatedTransformB(void *c,float* ret); //method: getCalculatedTransformB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const-void btGeneric6DofConstraint_calculateTransforms(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) -void btGeneric6DofConstraint_calculateTransforms0(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) -void btGeneric6DofConstraint_calculateTransforms1(void *c); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )(  ) -int btGeneric6DofConstraint_get_limit_motor_info2(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,void* p7,int p8,float* p9,int p10,int p11); //method: get_limit_motor_info2 int ( ::btGeneric6DofConstraint::* )( ::btRotationalLimitMotor *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btTypedConstraint::btConstraintInfo2 *,int,::btVector3 &,int,int ) -void btGeneric6DofConstraint_setLimit(void *c,int p0,float p1,float p2); //method: setLimit void ( ::btGeneric6DofConstraint::* )( int,::btScalar,::btScalar ) -void* btGeneric6DofConstraint_getTranslationalLimitMotor(void *c); //method: getTranslationalLimitMotor ::btTranslationalLimitMotor * ( ::btGeneric6DofConstraint::* )(  ) -float btGeneric6DofConstraint_getAngle(void *c,int p0); //method: getAngle ::btScalar ( ::btGeneric6DofConstraint::* )( int ) const-void btGeneric6DofConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btGeneric6DofConstraint::* )( ::btScalar ) -void btGeneric6DofConstraint_getAngularUpperLimit(void *c,float* p0); //method: getAngularUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) -void btGeneric6DofConstraint_setAngularLowerLimit(void *c,float* p0); //method: setAngularLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) -void btGeneric6DofConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) -void btGeneric6DofConstraint_setLinearUpperLimit(void *c,float* p0); //method: setLinearUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) -void btGeneric6DofConstraint_setAngularUpperLimit(void *c,float* p0); //method: setAngularUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) -void btGeneric6DofConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btGeneric6DofConstraint::* )( ::btVector3 const &,::btVector3 const & ) -int btGeneric6DofConstraint_testAngularLimitMotor(void *c,int p0); //method: testAngularLimitMotor bool ( ::btGeneric6DofConstraint::* )( int ) -void btGeneric6DofConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btGeneric6DofConstraint->m_useSolveConstraintObsolete-int btGeneric6DofConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btGeneric6DofConstraint->m_useSolveConstraintObsolete-void* btGeneric6DofConstraintData_new(); //constructor: btGeneric6DofConstraintData  ( ::btGeneric6DofConstraintData::* )(  ) -void btGeneric6DofConstraintData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btGeneric6DofConstraintData->m_typeConstraintData-// attribute not supported: //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbAFrame-// attribute not supported: //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbBFrame-// attribute not supported: //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearUpperLimit-// attribute not supported: //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearLowerLimit-// attribute not supported: //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularUpperLimit-// attribute not supported: //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularLowerLimit-void btGeneric6DofConstraintData_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: int btGeneric6DofConstraintData->m_useLinearReferenceFrameA-int btGeneric6DofConstraintData_m_useLinearReferenceFrameA_get(void *c); //attribute: int btGeneric6DofConstraintData->m_useLinearReferenceFrameA-void btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: int btGeneric6DofConstraintData->m_useOffsetForConstraintFrame-int btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_get(void *c); //attribute: int btGeneric6DofConstraintData->m_useOffsetForConstraintFrame-void* btGeneric6DofSpringConstraint_new(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btGeneric6DofSpringConstraint  ( ::btGeneric6DofSpringConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) -void btGeneric6DofSpringConstraint_free(void *c); int btGeneric6DofSpringConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGeneric6DofSpringConstraint::* )(  ) const-void btGeneric6DofSpringConstraint_setEquilibriumPoint(void *c); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )(  ) -void btGeneric6DofSpringConstraint_setEquilibriumPoint0(void *c); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )(  ) -void btGeneric6DofSpringConstraint_setEquilibriumPoint1(void *c,int p0); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )( int ) -void btGeneric6DofSpringConstraint_setEquilibriumPoint2(void *c,int p0,float p1); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) -//not supported method: serialize char const * ( ::btGeneric6DofSpringConstraint::* )( void *,::btSerializer * ) const-void btGeneric6DofSpringConstraint_enableSpring(void *c,int p0,int p1); //method: enableSpring void ( ::btGeneric6DofSpringConstraint::* )( int,bool ) -void btGeneric6DofSpringConstraint_setStiffness(void *c,int p0,float p1); //method: setStiffness void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) -void btGeneric6DofSpringConstraint_setDamping(void *c,int p0,float p1); //method: setDamping void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) -void btGeneric6DofSpringConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btGeneric6DofSpringConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void btGeneric6DofSpringConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btGeneric6DofSpringConstraint::* )( ::btVector3 const &,::btVector3 const & ) -void* btGeneric6DofSpringConstraintData_new(); //constructor: btGeneric6DofSpringConstraintData  ( ::btGeneric6DofSpringConstraintData::* )(  ) -void btGeneric6DofSpringConstraintData_free(void *c); // attribute not supported: //attribute: ::btGeneric6DofConstraintData btGeneric6DofSpringConstraintData->m_6dofData-// attribute not supported: //attribute: int[6] btGeneric6DofSpringConstraintData->m_springEnabled-// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_equilibriumPoint-// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_springStiffness-// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_springDamping-void* btHinge2Constraint_new(void* p0,void* p1,float* p2,float* p3,float* p4); //constructor: btHinge2Constraint  ( ::btHinge2Constraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 &,::btVector3 &,::btVector3 & ) -void btHinge2Constraint_free(void *c); void btHinge2Constraint_setLowerLimit(void *c,float p0); //method: setLowerLimit void ( ::btHinge2Constraint::* )( ::btScalar ) -void btHinge2Constraint_getAnchor2(void *c,float* ret); //method: getAnchor2 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) -void btHinge2Constraint_getAxis1(void *c,float* ret); //method: getAxis1 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) -void btHinge2Constraint_getAnchor(void *c,float* ret); //method: getAnchor ::btVector3 const & ( ::btHinge2Constraint::* )(  ) -void btHinge2Constraint_getAxis2(void *c,float* ret); //method: getAxis2 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) -void btHinge2Constraint_setUpperLimit(void *c,float p0); //method: setUpperLimit void ( ::btHinge2Constraint::* )( ::btScalar ) -float btHinge2Constraint_getAngle2(void *c); //method: getAngle2 ::btScalar ( ::btHinge2Constraint::* )(  ) -float btHinge2Constraint_getAngle1(void *c); //method: getAngle1 ::btScalar ( ::btHinge2Constraint::* )(  ) -void* btHingeConstraint_new0(void* p0,void* p1,float* p2,float* p3,float* p4,float* p5,int p6); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,bool ) -void* btHingeConstraint_new1(void* p0,float* p1,float* p2,int p3); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btVector3 const &,::btVector3 const &,bool ) -void* btHingeConstraint_new2(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) -void* btHingeConstraint_new3(void* p0,float* p1,int p2); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) -void btHingeConstraint_free(void *c); void* btHingeConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const-void* btHingeConstraint_getRigidBodyB0(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const-void* btHingeConstraint_getRigidBodyB1(void *c); //method: getRigidBodyB ::btRigidBody & ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2NonVirtual void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) -void* btHingeConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const-void* btHingeConstraint_getRigidBodyA0(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const-void* btHingeConstraint_getRigidBodyA1(void *c); //method: getRigidBodyA ::btRigidBody & ( ::btHingeConstraint::* )(  ) -float btHingeConstraint_getMotorTargetVelosity(void *c); //method: getMotorTargetVelosity ::btScalar ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_setMaxMotorImpulse(void *c,float p0); //method: setMaxMotorImpulse void ( ::btHingeConstraint::* )( ::btScalar ) -float btHingeConstraint_getHingeAngle(void *c); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )(  ) -float btHingeConstraint_getHingeAngle0(void *c); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )(  ) -float btHingeConstraint_getHingeAngle1(void *c,float* p0,float* p1); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) -void btHingeConstraint_testLimit(void *c,float* p0,float* p1); //method: testLimit void ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) -void btHingeConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btHingeConstraint_getInfo2Internal(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2Internal void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) -void btHingeConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -float btHingeConstraint_getUpperLimit(void *c); //method: getUpperLimit ::btScalar ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_enableAngularMotor(void *c,int p0,float p1,float p2); //method: enableAngularMotor void ( ::btHingeConstraint::* )( bool,::btScalar,::btScalar ) -float btHingeConstraint_getLimitSign(void *c); //method: getLimitSign ::btScalar ( ::btHingeConstraint::* )(  ) -int btHingeConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btHingeConstraint::* )(  ) const-float btHingeConstraint_getMaxMotorImpulse(void *c); //method: getMaxMotorImpulse ::btScalar ( ::btHingeConstraint::* )(  ) -float btHingeConstraint_getLowerLimit(void *c); //method: getLowerLimit ::btScalar ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btHingeConstraint::* )( int,::btScalar,int ) -void btHingeConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btHingeConstraint::* )( bool ) -int btHingeConstraint_getEnableAngularMotor(void *c); //method: getEnableAngularMotor bool ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_enableMotor(void *c,int p0); //method: enableMotor void ( ::btHingeConstraint::* )( bool ) -void btHingeConstraint_getBFrame(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_getBFrame0(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_getBFrame1(void *c,float* ret); //method: getBFrame ::btTransform & ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btHingeConstraint_getInfo2InternalUsingFrameOffset(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2InternalUsingFrameOffset void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) -//not supported method: serialize char const * ( ::btHingeConstraint::* )( void *,::btSerializer * ) const-int btHingeConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_setAngularOnly(void *c,int p0); //method: setAngularOnly void ( ::btHingeConstraint::* )( bool ) -float btHingeConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btHingeConstraint::* )( int,int ) const-void btHingeConstraint_setLimit(void *c,float p0,float p1,float p2,float p3,float p4); //method: setLimit void ( ::btHingeConstraint::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) -int btHingeConstraint_getSolveLimit(void *c); //method: getSolveLimit int ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btHingeConstraint::* )( ::btScalar ) -void btHingeConstraint_setMotorTarget(void *c,float* p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btQuaternion const &,::btScalar ) -void btHingeConstraint_setMotorTarget0(void *c,float* p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btQuaternion const &,::btScalar ) -void btHingeConstraint_setMotorTarget1(void *c,float p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btScalar,::btScalar ) -int btHingeConstraint_getAngularOnly(void *c); //method: getAngularOnly bool ( ::btHingeConstraint::* )(  ) -void btHingeConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) -void btHingeConstraint_setAxis(void *c,float* p0); //method: setAxis void ( ::btHingeConstraint::* )( ::btVector3 & ) -void btHingeConstraint_getAFrame(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_getAFrame0(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const-void btHingeConstraint_getAFrame1(void *c,float* ret); //method: getAFrame ::btTransform & ( ::btHingeConstraint::* )(  ) -void* btHingeConstraintDoubleData_new(); //constructor: btHingeConstraintDoubleData  ( ::btHingeConstraintDoubleData::* )(  ) -void btHingeConstraintDoubleData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btHingeConstraintDoubleData->m_typeConstraintData-// attribute not supported: //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbAFrame-// attribute not supported: //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbBFrame-void btHingeConstraintDoubleData_m_useReferenceFrameA_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_useReferenceFrameA-int btHingeConstraintDoubleData_m_useReferenceFrameA_get(void *c); //attribute: int btHingeConstraintDoubleData->m_useReferenceFrameA-void btHingeConstraintDoubleData_m_angularOnly_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_angularOnly-int btHingeConstraintDoubleData_m_angularOnly_get(void *c); //attribute: int btHingeConstraintDoubleData->m_angularOnly-void btHingeConstraintDoubleData_m_enableAngularMotor_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_enableAngularMotor-int btHingeConstraintDoubleData_m_enableAngularMotor_get(void *c); //attribute: int btHingeConstraintDoubleData->m_enableAngularMotor-void btHingeConstraintDoubleData_m_motorTargetVelocity_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_motorTargetVelocity-float btHingeConstraintDoubleData_m_motorTargetVelocity_get(void *c); //attribute: float btHingeConstraintDoubleData->m_motorTargetVelocity-void btHingeConstraintDoubleData_m_maxMotorImpulse_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_maxMotorImpulse-float btHingeConstraintDoubleData_m_maxMotorImpulse_get(void *c); //attribute: float btHingeConstraintDoubleData->m_maxMotorImpulse-void btHingeConstraintDoubleData_m_lowerLimit_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_lowerLimit-float btHingeConstraintDoubleData_m_lowerLimit_get(void *c); //attribute: float btHingeConstraintDoubleData->m_lowerLimit-void btHingeConstraintDoubleData_m_upperLimit_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_upperLimit-float btHingeConstraintDoubleData_m_upperLimit_get(void *c); //attribute: float btHingeConstraintDoubleData->m_upperLimit-void btHingeConstraintDoubleData_m_limitSoftness_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_limitSoftness-float btHingeConstraintDoubleData_m_limitSoftness_get(void *c); //attribute: float btHingeConstraintDoubleData->m_limitSoftness-void btHingeConstraintDoubleData_m_biasFactor_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_biasFactor-float btHingeConstraintDoubleData_m_biasFactor_get(void *c); //attribute: float btHingeConstraintDoubleData->m_biasFactor-void btHingeConstraintDoubleData_m_relaxationFactor_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_relaxationFactor-float btHingeConstraintDoubleData_m_relaxationFactor_get(void *c); //attribute: float btHingeConstraintDoubleData->m_relaxationFactor-void* btHingeConstraintFloatData_new(); //constructor: btHingeConstraintFloatData  ( ::btHingeConstraintFloatData::* )(  ) -void btHingeConstraintFloatData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btHingeConstraintFloatData->m_typeConstraintData-// attribute not supported: //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbAFrame-// attribute not supported: //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbBFrame-void btHingeConstraintFloatData_m_useReferenceFrameA_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_useReferenceFrameA-int btHingeConstraintFloatData_m_useReferenceFrameA_get(void *c); //attribute: int btHingeConstraintFloatData->m_useReferenceFrameA-void btHingeConstraintFloatData_m_angularOnly_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_angularOnly-int btHingeConstraintFloatData_m_angularOnly_get(void *c); //attribute: int btHingeConstraintFloatData->m_angularOnly-void btHingeConstraintFloatData_m_enableAngularMotor_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_enableAngularMotor-int btHingeConstraintFloatData_m_enableAngularMotor_get(void *c); //attribute: int btHingeConstraintFloatData->m_enableAngularMotor-void btHingeConstraintFloatData_m_motorTargetVelocity_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_motorTargetVelocity-float btHingeConstraintFloatData_m_motorTargetVelocity_get(void *c); //attribute: float btHingeConstraintFloatData->m_motorTargetVelocity-void btHingeConstraintFloatData_m_maxMotorImpulse_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_maxMotorImpulse-float btHingeConstraintFloatData_m_maxMotorImpulse_get(void *c); //attribute: float btHingeConstraintFloatData->m_maxMotorImpulse-void btHingeConstraintFloatData_m_lowerLimit_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_lowerLimit-float btHingeConstraintFloatData_m_lowerLimit_get(void *c); //attribute: float btHingeConstraintFloatData->m_lowerLimit-void btHingeConstraintFloatData_m_upperLimit_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_upperLimit-float btHingeConstraintFloatData_m_upperLimit_get(void *c); //attribute: float btHingeConstraintFloatData->m_upperLimit-void btHingeConstraintFloatData_m_limitSoftness_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_limitSoftness-float btHingeConstraintFloatData_m_limitSoftness_get(void *c); //attribute: float btHingeConstraintFloatData->m_limitSoftness-void btHingeConstraintFloatData_m_biasFactor_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_biasFactor-float btHingeConstraintFloatData_m_biasFactor_get(void *c); //attribute: float btHingeConstraintFloatData->m_biasFactor-void btHingeConstraintFloatData_m_relaxationFactor_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_relaxationFactor-float btHingeConstraintFloatData_m_relaxationFactor_get(void *c); //attribute: float btHingeConstraintFloatData->m_relaxationFactor-void* btJacobianEntry_new0(); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )(  ) -//not supported constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btMatrix3x3 const &,::btMatrix3x3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar const,::btVector3 const &,::btScalar const ) -void* btJacobianEntry_new2(float* p0,float* p1,float* p2,float* p3,float* p4); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btVector3 const &,::btMatrix3x3 const &,::btMatrix3x3 const &,::btVector3 const &,::btVector3 const & ) -void* btJacobianEntry_new3(float* p0,float* p1,float* p2,float* p3); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -//not supported constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btMatrix3x3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar const ) -void btJacobianEntry_free(void *c); float btJacobianEntry_getDiagonal(void *c); //method: getDiagonal ::btScalar ( ::btJacobianEntry::* )(  ) const-float btJacobianEntry_getRelativeVelocity(void *c,float* p0,float* p1,float* p2,float* p3); //method: getRelativeVelocity ::btScalar ( ::btJacobianEntry::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const ) const-//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const ) const-//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const,::btScalar const ) const-void btJacobianEntry_m_0MinvJt_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_0MinvJt-void btJacobianEntry_m_0MinvJt_get(void *c,float* a);-void btJacobianEntry_m_1MinvJt_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_1MinvJt-void btJacobianEntry_m_1MinvJt_get(void *c,float* a);-void btJacobianEntry_m_Adiag_set(void *c,float a); //attribute: ::btScalar btJacobianEntry->m_Adiag-float btJacobianEntry_m_Adiag_get(void *c); //attribute: ::btScalar btJacobianEntry->m_Adiag-void btJacobianEntry_m_aJ_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_aJ-void btJacobianEntry_m_aJ_get(void *c,float* a);-void btJacobianEntry_m_bJ_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_bJ-void btJacobianEntry_m_bJ_get(void *c,float* a);-void btJacobianEntry_m_linearJointAxis_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_linearJointAxis-void btJacobianEntry_m_linearJointAxis_get(void *c,float* a);-void* btPoint2PointConstraint_new0(void* p0,void* p1,float* p2,float* p3); //constructor: btPoint2PointConstraint  ( ::btPoint2PointConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 const &,::btVector3 const & ) -void* btPoint2PointConstraint_new1(void* p0,float* p1); //constructor: btPoint2PointConstraint  ( ::btPoint2PointConstraint::* )( ::btRigidBody &,::btVector3 const & ) -void btPoint2PointConstraint_free(void *c); void btPoint2PointConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btPoint2PointConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2); //method: getInfo2NonVirtual void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const & ) -void btPoint2PointConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btPoint2PointConstraint::* )( int,::btScalar,int ) -void btPoint2PointConstraint_getPivotInA(void *c,float* ret); //method: getPivotInA ::btVector3 const & ( ::btPoint2PointConstraint::* )(  ) const-void btPoint2PointConstraint_getPivotInB(void *c,float* ret); //method: getPivotInB ::btVector3 const & ( ::btPoint2PointConstraint::* )(  ) const-void btPoint2PointConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btPoint2PointConstraint::* )( ::btScalar ) -//not supported method: serialize char const * ( ::btPoint2PointConstraint::* )( void *,::btSerializer * ) const-void btPoint2PointConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btPoint2PointConstraint::* )(  ) -int btPoint2PointConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btPoint2PointConstraint::* )(  ) const-float btPoint2PointConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btPoint2PointConstraint::* )( int,int ) const-void btPoint2PointConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btPoint2PointConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void btPoint2PointConstraint_setPivotA(void *c,float* p0); //method: setPivotA void ( ::btPoint2PointConstraint::* )( ::btVector3 const & ) -void btPoint2PointConstraint_setPivotB(void *c,float* p0); //method: setPivotB void ( ::btPoint2PointConstraint::* )( ::btVector3 const & ) -void btPoint2PointConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btPoint2PointConstraint->m_useSolveConstraintObsolete-int btPoint2PointConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btPoint2PointConstraint->m_useSolveConstraintObsolete-// attribute not supported: //attribute: ::btConstraintSetting btPoint2PointConstraint->m_setting-void* btPoint2PointConstraintDoubleData_new(); //constructor: btPoint2PointConstraintDoubleData  ( ::btPoint2PointConstraintDoubleData::* )(  ) -void btPoint2PointConstraintDoubleData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btPoint2PointConstraintDoubleData->m_typeConstraintData-// attribute not supported: //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInA-// attribute not supported: //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInB-void* btPoint2PointConstraintFloatData_new(); //constructor: btPoint2PointConstraintFloatData  ( ::btPoint2PointConstraintFloatData::* )(  ) -void btPoint2PointConstraintFloatData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btPoint2PointConstraintFloatData->m_typeConstraintData-// attribute not supported: //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInA-// attribute not supported: //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInB-void* btRotationalLimitMotor_new(); //constructor: btRotationalLimitMotor  ( ::btRotationalLimitMotor::* )(  ) -void btRotationalLimitMotor_free(void *c); int btRotationalLimitMotor_testLimitValue(void *c,float p0); //method: testLimitValue int ( ::btRotationalLimitMotor::* )( ::btScalar ) -float btRotationalLimitMotor_solveAngularLimits(void *c,float p0,float* p1,float p2,void* p3,void* p4); //method: solveAngularLimits ::btScalar ( ::btRotationalLimitMotor::* )( ::btScalar,::btVector3 &,::btScalar,::btRigidBody *,::btRigidBody * ) -int btRotationalLimitMotor_needApplyTorques(void *c); //method: needApplyTorques bool ( ::btRotationalLimitMotor::* )(  ) -int btRotationalLimitMotor_isLimited(void *c); //method: isLimited bool ( ::btRotationalLimitMotor::* )(  ) -void btRotationalLimitMotor_m_accumulatedImpulse_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_accumulatedImpulse-float btRotationalLimitMotor_m_accumulatedImpulse_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_accumulatedImpulse-void btRotationalLimitMotor_m_bounce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_bounce-float btRotationalLimitMotor_m_bounce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_bounce-void btRotationalLimitMotor_m_currentLimit_set(void *c,int a); //attribute: int btRotationalLimitMotor->m_currentLimit-int btRotationalLimitMotor_m_currentLimit_get(void *c); //attribute: int btRotationalLimitMotor->m_currentLimit-void btRotationalLimitMotor_m_currentLimitError_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_currentLimitError-float btRotationalLimitMotor_m_currentLimitError_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_currentLimitError-void btRotationalLimitMotor_m_currentPosition_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_currentPosition-float btRotationalLimitMotor_m_currentPosition_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_currentPosition-void btRotationalLimitMotor_m_damping_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_damping-float btRotationalLimitMotor_m_damping_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_damping-void btRotationalLimitMotor_m_enableMotor_set(void *c,int a); //attribute: bool btRotationalLimitMotor->m_enableMotor-int btRotationalLimitMotor_m_enableMotor_get(void *c); //attribute: bool btRotationalLimitMotor->m_enableMotor-void btRotationalLimitMotor_m_hiLimit_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_hiLimit-float btRotationalLimitMotor_m_hiLimit_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_hiLimit-void btRotationalLimitMotor_m_limitSoftness_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_limitSoftness-float btRotationalLimitMotor_m_limitSoftness_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_limitSoftness-void btRotationalLimitMotor_m_loLimit_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_loLimit-float btRotationalLimitMotor_m_loLimit_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_loLimit-void btRotationalLimitMotor_m_maxLimitForce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_maxLimitForce-float btRotationalLimitMotor_m_maxLimitForce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_maxLimitForce-void btRotationalLimitMotor_m_maxMotorForce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_maxMotorForce-float btRotationalLimitMotor_m_maxMotorForce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_maxMotorForce-void btRotationalLimitMotor_m_normalCFM_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_normalCFM-float btRotationalLimitMotor_m_normalCFM_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_normalCFM-void btRotationalLimitMotor_m_stopCFM_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_stopCFM-float btRotationalLimitMotor_m_stopCFM_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_stopCFM-void btRotationalLimitMotor_m_stopERP_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_stopERP-float btRotationalLimitMotor_m_stopERP_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_stopERP-void btRotationalLimitMotor_m_targetVelocity_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_targetVelocity-float btRotationalLimitMotor_m_targetVelocity_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_targetVelocity-void* btSequentialImpulseConstraintSolver_new(); //constructor: btSequentialImpulseConstraintSolver  ( ::btSequentialImpulseConstraintSolver::* )(  ) -void btSequentialImpulseConstraintSolver_free(void *c); void btSequentialImpulseConstraintSolver_reset(void *c); //method: reset void ( ::btSequentialImpulseConstraintSolver::* )(  ) -long unsigned int btSequentialImpulseConstraintSolver_btRand2(void *c); //method: btRand2 long unsigned int ( ::btSequentialImpulseConstraintSolver::* )(  ) -long unsigned int btSequentialImpulseConstraintSolver_getRandSeed(void *c); //method: getRandSeed long unsigned int ( ::btSequentialImpulseConstraintSolver::* )(  ) const-void btSequentialImpulseConstraintSolver_setRandSeed(void *c,long unsigned int p0); //method: setRandSeed void ( ::btSequentialImpulseConstraintSolver::* )( long unsigned int ) -//not supported method: solveGroup ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc *,::btDispatcher * ) -int btSequentialImpulseConstraintSolver_btRandInt2(void *c,int p0); //method: btRandInt2 int ( ::btSequentialImpulseConstraintSolver::* )( int ) -void* btSliderConstraint_new0(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btSliderConstraint  ( ::btSliderConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) -void* btSliderConstraint_new1(void* p0,float* p1,int p2); //constructor: btSliderConstraint  ( ::btSliderConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) -void btSliderConstraint_free(void *c); void* btSliderConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_setPoweredAngMotor(void *c,int p0); //method: setPoweredAngMotor void ( ::btSliderConstraint::* )( bool ) -void btSliderConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float p5,float p6); //method: getInfo2NonVirtual void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar ) -void* btSliderConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btSliderConstraint::* )(  ) const-float btSliderConstraint_getDampingLimAng(void *c); //method: getDampingLimAng ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setRestitutionOrthoLin(void *c,float p0); //method: setRestitutionOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setRestitutionDirLin(void *c,float p0); //method: setRestitutionDirLin void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getLinearPos(void *c); //method: getLinearPos ::btScalar ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getFrameOffsetA0(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getFrameOffsetA1(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getFrameOffsetB0(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getFrameOffsetB1(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setPoweredLinMotor(void *c,int p0); //method: setPoweredLinMotor void ( ::btSliderConstraint::* )( bool ) -void btSliderConstraint_getCalculatedTransformB(void *c,float* ret); //method: getCalculatedTransformB ::btTransform const & ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_getCalculatedTransformA(void *c,float* ret); //method: getCalculatedTransformA ::btTransform const & ( ::btSliderConstraint::* )(  ) const-float btSliderConstraint_getRestitutionLimLin(void *c); //method: getRestitutionLimLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getSoftnessOrthoAng(void *c); //method: getSoftnessOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setSoftnessOrthoLin(void *c,float p0); //method: setSoftnessOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) -int btSliderConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_setSoftnessLimLin(void *c,float p0); //method: setSoftnessLimLin void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getAngularPos(void *c); //method: getAngularPos ::btScalar ( ::btSliderConstraint::* )(  ) const-void btSliderConstraint_setRestitutionLimAng(void *c,float p0); //method: setRestitutionLimAng void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btSliderConstraint::* )( int,int ) const-void btSliderConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btSliderConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void btSliderConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btSliderConstraint::* )( int,::btScalar,int ) -void btSliderConstraint_setUpperLinLimit(void *c,float p0); //method: setUpperLinLimit void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setDampingDirLin(void *c,float p0); //method: setDampingDirLin void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getUpperAngLimit(void *c); //method: getUpperAngLimit ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setRestitutionDirAng(void *c,float p0); //method: setRestitutionDirAng void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getDampingDirLin(void *c); //method: getDampingDirLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getAngDepth(void *c); //method: getAngDepth ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getSoftnessDirAng(void *c); //method: getSoftnessDirAng ::btScalar ( ::btSliderConstraint::* )(  ) -int btSliderConstraint_getPoweredAngMotor(void *c); //method: getPoweredAngMotor bool ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setLowerAngLimit(void *c,float p0); //method: setLowerAngLimit void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setUpperAngLimit(void *c,float p0); //method: setUpperAngLimit void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setTargetLinMotorVelocity(void *c,float p0); //method: setTargetLinMotorVelocity void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setDampingLimAng(void *c,float p0); //method: setDampingLimAng void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getRestitutionLimAng(void *c); //method: getRestitutionLimAng ::btScalar ( ::btSliderConstraint::* )(  ) -int btSliderConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getSoftnessOrthoLin(void *c); //method: getSoftnessOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getDampingOrthoAng(void *c); //method: getDampingOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btSliderConstraint::* )( bool ) -void btSliderConstraint_setLowerLinLimit(void *c,float p0); //method: setLowerLinLimit void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getRestitutionDirLin(void *c); //method: getRestitutionDirLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getTargetLinMotorVelocity(void *c); //method: getTargetLinMotorVelocity ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_testLinLimits(void *c); //method: testLinLimits void ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getLowerLinLimit(void *c); //method: getLowerLinLimit ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btSliderConstraint::* )( ::btTransform const &,::btTransform const & ) -float btSliderConstraint_getSoftnessLimLin(void *c); //method: getSoftnessLimLin ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btSliderConstraint_setDampingOrthoAng(void *c,float p0); //method: setDampingOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setSoftnessDirAng(void *c,float p0); //method: setSoftnessDirAng void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_getAncorInA(void *c,float* ret); //method: getAncorInA ::btVector3 ( ::btSliderConstraint::* )(  ) -int btSliderConstraint_getPoweredLinMotor(void *c); //method: getPoweredLinMotor bool ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_getAncorInB(void *c,float* ret); //method: getAncorInB ::btVector3 ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setRestitutionOrthoAng(void *c,float p0); //method: setRestitutionOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setDampingDirAng(void *c,float p0); //method: setDampingDirAng void ( ::btSliderConstraint::* )( ::btScalar ) -int btSliderConstraint_getSolveLinLimit(void *c); //method: getSolveLinLimit bool ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getRestitutionOrthoAng(void *c); //method: getRestitutionOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getMaxAngMotorForce(void *c); //method: getMaxAngMotorForce ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getDampingDirAng(void *c); //method: getDampingDirAng ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_calculateTransforms(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btSliderConstraint::* )( ::btTransform const &,::btTransform const & ) -float btSliderConstraint_getUpperLinLimit(void *c); //method: getUpperLinLimit ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getLinDepth(void *c); //method: getLinDepth ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setMaxLinMotorForce(void *c,float p0); //method: setMaxLinMotorForce void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getRestitutionOrthoLin(void *c); //method: getRestitutionOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) -//not supported method: serialize char const * ( ::btSliderConstraint::* )( void *,::btSerializer * ) const-void btSliderConstraint_setTargetAngMotorVelocity(void *c,float p0); //method: setTargetAngMotorVelocity void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getSoftnessLimAng(void *c); //method: getSoftnessLimAng ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getDampingOrthoLin(void *c); //method: getDampingOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getDampingLimLin(void *c); //method: getDampingLimLin ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getLowerAngLimit(void *c); //method: getLowerAngLimit ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getRestitutionDirAng(void *c); //method: getRestitutionDirAng ::btScalar ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getTargetAngMotorVelocity(void *c); //method: getTargetAngMotorVelocity ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setRestitutionLimLin(void *c,float p0); //method: setRestitutionLimLin void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_testAngLimits(void *c); //method: testAngLimits void ( ::btSliderConstraint::* )(  ) -float btSliderConstraint_getMaxLinMotorForce(void *c); //method: getMaxLinMotorForce ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setDampingOrthoLin(void *c,float p0); //method: setDampingOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setSoftnessOrthoAng(void *c,float p0); //method: setSoftnessOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) -int btSliderConstraint_getSolveAngLimit(void *c); //method: getSolveAngLimit bool ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setDampingLimLin(void *c,float p0); //method: setDampingLimLin void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setSoftnessDirLin(void *c,float p0); //method: setSoftnessDirLin void ( ::btSliderConstraint::* )( ::btScalar ) -void btSliderConstraint_setMaxAngMotorForce(void *c,float p0); //method: setMaxAngMotorForce void ( ::btSliderConstraint::* )( ::btScalar ) -float btSliderConstraint_getSoftnessDirLin(void *c); //method: getSoftnessDirLin ::btScalar ( ::btSliderConstraint::* )(  ) -void btSliderConstraint_setSoftnessLimAng(void *c,float p0); //method: setSoftnessLimAng void ( ::btSliderConstraint::* )( ::btScalar ) -int btSliderConstraint_getUseLinearReferenceFrameA(void *c); //method: getUseLinearReferenceFrameA bool ( ::btSliderConstraint::* )(  ) -void* btSliderConstraintData_new(); //constructor: btSliderConstraintData  ( ::btSliderConstraintData::* )(  ) -void btSliderConstraintData_free(void *c); // attribute not supported: //attribute: ::btTypedConstraintData btSliderConstraintData->m_typeConstraintData-// attribute not supported: //attribute: ::btTransformFloatData btSliderConstraintData->m_rbAFrame-// attribute not supported: //attribute: ::btTransformFloatData btSliderConstraintData->m_rbBFrame-void btSliderConstraintData_m_linearUpperLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_linearUpperLimit-float btSliderConstraintData_m_linearUpperLimit_get(void *c); //attribute: float btSliderConstraintData->m_linearUpperLimit-void btSliderConstraintData_m_linearLowerLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_linearLowerLimit-float btSliderConstraintData_m_linearLowerLimit_get(void *c); //attribute: float btSliderConstraintData->m_linearLowerLimit-void btSliderConstraintData_m_angularUpperLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_angularUpperLimit-float btSliderConstraintData_m_angularUpperLimit_get(void *c); //attribute: float btSliderConstraintData->m_angularUpperLimit-void btSliderConstraintData_m_angularLowerLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_angularLowerLimit-float btSliderConstraintData_m_angularLowerLimit_get(void *c); //attribute: float btSliderConstraintData->m_angularLowerLimit-void btSliderConstraintData_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: int btSliderConstraintData->m_useLinearReferenceFrameA-int btSliderConstraintData_m_useLinearReferenceFrameA_get(void *c); //attribute: int btSliderConstraintData->m_useLinearReferenceFrameA-void btSliderConstraintData_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: int btSliderConstraintData->m_useOffsetForConstraintFrame-int btSliderConstraintData_m_useOffsetForConstraintFrame_get(void *c); //attribute: int btSliderConstraintData->m_useOffsetForConstraintFrame-void* btSolverBodyObsolete_new(); //constructor: btSolverBodyObsolete  ( ::btSolverBodyObsolete::* )(  ) -void btSolverBodyObsolete_free(void *c); //not supported method: applyImpulse void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 const &,::btScalar const ) -void btSolverBodyObsolete_getAngularVelocity(void *c,float* p0); //method: getAngularVelocity void ( ::btSolverBodyObsolete::* )( ::btVector3 & ) const-void btSolverBodyObsolete_writebackVelocity(void *c); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )(  ) -void btSolverBodyObsolete_writebackVelocity0(void *c); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )(  ) -void btSolverBodyObsolete_writebackVelocity1(void *c,float p0); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )( ::btScalar ) -void btSolverBodyObsolete_internalApplyPushImpulse(void *c,float* p0,float* p1,float p2); //method: internalApplyPushImpulse void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void btSolverBodyObsolete_getVelocityInLocalPointObsolete(void *c,float* p0,float* p1); //method: getVelocityInLocalPointObsolete void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 & ) const-void btSolverBodyObsolete_m_deltaLinearVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_deltaLinearVelocity-void btSolverBodyObsolete_m_deltaLinearVelocity_get(void *c,float* a);-void btSolverBodyObsolete_m_deltaAngularVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_deltaAngularVelocity-void btSolverBodyObsolete_m_deltaAngularVelocity_get(void *c,float* a);-void btSolverBodyObsolete_m_angularFactor_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_angularFactor-void btSolverBodyObsolete_m_angularFactor_get(void *c,float* a);-void btSolverBodyObsolete_m_invMass_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_invMass-void btSolverBodyObsolete_m_invMass_get(void *c,float* a);-void btSolverBodyObsolete_m_originalBody_set(void *c,void* a); //attribute: ::btRigidBody * btSolverBodyObsolete->m_originalBody-// attribute getter not supported: //attribute: ::btRigidBody * btSolverBodyObsolete->m_originalBody-void btSolverBodyObsolete_m_pushVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_pushVelocity-void btSolverBodyObsolete_m_pushVelocity_get(void *c,float* a);-void btSolverBodyObsolete_m_turnVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_turnVelocity-void btSolverBodyObsolete_m_turnVelocity_get(void *c,float* a);-void* btSolverConstraint_new(); //constructor: btSolverConstraint  ( ::btSolverConstraint::* )(  ) -void btSolverConstraint_free(void *c); void btSolverConstraint_m_relpos1CrossNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_relpos1CrossNormal-void btSolverConstraint_m_relpos1CrossNormal_get(void *c,float* a);-void btSolverConstraint_m_contactNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_contactNormal-void btSolverConstraint_m_contactNormal_get(void *c,float* a);-void btSolverConstraint_m_relpos2CrossNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_relpos2CrossNormal-void btSolverConstraint_m_relpos2CrossNormal_get(void *c,float* a);-void btSolverConstraint_m_angularComponentA_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_angularComponentA-void btSolverConstraint_m_angularComponentA_get(void *c,float* a);-void btSolverConstraint_m_angularComponentB_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_angularComponentB-void btSolverConstraint_m_angularComponentB_get(void *c,float* a);-void btSolverConstraint_m_appliedPushImpulse_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_appliedPushImpulse-float btSolverConstraint_m_appliedPushImpulse_get(void *c); //attribute: ::btScalar btSolverConstraint->m_appliedPushImpulse-void btSolverConstraint_m_appliedImpulse_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_appliedImpulse-float btSolverConstraint_m_appliedImpulse_get(void *c); //attribute: ::btScalar btSolverConstraint->m_appliedImpulse-void btSolverConstraint_m_friction_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_friction-float btSolverConstraint_m_friction_get(void *c); //attribute: ::btScalar btSolverConstraint->m_friction-void btSolverConstraint_m_jacDiagABInv_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_jacDiagABInv-float btSolverConstraint_m_jacDiagABInv_get(void *c); //attribute: ::btScalar btSolverConstraint->m_jacDiagABInv-// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->-// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->-// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->-// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->-// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->-void btSolverConstraint_m_rhs_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_rhs-float btSolverConstraint_m_rhs_get(void *c); //attribute: ::btScalar btSolverConstraint->m_rhs-void btSolverConstraint_m_cfm_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_cfm-float btSolverConstraint_m_cfm_get(void *c); //attribute: ::btScalar btSolverConstraint->m_cfm-void btSolverConstraint_m_lowerLimit_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_lowerLimit-float btSolverConstraint_m_lowerLimit_get(void *c); //attribute: ::btScalar btSolverConstraint->m_lowerLimit-void btSolverConstraint_m_upperLimit_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_upperLimit-float btSolverConstraint_m_upperLimit_get(void *c); //attribute: ::btScalar btSolverConstraint->m_upperLimit-void btSolverConstraint_m_rhsPenetration_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_rhsPenetration-float btSolverConstraint_m_rhsPenetration_get(void *c); //attribute: ::btScalar btSolverConstraint->m_rhsPenetration-void* btTranslationalLimitMotor_new(); //constructor: btTranslationalLimitMotor  ( ::btTranslationalLimitMotor::* )(  ) -void btTranslationalLimitMotor_free(void *c); int btTranslationalLimitMotor_testLimitValue(void *c,int p0,float p1); //method: testLimitValue int ( ::btTranslationalLimitMotor::* )( int,::btScalar ) -int btTranslationalLimitMotor_needApplyForce(void *c,int p0); //method: needApplyForce bool ( ::btTranslationalLimitMotor::* )( int ) -float btTranslationalLimitMotor_solveLinearAxis(void *c,float p0,float p1,void* p2,float* p3,void* p4,float* p5,int p6,float* p7,float* p8); //method: solveLinearAxis ::btScalar ( ::btTranslationalLimitMotor::* )( ::btScalar,::btScalar,::btRigidBody &,::btVector3 const &,::btRigidBody &,::btVector3 const &,int,::btVector3 const &,::btVector3 const & ) -int btTranslationalLimitMotor_isLimited(void *c,int p0); //method: isLimited bool ( ::btTranslationalLimitMotor::* )( int ) -void btTranslationalLimitMotor_m_accumulatedImpulse_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_accumulatedImpulse-void btTranslationalLimitMotor_m_accumulatedImpulse_get(void *c,float* a);-// attribute not supported: //attribute: int[3] btTranslationalLimitMotor->m_currentLimit-void btTranslationalLimitMotor_m_currentLimitError_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_currentLimitError-void btTranslationalLimitMotor_m_currentLimitError_get(void *c,float* a);-void btTranslationalLimitMotor_m_currentLinearDiff_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_currentLinearDiff-void btTranslationalLimitMotor_m_currentLinearDiff_get(void *c,float* a);-void btTranslationalLimitMotor_m_damping_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_damping-float btTranslationalLimitMotor_m_damping_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_damping-// attribute not supported: //attribute: bool[3] btTranslationalLimitMotor->m_enableMotor-void btTranslationalLimitMotor_m_limitSoftness_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_limitSoftness-float btTranslationalLimitMotor_m_limitSoftness_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_limitSoftness-void btTranslationalLimitMotor_m_lowerLimit_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_lowerLimit-void btTranslationalLimitMotor_m_lowerLimit_get(void *c,float* a);-void btTranslationalLimitMotor_m_maxMotorForce_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_maxMotorForce-void btTranslationalLimitMotor_m_maxMotorForce_get(void *c,float* a);-void btTranslationalLimitMotor_m_normalCFM_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_normalCFM-void btTranslationalLimitMotor_m_normalCFM_get(void *c,float* a);-void btTranslationalLimitMotor_m_restitution_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_restitution-float btTranslationalLimitMotor_m_restitution_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_restitution-void btTranslationalLimitMotor_m_stopCFM_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_stopCFM-void btTranslationalLimitMotor_m_stopCFM_get(void *c,float* a);-void btTranslationalLimitMotor_m_stopERP_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_stopERP-void btTranslationalLimitMotor_m_stopERP_get(void *c,float* a);-void btTranslationalLimitMotor_m_targetVelocity_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_targetVelocity-void btTranslationalLimitMotor_m_targetVelocity_get(void *c,float* a);-void btTranslationalLimitMotor_m_upperLimit_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_upperLimit-void btTranslationalLimitMotor_m_upperLimit_get(void *c,float* a);-void* btTypedConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const-void* btTypedConstraint_getRigidBodyB0(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const-void* btTypedConstraint_getRigidBodyB1(void *c); //method: getRigidBodyB ::btRigidBody & ( ::btTypedConstraint::* )(  ) -void btTypedConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btTypedConstraint::* )(  ) -void* btTypedConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const-void* btTypedConstraint_getRigidBodyA0(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const-void* btTypedConstraint_getRigidBodyA1(void *c); //method: getRigidBodyA ::btRigidBody & ( ::btTypedConstraint::* )(  ) -//not supported method: serialize char const * ( ::btTypedConstraint::* )( void *,::btSerializer * ) const-void btTypedConstraint_enableFeedback(void *c,int p0); //method: enableFeedback void ( ::btTypedConstraint::* )( bool ) -int btTypedConstraint_getUserConstraintId(void *c); //method: getUserConstraintId int ( ::btTypedConstraint::* )(  ) const-void btTypedConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btTypedConstraint::* )( int,::btScalar,int ) -float btTypedConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btTypedConstraint::* )( int,int ) const-void btTypedConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btTypedConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) -void btTypedConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btTypedConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) -void btTypedConstraint_setBreakingImpulseThreshold(void *c,float p0); //method: setBreakingImpulseThreshold void ( ::btTypedConstraint::* )( ::btScalar ) -int btTypedConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btTypedConstraint::* )(  ) const-int btTypedConstraint_isEnabled(void *c); //method: isEnabled bool ( ::btTypedConstraint::* )(  ) const-void btTypedConstraint_setUserConstraintId(void *c,int p0); //method: setUserConstraintId void ( ::btTypedConstraint::* )( int ) -//not supported method: getConstraintType ::btTypedConstraintType ( ::btTypedConstraint::* )(  ) const-float btTypedConstraint_getDbgDrawSize(void *c); //method: getDbgDrawSize ::btScalar ( ::btTypedConstraint::* )(  ) -void btTypedConstraint_internalSetAppliedImpulse(void *c,float p0); //method: internalSetAppliedImpulse void ( ::btTypedConstraint::* )( ::btScalar ) -int btTypedConstraint_needsFeedback(void *c); //method: needsFeedback bool ( ::btTypedConstraint::* )(  ) const-//not supported method: getUserConstraintPtr void * ( ::btTypedConstraint::* )(  ) -void btTypedConstraint_setEnabled(void *c,int p0); //method: setEnabled void ( ::btTypedConstraint::* )( bool ) -int btTypedConstraint_getUid(void *c); //method: getUid int ( ::btTypedConstraint::* )(  ) const-void btTypedConstraint_setDbgDrawSize(void *c,float p0); //method: setDbgDrawSize void ( ::btTypedConstraint::* )( ::btScalar ) -void btTypedConstraint_setUserConstraintType(void *c,int p0); //method: setUserConstraintType void ( ::btTypedConstraint::* )( int ) -float btTypedConstraint_internalGetAppliedImpulse(void *c); //method: internalGetAppliedImpulse ::btScalar ( ::btTypedConstraint::* )(  ) -//not supported method: setupSolverConstraint void ( ::btTypedConstraint::* )( ::btConstraintArray &,int,int,::btScalar ) -float btTypedConstraint_getBreakingImpulseThreshold(void *c); //method: getBreakingImpulseThreshold ::btScalar ( ::btTypedConstraint::* )(  ) const-int btTypedConstraint_getUserConstraintType(void *c); //method: getUserConstraintType int ( ::btTypedConstraint::* )(  ) const-void btTypedConstraint_solveConstraintObsolete(void *c,void* p0,void* p1,float p2); //method: solveConstraintObsolete void ( ::btTypedConstraint::* )( ::btRigidBody &,::btRigidBody &,::btScalar ) -float btTypedConstraint_getAppliedImpulse(void *c); //method: getAppliedImpulse ::btScalar ( ::btTypedConstraint::* )(  ) const-//not supported method: setUserConstraintPtr void ( ::btTypedConstraint::* )( void * ) -void* btTypedConstraintData_new(); //constructor: btTypedConstraintData  ( ::btTypedConstraintData::* )(  ) -void btTypedConstraintData_free(void *c); void btTypedConstraintData_m_appliedImpulse_set(void *c,float a); //attribute: float btTypedConstraintData->m_appliedImpulse-float btTypedConstraintData_m_appliedImpulse_get(void *c); //attribute: float btTypedConstraintData->m_appliedImpulse-void btTypedConstraintData_m_dbgDrawSize_set(void *c,float a); //attribute: float btTypedConstraintData->m_dbgDrawSize-float btTypedConstraintData_m_dbgDrawSize_get(void *c); //attribute: float btTypedConstraintData->m_dbgDrawSize-void btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_set(void *c,int a); //attribute: int btTypedConstraintData->m_disableCollisionsBetweenLinkedBodies-int btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_get(void *c); //attribute: int btTypedConstraintData->m_disableCollisionsBetweenLinkedBodies-void btTypedConstraintData_m_name_set(void *c,char * a); //attribute: char * btTypedConstraintData->m_name-char * btTypedConstraintData_m_name_get(void *c); //attribute: char * btTypedConstraintData->m_name-void btTypedConstraintData_m_needsFeedback_set(void *c,int a); //attribute: int btTypedConstraintData->m_needsFeedback-int btTypedConstraintData_m_needsFeedback_get(void *c); //attribute: int btTypedConstraintData->m_needsFeedback-void btTypedConstraintData_m_objectType_set(void *c,int a); //attribute: int btTypedConstraintData->m_objectType-int btTypedConstraintData_m_objectType_get(void *c); //attribute: int btTypedConstraintData->m_objectType-// attribute not supported: //attribute: char[4] btTypedConstraintData->m_pad4-void btTypedConstraintData_m_rbA_set(void *c,void* a); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbA-// attribute getter not supported: //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbA-void btTypedConstraintData_m_rbB_set(void *c,void* a); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbB-// attribute getter not supported: //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbB-void btTypedConstraintData_m_userConstraintId_set(void *c,int a); //attribute: int btTypedConstraintData->m_userConstraintId-int btTypedConstraintData_m_userConstraintId_get(void *c); //attribute: int btTypedConstraintData->m_userConstraintId-void btTypedConstraintData_m_userConstraintType_set(void *c,int a); //attribute: int btTypedConstraintData->m_userConstraintType-int btTypedConstraintData_m_userConstraintType_get(void *c); //attribute: int btTypedConstraintData->m_userConstraintType-void* btUniversalConstraint_new(void* p0,void* p1,float* p2,float* p3,float* p4); //constructor: btUniversalConstraint  ( ::btUniversalConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 &,::btVector3 &,::btVector3 & ) -void btUniversalConstraint_free(void *c); void btUniversalConstraint_setLowerLimit(void *c,float p0,float p1); //method: setLowerLimit void ( ::btUniversalConstraint::* )( ::btScalar,::btScalar ) -void btUniversalConstraint_getAnchor2(void *c,float* ret); //method: getAnchor2 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) -void btUniversalConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btUniversalConstraint::* )( ::btVector3 const &,::btVector3 const & ) -void btUniversalConstraint_getAxis1(void *c,float* ret); //method: getAxis1 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) -void btUniversalConstraint_getAnchor(void *c,float* ret); //method: getAnchor ::btVector3 const & ( ::btUniversalConstraint::* )(  ) -void btUniversalConstraint_getAxis2(void *c,float* ret); //method: getAxis2 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) -void btUniversalConstraint_setUpperLimit(void *c,float p0,float p1); //method: setUpperLimit void ( ::btUniversalConstraint::* )( ::btScalar,::btScalar ) -float btUniversalConstraint_getAngle2(void *c); //method: getAngle2 ::btScalar ( ::btUniversalConstraint::* )(  ) -float btUniversalConstraint_getAngle1(void *c); //method: getAngle1 ::btScalar ( ::btUniversalConstraint::* )(  ) -void btActionInterface_updateAction(void *c,void* p0,float p1); //method: updateAction void ( ::btActionInterface::* )( ::btCollisionWorld *,::btScalar ) -void btActionInterface_debugDraw(void *c,void* p0); //method: debugDraw void ( ::btActionInterface::* )( ::btIDebugDraw * ) -void* btContinuousDynamicsWorld_new(void* p0,void* p1,void* p2,void* p3); //constructor: btContinuousDynamicsWorld  ( ::btContinuousDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration * ) -void btContinuousDynamicsWorld_free(void *c); void btContinuousDynamicsWorld_internalSingleStepSimulation(void *c,float p0); //method: internalSingleStepSimulation void ( ::btContinuousDynamicsWorld::* )( ::btScalar ) -//not supported method: getWorldType ::btDynamicsWorldType ( ::btContinuousDynamicsWorld::* )(  ) const-void btContinuousDynamicsWorld_calculateTimeOfImpacts(void *c,float p0); //method: calculateTimeOfImpacts void ( ::btContinuousDynamicsWorld::* )( ::btScalar ) -void* btDiscreteDynamicsWorld_new(void* p0,void* p1,void* p2,void* p3); //constructor: btDiscreteDynamicsWorld  ( ::btDiscreteDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration * ) -void btDiscreteDynamicsWorld_free(void *c); void btDiscreteDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btDiscreteDynamicsWorld::* )( ::btVector3 const & ) -void btDiscreteDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -void btDiscreteDynamicsWorld_applyGravity(void *c); //method: applyGravity void ( ::btDiscreteDynamicsWorld::* )(  ) -void btDiscreteDynamicsWorld_serialize(void *c,void* p0); //method: serialize void ( ::btDiscreteDynamicsWorld::* )( ::btSerializer * ) -void* btDiscreteDynamicsWorld_getCollisionWorld(void *c); //method: getCollisionWorld ::btCollisionWorld * ( ::btDiscreteDynamicsWorld::* )(  ) -void btDiscreteDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) -void btDiscreteDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) -void btDiscreteDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody *,short int,short int ) -void btDiscreteDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btDiscreteDynamicsWorld::* )(  ) -void btDiscreteDynamicsWorld_removeVehicle(void *c,void* p0); //method: removeVehicle void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -int btDiscreteDynamicsWorld_getSynchronizeAllMotionStates(void *c); //method: getSynchronizeAllMotionStates bool ( ::btDiscreteDynamicsWorld::* )(  ) const-void btDiscreteDynamicsWorld_setNumTasks(void *c,int p0); //method: setNumTasks void ( ::btDiscreteDynamicsWorld::* )( int ) -void btDiscreteDynamicsWorld_setSynchronizeAllMotionStates(void *c,int p0); //method: setSynchronizeAllMotionStates void ( ::btDiscreteDynamicsWorld::* )( bool ) -void btDiscreteDynamicsWorld_removeConstraint(void *c,void* p0); //method: removeConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint * ) -int btDiscreteDynamicsWorld_getNumConstraints(void *c); //method: getNumConstraints int ( ::btDiscreteDynamicsWorld::* )(  ) const-void btDiscreteDynamicsWorld_addCollisionObject(void *c,void* p0,short int p1,short int p2); //method: addCollisionObject void ( ::btDiscreteDynamicsWorld::* )( ::btCollisionObject *,short int,short int ) -void btDiscreteDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) -void btDiscreteDynamicsWorld_debugDrawConstraint(void *c,void* p0); //method: debugDrawConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint * ) -void btDiscreteDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btDiscreteDynamicsWorld::* )(  ) -void btDiscreteDynamicsWorld_addConstraint(void *c,void* p0,int p1); //method: addConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint *,bool ) -void btDiscreteDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btDiscreteDynamicsWorld::* )(  ) const-void btDiscreteDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -void btDiscreteDynamicsWorld_removeCharacter(void *c,void* p0); //method: removeCharacter void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -void* btDiscreteDynamicsWorld_getConstraint(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDiscreteDynamicsWorld::* )( int ) -void* btDiscreteDynamicsWorld_getConstraint0(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDiscreteDynamicsWorld::* )( int ) -void* btDiscreteDynamicsWorld_getConstraint1(void *c,int p0); //method: getConstraint ::btTypedConstraint const * ( ::btDiscreteDynamicsWorld::* )( int ) const-void* btDiscreteDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btDiscreteDynamicsWorld::* )(  ) -int btDiscreteDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btDiscreteDynamicsWorld::* )( ::btScalar,int,::btScalar ) -void btDiscreteDynamicsWorld_addCharacter(void *c,void* p0); //method: addCharacter void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -//not supported method: getWorldType ::btDynamicsWorldType ( ::btDiscreteDynamicsWorld::* )(  ) const-void btDiscreteDynamicsWorld_updateVehicles(void *c,float p0); //method: updateVehicles void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) -void btDiscreteDynamicsWorld_synchronizeSingleMotionState(void *c,void* p0); //method: synchronizeSingleMotionState void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) -void btDiscreteDynamicsWorld_addVehicle(void *c,void* p0); //method: addVehicle void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) -void btDiscreteDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btDiscreteDynamicsWorld::* )(  ) -//not supported method: getSimulationIslandManager ::btSimulationIslandManager * ( ::btDiscreteDynamicsWorld::* )(  ) -//not supported method: getSimulationIslandManager ::btSimulationIslandManager * ( ::btDiscreteDynamicsWorld::* )(  ) -//not supported method: getSimulationIslandManager ::btSimulationIslandManager const * ( ::btDiscreteDynamicsWorld::* )(  ) const-void btDiscreteDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btDiscreteDynamicsWorld::* )( ::btCollisionObject * ) -void btDiscreteDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btDiscreteDynamicsWorld::* )( ::btConstraintSolver * ) -void btDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btDynamicsWorld::* )( ::btVector3 const & ) -void btDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -void* btDynamicsWorld_getSolverInfo(void *c); //method: getSolverInfo ::btContactSolverInfo & ( ::btDynamicsWorld::* )(  ) -void btDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) -void btDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) -void btDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody *,short int,short int ) -void btDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btDynamicsWorld::* )(  ) -void btDynamicsWorld_removeVehicle(void *c,void* p0); //method: removeVehicle void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -void btDynamicsWorld_removeConstraint(void *c,void* p0); //method: removeConstraint void ( ::btDynamicsWorld::* )( ::btTypedConstraint * ) -int btDynamicsWorld_getNumConstraints(void *c); //method: getNumConstraints int ( ::btDynamicsWorld::* )(  ) const-void btDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) -//not supported method: setInternalTickCallback void ( ::btDynamicsWorld::* )( ::btInternalTickCallback,void *,bool ) -void btDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btDynamicsWorld::* )(  ) -void btDynamicsWorld_addConstraint(void *c,void* p0,int p1); //method: addConstraint void ( ::btDynamicsWorld::* )( ::btTypedConstraint *,bool ) -void btDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btDynamicsWorld::* )(  ) const-void btDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btDynamicsWorld::* )(  ) -void btDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -//not supported method: setWorldUserInfo void ( ::btDynamicsWorld::* )( void * ) -void btDynamicsWorld_removeCharacter(void *c,void* p0); //method: removeCharacter void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -void* btDynamicsWorld_getConstraint(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDynamicsWorld::* )( int ) -void* btDynamicsWorld_getConstraint0(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDynamicsWorld::* )( int ) -void* btDynamicsWorld_getConstraint1(void *c,int p0); //method: getConstraint ::btTypedConstraint const * ( ::btDynamicsWorld::* )( int ) const-void* btDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btDynamicsWorld::* )(  ) -int btDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btDynamicsWorld::* )( ::btScalar,int,::btScalar ) -void btDynamicsWorld_addCharacter(void *c,void* p0); //method: addCharacter void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -//not supported method: getWorldType ::btDynamicsWorldType ( ::btDynamicsWorld::* )(  ) const-void btDynamicsWorld_addVehicle(void *c,void* p0); //method: addVehicle void ( ::btDynamicsWorld::* )( ::btActionInterface * ) -//not supported method: getWorldUserInfo void * ( ::btDynamicsWorld::* )(  ) const-void btDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btDynamicsWorld::* )( ::btConstraintSolver * ) -void* btRigidBody_new0(void* p0); //constructor: btRigidBody  ( ::btRigidBody::* )( ::btRigidBody::btRigidBodyConstructionInfo const & ) -void* btRigidBody_new1(float p0,void* p1,void* p2,float* p3); //constructor: btRigidBody  ( ::btRigidBody::* )( ::btScalar,::btMotionState *,::btCollisionShape *,::btVector3 const & ) -void btRigidBody_free(void *c); void btRigidBody_setGravity(void *c,float* p0); //method: setGravity void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_updateDeactivation(void *c,float p0); //method: updateDeactivation void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_setAngularFactor(void *c,float* p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_setAngularFactor0(void *c,float* p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_setAngularFactor1(void *c,float p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_internalWritebackVelocity(void *c); //method: internalWritebackVelocity void ( ::btRigidBody::* )(  ) -void btRigidBody_internalWritebackVelocity0(void *c); //method: internalWritebackVelocity void ( ::btRigidBody::* )(  ) -void btRigidBody_internalWritebackVelocity1(void *c,float p0); //method: internalWritebackVelocity void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_getPushVelocity(void *c,float* ret); //method: getPushVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_internalGetDeltaAngularVelocity(void *c,float* ret); //method: internalGetDeltaAngularVelocity ::btVector3 & ( ::btRigidBody::* )(  ) -void btRigidBody_applyGravity(void *c); //method: applyGravity void ( ::btRigidBody::* )(  ) -//not supported method: serialize char const * ( ::btRigidBody::* )( void *,::btSerializer * ) const-void btRigidBody_getOrientation(void *c,float* ret); //method: getOrientation ::btQuaternion ( ::btRigidBody::* )(  ) const-void btRigidBody_applyCentralForce(void *c,float* p0); //method: applyCentralForce void ( ::btRigidBody::* )( ::btVector3 const & ) -//not supported method: internalApplyImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar const ) -void btRigidBody_setMotionState(void *c,void* p0); //method: setMotionState void ( ::btRigidBody::* )( ::btMotionState * ) -void btRigidBody_clearForces(void *c); //method: clearForces void ( ::btRigidBody::* )(  ) -void* btRigidBody_getMotionState(void *c); //method: getMotionState ::btMotionState * ( ::btRigidBody::* )(  ) -void* btRigidBody_getMotionState0(void *c); //method: getMotionState ::btMotionState * ( ::btRigidBody::* )(  ) -void* btRigidBody_getMotionState1(void *c); //method: getMotionState ::btMotionState const * ( ::btRigidBody::* )(  ) const-void btRigidBody_setDamping(void *c,float p0,float p1); //method: setDamping void ( ::btRigidBody::* )( ::btScalar,::btScalar ) -void btRigidBody_applyImpulse(void *c,float* p0,float* p1); //method: applyImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) -void btRigidBody_applyTorque(void *c,float* p0); //method: applyTorque void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_internalApplyPushImpulse(void *c,float* p0,float* p1,float p2); //method: internalApplyPushImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -int btRigidBody_wantsSleeping(void *c); //method: wantsSleeping bool ( ::btRigidBody::* )(  ) -void btRigidBody_setNewBroadphaseProxy(void *c,void* p0); //method: setNewBroadphaseProxy void ( ::btRigidBody::* )( ::btBroadphaseProxy * ) -void btRigidBody_getVelocityInLocalPoint(void *c,float* p0,float* ret); //method: getVelocityInLocalPoint ::btVector3 ( ::btRigidBody::* )( ::btVector3 const & ) const-int btRigidBody_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btRigidBody::* )(  ) const-void btRigidBody_setAngularVelocity(void *c,float* p0); //method: setAngularVelocity void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_getLinearFactor(void *c,float* ret); //method: getLinearFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_predictIntegratedTransform(void *c,float p0,float* p1); //method: predictIntegratedTransform void ( ::btRigidBody::* )( ::btScalar,::btTransform & ) -void btRigidBody_internalGetAngularFactor(void *c,float* ret); //method: internalGetAngularFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const-float btRigidBody_getAngularSleepingThreshold(void *c); //method: getAngularSleepingThreshold ::btScalar ( ::btRigidBody::* )(  ) const-void btRigidBody_applyDamping(void *c,float p0); //method: applyDamping void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_saveKinematicState(void *c,float p0); //method: saveKinematicState void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_setSleepingThresholds(void *c,float p0,float p1); //method: setSleepingThresholds void ( ::btRigidBody::* )( ::btScalar,::btScalar ) -void btRigidBody_getAngularVelocity(void *c,float* ret); //method: getAngularVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-float btRigidBody_getLinearSleepingThreshold(void *c); //method: getLinearSleepingThreshold ::btScalar ( ::btRigidBody::* )(  ) const-void btRigidBody_internalGetInvMass(void *c,float* ret); //method: internalGetInvMass ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_applyTorqueImpulse(void *c,float* p0); //method: applyTorqueImpulse void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_internalGetPushVelocity(void *c,float* ret); //method: internalGetPushVelocity ::btVector3 & ( ::btRigidBody::* )(  ) -void btRigidBody_setLinearFactor(void *c,float* p0); //method: setLinearFactor void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_serializeSingleObject(void *c,void* p0); //method: serializeSingleObject void ( ::btRigidBody::* )( ::btSerializer * ) const-float btRigidBody_getInvMass(void *c); //method: getInvMass ::btScalar ( ::btRigidBody::* )(  ) const-void btRigidBody_getTotalForce(void *c,float* ret); //method: getTotalForce ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getCenterOfMassPosition(void *c,float* ret); //method: getCenterOfMassPosition ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getAabb(void *c,float* p0,float* p1); //method: getAabb void ( ::btRigidBody::* )( ::btVector3 &,::btVector3 & ) const-void* btRigidBody_getBroadphaseProxy(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy const * ( ::btRigidBody::* )(  ) const-void* btRigidBody_getBroadphaseProxy0(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy const * ( ::btRigidBody::* )(  ) const-void* btRigidBody_getBroadphaseProxy1(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy * ( ::btRigidBody::* )(  ) -void* btRigidBody_getCollisionShape(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btRigidBody::* )(  ) const-void* btRigidBody_getCollisionShape0(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btRigidBody::* )(  ) const-void* btRigidBody_getCollisionShape1(void *c); //method: getCollisionShape ::btCollisionShape * ( ::btRigidBody::* )(  ) -void* btRigidBody_upcast(void* p0); //method: upcast ::btRigidBody const * (*)( ::btCollisionObject const * )-void* btRigidBody_upcast0(void* p0); //method: upcast ::btRigidBody const * (*)( ::btCollisionObject const * )-void* btRigidBody_upcast1(void* p0); //method: upcast ::btRigidBody * (*)( ::btCollisionObject * )-int btRigidBody_checkCollideWithOverride(void *c,void* p0); //method: checkCollideWithOverride bool ( ::btRigidBody::* )( ::btCollisionObject * ) -void btRigidBody_translate(void *c,float* p0); //method: translate void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_updateInertiaTensor(void *c); //method: updateInertiaTensor void ( ::btRigidBody::* )(  ) -void btRigidBody_applyForce(void *c,float* p0,float* p1); //method: applyForce void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) -void btRigidBody_internalGetAngularVelocity(void *c,float* p0); //method: internalGetAngularVelocity void ( ::btRigidBody::* )( ::btVector3 & ) const-void btRigidBody_applyCentralImpulse(void *c,float* p0); //method: applyCentralImpulse void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_getTurnVelocity(void *c,float* ret); //method: getTurnVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getDeltaLinearVelocity(void *c,float* ret); //method: getDeltaLinearVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_integrateVelocities(void *c,float p0); //method: integrateVelocities void ( ::btRigidBody::* )( ::btScalar ) -void btRigidBody_getGravity(void *c,float* ret); //method: getGravity ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_setMassProps(void *c,float p0,float* p1); //method: setMassProps void ( ::btRigidBody::* )( ::btScalar,::btVector3 const & ) -void btRigidBody_setCenterOfMassTransform(void *c,float* p0); //method: setCenterOfMassTransform void ( ::btRigidBody::* )( ::btTransform const & ) -void btRigidBody_setFlags(void *c,int p0); //method: setFlags void ( ::btRigidBody::* )( int ) -void btRigidBody_addConstraintRef(void *c,void* p0); //method: addConstraintRef void ( ::btRigidBody::* )( ::btTypedConstraint * ) -void btRigidBody_setLinearVelocity(void *c,float* p0); //method: setLinearVelocity void ( ::btRigidBody::* )( ::btVector3 const & ) -int btRigidBody_isInWorld(void *c); //method: isInWorld bool ( ::btRigidBody::* )(  ) const-void btRigidBody_getTotalTorque(void *c,float* ret); //method: getTotalTorque ::btVector3 const & ( ::btRigidBody::* )(  ) const-int btRigidBody_getNumConstraintRefs(void *c); //method: getNumConstraintRefs int ( ::btRigidBody::* )(  ) const-float btRigidBody_computeAngularImpulseDenominator(void *c,float* p0); //method: computeAngularImpulseDenominator ::btScalar ( ::btRigidBody::* )( ::btVector3 const & ) const-void btRigidBody_getInvInertiaTensorWorld(void *c,float* ret); //method: getInvInertiaTensorWorld ::btMatrix3x3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getDeltaAngularVelocity(void *c,float* ret); //method: getDeltaAngularVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_internalGetDeltaLinearVelocity(void *c,float* ret); //method: internalGetDeltaLinearVelocity ::btVector3 & ( ::btRigidBody::* )(  ) -float btRigidBody_computeImpulseDenominator(void *c,float* p0,float* p1); //method: computeImpulseDenominator ::btScalar ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) const-void* btRigidBody_getConstraintRef(void *c,int p0); //method: getConstraintRef ::btTypedConstraint * ( ::btRigidBody::* )( int ) -float btRigidBody_getAngularDamping(void *c); //method: getAngularDamping ::btScalar ( ::btRigidBody::* )(  ) const-void btRigidBody_internalGetTurnVelocity(void *c,float* ret); //method: internalGetTurnVelocity ::btVector3 & ( ::btRigidBody::* )(  ) -void btRigidBody_proceedToTransform(void *c,float* p0); //method: proceedToTransform void ( ::btRigidBody::* )( ::btTransform const & ) -void btRigidBody_setInvInertiaDiagLocal(void *c,float* p0); //method: setInvInertiaDiagLocal void ( ::btRigidBody::* )( ::btVector3 const & ) -void btRigidBody_getInvInertiaDiagLocal(void *c,float* ret); //method: getInvInertiaDiagLocal ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getCenterOfMassTransform(void *c,float* ret); //method: getCenterOfMassTransform ::btTransform const & ( ::btRigidBody::* )(  ) const-void btRigidBody_removeConstraintRef(void *c,void* p0); //method: removeConstraintRef void ( ::btRigidBody::* )( ::btTypedConstraint * ) -void btRigidBody_getAngularFactor(void *c,float* ret); //method: getAngularFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const-void btRigidBody_getLinearVelocity(void *c,float* ret); //method: getLinearVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const-int btRigidBody_getFlags(void *c); //method: getFlags int ( ::btRigidBody::* )(  ) const-void btRigidBody_internalGetVelocityInLocalPointObsolete(void *c,float* p0,float* p1); //method: internalGetVelocityInLocalPointObsolete void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 & ) const-float btRigidBody_getLinearDamping(void *c); //method: getLinearDamping ::btScalar ( ::btRigidBody::* )(  ) const-void btRigidBody_m_contactSolverType_set(void *c,int a); //attribute: int btRigidBody->m_contactSolverType-int btRigidBody_m_contactSolverType_get(void *c); //attribute: int btRigidBody->m_contactSolverType-void btRigidBody_m_frictionSolverType_set(void *c,int a); //attribute: int btRigidBody->m_frictionSolverType-int btRigidBody_m_frictionSolverType_get(void *c); //attribute: int btRigidBody->m_frictionSolverType-void* btRigidBody_btRigidBodyConstructionInfo_new(float p0,void* p1,void* p2,float* p3); //constructor: btRigidBodyConstructionInfo  ( ::btRigidBody::btRigidBodyConstructionInfo::* )( ::btScalar,::btMotionState *,::btCollisionShape *,::btVector3 const & ) -void btRigidBody_btRigidBodyConstructionInfo_free(void *c); void btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingFactor-float btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingFactor-void btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingThresholdSqr-float btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingThresholdSqr-void btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_set(void *c,int a); //attribute: bool btRigidBody_btRigidBodyConstructionInfo->m_additionalDamping-int btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_get(void *c); //attribute: bool btRigidBody_btRigidBodyConstructionInfo->m_additionalDamping-void btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalDampingFactor-float btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalDampingFactor-void btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalLinearDampingThresholdSqr-float btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalLinearDampingThresholdSqr-void btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularDamping-float btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularDamping-void btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularSleepingThreshold-float btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularSleepingThreshold-void btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_set(void *c,void* a); //attribute: ::btCollisionShape * btRigidBody_btRigidBodyConstructionInfo->m_collisionShape-// attribute getter not supported: //attribute: ::btCollisionShape * btRigidBody_btRigidBodyConstructionInfo->m_collisionShape-void btRigidBody_btRigidBodyConstructionInfo_m_friction_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_friction-float btRigidBody_btRigidBodyConstructionInfo_m_friction_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_friction-void btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearDamping-float btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearDamping-void btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearSleepingThreshold-float btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearSleepingThreshold-void btRigidBody_btRigidBodyConstructionInfo_m_localInertia_set(void *c,float* a); //attribute: ::btVector3 btRigidBody_btRigidBodyConstructionInfo->m_localInertia-void btRigidBody_btRigidBodyConstructionInfo_m_localInertia_get(void *c,float* a);-void btRigidBody_btRigidBodyConstructionInfo_m_mass_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_mass-float btRigidBody_btRigidBodyConstructionInfo_m_mass_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_mass-void btRigidBody_btRigidBodyConstructionInfo_m_motionState_set(void *c,void* a); //attribute: ::btMotionState * btRigidBody_btRigidBodyConstructionInfo->m_motionState-// attribute getter not supported: //attribute: ::btMotionState * btRigidBody_btRigidBodyConstructionInfo->m_motionState-void btRigidBody_btRigidBodyConstructionInfo_m_restitution_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_restitution-float btRigidBody_btRigidBodyConstructionInfo_m_restitution_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_restitution-void btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_set(void *c,float* a); //attribute: ::btTransform btRigidBody_btRigidBodyConstructionInfo->m_startWorldTransform-void btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_get(void *c,float* a);-void* btRigidBodyDoubleData_new(); //constructor: btRigidBodyDoubleData  ( ::btRigidBodyDoubleData::* )(  ) -void btRigidBodyDoubleData_free(void *c); // attribute not supported: //attribute: ::btCollisionObjectDoubleData btRigidBodyDoubleData->m_collisionObjectData-// attribute not supported: //attribute: ::btMatrix3x3DoubleData btRigidBodyDoubleData->m_invInertiaTensorWorld-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearVelocity-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularVelocity-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularFactor-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearFactor-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity_acceleration-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_invInertiaLocal-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalForce-// attribute not supported: //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalTorque-void btRigidBodyDoubleData_m_inverseMass_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_inverseMass-double btRigidBodyDoubleData_m_inverseMass_get(void *c); //attribute: double btRigidBodyDoubleData->m_inverseMass-void btRigidBodyDoubleData_m_linearDamping_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_linearDamping-double btRigidBodyDoubleData_m_linearDamping_get(void *c); //attribute: double btRigidBodyDoubleData->m_linearDamping-void btRigidBodyDoubleData_m_angularDamping_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_angularDamping-double btRigidBodyDoubleData_m_angularDamping_get(void *c); //attribute: double btRigidBodyDoubleData->m_angularDamping-void btRigidBodyDoubleData_m_additionalDampingFactor_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalDampingFactor-double btRigidBodyDoubleData_m_additionalDampingFactor_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalDampingFactor-void btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalLinearDampingThresholdSqr-double btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalLinearDampingThresholdSqr-void btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingThresholdSqr-double btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingThresholdSqr-void btRigidBodyDoubleData_m_additionalAngularDampingFactor_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingFactor-double btRigidBodyDoubleData_m_additionalAngularDampingFactor_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingFactor-void btRigidBodyDoubleData_m_linearSleepingThreshold_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_linearSleepingThreshold-double btRigidBodyDoubleData_m_linearSleepingThreshold_get(void *c); //attribute: double btRigidBodyDoubleData->m_linearSleepingThreshold-void btRigidBodyDoubleData_m_angularSleepingThreshold_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_angularSleepingThreshold-double btRigidBodyDoubleData_m_angularSleepingThreshold_get(void *c); //attribute: double btRigidBodyDoubleData->m_angularSleepingThreshold-void btRigidBodyDoubleData_m_additionalDamping_set(void *c,int a); //attribute: int btRigidBodyDoubleData->m_additionalDamping-int btRigidBodyDoubleData_m_additionalDamping_get(void *c); //attribute: int btRigidBodyDoubleData->m_additionalDamping-// attribute not supported: //attribute: char[4] btRigidBodyDoubleData->m_padding-void* btRigidBodyFloatData_new(); //constructor: btRigidBodyFloatData  ( ::btRigidBodyFloatData::* )(  ) -void btRigidBodyFloatData_free(void *c); void btRigidBodyFloatData_m_additionalAngularDampingFactor_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingFactor-float btRigidBodyFloatData_m_additionalAngularDampingFactor_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingFactor-void btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingThresholdSqr-float btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingThresholdSqr-void btRigidBodyFloatData_m_additionalDamping_set(void *c,int a); //attribute: int btRigidBodyFloatData->m_additionalDamping-int btRigidBodyFloatData_m_additionalDamping_get(void *c); //attribute: int btRigidBodyFloatData->m_additionalDamping-void btRigidBodyFloatData_m_additionalDampingFactor_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalDampingFactor-float btRigidBodyFloatData_m_additionalDampingFactor_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalDampingFactor-void btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalLinearDampingThresholdSqr-float btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalLinearDampingThresholdSqr-void btRigidBodyFloatData_m_angularDamping_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_angularDamping-float btRigidBodyFloatData_m_angularDamping_get(void *c); //attribute: float btRigidBodyFloatData->m_angularDamping-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularFactor-void btRigidBodyFloatData_m_angularSleepingThreshold_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_angularSleepingThreshold-float btRigidBodyFloatData_m_angularSleepingThreshold_get(void *c); //attribute: float btRigidBodyFloatData->m_angularSleepingThreshold-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularVelocity-// attribute not supported: //attribute: ::btCollisionObjectFloatData btRigidBodyFloatData->m_collisionObjectData-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity_acceleration-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_invInertiaLocal-// attribute not supported: //attribute: ::btMatrix3x3FloatData btRigidBodyFloatData->m_invInertiaTensorWorld-void btRigidBodyFloatData_m_inverseMass_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_inverseMass-float btRigidBodyFloatData_m_inverseMass_get(void *c); //attribute: float btRigidBodyFloatData->m_inverseMass-void btRigidBodyFloatData_m_linearDamping_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_linearDamping-float btRigidBodyFloatData_m_linearDamping_get(void *c); //attribute: float btRigidBodyFloatData->m_linearDamping-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearFactor-void btRigidBodyFloatData_m_linearSleepingThreshold_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_linearSleepingThreshold-float btRigidBodyFloatData_m_linearSleepingThreshold_get(void *c); //attribute: float btRigidBodyFloatData->m_linearSleepingThreshold-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearVelocity-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalForce-// attribute not supported: //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalTorque-void* btSimpleDynamicsWorld_new(void* p0,void* p1,void* p2,void* p3); //constructor: btSimpleDynamicsWorld  ( ::btSimpleDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration * ) -void btSimpleDynamicsWorld_free(void *c); void btSimpleDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btSimpleDynamicsWorld::* )( ::btVector3 const & ) -void btSimpleDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btSimpleDynamicsWorld::* )( ::btActionInterface * ) -void btSimpleDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btSimpleDynamicsWorld::* )( ::btConstraintSolver * ) -void* btSimpleDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btSimpleDynamicsWorld::* )(  ) -int btSimpleDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btSimpleDynamicsWorld::* )( ::btScalar,int,::btScalar ) -//not supported method: getWorldType ::btDynamicsWorldType ( ::btSimpleDynamicsWorld::* )(  ) const-void btSimpleDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) -void btSimpleDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) -void btSimpleDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) -void btSimpleDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody *,short int,short int ) -void btSimpleDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btSimpleDynamicsWorld::* )(  ) const-void btSimpleDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btSimpleDynamicsWorld::* )(  ) -void btSimpleDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btSimpleDynamicsWorld::* )( ::btCollisionObject * ) -void btSimpleDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btSimpleDynamicsWorld::* )(  ) -void btSimpleDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btSimpleDynamicsWorld::* )( ::btActionInterface * ) -void btSimpleDynamicsWorld_updateAabbs(void *c); //method: updateAabbs void ( ::btSimpleDynamicsWorld::* )(  ) -void btSimpleDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btSimpleDynamicsWorld::* )(  ) -void* btWheelInfo_RaycastInfo_new(); //constructor: RaycastInfo  ( ::btWheelInfo::RaycastInfo::* )(  ) -void btWheelInfo_RaycastInfo_free(void *c); void btWheelInfo_RaycastInfo_m_contactNormalWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_contactNormalWS-void btWheelInfo_RaycastInfo_m_contactNormalWS_get(void *c,float* a);-void btWheelInfo_RaycastInfo_m_contactPointWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_contactPointWS-void btWheelInfo_RaycastInfo_m_contactPointWS_get(void *c,float* a);-void btWheelInfo_RaycastInfo_m_suspensionLength_set(void *c,float a); //attribute: ::btScalar btWheelInfo_RaycastInfo->m_suspensionLength-float btWheelInfo_RaycastInfo_m_suspensionLength_get(void *c); //attribute: ::btScalar btWheelInfo_RaycastInfo->m_suspensionLength-void btWheelInfo_RaycastInfo_m_hardPointWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_hardPointWS-void btWheelInfo_RaycastInfo_m_hardPointWS_get(void *c,float* a);-void btWheelInfo_RaycastInfo_m_wheelDirectionWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_wheelDirectionWS-void btWheelInfo_RaycastInfo_m_wheelDirectionWS_get(void *c,float* a);-void btWheelInfo_RaycastInfo_m_wheelAxleWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_wheelAxleWS-void btWheelInfo_RaycastInfo_m_wheelAxleWS_get(void *c,float* a);-void btWheelInfo_RaycastInfo_m_isInContact_set(void *c,int a); //attribute: bool btWheelInfo_RaycastInfo->m_isInContact-int btWheelInfo_RaycastInfo_m_isInContact_get(void *c); //attribute: bool btWheelInfo_RaycastInfo->m_isInContact-// attribute not supported: //attribute: void * btWheelInfo_RaycastInfo->m_groundObject-void* btDefaultVehicleRaycaster_new(void* p0); //constructor: btDefaultVehicleRaycaster  ( ::btDefaultVehicleRaycaster::* )( ::btDynamicsWorld * ) -void btDefaultVehicleRaycaster_free(void *c); //not supported method: castRay void * ( ::btDefaultVehicleRaycaster::* )( ::btVector3 const &,::btVector3 const &,::btVehicleRaycaster::btVehicleRaycasterResult & ) -void* btRaycastVehicle_new(void* p0,void* p1,void* p2); //constructor: btRaycastVehicle  ( ::btRaycastVehicle::* )( ::btRaycastVehicle::btVehicleTuning const &,::btRigidBody *,::btVehicleRaycaster * ) -void btRaycastVehicle_free(void *c); void btRaycastVehicle_updateSuspension(void *c,float p0); //method: updateSuspension void ( ::btRaycastVehicle::* )( ::btScalar ) -void* btRaycastVehicle_getRigidBody(void *c); //method: getRigidBody ::btRigidBody * ( ::btRaycastVehicle::* )(  ) -void* btRaycastVehicle_getRigidBody0(void *c); //method: getRigidBody ::btRigidBody * ( ::btRaycastVehicle::* )(  ) -void* btRaycastVehicle_getRigidBody1(void *c); //method: getRigidBody ::btRigidBody const * ( ::btRaycastVehicle::* )(  ) const-int btRaycastVehicle_getUserConstraintId(void *c); //method: getUserConstraintId int ( ::btRaycastVehicle::* )(  ) const-void btRaycastVehicle_getWheelTransformWS(void *c,int p0,float* ret); //method: getWheelTransformWS ::btTransform const & ( ::btRaycastVehicle::* )( int ) const-void* btRaycastVehicle_addWheel(void *c,float* p0,float* p1,float* p2,float p3,float p4,void* p5,int p6); //method: addWheel ::btWheelInfo & ( ::btRaycastVehicle::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btRaycastVehicle::btVehicleTuning const &,bool ) -void btRaycastVehicle_updateWheelTransform(void *c,int p0,int p1); //method: updateWheelTransform void ( ::btRaycastVehicle::* )( int,bool ) -void btRaycastVehicle_setUserConstraintId(void *c,int p0); //method: setUserConstraintId void ( ::btRaycastVehicle::* )( int ) -int btRaycastVehicle_getNumWheels(void *c); //method: getNumWheels int ( ::btRaycastVehicle::* )(  ) const-float btRaycastVehicle_rayCast(void *c,void* p0); //method: rayCast ::btScalar ( ::btRaycastVehicle::* )( ::btWheelInfo & ) -int btRaycastVehicle_getRightAxis(void *c); //method: getRightAxis int ( ::btRaycastVehicle::* )(  ) const-int btRaycastVehicle_getUpAxis(void *c); //method: getUpAxis int ( ::btRaycastVehicle::* )(  ) const-void btRaycastVehicle_getForwardVector(void *c,float* ret); //method: getForwardVector ::btVector3 ( ::btRaycastVehicle::* )(  ) const-void* btRaycastVehicle_getWheelInfo(void *c,int p0); //method: getWheelInfo ::btWheelInfo const & ( ::btRaycastVehicle::* )( int ) const-void* btRaycastVehicle_getWheelInfo0(void *c,int p0); //method: getWheelInfo ::btWheelInfo const & ( ::btRaycastVehicle::* )( int ) const-void* btRaycastVehicle_getWheelInfo1(void *c,int p0); //method: getWheelInfo ::btWheelInfo & ( ::btRaycastVehicle::* )( int ) -void btRaycastVehicle_getChassisWorldTransform(void *c,float* ret); //method: getChassisWorldTransform ::btTransform const & ( ::btRaycastVehicle::* )(  ) const-void btRaycastVehicle_updateWheelTransformsWS(void *c,void* p0,int p1); //method: updateWheelTransformsWS void ( ::btRaycastVehicle::* )( ::btWheelInfo &,bool ) -void btRaycastVehicle_applyEngineForce(void *c,float p0,int p1); //method: applyEngineForce void ( ::btRaycastVehicle::* )( ::btScalar,int ) -void btRaycastVehicle_resetSuspension(void *c); //method: resetSuspension void ( ::btRaycastVehicle::* )(  ) -void btRaycastVehicle_setCoordinateSystem(void *c,int p0,int p1,int p2); //method: setCoordinateSystem void ( ::btRaycastVehicle::* )( int,int,int ) -void btRaycastVehicle_setUserConstraintType(void *c,int p0); //method: setUserConstraintType void ( ::btRaycastVehicle::* )( int ) -void btRaycastVehicle_debugDraw(void *c,void* p0); //method: debugDraw void ( ::btRaycastVehicle::* )( ::btIDebugDraw * ) -void btRaycastVehicle_updateFriction(void *c,float p0); //method: updateFriction void ( ::btRaycastVehicle::* )( ::btScalar ) -int btRaycastVehicle_getForwardAxis(void *c); //method: getForwardAxis int ( ::btRaycastVehicle::* )(  ) const-float btRaycastVehicle_getSteeringValue(void *c,int p0); //method: getSteeringValue ::btScalar ( ::btRaycastVehicle::* )( int ) const-int btRaycastVehicle_getUserConstraintType(void *c); //method: getUserConstraintType int ( ::btRaycastVehicle::* )(  ) const-void btRaycastVehicle_setPitchControl(void *c,float p0); //method: setPitchControl void ( ::btRaycastVehicle::* )( ::btScalar ) -float btRaycastVehicle_getCurrentSpeedKmHour(void *c); //method: getCurrentSpeedKmHour ::btScalar ( ::btRaycastVehicle::* )(  ) const-void btRaycastVehicle_setBrake(void *c,float p0,int p1); //method: setBrake void ( ::btRaycastVehicle::* )( ::btScalar,int ) -void btRaycastVehicle_setSteeringValue(void *c,float p0,int p1); //method: setSteeringValue void ( ::btRaycastVehicle::* )( ::btScalar,int ) -void btRaycastVehicle_updateVehicle(void *c,float p0); //method: updateVehicle void ( ::btRaycastVehicle::* )( ::btScalar ) -void btRaycastVehicle_updateAction(void *c,void* p0,float p1); //method: updateAction void ( ::btRaycastVehicle::* )( ::btCollisionWorld *,::btScalar ) -// attribute not supported: //attribute: ::btAlignedObjectArray<btWheelInfo> btRaycastVehicle->m_wheelInfo-//not supported method: castRay void * ( ::btVehicleRaycaster::* )( ::btVector3 const &,::btVector3 const &,::btVehicleRaycaster::btVehicleRaycasterResult & ) -void* btVehicleRaycaster_btVehicleRaycasterResult_new(); //constructor: btVehicleRaycasterResult  ( ::btVehicleRaycaster::btVehicleRaycasterResult::* )(  ) -void btVehicleRaycaster_btVehicleRaycasterResult_free(void *c); void btVehicleRaycaster_btVehicleRaycasterResult_m_distFraction_set(void *c,float a); //attribute: ::btScalar btVehicleRaycaster_btVehicleRaycasterResult->m_distFraction-float btVehicleRaycaster_btVehicleRaycasterResult_m_distFraction_get(void *c); //attribute: ::btScalar btVehicleRaycaster_btVehicleRaycasterResult->m_distFraction-void btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_set(void *c,float* a); //attribute: ::btVector3 btVehicleRaycaster_btVehicleRaycasterResult->m_hitNormalInWorld-void btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_get(void *c,float* a);-void btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_set(void *c,float* a); //attribute: ::btVector3 btVehicleRaycaster_btVehicleRaycasterResult->m_hitPointInWorld-void btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_get(void *c,float* a);-void* btRaycastVehicle_btVehicleTuning_new(); //constructor: btVehicleTuning  ( ::btRaycastVehicle::btVehicleTuning::* )(  ) -void btRaycastVehicle_btVehicleTuning_free(void *c); void btRaycastVehicle_btVehicleTuning_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_frictionSlip-float btRaycastVehicle_btVehicleTuning_m_frictionSlip_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_frictionSlip-void btRaycastVehicle_btVehicleTuning_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionForce-float btRaycastVehicle_btVehicleTuning_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionForce-void btRaycastVehicle_btVehicleTuning_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionTravelCm-float btRaycastVehicle_btVehicleTuning_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionTravelCm-void btRaycastVehicle_btVehicleTuning_m_suspensionCompression_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionCompression-float btRaycastVehicle_btVehicleTuning_m_suspensionCompression_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionCompression-void btRaycastVehicle_btVehicleTuning_m_suspensionDamping_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionDamping-float btRaycastVehicle_btVehicleTuning_m_suspensionDamping_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionDamping-void btRaycastVehicle_btVehicleTuning_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionStiffness-float btRaycastVehicle_btVehicleTuning_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionStiffness-void* btWheelInfo_new(void* p0); //constructor: btWheelInfo  ( ::btWheelInfo::* )( ::btWheelInfoConstructionInfo & ) -void btWheelInfo_free(void *c); float btWheelInfo_getSuspensionRestLength(void *c); //method: getSuspensionRestLength ::btScalar ( ::btWheelInfo::* )(  ) const-void btWheelInfo_updateWheel(void *c,void* p0,void* p1); //method: updateWheel void ( ::btWheelInfo::* )( ::btRigidBody const &,::btWheelInfo::RaycastInfo & ) -void btWheelInfo_m_bIsFrontWheel_set(void *c,int a); //attribute: bool btWheelInfo->m_bIsFrontWheel-int btWheelInfo_m_bIsFrontWheel_get(void *c); //attribute: bool btWheelInfo->m_bIsFrontWheel-void btWheelInfo_m_brake_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_brake-float btWheelInfo_m_brake_get(void *c); //attribute: ::btScalar btWheelInfo->m_brake-void btWheelInfo_m_chassisConnectionPointCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_chassisConnectionPointCS-void btWheelInfo_m_chassisConnectionPointCS_get(void *c,float* a);-// attribute not supported: //attribute: void * btWheelInfo->m_clientInfo-void btWheelInfo_m_clippedInvContactDotSuspension_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_clippedInvContactDotSuspension-float btWheelInfo_m_clippedInvContactDotSuspension_get(void *c); //attribute: ::btScalar btWheelInfo->m_clippedInvContactDotSuspension-void btWheelInfo_m_deltaRotation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_deltaRotation-float btWheelInfo_m_deltaRotation_get(void *c); //attribute: ::btScalar btWheelInfo->m_deltaRotation-void btWheelInfo_m_engineForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_engineForce-float btWheelInfo_m_engineForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_engineForce-void btWheelInfo_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_frictionSlip-float btWheelInfo_m_frictionSlip_get(void *c); //attribute: ::btScalar btWheelInfo->m_frictionSlip-void btWheelInfo_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_maxSuspensionForce-float btWheelInfo_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_maxSuspensionForce-void btWheelInfo_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_maxSuspensionTravelCm-float btWheelInfo_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btWheelInfo->m_maxSuspensionTravelCm-// attribute not supported: //attribute: ::btWheelInfo::RaycastInfo btWheelInfo->m_raycastInfo-void btWheelInfo_m_rollInfluence_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_rollInfluence-float btWheelInfo_m_rollInfluence_get(void *c); //attribute: ::btScalar btWheelInfo->m_rollInfluence-void btWheelInfo_m_rotation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_rotation-float btWheelInfo_m_rotation_get(void *c); //attribute: ::btScalar btWheelInfo->m_rotation-void btWheelInfo_m_skidInfo_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_skidInfo-float btWheelInfo_m_skidInfo_get(void *c); //attribute: ::btScalar btWheelInfo->m_skidInfo-void btWheelInfo_m_steering_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_steering-float btWheelInfo_m_steering_get(void *c); //attribute: ::btScalar btWheelInfo->m_steering-void btWheelInfo_m_suspensionRelativeVelocity_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionRelativeVelocity-float btWheelInfo_m_suspensionRelativeVelocity_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionRelativeVelocity-void btWheelInfo_m_suspensionRestLength1_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionRestLength1-float btWheelInfo_m_suspensionRestLength1_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionRestLength1-void btWheelInfo_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionStiffness-float btWheelInfo_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionStiffness-void btWheelInfo_m_wheelAxleCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_wheelAxleCS-void btWheelInfo_m_wheelAxleCS_get(void *c,float* a);-void btWheelInfo_m_wheelDirectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_wheelDirectionCS-void btWheelInfo_m_wheelDirectionCS_get(void *c,float* a);-void btWheelInfo_m_wheelsDampingCompression_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsDampingCompression-float btWheelInfo_m_wheelsDampingCompression_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsDampingCompression-void btWheelInfo_m_wheelsDampingRelaxation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsDampingRelaxation-float btWheelInfo_m_wheelsDampingRelaxation_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsDampingRelaxation-void btWheelInfo_m_wheelsRadius_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsRadius-float btWheelInfo_m_wheelsRadius_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsRadius-void btWheelInfo_m_wheelsSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsSuspensionForce-float btWheelInfo_m_wheelsSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsSuspensionForce-void btWheelInfo_m_worldTransform_set(void *c,float* a); //attribute: ::btTransform btWheelInfo->m_worldTransform-void btWheelInfo_m_worldTransform_get(void *c,float* a);-void* btWheelInfoConstructionInfo_new(); //constructor: btWheelInfoConstructionInfo  ( ::btWheelInfoConstructionInfo::* )(  ) -void btWheelInfoConstructionInfo_free(void *c); void btWheelInfoConstructionInfo_m_bIsFrontWheel_set(void *c,int a); //attribute: bool btWheelInfoConstructionInfo->m_bIsFrontWheel-int btWheelInfoConstructionInfo_m_bIsFrontWheel_get(void *c); //attribute: bool btWheelInfoConstructionInfo->m_bIsFrontWheel-void btWheelInfoConstructionInfo_m_chassisConnectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_chassisConnectionCS-void btWheelInfoConstructionInfo_m_chassisConnectionCS_get(void *c,float* a);-void btWheelInfoConstructionInfo_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_frictionSlip-float btWheelInfoConstructionInfo_m_frictionSlip_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_frictionSlip-void btWheelInfoConstructionInfo_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionForce-float btWheelInfoConstructionInfo_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionForce-void btWheelInfoConstructionInfo_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionTravelCm-float btWheelInfoConstructionInfo_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionTravelCm-void btWheelInfoConstructionInfo_m_suspensionRestLength_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionRestLength-float btWheelInfoConstructionInfo_m_suspensionRestLength_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionRestLength-void btWheelInfoConstructionInfo_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionStiffness-float btWheelInfoConstructionInfo_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionStiffness-void btWheelInfoConstructionInfo_m_wheelAxleCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_wheelAxleCS-void btWheelInfoConstructionInfo_m_wheelAxleCS_get(void *c,float* a);-void btWheelInfoConstructionInfo_m_wheelDirectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_wheelDirectionCS-void btWheelInfoConstructionInfo_m_wheelDirectionCS_get(void *c,float* a);-void btWheelInfoConstructionInfo_m_wheelRadius_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelRadius-float btWheelInfoConstructionInfo_m_wheelRadius_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelRadius-void btWheelInfoConstructionInfo_m_wheelsDampingCompression_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingCompression-float btWheelInfoConstructionInfo_m_wheelsDampingCompression_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingCompression-void btWheelInfoConstructionInfo_m_wheelsDampingRelaxation_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingRelaxation-float btWheelInfoConstructionInfo_m_wheelsDampingRelaxation_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingRelaxation-void* btBU_Simplex1to4_new0(); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )(  ) -void* btBU_Simplex1to4_new1(float* p0); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const & ) -void* btBU_Simplex1to4_new2(float* p0,float* p1); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const & ) -void* btBU_Simplex1to4_new3(float* p0,float* p1,float* p2); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void* btBU_Simplex1to4_new4(float* p0,float* p1,float* p2,float* p3); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btBU_Simplex1to4_free(void *c); void btBU_Simplex1to4_reset(void *c); //method: reset void ( ::btBU_Simplex1to4::* )(  ) -int btBU_Simplex1to4_getNumPlanes(void *c); //method: getNumPlanes int ( ::btBU_Simplex1to4::* )(  ) const-int btBU_Simplex1to4_getIndex(void *c,int p0); //method: getIndex int ( ::btBU_Simplex1to4::* )( int ) const-int btBU_Simplex1to4_getNumEdges(void *c); //method: getNumEdges int ( ::btBU_Simplex1to4::* )(  ) const-char const * btBU_Simplex1to4_getName(void *c); //method: getName char const * ( ::btBU_Simplex1to4::* )(  ) const-void btBU_Simplex1to4_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btBU_Simplex1to4::* )( int,::btVector3 & ) const-void btBU_Simplex1to4_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btBU_Simplex1to4::* )( int,::btVector3 &,::btVector3 & ) const-void btBU_Simplex1to4_addVertex(void *c,float* p0); //method: addVertex void ( ::btBU_Simplex1to4::* )( ::btVector3 const & ) -int btBU_Simplex1to4_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btScalar ) const-void btBU_Simplex1to4_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btBU_Simplex1to4::* )( ::btVector3 &,::btVector3 &,int ) const-void btBU_Simplex1to4_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btBU_Simplex1to4::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-int btBU_Simplex1to4_getNumVertices(void *c); //method: getNumVertices int ( ::btBU_Simplex1to4::* )(  ) const-void* btBoxShape_new(float* p0); //constructor: btBoxShape  ( ::btBoxShape::* )( ::btVector3 const & ) -void btBoxShape_free(void *c); void btBoxShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btBoxShape::* )( ::btScalar,::btVector3 & ) const-int btBoxShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btBoxShape::* )(  ) const-void btBoxShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btBoxShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btBoxShape::* )( ::btVector3 const *,::btVector3 *,int ) const-void btBoxShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btBoxShape::* )( ::btVector3 const & ) -void btBoxShape_getPlaneEquation(void *c,float* p0,int p1); //method: getPlaneEquation void ( ::btBoxShape::* )( ::btVector4 &,int ) const-void btBoxShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btBoxShape::* )( int,::btVector3 & ) const-int btBoxShape_getNumEdges(void *c); //method: getNumEdges int ( ::btBoxShape::* )(  ) const-char const * btBoxShape_getName(void *c); //method: getName char const * ( ::btBoxShape::* )(  ) const-void btBoxShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btBoxShape::* )( int,::btVector3 & ) const-void btBoxShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btBoxShape::* )( int,::btVector3 &,::btVector3 & ) const-int btBoxShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btBoxShape::* )( ::btVector3 const &,::btScalar ) const-void btBoxShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btBoxShape::* )( ::btVector3 &,::btVector3 &,int ) const-void btBoxShape_getHalfExtentsWithoutMargin(void *c,float* ret); //method: getHalfExtentsWithoutMargin ::btVector3 const & ( ::btBoxShape::* )(  ) const-int btBoxShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btBoxShape::* )(  ) const-void btBoxShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btBoxShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btBoxShape_setMargin(void *c,float p0); //method: setMargin void ( ::btBoxShape::* )( ::btScalar ) -int btBoxShape_getNumVertices(void *c); //method: getNumVertices int ( ::btBoxShape::* )(  ) const-void btBoxShape_getHalfExtentsWithMargin(void *c,float* ret); //method: getHalfExtentsWithMargin ::btVector3 ( ::btBoxShape::* )(  ) const-void btBoxShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btBoxShape::* )( ::btVector3 const & ) const-void* btBvhTriangleMeshShape_new0(void* p0,int p1,int p2); //constructor: btBvhTriangleMeshShape  ( ::btBvhTriangleMeshShape::* )( ::btStridingMeshInterface *,bool,bool ) -void* btBvhTriangleMeshShape_new1(void* p0,int p1,float* p2,float* p3,int p4); //constructor: btBvhTriangleMeshShape  ( ::btBvhTriangleMeshShape::* )( ::btStridingMeshInterface *,bool,::btVector3 const &,::btVector3 const &,bool ) -void btBvhTriangleMeshShape_free(void *c); int btBvhTriangleMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btBvhTriangleMeshShape::* )(  ) const-void btBvhTriangleMeshShape_buildOptimizedBvh(void *c); //method: buildOptimizedBvh void ( ::btBvhTriangleMeshShape::* )(  ) -void btBvhTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const & ) -void btBvhTriangleMeshShape_performRaycast(void *c,void* p0,float* p1,float* p2); //method: performRaycast void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) -void btBvhTriangleMeshShape_setTriangleInfoMap(void *c,void* p0); //method: setTriangleInfoMap void ( ::btBvhTriangleMeshShape::* )( ::btTriangleInfoMap * ) -int btBvhTriangleMeshShape_usesQuantizedAabbCompression(void *c); //method: usesQuantizedAabbCompression bool ( ::btBvhTriangleMeshShape::* )(  ) const-char const * btBvhTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btBvhTriangleMeshShape::* )(  ) const-//not supported method: serialize char const * ( ::btBvhTriangleMeshShape::* )( void *,::btSerializer * ) const-void* btBvhTriangleMeshShape_getTriangleInfoMap(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap const * ( ::btBvhTriangleMeshShape::* )(  ) const-void* btBvhTriangleMeshShape_getTriangleInfoMap0(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap const * ( ::btBvhTriangleMeshShape::* )(  ) const-void* btBvhTriangleMeshShape_getTriangleInfoMap1(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap * ( ::btBvhTriangleMeshShape::* )(  ) -void btBvhTriangleMeshShape_serializeSingleTriangleInfoMap(void *c,void* p0); //method: serializeSingleTriangleInfoMap void ( ::btBvhTriangleMeshShape::* )( ::btSerializer * ) const-int btBvhTriangleMeshShape_getOwnsBvh(void *c); //method: getOwnsBvh bool ( ::btBvhTriangleMeshShape::* )(  ) const-void btBvhTriangleMeshShape_partialRefitTree(void *c,float* p0,float* p1); //method: partialRefitTree void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const &,::btVector3 const & ) -void* btBvhTriangleMeshShape_getOptimizedBvh(void *c); //method: getOptimizedBvh ::btOptimizedBvh * ( ::btBvhTriangleMeshShape::* )(  ) -void btBvhTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void btBvhTriangleMeshShape_refitTree(void *c,float* p0,float* p1); //method: refitTree void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const &,::btVector3 const & ) -void btBvhTriangleMeshShape_performConvexcast(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: performConvexcast void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btBvhTriangleMeshShape_serializeSingleBvh(void *c,void* p0); //method: serializeSingleBvh void ( ::btBvhTriangleMeshShape::* )( ::btSerializer * ) const-void btBvhTriangleMeshShape_setOptimizedBvh(void *c,void* p0,float* p1); //method: setOptimizedBvh void ( ::btBvhTriangleMeshShape::* )( ::btOptimizedBvh *,::btVector3 const & ) -void* btCapsuleShape_new(float p0,float p1); //constructor: btCapsuleShape  ( ::btCapsuleShape::* )( ::btScalar,::btScalar ) -void btCapsuleShape_free(void *c); void btCapsuleShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCapsuleShape::* )( ::btScalar,::btVector3 & ) const-int btCapsuleShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCapsuleShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCapsuleShape::* )( ::btVector3 const *,::btVector3 *,int ) const-void btCapsuleShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCapsuleShape::* )( ::btVector3 const & ) -int btCapsuleShape_getUpAxis(void *c); //method: getUpAxis int ( ::btCapsuleShape::* )(  ) const-char const * btCapsuleShape_getName(void *c); //method: getName char const * ( ::btCapsuleShape::* )(  ) const-float btCapsuleShape_getHalfHeight(void *c); //method: getHalfHeight ::btScalar ( ::btCapsuleShape::* )(  ) const-void btCapsuleShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCapsuleShape::* )( ::btScalar ) -void btCapsuleShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCapsuleShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-//not supported method: serialize char const * ( ::btCapsuleShape::* )( void *,::btSerializer * ) const-void btCapsuleShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCapsuleShape::* )( ::btVector3 const & ) const-float btCapsuleShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btCapsuleShape::* )(  ) const-void* btCapsuleShapeData_new(); //constructor: btCapsuleShapeData  ( ::btCapsuleShapeData::* )(  ) -void btCapsuleShapeData_free(void *c); // attribute not supported: //attribute: ::btConvexInternalShapeData btCapsuleShapeData->m_convexInternalShapeData-void btCapsuleShapeData_m_upAxis_set(void *c,int a); //attribute: int btCapsuleShapeData->m_upAxis-int btCapsuleShapeData_m_upAxis_get(void *c); //attribute: int btCapsuleShapeData->m_upAxis-// attribute not supported: //attribute: char[4] btCapsuleShapeData->m_padding-void* btCapsuleShapeX_new(float p0,float p1); //constructor: btCapsuleShapeX  ( ::btCapsuleShapeX::* )( ::btScalar,::btScalar ) -void btCapsuleShapeX_free(void *c); char const * btCapsuleShapeX_getName(void *c); //method: getName char const * ( ::btCapsuleShapeX::* )(  ) const-void* btCapsuleShapeZ_new(float p0,float p1); //constructor: btCapsuleShapeZ  ( ::btCapsuleShapeZ::* )( ::btScalar,::btScalar ) -void btCapsuleShapeZ_free(void *c); char const * btCapsuleShapeZ_getName(void *c); //method: getName char const * ( ::btCapsuleShapeZ::* )(  ) const-void* btCharIndexTripletData_new(); //constructor: btCharIndexTripletData  ( ::btCharIndexTripletData::* )(  ) -void btCharIndexTripletData_free(void *c); // attribute not supported: //attribute: unsigned char[3] btCharIndexTripletData->m_values-void btCharIndexTripletData_m_pad_set(void *c,char a); //attribute: char btCharIndexTripletData->m_pad-char btCharIndexTripletData_m_pad_get(void *c); //attribute: char btCharIndexTripletData->m_pad-void btCollisionShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCollisionShape::* )( ::btScalar,::btVector3 & ) const-//not supported method: setUserPointer void ( ::btCollisionShape::* )( void * ) -//not supported method: serialize char const * ( ::btCollisionShape::* )( void *,::btSerializer * ) const-void btCollisionShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btCollisionShape::* )(  ) const-int btCollisionShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCollisionShape::* )(  ) const-char const * btCollisionShape_getName(void *c); //method: getName char const * ( ::btCollisionShape::* )(  ) const-int btCollisionShape_isCompound(void *c); //method: isCompound bool ( ::btCollisionShape::* )(  ) const-int btCollisionShape_isPolyhedral(void *c); //method: isPolyhedral bool ( ::btCollisionShape::* )(  ) const-void btCollisionShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCollisionShape::* )( ::btVector3 const & ) -void btCollisionShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCollisionShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-float btCollisionShape_getContactBreakingThreshold(void *c,float p0); //method: getContactBreakingThreshold ::btScalar ( ::btCollisionShape::* )( ::btScalar ) const-int btCollisionShape_isConvex(void *c); //method: isConvex bool ( ::btCollisionShape::* )(  ) const-int btCollisionShape_isInfinite(void *c); //method: isInfinite bool ( ::btCollisionShape::* )(  ) const-//not supported method: getUserPointer void * ( ::btCollisionShape::* )(  ) const-int btCollisionShape_isNonMoving(void *c); //method: isNonMoving bool ( ::btCollisionShape::* )(  ) const-float btCollisionShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btCollisionShape::* )(  ) const-void btCollisionShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCollisionShape::* )( ::btScalar ) -int btCollisionShape_isConvex2d(void *c); //method: isConvex2d bool ( ::btCollisionShape::* )(  ) const-int btCollisionShape_isSoftBody(void *c); //method: isSoftBody bool ( ::btCollisionShape::* )(  ) const-void btCollisionShape_calculateTemporalAabb(void *c,float* p0,float* p1,float* p2,float p3,float* p4,float* p5); //method: calculateTemporalAabb void ( ::btCollisionShape::* )( ::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btVector3 &,::btVector3 & ) const-int btCollisionShape_isConcave(void *c); //method: isConcave bool ( ::btCollisionShape::* )(  ) const-float btCollisionShape_getAngularMotionDisc(void *c); //method: getAngularMotionDisc ::btScalar ( ::btCollisionShape::* )(  ) const-void btCollisionShape_serializeSingleShape(void *c,void* p0); //method: serializeSingleShape void ( ::btCollisionShape::* )( ::btSerializer * ) const-//not supported method: getBoundingSphere void ( ::btCollisionShape::* )( ::btVector3 &,::btScalar & ) const-int btCollisionShape_getShapeType(void *c); //method: getShapeType int ( ::btCollisionShape::* )(  ) const-void* btCollisionShapeData_new(); //constructor: btCollisionShapeData  ( ::btCollisionShapeData::* )(  ) -void btCollisionShapeData_free(void *c); void btCollisionShapeData_m_name_set(void *c,char * a); //attribute: char * btCollisionShapeData->m_name-char * btCollisionShapeData_m_name_get(void *c); //attribute: char * btCollisionShapeData->m_name-void btCollisionShapeData_m_shapeType_set(void *c,int a); //attribute: int btCollisionShapeData->m_shapeType-int btCollisionShapeData_m_shapeType_get(void *c); //attribute: int btCollisionShapeData->m_shapeType-// attribute not supported: //attribute: char[4] btCollisionShapeData->m_padding-void* btCompoundShape_new(int p0); //constructor: btCompoundShape  ( ::btCompoundShape::* )( bool ) -void btCompoundShape_free(void *c); void btCompoundShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCompoundShape::* )( ::btScalar,::btVector3 & ) const-void* btCompoundShape_getDynamicAabbTree(void *c); //method: getDynamicAabbTree ::btDbvt const * ( ::btCompoundShape::* )(  ) const-void* btCompoundShape_getDynamicAabbTree0(void *c); //method: getDynamicAabbTree ::btDbvt const * ( ::btCompoundShape::* )(  ) const-void* btCompoundShape_getDynamicAabbTree1(void *c); //method: getDynamicAabbTree ::btDbvt * ( ::btCompoundShape::* )(  ) -int btCompoundShape_getUpdateRevision(void *c); //method: getUpdateRevision int ( ::btCompoundShape::* )(  ) const-//not supported method: serialize char const * ( ::btCompoundShape::* )( void *,::btSerializer * ) const-void btCompoundShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btCompoundShape::* )(  ) const-void btCompoundShape_createAabbTreeFromChildren(void *c); //method: createAabbTreeFromChildren void ( ::btCompoundShape::* )(  ) -int btCompoundShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCompoundShape::* )(  ) const-char const * btCompoundShape_getName(void *c); //method: getName char const * ( ::btCompoundShape::* )(  ) const-void btCompoundShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCompoundShape::* )( ::btVector3 const & ) -void btCompoundShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCompoundShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void* btCompoundShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btCompoundShape::* )( int ) -void* btCompoundShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btCompoundShape::* )( int ) -void* btCompoundShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btCompoundShape::* )( int ) const-void btCompoundShape_addChildShape(void *c,float* p0,void* p1); //method: addChildShape void ( ::btCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) -void btCompoundShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform & ( ::btCompoundShape::* )( int ) -void btCompoundShape_getChildTransform0(void *c,int p0,float* ret); //method: getChildTransform ::btTransform & ( ::btCompoundShape::* )( int ) -void btCompoundShape_getChildTransform1(void *c,int p0,float* ret); //method: getChildTransform ::btTransform const & ( ::btCompoundShape::* )( int ) const-void* btCompoundShape_getChildList(void *c); //method: getChildList ::btCompoundShapeChild * ( ::btCompoundShape::* )(  ) -float btCompoundShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btCompoundShape::* )(  ) const-void btCompoundShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCompoundShape::* )( ::btScalar ) -int btCompoundShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btCompoundShape::* )(  ) const-void btCompoundShape_removeChildShapeByIndex(void *c,int p0); //method: removeChildShapeByIndex void ( ::btCompoundShape::* )( int ) -void btCompoundShape_recalculateLocalAabb(void *c); //method: recalculateLocalAabb void ( ::btCompoundShape::* )(  ) -void btCompoundShape_updateChildTransform(void *c,int p0,float* p1,int p2); //method: updateChildTransform void ( ::btCompoundShape::* )( int,::btTransform const &,bool ) -//not supported method: calculatePrincipalAxisTransform void ( ::btCompoundShape::* )( ::btScalar *,::btTransform &,::btVector3 & ) const-void btCompoundShape_removeChildShape(void *c,void* p0); //method: removeChildShape void ( ::btCompoundShape::* )( ::btCollisionShape * ) -void* btCompoundShapeChild_new(); //constructor: btCompoundShapeChild  ( ::btCompoundShapeChild::* )(  ) -void btCompoundShapeChild_free(void *c); void btCompoundShapeChild_m_childMargin_set(void *c,float a); //attribute: ::btScalar btCompoundShapeChild->m_childMargin-float btCompoundShapeChild_m_childMargin_get(void *c); //attribute: ::btScalar btCompoundShapeChild->m_childMargin-void btCompoundShapeChild_m_childShape_set(void *c,void* a); //attribute: ::btCollisionShape * btCompoundShapeChild->m_childShape-// attribute getter not supported: //attribute: ::btCollisionShape * btCompoundShapeChild->m_childShape-void btCompoundShapeChild_m_childShapeType_set(void *c,int a); //attribute: int btCompoundShapeChild->m_childShapeType-int btCompoundShapeChild_m_childShapeType_get(void *c); //attribute: int btCompoundShapeChild->m_childShapeType-void btCompoundShapeChild_m_node_set(void *c,void* a); //attribute: ::btDbvtNode * btCompoundShapeChild->m_node-// attribute getter not supported: //attribute: ::btDbvtNode * btCompoundShapeChild->m_node-void btCompoundShapeChild_m_transform_set(void *c,float* a); //attribute: ::btTransform btCompoundShapeChild->m_transform-void btCompoundShapeChild_m_transform_get(void *c,float* a);-void* btCompoundShapeChildData_new(); //constructor: btCompoundShapeChildData  ( ::btCompoundShapeChildData::* )(  ) -void btCompoundShapeChildData_free(void *c); // attribute not supported: //attribute: ::btTransformFloatData btCompoundShapeChildData->m_transform-void btCompoundShapeChildData_m_childShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCompoundShapeChildData->m_childShape-// attribute getter not supported: //attribute: ::btCollisionShapeData * btCompoundShapeChildData->m_childShape-void btCompoundShapeChildData_m_childShapeType_set(void *c,int a); //attribute: int btCompoundShapeChildData->m_childShapeType-int btCompoundShapeChildData_m_childShapeType_get(void *c); //attribute: int btCompoundShapeChildData->m_childShapeType-void btCompoundShapeChildData_m_childMargin_set(void *c,float a); //attribute: float btCompoundShapeChildData->m_childMargin-float btCompoundShapeChildData_m_childMargin_get(void *c); //attribute: float btCompoundShapeChildData->m_childMargin-void* btCompoundShapeData_new(); //constructor: btCompoundShapeData  ( ::btCompoundShapeData::* )(  ) -void btCompoundShapeData_free(void *c); // attribute not supported: //attribute: ::btCollisionShapeData btCompoundShapeData->m_collisionShapeData-void btCompoundShapeData_m_childShapePtr_set(void *c,void* a); //attribute: ::btCompoundShapeChildData * btCompoundShapeData->m_childShapePtr-// attribute getter not supported: //attribute: ::btCompoundShapeChildData * btCompoundShapeData->m_childShapePtr-void btCompoundShapeData_m_numChildShapes_set(void *c,int a); //attribute: int btCompoundShapeData->m_numChildShapes-int btCompoundShapeData_m_numChildShapes_get(void *c); //attribute: int btCompoundShapeData->m_numChildShapes-void btCompoundShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btCompoundShapeData->m_collisionMargin-float btCompoundShapeData_m_collisionMargin_get(void *c); //attribute: float btCompoundShapeData->m_collisionMargin-void btConcaveShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btConcaveShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void btConcaveShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConcaveShape::* )( ::btScalar ) -float btConcaveShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConcaveShape::* )(  ) const-void* btConeShape_new(float p0,float p1); //constructor: btConeShape  ( ::btConeShape::* )( ::btScalar,::btScalar ) -void btConeShape_free(void *c); void btConeShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btConeShape::* )( ::btScalar,::btVector3 & ) const-void btConeShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConeShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConeShape::* )( ::btVector3 const *,::btVector3 *,int ) const-int btConeShape_getConeUpIndex(void *c); //method: getConeUpIndex int ( ::btConeShape::* )(  ) const-char const * btConeShape_getName(void *c); //method: getName char const * ( ::btConeShape::* )(  ) const-float btConeShape_getHeight(void *c); //method: getHeight ::btScalar ( ::btConeShape::* )(  ) const-void btConeShape_setConeUpIndex(void *c,int p0); //method: setConeUpIndex void ( ::btConeShape::* )( int ) -void btConeShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConeShape::* )( ::btVector3 const & ) -void btConeShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConeShape::* )( ::btVector3 const & ) const-float btConeShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btConeShape::* )(  ) const-void* btConeShapeX_new(float p0,float p1); //constructor: btConeShapeX  ( ::btConeShapeX::* )( ::btScalar,::btScalar ) -void btConeShapeX_free(void *c); void* btConeShapeZ_new(float p0,float p1); //constructor: btConeShapeZ  ( ::btConeShapeZ::* )( ::btScalar,::btScalar ) -void btConeShapeZ_free(void *c); //not supported constructor: btConvexHullShape  ( ::btConvexHullShape::* )( ::btScalar const *,int,int ) -void btConvexHullShape_free(void *c); void btConvexHullShape_addPoint(void *c,float* p0); //method: addPoint void ( ::btConvexHullShape::* )( ::btVector3 const & ) -void btConvexHullShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexHullShape::* )( ::btVector3 const & ) const-int btConvexHullShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConvexHullShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexHullShape::* )( ::btVector3 const *,::btVector3 *,int ) const-void btConvexHullShape_getScaledPoint(void *c,int p0,float* ret); //method: getScaledPoint ::btVector3 ( ::btConvexHullShape::* )( int ) const-int btConvexHullShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btConvexHullShape::* )(  ) const-//not supported method: getPoints ::btVector3 const * ( ::btConvexHullShape::* )(  ) const-int btConvexHullShape_getNumEdges(void *c); //method: getNumEdges int ( ::btConvexHullShape::* )(  ) const-char const * btConvexHullShape_getName(void *c); //method: getName char const * ( ::btConvexHullShape::* )(  ) const-void btConvexHullShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btConvexHullShape::* )( int,::btVector3 & ) const-void btConvexHullShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btConvexHullShape::* )( int,::btVector3 &,::btVector3 & ) const-void btConvexHullShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexHullShape::* )( ::btVector3 const & ) const-int btConvexHullShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btConvexHullShape::* )( ::btVector3 const &,::btScalar ) const-void btConvexHullShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btConvexHullShape::* )( ::btVector3 &,::btVector3 &,int ) const-void btConvexHullShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexHullShape::* )( ::btVector3 const & ) -int btConvexHullShape_getNumVertices(void *c); //method: getNumVertices int ( ::btConvexHullShape::* )(  ) const-//not supported method: serialize char const * ( ::btConvexHullShape::* )( void *,::btSerializer * ) const-int btConvexHullShape_getNumPoints(void *c); //method: getNumPoints int ( ::btConvexHullShape::* )(  ) const-//not supported method: getUnscaledPoints ::btVector3 * ( ::btConvexHullShape::* )(  ) -//not supported method: getUnscaledPoints ::btVector3 * ( ::btConvexHullShape::* )(  ) -//not supported method: getUnscaledPoints ::btVector3 const * ( ::btConvexHullShape::* )(  ) const-void* btConvexHullShapeData_new(); //constructor: btConvexHullShapeData  ( ::btConvexHullShapeData::* )(  ) -void btConvexHullShapeData_free(void *c); // attribute not supported: //attribute: ::btConvexInternalShapeData btConvexHullShapeData->m_convexInternalShapeData-void btConvexHullShapeData_m_unscaledPointsFloatPtr_set(void *c,void* a); //attribute: ::btVector3FloatData * btConvexHullShapeData->m_unscaledPointsFloatPtr-// attribute getter not supported: //attribute: ::btVector3FloatData * btConvexHullShapeData->m_unscaledPointsFloatPtr-void btConvexHullShapeData_m_unscaledPointsDoublePtr_set(void *c,void* a); //attribute: ::btVector3DoubleData * btConvexHullShapeData->m_unscaledPointsDoublePtr-// attribute getter not supported: //attribute: ::btVector3DoubleData * btConvexHullShapeData->m_unscaledPointsDoublePtr-void btConvexHullShapeData_m_numUnscaledPoints_set(void *c,int a); //attribute: int btConvexHullShapeData->m_numUnscaledPoints-int btConvexHullShapeData_m_numUnscaledPoints_get(void *c); //attribute: int btConvexHullShapeData->m_numUnscaledPoints-// attribute not supported: //attribute: char[4] btConvexHullShapeData->m_padding3-void btConvexInternalAabbCachingShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btConvexInternalAabbCachingShape::* )(  ) -void btConvexInternalAabbCachingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexInternalAabbCachingShape::* )( ::btVector3 const & ) -void btConvexInternalAabbCachingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexInternalAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexInternalShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexInternalShape::* )( ::btVector3 const & ) const-int btConvexInternalShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConvexInternalShape::* )(  ) const-void btConvexInternalShape_getImplicitShapeDimensions(void *c,float* ret); //method: getImplicitShapeDimensions ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const-//not supported method: serialize char const * ( ::btConvexInternalShape::* )( void *,::btSerializer * ) const-void btConvexInternalShape_getLocalScalingNV(void *c,float* ret); //method: getLocalScalingNV ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const-void btConvexInternalShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btConvexInternalShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexInternalShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const-void btConvexInternalShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btConvexInternalShape::* )( int,::btVector3 & ) const-void btConvexInternalShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexInternalShape::* )( ::btVector3 const & ) -int btConvexInternalShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btConvexInternalShape::* )(  ) const-void btConvexInternalShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexInternalShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexInternalShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConvexInternalShape::* )( ::btScalar ) -float btConvexInternalShape_getMarginNV(void *c); //method: getMarginNV ::btScalar ( ::btConvexInternalShape::* )(  ) const-float btConvexInternalShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConvexInternalShape::* )(  ) const-void btConvexInternalShape_setImplicitShapeDimensions(void *c,float* p0); //method: setImplicitShapeDimensions void ( ::btConvexInternalShape::* )( ::btVector3 const & ) -void* btConvexInternalShapeData_new(); //constructor: btConvexInternalShapeData  ( ::btConvexInternalShapeData::* )(  ) -void btConvexInternalShapeData_free(void *c); void btConvexInternalShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btConvexInternalShapeData->m_collisionMargin-float btConvexInternalShapeData_m_collisionMargin_get(void *c); //attribute: float btConvexInternalShapeData->m_collisionMargin-// attribute not supported: //attribute: ::btCollisionShapeData btConvexInternalShapeData->m_collisionShapeData-// attribute not supported: //attribute: ::btVector3FloatData btConvexInternalShapeData->m_implicitShapeDimensions-// attribute not supported: //attribute: ::btVector3FloatData btConvexInternalShapeData->m_localScaling-void btConvexInternalShapeData_m_padding_set(void *c,int a); //attribute: int btConvexInternalShapeData->m_padding-int btConvexInternalShapeData_m_padding_get(void *c); //attribute: int btConvexInternalShapeData->m_padding-void btConvexShape_getAabbNonVirtual(void *c,float* p0,float* p1,float* p2); //method: getAabbNonVirtual void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexShape::* )( ::btVector3 const *,::btVector3 *,int ) const-float btConvexShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConvexShape::* )(  ) const-void btConvexShape_localGetSupportVertexWithoutMarginNonVirtual(void *c,float* p0,float* ret); //method: localGetSupportVertexWithoutMarginNonVirtual ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const-void btConvexShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexShape::* )(  ) const-void btConvexShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btConvexShape::* )( int,::btVector3 & ) const-void btConvexShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexShape::* )( ::btVector3 const & ) -void btConvexShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btConvexShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConvexShape::* )( ::btScalar ) -int btConvexShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btConvexShape::* )(  ) const-void btConvexShape_localGetSupportVertexNonVirtual(void *c,float* p0,float* ret); //method: localGetSupportVertexNonVirtual ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const-void btConvexShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const-float btConvexShape_getMarginNonVirtual(void *c); //method: getMarginNonVirtual ::btScalar ( ::btConvexShape::* )(  ) const-void* btConvexTriangleMeshShape_new(void* p0,int p1); //constructor: btConvexTriangleMeshShape  ( ::btConvexTriangleMeshShape::* )( ::btStridingMeshInterface *,bool ) -void btConvexTriangleMeshShape_free(void *c); int btConvexTriangleMeshShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btConvexTriangleMeshShape::* )(  ) const-void btConvexTriangleMeshShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexTriangleMeshShape::* )( ::btVector3 const *,::btVector3 *,int ) const-int btConvexTriangleMeshShape_getNumEdges(void *c); //method: getNumEdges int ( ::btConvexTriangleMeshShape::* )(  ) const-char const * btConvexTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btConvexTriangleMeshShape::* )(  ) const-void btConvexTriangleMeshShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btConvexTriangleMeshShape::* )( int,::btVector3 & ) const-void btConvexTriangleMeshShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btConvexTriangleMeshShape::* )( int,::btVector3 &,::btVector3 & ) const-void btConvexTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexTriangleMeshShape::* )(  ) const-int btConvexTriangleMeshShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btConvexTriangleMeshShape::* )( ::btVector3 const &,::btScalar ) const-void btConvexTriangleMeshShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btConvexTriangleMeshShape::* )( ::btVector3 &,::btVector3 &,int ) const-void btConvexTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) -void* btConvexTriangleMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btConvexTriangleMeshShape::* )(  ) -void* btConvexTriangleMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btConvexTriangleMeshShape::* )(  ) -void* btConvexTriangleMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btConvexTriangleMeshShape::* )(  ) const-int btConvexTriangleMeshShape_getNumVertices(void *c); //method: getNumVertices int ( ::btConvexTriangleMeshShape::* )(  ) const-//not supported method: calculatePrincipalAxisTransform void ( ::btConvexTriangleMeshShape::* )( ::btTransform &,::btVector3 &,::btScalar & ) const-void btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) const-void* btCylinderShape_new(float* p0); //constructor: btCylinderShape  ( ::btCylinderShape::* )( ::btVector3 const & ) -void btCylinderShape_free(void *c); void btCylinderShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCylinderShape::* )( ::btScalar,::btVector3 & ) const-void btCylinderShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btCylinderShape::* )( ::btVector3 const & ) const-int btCylinderShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCylinderShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShape::* )( ::btVector3 const *,::btVector3 *,int ) const-void btCylinderShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCylinderShape::* )( ::btVector3 const & ) -int btCylinderShape_getUpAxis(void *c); //method: getUpAxis int ( ::btCylinderShape::* )(  ) const-char const * btCylinderShape_getName(void *c); //method: getName char const * ( ::btCylinderShape::* )(  ) const-//not supported method: serialize char const * ( ::btCylinderShape::* )( void *,::btSerializer * ) const-void btCylinderShape_getHalfExtentsWithoutMargin(void *c,float* ret); //method: getHalfExtentsWithoutMargin ::btVector3 const & ( ::btCylinderShape::* )(  ) const-void btCylinderShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCylinderShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btCylinderShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCylinderShape::* )( ::btScalar ) -void btCylinderShape_getHalfExtentsWithMargin(void *c,float* ret); //method: getHalfExtentsWithMargin ::btVector3 ( ::btCylinderShape::* )(  ) const-void btCylinderShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShape::* )( ::btVector3 const & ) const-float btCylinderShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShape::* )(  ) const-void* btCylinderShapeData_new(); //constructor: btCylinderShapeData  ( ::btCylinderShapeData::* )(  ) -void btCylinderShapeData_free(void *c); // attribute not supported: //attribute: ::btConvexInternalShapeData btCylinderShapeData->m_convexInternalShapeData-void btCylinderShapeData_m_upAxis_set(void *c,int a); //attribute: int btCylinderShapeData->m_upAxis-int btCylinderShapeData_m_upAxis_get(void *c); //attribute: int btCylinderShapeData->m_upAxis-// attribute not supported: //attribute: char[4] btCylinderShapeData->m_padding-void* btCylinderShapeX_new(float* p0); //constructor: btCylinderShapeX  ( ::btCylinderShapeX::* )( ::btVector3 const & ) -void btCylinderShapeX_free(void *c); char const * btCylinderShapeX_getName(void *c); //method: getName char const * ( ::btCylinderShapeX::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShapeX::* )( ::btVector3 const *,::btVector3 *,int ) const-void btCylinderShapeX_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShapeX::* )( ::btVector3 const & ) const-float btCylinderShapeX_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShapeX::* )(  ) const-void* btCylinderShapeZ_new(float* p0); //constructor: btCylinderShapeZ  ( ::btCylinderShapeZ::* )( ::btVector3 const & ) -void btCylinderShapeZ_free(void *c); char const * btCylinderShapeZ_getName(void *c); //method: getName char const * ( ::btCylinderShapeZ::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShapeZ::* )( ::btVector3 const *,::btVector3 *,int ) const-void btCylinderShapeZ_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShapeZ::* )( ::btVector3 const & ) const-float btCylinderShapeZ_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShapeZ::* )(  ) const-void* btEmptyShape_new(); //constructor: btEmptyShape  ( ::btEmptyShape::* )(  ) -void btEmptyShape_free(void *c); void btEmptyShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btEmptyShape::* )( ::btScalar,::btVector3 & ) const-char const * btEmptyShape_getName(void *c); //method: getName char const * ( ::btEmptyShape::* )(  ) const-void btEmptyShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btEmptyShape::* )(  ) const-void btEmptyShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btEmptyShape::* )( ::btVector3 const & ) -void btEmptyShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btEmptyShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btEmptyShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btEmptyShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void* btIndexedMesh_new(); //constructor: btIndexedMesh  ( ::btIndexedMesh::* )(  ) -void btIndexedMesh_free(void *c); void btIndexedMesh_m_numTriangles_set(void *c,int a); //attribute: int btIndexedMesh->m_numTriangles-int btIndexedMesh_m_numTriangles_get(void *c); //attribute: int btIndexedMesh->m_numTriangles-// attribute not supported: //attribute: unsigned char const * btIndexedMesh->m_triangleIndexBase-void btIndexedMesh_m_triangleIndexStride_set(void *c,int a); //attribute: int btIndexedMesh->m_triangleIndexStride-int btIndexedMesh_m_triangleIndexStride_get(void *c); //attribute: int btIndexedMesh->m_triangleIndexStride-void btIndexedMesh_m_numVertices_set(void *c,int a); //attribute: int btIndexedMesh->m_numVertices-int btIndexedMesh_m_numVertices_get(void *c); //attribute: int btIndexedMesh->m_numVertices-// attribute not supported: //attribute: unsigned char const * btIndexedMesh->m_vertexBase-void btIndexedMesh_m_vertexStride_set(void *c,int a); //attribute: int btIndexedMesh->m_vertexStride-int btIndexedMesh_m_vertexStride_get(void *c); //attribute: int btIndexedMesh->m_vertexStride-// attribute not supported: //attribute: ::PHY_ScalarType btIndexedMesh->m_indexType-// attribute not supported: //attribute: ::PHY_ScalarType btIndexedMesh->m_vertexType-void* btIntIndexData_new(); //constructor: btIntIndexData  ( ::btIntIndexData::* )(  ) -void btIntIndexData_free(void *c); void btIntIndexData_m_value_set(void *c,int a); //attribute: int btIntIndexData->m_value-int btIntIndexData_m_value_get(void *c); //attribute: int btIntIndexData->m_value-//not supported method: internalProcessTriangleIndex void ( ::btInternalTriangleIndexCallback::* )( ::btVector3 *,int,int ) -void* btMeshPartData_new(); //constructor: btMeshPartData  ( ::btMeshPartData::* )(  ) -void btMeshPartData_free(void *c); void btMeshPartData_m_vertices3f_set(void *c,void* a); //attribute: ::btVector3FloatData * btMeshPartData->m_vertices3f-// attribute getter not supported: //attribute: ::btVector3FloatData * btMeshPartData->m_vertices3f-void btMeshPartData_m_vertices3d_set(void *c,void* a); //attribute: ::btVector3DoubleData * btMeshPartData->m_vertices3d-// attribute getter not supported: //attribute: ::btVector3DoubleData * btMeshPartData->m_vertices3d-void btMeshPartData_m_indices32_set(void *c,void* a); //attribute: ::btIntIndexData * btMeshPartData->m_indices32-// attribute getter not supported: //attribute: ::btIntIndexData * btMeshPartData->m_indices32-void btMeshPartData_m_3indices16_set(void *c,void* a); //attribute: ::btShortIntIndexTripletData * btMeshPartData->m_3indices16-// attribute getter not supported: //attribute: ::btShortIntIndexTripletData * btMeshPartData->m_3indices16-void btMeshPartData_m_3indices8_set(void *c,void* a); //attribute: ::btCharIndexTripletData * btMeshPartData->m_3indices8-// attribute getter not supported: //attribute: ::btCharIndexTripletData * btMeshPartData->m_3indices8-void btMeshPartData_m_indices16_set(void *c,void* a); //attribute: ::btShortIntIndexData * btMeshPartData->m_indices16-// attribute getter not supported: //attribute: ::btShortIntIndexData * btMeshPartData->m_indices16-void btMeshPartData_m_numTriangles_set(void *c,int a); //attribute: int btMeshPartData->m_numTriangles-int btMeshPartData_m_numTriangles_get(void *c); //attribute: int btMeshPartData->m_numTriangles-void btMeshPartData_m_numVertices_set(void *c,int a); //attribute: int btMeshPartData->m_numVertices-int btMeshPartData_m_numVertices_get(void *c); //attribute: int btMeshPartData->m_numVertices-//not supported constructor: btMultiSphereShape  ( ::btMultiSphereShape::* )( ::btVector3 const *,::btScalar const *,int ) -void btMultiSphereShape_free(void *c); void btMultiSphereShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btMultiSphereShape::* )( ::btScalar,::btVector3 & ) const-int btMultiSphereShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btMultiSphereShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btMultiSphereShape::* )( ::btVector3 const *,::btVector3 *,int ) const-int btMultiSphereShape_getSphereCount(void *c); //method: getSphereCount int ( ::btMultiSphereShape::* )(  ) const-char const * btMultiSphereShape_getName(void *c); //method: getName char const * ( ::btMultiSphereShape::* )(  ) const-//not supported method: serialize char const * ( ::btMultiSphereShape::* )( void *,::btSerializer * ) const-void btMultiSphereShape_getSpherePosition(void *c,int p0,float* ret); //method: getSpherePosition ::btVector3 const & ( ::btMultiSphereShape::* )( int ) const-float btMultiSphereShape_getSphereRadius(void *c,int p0); //method: getSphereRadius ::btScalar ( ::btMultiSphereShape::* )( int ) const-void btMultiSphereShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btMultiSphereShape::* )( ::btVector3 const & ) const-void* btMultiSphereShapeData_new(); //constructor: btMultiSphereShapeData  ( ::btMultiSphereShapeData::* )(  ) -void btMultiSphereShapeData_free(void *c); // attribute not supported: //attribute: ::btConvexInternalShapeData btMultiSphereShapeData->m_convexInternalShapeData-void btMultiSphereShapeData_m_localPositionArrayPtr_set(void *c,void* a); //attribute: ::btPositionAndRadius * btMultiSphereShapeData->m_localPositionArrayPtr-// attribute getter not supported: //attribute: ::btPositionAndRadius * btMultiSphereShapeData->m_localPositionArrayPtr-void btMultiSphereShapeData_m_localPositionArraySize_set(void *c,int a); //attribute: int btMultiSphereShapeData->m_localPositionArraySize-int btMultiSphereShapeData_m_localPositionArraySize_get(void *c); //attribute: int btMultiSphereShapeData->m_localPositionArraySize-// attribute not supported: //attribute: char[4] btMultiSphereShapeData->m_padding-void* btOptimizedBvh_new(); //constructor: btOptimizedBvh  ( ::btOptimizedBvh::* )(  ) -void btOptimizedBvh_free(void *c); void btOptimizedBvh_updateBvhNodes(void *c,void* p0,int p1,int p2,int p3); //method: updateBvhNodes void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,int,int,int ) -//not supported method: serializeInPlace bool ( ::btOptimizedBvh::* )( void *,unsigned int,bool ) const-void btOptimizedBvh_refit(void *c,void* p0,float* p1,float* p2); //method: refit void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,::btVector3 const &,::btVector3 const & ) -void btOptimizedBvh_build(void *c,void* p0,int p1,float* p2,float* p3); //method: build void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,bool,::btVector3 const &,::btVector3 const & ) -void btOptimizedBvh_refitPartial(void *c,void* p0,float* p1,float* p2); //method: refitPartial void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,::btVector3 const &,::btVector3 const & ) -//not supported method: deSerializeInPlace ::btOptimizedBvh * (*)( void *,unsigned int,bool )-void btPolyhedralConvexAabbCachingShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btPolyhedralConvexAabbCachingShape::* )(  ) -void btPolyhedralConvexAabbCachingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btVector3 const & ) -void btPolyhedralConvexAabbCachingShape_getNonvirtualAabb(void *c,float* p0,float* p1,float* p2,float p3); //method: getNonvirtualAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 &,::btScalar ) const-void btPolyhedralConvexAabbCachingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btPolyhedralConvexShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btPolyhedralConvexShape::* )( ::btScalar,::btVector3 & ) const-int btPolyhedralConvexShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btPolyhedralConvexShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btPolyhedralConvexShape::* )( ::btVector3 const *,::btVector3 *,int ) const-int btPolyhedralConvexShape_getNumEdges(void *c); //method: getNumEdges int ( ::btPolyhedralConvexShape::* )(  ) const-void btPolyhedralConvexShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btPolyhedralConvexShape::* )( int,::btVector3 & ) const-void btPolyhedralConvexShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btPolyhedralConvexShape::* )( int,::btVector3 &,::btVector3 & ) const-int btPolyhedralConvexShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btPolyhedralConvexShape::* )( ::btVector3 const &,::btScalar ) const-void btPolyhedralConvexShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btPolyhedralConvexShape::* )( ::btVector3 &,::btVector3 &,int ) const-//not supported method: getConvexPolyhedron ::btConvexPolyhedron const * ( ::btPolyhedralConvexShape::* )(  ) const-int btPolyhedralConvexShape_initializePolyhedralFeatures(void *c); //method: initializePolyhedralFeatures bool ( ::btPolyhedralConvexShape::* )(  ) -int btPolyhedralConvexShape_getNumVertices(void *c); //method: getNumVertices int ( ::btPolyhedralConvexShape::* )(  ) const-void btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btPolyhedralConvexShape::* )( ::btVector3 const & ) const-void* btPositionAndRadius_new(); //constructor: btPositionAndRadius  ( ::btPositionAndRadius::* )(  ) -void btPositionAndRadius_free(void *c); // attribute not supported: //attribute: ::btVector3FloatData btPositionAndRadius->m_pos-void btPositionAndRadius_m_radius_set(void *c,float a); //attribute: float btPositionAndRadius->m_radius-float btPositionAndRadius_m_radius_get(void *c); //attribute: float btPositionAndRadius->m_radius-void* btScaledBvhTriangleMeshShape_new(void* p0,float* p1); //constructor: btScaledBvhTriangleMeshShape  ( ::btScaledBvhTriangleMeshShape::* )( ::btBvhTriangleMeshShape *,::btVector3 const & ) -void btScaledBvhTriangleMeshShape_free(void *c); void btScaledBvhTriangleMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btScaledBvhTriangleMeshShape::* )( ::btScalar,::btVector3 & ) const-void* btScaledBvhTriangleMeshShape_getChildShape(void *c); //method: getChildShape ::btBvhTriangleMeshShape * ( ::btScaledBvhTriangleMeshShape::* )(  ) -void* btScaledBvhTriangleMeshShape_getChildShape0(void *c); //method: getChildShape ::btBvhTriangleMeshShape * ( ::btScaledBvhTriangleMeshShape::* )(  ) -void* btScaledBvhTriangleMeshShape_getChildShape1(void *c); //method: getChildShape ::btBvhTriangleMeshShape const * ( ::btScaledBvhTriangleMeshShape::* )(  ) const-int btScaledBvhTriangleMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btScaledBvhTriangleMeshShape::* )(  ) const-char const * btScaledBvhTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btScaledBvhTriangleMeshShape::* )(  ) const-//not supported method: serialize char const * ( ::btScaledBvhTriangleMeshShape::* )( void *,::btSerializer * ) const-void btScaledBvhTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btScaledBvhTriangleMeshShape::* )(  ) const-void btScaledBvhTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btScaledBvhTriangleMeshShape::* )( ::btVector3 const & ) -void btScaledBvhTriangleMeshShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btScaledBvhTriangleMeshShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btScaledBvhTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btScaledBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void* btScaledTriangleMeshShapeData_new(); //constructor: btScaledTriangleMeshShapeData  ( ::btScaledTriangleMeshShapeData::* )(  ) -void btScaledTriangleMeshShapeData_free(void *c); // attribute not supported: //attribute: ::btTriangleMeshShapeData btScaledTriangleMeshShapeData->m_trimeshShapeData-// attribute not supported: //attribute: ::btVector3FloatData btScaledTriangleMeshShapeData->m_localScaling-void* btShortIntIndexData_new(); //constructor: btShortIntIndexData  ( ::btShortIntIndexData::* )(  ) -void btShortIntIndexData_free(void *c); // attribute not supported: //attribute: char[2] btShortIntIndexData->m_pad-void btShortIntIndexData_m_value_set(void *c,short int a); //attribute: short int btShortIntIndexData->m_value-short int btShortIntIndexData_m_value_get(void *c); //attribute: short int btShortIntIndexData->m_value-void* btShortIntIndexTripletData_new(); //constructor: btShortIntIndexTripletData  ( ::btShortIntIndexTripletData::* )(  ) -void btShortIntIndexTripletData_free(void *c); // attribute not supported: //attribute: char[2] btShortIntIndexTripletData->m_pad-// attribute not supported: //attribute: short int[3] btShortIntIndexTripletData->m_values-void* btSphereShape_new(float p0); //constructor: btSphereShape  ( ::btSphereShape::* )( ::btScalar ) -void btSphereShape_free(void *c); void btSphereShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btSphereShape::* )( ::btScalar,::btVector3 & ) const-void btSphereShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btSphereShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btSphereShape::* )( ::btVector3 const *,::btVector3 *,int ) const-char const * btSphereShape_getName(void *c); //method: getName char const * ( ::btSphereShape::* )(  ) const-float btSphereShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btSphereShape::* )(  ) const-void btSphereShape_setMargin(void *c,float p0); //method: setMargin void ( ::btSphereShape::* )( ::btScalar ) -void btSphereShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btSphereShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btSphereShape_setUnscaledRadius(void *c,float p0); //method: setUnscaledRadius void ( ::btSphereShape::* )( ::btScalar ) -void btSphereShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btSphereShape::* )( ::btVector3 const & ) const-float btSphereShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btSphereShape::* )(  ) const-void* btStaticPlaneShape_new(float* p0,float p1); //constructor: btStaticPlaneShape  ( ::btStaticPlaneShape::* )( ::btVector3 const &,::btScalar ) -void btStaticPlaneShape_free(void *c); void btStaticPlaneShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btStaticPlaneShape::* )( ::btScalar,::btVector3 & ) const-int btStaticPlaneShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btStaticPlaneShape::* )(  ) const-char const * btStaticPlaneShape_getName(void *c); //method: getName char const * ( ::btStaticPlaneShape::* )(  ) const-//not supported method: serialize char const * ( ::btStaticPlaneShape::* )( void *,::btSerializer * ) const-void btStaticPlaneShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btStaticPlaneShape::* )(  ) const-void btStaticPlaneShape_getPlaneNormal(void *c,float* ret); //method: getPlaneNormal ::btVector3 const & ( ::btStaticPlaneShape::* )(  ) const-float btStaticPlaneShape_getPlaneConstant(void *c); //method: getPlaneConstant ::btScalar const & ( ::btStaticPlaneShape::* )(  ) const-void btStaticPlaneShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btStaticPlaneShape::* )( ::btVector3 const & ) -void btStaticPlaneShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btStaticPlaneShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btStaticPlaneShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btStaticPlaneShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void* btStaticPlaneShapeData_new(); //constructor: btStaticPlaneShapeData  ( ::btStaticPlaneShapeData::* )(  ) -void btStaticPlaneShapeData_free(void *c); // attribute not supported: //attribute: ::btCollisionShapeData btStaticPlaneShapeData->m_collisionShapeData-// attribute not supported: //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_localScaling-// attribute not supported: //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_planeNormal-void btStaticPlaneShapeData_m_planeConstant_set(void *c,float a); //attribute: float btStaticPlaneShapeData->m_planeConstant-float btStaticPlaneShapeData_m_planeConstant_get(void *c); //attribute: float btStaticPlaneShapeData->m_planeConstant-// attribute not supported: //attribute: char[4] btStaticPlaneShapeData->m_pad-//not supported method: getLockedReadOnlyVertexIndexBase void ( ::btStridingMeshInterface::* )( unsigned char const * *,int &,::PHY_ScalarType &,int &,unsigned char const * *,int &,int &,::PHY_ScalarType &,int ) const-int btStridingMeshInterface_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btStridingMeshInterface::* )(  ) const-void btStridingMeshInterface_calculateAabbBruteForce(void *c,float* p0,float* p1); //method: calculateAabbBruteForce void ( ::btStridingMeshInterface::* )( ::btVector3 &,::btVector3 & ) -//not supported method: serialize char const * ( ::btStridingMeshInterface::* )( void *,::btSerializer * ) const-void btStridingMeshInterface_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btStridingMeshInterface::* )( int ) -void btStridingMeshInterface_unLockVertexBase(void *c,int p0); //method: unLockVertexBase void ( ::btStridingMeshInterface::* )( int ) -void btStridingMeshInterface_getScaling(void *c,float* ret); //method: getScaling ::btVector3 const & ( ::btStridingMeshInterface::* )(  ) const-void btStridingMeshInterface_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btStridingMeshInterface::* )( int ) -void btStridingMeshInterface_setPremadeAabb(void *c,float* p0,float* p1); //method: setPremadeAabb void ( ::btStridingMeshInterface::* )( ::btVector3 const &,::btVector3 const & ) const-void btStridingMeshInterface_InternalProcessAllTriangles(void *c,void* p0,float* p1,float* p2); //method: InternalProcessAllTriangles void ( ::btStridingMeshInterface::* )( ::btInternalTriangleIndexCallback *,::btVector3 const &,::btVector3 const & ) const-//not supported method: getPremadeAabb void ( ::btStridingMeshInterface::* )( ::btVector3 *,::btVector3 * ) const-int btStridingMeshInterface_getNumSubParts(void *c); //method: getNumSubParts int ( ::btStridingMeshInterface::* )(  ) const-//not supported method: getLockedVertexIndexBase void ( ::btStridingMeshInterface::* )( unsigned char * *,int &,::PHY_ScalarType &,int &,unsigned char * *,int &,int &,::PHY_ScalarType &,int ) -int btStridingMeshInterface_hasPremadeAabb(void *c); //method: hasPremadeAabb bool ( ::btStridingMeshInterface::* )(  ) const-void btStridingMeshInterface_setScaling(void *c,float* p0); //method: setScaling void ( ::btStridingMeshInterface::* )( ::btVector3 const & ) -void btStridingMeshInterface_unLockReadOnlyVertexBase(void *c,int p0); //method: unLockReadOnlyVertexBase void ( ::btStridingMeshInterface::* )( int ) const-void* btStridingMeshInterfaceData_new(); //constructor: btStridingMeshInterfaceData  ( ::btStridingMeshInterfaceData::* )(  ) -void btStridingMeshInterfaceData_free(void *c); void btStridingMeshInterfaceData_m_meshPartsPtr_set(void *c,void* a); //attribute: ::btMeshPartData * btStridingMeshInterfaceData->m_meshPartsPtr-// attribute getter not supported: //attribute: ::btMeshPartData * btStridingMeshInterfaceData->m_meshPartsPtr-// attribute not supported: //attribute: ::btVector3FloatData btStridingMeshInterfaceData->m_scaling-void btStridingMeshInterfaceData_m_numMeshParts_set(void *c,int a); //attribute: int btStridingMeshInterfaceData->m_numMeshParts-int btStridingMeshInterfaceData_m_numMeshParts_get(void *c); //attribute: int btStridingMeshInterfaceData->m_numMeshParts-// attribute not supported: //attribute: char[4] btStridingMeshInterfaceData->m_padding-//not supported method: processTriangle void ( ::btTriangleCallback::* )( ::btVector3 *,int,int ) -void* btTriangleIndexVertexArray_new0(); //constructor: btTriangleIndexVertexArray  ( ::btTriangleIndexVertexArray::* )(  ) -//not supported constructor: btTriangleIndexVertexArray  ( ::btTriangleIndexVertexArray::* )( int,int *,int,int,::btScalar *,int ) -void btTriangleIndexVertexArray_free(void *c); //not supported method: getLockedReadOnlyVertexIndexBase void ( ::btTriangleIndexVertexArray::* )( unsigned char const * *,int &,::PHY_ScalarType &,int &,unsigned char const * *,int &,int &,::PHY_ScalarType &,int ) const-void btTriangleIndexVertexArray_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btTriangleIndexVertexArray::* )( int ) -void btTriangleIndexVertexArray_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btTriangleIndexVertexArray::* )( int ) -//not supported method: getIndexedMeshArray ::IndexedMeshArray & ( ::btTriangleIndexVertexArray::* )(  ) -//not supported method: getIndexedMeshArray ::IndexedMeshArray & ( ::btTriangleIndexVertexArray::* )(  ) -//not supported method: getIndexedMeshArray ::IndexedMeshArray const & ( ::btTriangleIndexVertexArray::* )(  ) const-void btTriangleIndexVertexArray_setPremadeAabb(void *c,float* p0,float* p1); //method: setPremadeAabb void ( ::btTriangleIndexVertexArray::* )( ::btVector3 const &,::btVector3 const & ) const-//not supported method: getPremadeAabb void ( ::btTriangleIndexVertexArray::* )( ::btVector3 *,::btVector3 * ) const-//not supported method: addIndexedMesh void ( ::btTriangleIndexVertexArray::* )( ::btIndexedMesh const &,::PHY_ScalarType ) -int btTriangleIndexVertexArray_getNumSubParts(void *c); //method: getNumSubParts int ( ::btTriangleIndexVertexArray::* )(  ) const-//not supported method: getLockedVertexIndexBase void ( ::btTriangleIndexVertexArray::* )( unsigned char * *,int &,::PHY_ScalarType &,int &,unsigned char * *,int &,int &,::PHY_ScalarType &,int ) -int btTriangleIndexVertexArray_hasPremadeAabb(void *c); //method: hasPremadeAabb bool ( ::btTriangleIndexVertexArray::* )(  ) const-void btTriangleIndexVertexArray_unLockVertexBase(void *c,int p0); //method: unLockVertexBase void ( ::btTriangleIndexVertexArray::* )( int ) -void btTriangleIndexVertexArray_unLockReadOnlyVertexBase(void *c,int p0); //method: unLockReadOnlyVertexBase void ( ::btTriangleIndexVertexArray::* )( int ) const-void* btTriangleInfo_new(); //constructor: btTriangleInfo  ( ::btTriangleInfo::* )(  ) -void btTriangleInfo_free(void *c); void btTriangleInfo_m_flags_set(void *c,int a); //attribute: int btTriangleInfo->m_flags-int btTriangleInfo_m_flags_get(void *c); //attribute: int btTriangleInfo->m_flags-void btTriangleInfo_m_edgeV0V1Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV0V1Angle-float btTriangleInfo_m_edgeV0V1Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV0V1Angle-void btTriangleInfo_m_edgeV1V2Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV1V2Angle-float btTriangleInfo_m_edgeV1V2Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV1V2Angle-void btTriangleInfo_m_edgeV2V0Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV2V0Angle-float btTriangleInfo_m_edgeV2V0Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV2V0Angle-void* btTriangleInfoData_new(); //constructor: btTriangleInfoData  ( ::btTriangleInfoData::* )(  ) -void btTriangleInfoData_free(void *c); void btTriangleInfoData_m_flags_set(void *c,int a); //attribute: int btTriangleInfoData->m_flags-int btTriangleInfoData_m_flags_get(void *c); //attribute: int btTriangleInfoData->m_flags-void btTriangleInfoData_m_edgeV0V1Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV0V1Angle-float btTriangleInfoData_m_edgeV0V1Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV0V1Angle-void btTriangleInfoData_m_edgeV1V2Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV1V2Angle-float btTriangleInfoData_m_edgeV1V2Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV1V2Angle-void btTriangleInfoData_m_edgeV2V0Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV2V0Angle-float btTriangleInfoData_m_edgeV2V0Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV2V0Angle-void* btTriangleInfoMap_new(); //constructor: btTriangleInfoMap  ( ::btTriangleInfoMap::* )(  ) -void btTriangleInfoMap_free(void *c); //not supported method: serialize char const * ( ::btTriangleInfoMap::* )( void *,::btSerializer * ) const-int btTriangleInfoMap_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btTriangleInfoMap::* )(  ) const-void btTriangleInfoMap_deSerialize(void *c,void* p0); //method: deSerialize void ( ::btTriangleInfoMap::* )( ::btTriangleInfoMapData & ) -void btTriangleInfoMap_m_convexEpsilon_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_convexEpsilon-float btTriangleInfoMap_m_convexEpsilon_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_convexEpsilon-void btTriangleInfoMap_m_edgeDistanceThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_edgeDistanceThreshold-float btTriangleInfoMap_m_edgeDistanceThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_edgeDistanceThreshold-void btTriangleInfoMap_m_equalVertexThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_equalVertexThreshold-float btTriangleInfoMap_m_equalVertexThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_equalVertexThreshold-void btTriangleInfoMap_m_maxEdgeAngleThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_maxEdgeAngleThreshold-float btTriangleInfoMap_m_maxEdgeAngleThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_maxEdgeAngleThreshold-void btTriangleInfoMap_m_planarEpsilon_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_planarEpsilon-float btTriangleInfoMap_m_planarEpsilon_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_planarEpsilon-void btTriangleInfoMap_m_zeroAreaThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_zeroAreaThreshold-float btTriangleInfoMap_m_zeroAreaThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_zeroAreaThreshold-void* btTriangleInfoMapData_new(); //constructor: btTriangleInfoMapData  ( ::btTriangleInfoMapData::* )(  ) -void btTriangleInfoMapData_free(void *c); void btTriangleInfoMapData_m_convexEpsilon_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_convexEpsilon-float btTriangleInfoMapData_m_convexEpsilon_get(void *c); //attribute: float btTriangleInfoMapData->m_convexEpsilon-void btTriangleInfoMapData_m_edgeDistanceThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_edgeDistanceThreshold-float btTriangleInfoMapData_m_edgeDistanceThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_edgeDistanceThreshold-void btTriangleInfoMapData_m_equalVertexThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_equalVertexThreshold-float btTriangleInfoMapData_m_equalVertexThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_equalVertexThreshold-// attribute not supported: //attribute: int * btTriangleInfoMapData->m_hashTablePtr-void btTriangleInfoMapData_m_hashTableSize_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_hashTableSize-int btTriangleInfoMapData_m_hashTableSize_get(void *c); //attribute: int btTriangleInfoMapData->m_hashTableSize-// attribute not supported: //attribute: int * btTriangleInfoMapData->m_keyArrayPtr-// attribute not supported: //attribute: int * btTriangleInfoMapData->m_nextPtr-void btTriangleInfoMapData_m_nextSize_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_nextSize-int btTriangleInfoMapData_m_nextSize_get(void *c); //attribute: int btTriangleInfoMapData->m_nextSize-void btTriangleInfoMapData_m_numKeys_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_numKeys-int btTriangleInfoMapData_m_numKeys_get(void *c); //attribute: int btTriangleInfoMapData->m_numKeys-void btTriangleInfoMapData_m_numValues_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_numValues-int btTriangleInfoMapData_m_numValues_get(void *c); //attribute: int btTriangleInfoMapData->m_numValues-// attribute not supported: //attribute: char[4] btTriangleInfoMapData->m_padding-void btTriangleInfoMapData_m_planarEpsilon_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_planarEpsilon-float btTriangleInfoMapData_m_planarEpsilon_get(void *c); //attribute: float btTriangleInfoMapData->m_planarEpsilon-void btTriangleInfoMapData_m_valueArrayPtr_set(void *c,void* a); //attribute: ::btTriangleInfoData * btTriangleInfoMapData->m_valueArrayPtr-// attribute getter not supported: //attribute: ::btTriangleInfoData * btTriangleInfoMapData->m_valueArrayPtr-void btTriangleInfoMapData_m_zeroAreaThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_zeroAreaThreshold-float btTriangleInfoMapData_m_zeroAreaThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_zeroAreaThreshold-void* btTriangleMesh_new(int p0,int p1); //constructor: btTriangleMesh  ( ::btTriangleMesh::* )( bool,bool ) -void btTriangleMesh_free(void *c); void btTriangleMesh_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btTriangleMesh::* )( int ) -int btTriangleMesh_getNumTriangles(void *c); //method: getNumTriangles int ( ::btTriangleMesh::* )(  ) const-int btTriangleMesh_getUse32bitIndices(void *c); //method: getUse32bitIndices bool ( ::btTriangleMesh::* )(  ) const-void btTriangleMesh_addIndex(void *c,int p0); //method: addIndex void ( ::btTriangleMesh::* )( int ) -void btTriangleMesh_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btTriangleMesh::* )( int ) -int btTriangleMesh_findOrAddVertex(void *c,float* p0,int p1); //method: findOrAddVertex int ( ::btTriangleMesh::* )( ::btVector3 const &,bool ) -int btTriangleMesh_getUse4componentVertices(void *c); //method: getUse4componentVertices bool ( ::btTriangleMesh::* )(  ) const-void btTriangleMesh_addTriangle(void *c,float* p0,float* p1,float* p2,int p3); //method: addTriangle void ( ::btTriangleMesh::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,bool ) -void btTriangleMesh_m_weldingThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleMesh->m_weldingThreshold-float btTriangleMesh_m_weldingThreshold_get(void *c); //attribute: ::btScalar btTriangleMesh->m_weldingThreshold-void btTriangleMeshShape_free(void *c); void btTriangleMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btTriangleMeshShape::* )( ::btScalar,::btVector3 & ) const-void btTriangleMeshShape_getLocalAabbMax(void *c,float* ret); //method: getLocalAabbMax ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const-void btTriangleMeshShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btTriangleMeshShape::* )( ::btVector3 const & ) const-char const * btTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btTriangleMeshShape::* )(  ) const-void btTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const-void btTriangleMeshShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btTriangleMeshShape::* )(  ) -void btTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btTriangleMeshShape::* )( ::btVector3 const & ) -void* btTriangleMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btTriangleMeshShape::* )(  ) -void* btTriangleMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btTriangleMeshShape::* )(  ) -void* btTriangleMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btTriangleMeshShape::* )(  ) const-void btTriangleMeshShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleMeshShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-void btTriangleMeshShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btTriangleMeshShape::* )( ::btVector3 const & ) const-void btTriangleMeshShape_getLocalAabbMin(void *c,float* ret); //method: getLocalAabbMin ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const-void* btTriangleMeshShapeData_new(); //constructor: btTriangleMeshShapeData  ( ::btTriangleMeshShapeData::* )(  ) -void btTriangleMeshShapeData_free(void *c); void btTriangleMeshShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btTriangleMeshShapeData->m_collisionMargin-float btTriangleMeshShapeData_m_collisionMargin_get(void *c); //attribute: float btTriangleMeshShapeData->m_collisionMargin-// attribute not supported: //attribute: ::btCollisionShapeData btTriangleMeshShapeData->m_collisionShapeData-// attribute not supported: //attribute: ::btStridingMeshInterfaceData btTriangleMeshShapeData->m_meshInterface-// attribute not supported: //attribute: char[4] btTriangleMeshShapeData->m_pad3-void btTriangleMeshShapeData_m_quantizedDoubleBvh_set(void *c,void* a); //attribute: ::btQuantizedBvhDoubleData * btTriangleMeshShapeData->m_quantizedDoubleBvh-// attribute getter not supported: //attribute: ::btQuantizedBvhDoubleData * btTriangleMeshShapeData->m_quantizedDoubleBvh-void btTriangleMeshShapeData_m_quantizedFloatBvh_set(void *c,void* a); //attribute: ::btQuantizedBvhFloatData * btTriangleMeshShapeData->m_quantizedFloatBvh-// attribute getter not supported: //attribute: ::btQuantizedBvhFloatData * btTriangleMeshShapeData->m_quantizedFloatBvh-void btTriangleMeshShapeData_m_triangleInfoMap_set(void *c,void* a); //attribute: ::btTriangleInfoMapData * btTriangleMeshShapeData->m_triangleInfoMap-// attribute getter not supported: //attribute: ::btTriangleInfoMapData * btTriangleMeshShapeData->m_triangleInfoMap-void* btTriangleShape_new0(); //constructor: btTriangleShape  ( ::btTriangleShape::* )(  ) -void* btTriangleShape_new1(float* p0,float* p1,float* p2); //constructor: btTriangleShape  ( ::btTriangleShape::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btTriangleShape_free(void *c); void btTriangleShape_getVertexPtr(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 & ( ::btTriangleShape::* )( int ) -void btTriangleShape_getVertexPtr0(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 & ( ::btTriangleShape::* )( int ) -void btTriangleShape_getVertexPtr1(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 const & ( ::btTriangleShape::* )( int ) const-int btTriangleShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btTriangleShape::* )(  ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btTriangleShape::* )( ::btVector3 const *,::btVector3 *,int ) const-void btTriangleShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btTriangleShape::* )( int,::btVector3 & ) const-int btTriangleShape_getNumEdges(void *c); //method: getNumEdges int ( ::btTriangleShape::* )(  ) const-char const * btTriangleShape_getName(void *c); //method: getName char const * ( ::btTriangleShape::* )(  ) const-int btTriangleShape_getNumVertices(void *c); //method: getNumVertices int ( ::btTriangleShape::* )(  ) const-void btTriangleShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btTriangleShape::* )( int,::btVector3 &,::btVector3 & ) const-int btTriangleShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btTriangleShape::* )( ::btVector3 const &,::btScalar ) const-void btTriangleShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btTriangleShape::* )( ::btVector3 &,::btVector3 &,int ) const-int btTriangleShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btTriangleShape::* )(  ) const-void btTriangleShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btTriangleShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btTriangleShape::* )( int,::btVector3 & ) const-void btTriangleShape_calcNormal(void *c,float* p0); //method: calcNormal void ( ::btTriangleShape::* )( ::btVector3 & ) const-void btTriangleShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btTriangleShape::* )( ::btScalar,::btVector3 & ) const-void btTriangleShape_getPlaneEquation(void *c,int p0,float* p1,float* p2); //method: getPlaneEquation void ( ::btTriangleShape::* )( int,::btVector3 &,::btVector3 & ) const-void btTriangleShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btTriangleShape::* )( ::btVector3 const & ) const-// attribute not supported: //attribute: ::btVector3[3] btTriangleShape->m_vertices1-void* btUniformScalingShape_new(void* p0,float p1); //constructor: btUniformScalingShape  ( ::btUniformScalingShape::* )( ::btConvexShape *,::btScalar ) -void btUniformScalingShape_free(void *c); void btUniformScalingShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btUniformScalingShape::* )( ::btScalar,::btVector3 & ) const-float btUniformScalingShape_getUniformScalingFactor(void *c); //method: getUniformScalingFactor ::btScalar ( ::btUniformScalingShape::* )(  ) const-void btUniformScalingShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btUniformScalingShape::* )( ::btVector3 const & ) const-//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btUniformScalingShape::* )( ::btVector3 const *,::btVector3 *,int ) const-char const * btUniformScalingShape_getName(void *c); //method: getName char const * ( ::btUniformScalingShape::* )(  ) const-void btUniformScalingShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btUniformScalingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btUniformScalingShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btUniformScalingShape::* )(  ) const-void* btUniformScalingShape_getChildShape(void *c); //method: getChildShape ::btConvexShape * ( ::btUniformScalingShape::* )(  ) -void* btUniformScalingShape_getChildShape0(void *c); //method: getChildShape ::btConvexShape * ( ::btUniformScalingShape::* )(  ) -void* btUniformScalingShape_getChildShape1(void *c); //method: getChildShape ::btConvexShape const * ( ::btUniformScalingShape::* )(  ) const-void btUniformScalingShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btUniformScalingShape::* )( int,::btVector3 & ) const-void btUniformScalingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btUniformScalingShape::* )( ::btVector3 const & ) -int btUniformScalingShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btUniformScalingShape::* )(  ) const-void btUniformScalingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btUniformScalingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void btUniformScalingShape_setMargin(void *c,float p0); //method: setMargin void ( ::btUniformScalingShape::* )( ::btScalar ) -float btUniformScalingShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btUniformScalingShape::* )(  ) const-void btUniformScalingShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btUniformScalingShape::* )( ::btVector3 const & ) const-void* bT_BOX_BOX_TRANSFORM_CACHE_new(); //constructor: BT_BOX_BOX_TRANSFORM_CACHE  ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )(  ) -void bT_BOX_BOX_TRANSFORM_CACHE_free(void *c); void bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert(void *c,float* p0,float* p1); //method: calc_from_full_invert void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btTransform const &,::btTransform const & ) -void bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic(void *c,float* p0,float* p1); //method: calc_from_homogenic void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btTransform const &,::btTransform const & ) -void bT_BOX_BOX_TRANSFORM_CACHE_transform(void *c,float* p0,float* ret); //method: transform ::btVector3 ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btVector3 const & ) const-void bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix(void *c); //method: calc_absolute_matrix void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )(  ) -void bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_set(void *c,float* a); //attribute: ::btVector3 bT_BOX_BOX_TRANSFORM_CACHE->m_T1to0-void bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_get(void *c,float* a);-void bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_set(void *c,float* a); //attribute: ::btMatrix3x3 bT_BOX_BOX_TRANSFORM_CACHE->m_R1to0-void bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_get(void *c,float* a);-void bT_BOX_BOX_TRANSFORM_CACHE_m_AR_set(void *c,float* a); //attribute: ::btMatrix3x3 bT_BOX_BOX_TRANSFORM_CACHE->m_AR-void bT_BOX_BOX_TRANSFORM_CACHE_m_AR_get(void *c,float* a);-void* bT_QUANTIZED_BVH_NODE_new(); //constructor: BT_QUANTIZED_BVH_NODE  ( ::BT_QUANTIZED_BVH_NODE::* )(  ) -void bT_QUANTIZED_BVH_NODE_free(void *c); int bT_QUANTIZED_BVH_NODE_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const-int bT_QUANTIZED_BVH_NODE_getDataIndex(void *c); //method: getDataIndex int ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const-void bT_QUANTIZED_BVH_NODE_setEscapeIndex(void *c,int p0); //method: setEscapeIndex void ( ::BT_QUANTIZED_BVH_NODE::* )( int ) -void bT_QUANTIZED_BVH_NODE_setDataIndex(void *c,int p0); //method: setDataIndex void ( ::BT_QUANTIZED_BVH_NODE::* )( int ) -int bT_QUANTIZED_BVH_NODE_isLeafNode(void *c); //method: isLeafNode bool ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const-//not supported method: testQuantizedBoxOverlapp bool ( ::BT_QUANTIZED_BVH_NODE::* )( short unsigned int *,short unsigned int * ) const-// attribute not supported: //attribute: short unsigned int[3] bT_QUANTIZED_BVH_NODE->m_quantizedAabbMin-// attribute not supported: //attribute: short unsigned int[3] bT_QUANTIZED_BVH_NODE->m_quantizedAabbMax-void bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_set(void *c,int a); //attribute: int bT_QUANTIZED_BVH_NODE->m_escapeIndexOrDataIndex-int bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_get(void *c); //attribute: int bT_QUANTIZED_BVH_NODE->m_escapeIndexOrDataIndex-void* btGImpactCompoundShape_CompoundPrimitiveManager_new0(void* p0); //constructor: CompoundPrimitiveManager  ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( ::btGImpactCompoundShape * ) -void* btGImpactCompoundShape_CompoundPrimitiveManager_new1(); //constructor: CompoundPrimitiveManager  ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) -void btGImpactCompoundShape_CompoundPrimitiveManager_free(void *c); int btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count(void *c); //method: get_primitive_count int ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) const-void btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( int,::btPrimitiveTriangle & ) const-void btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( int,::btAABB & ) const-int btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh(void *c); //method: is_trimesh bool ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) const-void btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_set(void *c,void* a); //attribute: ::btGImpactCompoundShape * btGImpactCompoundShape_CompoundPrimitiveManager->m_compoundShape-// attribute getter not supported: //attribute: ::btGImpactCompoundShape * btGImpactCompoundShape_CompoundPrimitiveManager->m_compoundShape-void* btGImpactCollisionAlgorithm_CreateFunc_new(); //constructor: CreateFunc  ( ::btGImpactCollisionAlgorithm::CreateFunc::* )(  ) -void btGImpactCollisionAlgorithm_CreateFunc_free(void *c); void* btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btGImpactCollisionAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) -void* gIM_BVH_DATA_new(); //constructor: GIM_BVH_DATA  ( ::GIM_BVH_DATA::* )(  ) -void gIM_BVH_DATA_free(void *c); // attribute not supported: //attribute: ::btAABB gIM_BVH_DATA->m_bound-void gIM_BVH_DATA_m_data_set(void *c,int a); //attribute: int gIM_BVH_DATA->m_data-int gIM_BVH_DATA_m_data_get(void *c); //attribute: int gIM_BVH_DATA->m_data-void* gIM_BVH_DATA_ARRAY_new(); //constructor: GIM_BVH_DATA_ARRAY  ( ::GIM_BVH_DATA_ARRAY::* )(  ) -void gIM_BVH_DATA_ARRAY_free(void *c); void* gIM_BVH_TREE_NODE_new(); //constructor: GIM_BVH_TREE_NODE  ( ::GIM_BVH_TREE_NODE::* )(  ) -void gIM_BVH_TREE_NODE_free(void *c); void gIM_BVH_TREE_NODE_setDataIndex(void *c,int p0); //method: setDataIndex void ( ::GIM_BVH_TREE_NODE::* )( int ) -int gIM_BVH_TREE_NODE_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::GIM_BVH_TREE_NODE::* )(  ) const-int gIM_BVH_TREE_NODE_getDataIndex(void *c); //method: getDataIndex int ( ::GIM_BVH_TREE_NODE::* )(  ) const-void gIM_BVH_TREE_NODE_setEscapeIndex(void *c,int p0); //method: setEscapeIndex void ( ::GIM_BVH_TREE_NODE::* )( int ) -int gIM_BVH_TREE_NODE_isLeafNode(void *c); //method: isLeafNode bool ( ::GIM_BVH_TREE_NODE::* )(  ) const-// attribute not supported: //attribute: ::btAABB gIM_BVH_TREE_NODE->m_bound-void* gIM_BVH_TREE_NODE_ARRAY_new(); //constructor: GIM_BVH_TREE_NODE_ARRAY  ( ::GIM_BVH_TREE_NODE_ARRAY::* )(  ) -void gIM_BVH_TREE_NODE_ARRAY_free(void *c); void* gIM_PAIR_new0(); //constructor: GIM_PAIR  ( ::GIM_PAIR::* )(  ) -void* gIM_PAIR_new1(int p0,int p1); //constructor: GIM_PAIR  ( ::GIM_PAIR::* )( int,int ) -void gIM_PAIR_free(void *c); void gIM_PAIR_m_index1_set(void *c,int a); //attribute: int gIM_PAIR->m_index1-int gIM_PAIR_m_index1_get(void *c); //attribute: int gIM_PAIR->m_index1-void gIM_PAIR_m_index2_set(void *c,int a); //attribute: int gIM_PAIR->m_index2-int gIM_PAIR_m_index2_get(void *c); //attribute: int gIM_PAIR->m_index2-void* gIM_QUANTIZED_BVH_NODE_ARRAY_new(); //constructor: GIM_QUANTIZED_BVH_NODE_ARRAY  ( ::GIM_QUANTIZED_BVH_NODE_ARRAY::* )(  ) -void gIM_QUANTIZED_BVH_NODE_ARRAY_free(void *c); void* gIM_TRIANGLE_CONTACT_new(); //constructor: GIM_TRIANGLE_CONTACT  ( ::GIM_TRIANGLE_CONTACT::* )(  ) -void gIM_TRIANGLE_CONTACT_free(void *c); //not supported method: merge_points void ( ::GIM_TRIANGLE_CONTACT::* )( ::btVector4 const &,::btScalar,::btVector3 const *,int ) -void gIM_TRIANGLE_CONTACT_copy_from(void *c,void* p0); //method: copy_from void ( ::GIM_TRIANGLE_CONTACT::* )( ::GIM_TRIANGLE_CONTACT const & ) -void gIM_TRIANGLE_CONTACT_m_penetration_depth_set(void *c,float a); //attribute: ::btScalar gIM_TRIANGLE_CONTACT->m_penetration_depth-float gIM_TRIANGLE_CONTACT_m_penetration_depth_get(void *c); //attribute: ::btScalar gIM_TRIANGLE_CONTACT->m_penetration_depth-void gIM_TRIANGLE_CONTACT_m_point_count_set(void *c,int a); //attribute: int gIM_TRIANGLE_CONTACT->m_point_count-int gIM_TRIANGLE_CONTACT_m_point_count_get(void *c); //attribute: int gIM_TRIANGLE_CONTACT->m_point_count-// attribute not supported: //attribute: ::btVector3[16] gIM_TRIANGLE_CONTACT->m_points-void gIM_TRIANGLE_CONTACT_m_separating_normal_set(void *c,float* a); //attribute: ::btVector4 gIM_TRIANGLE_CONTACT->m_separating_normal-void gIM_TRIANGLE_CONTACT_m_separating_normal_get(void *c,float* a);-void* btGImpactMeshShapePart_TrimeshPrimitiveManager_new0(); //constructor: TrimeshPrimitiveManager  ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) -void* btGImpactMeshShapePart_TrimeshPrimitiveManager_new1(void* p0,int p1); //constructor: TrimeshPrimitiveManager  ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( ::btStridingMeshInterface *,int ) -void btGImpactMeshShapePart_TrimeshPrimitiveManager_free(void *c); int btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count(void *c); //method: get_vertex_count int ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const-void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex(void *c,int p0,float* p1); //method: get_vertex void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btVector3 & ) const-int btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh(void *c); //method: is_trimesh bool ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const-void btGImpactMeshShapePart_TrimeshPrimitiveManager_lock(void *c); //method: lock void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) -void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btAABB & ) const-void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btPrimitiveTriangle & ) const-void btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock(void *c); //method: unlock void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) -void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle(void *c,int p0,void* p1); //method: get_bullet_triangle void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btTriangleShapeEx & ) const-int btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count(void *c); //method: get_primitive_count int ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const-//not supported method: get_indices void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,int &,int &,int & ) const-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_set(void *c,float a); //attribute: ::btScalar btGImpactMeshShapePart_TrimeshPrimitiveManager->m_margin-float btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_get(void *c); //attribute: ::btScalar btGImpactMeshShapePart_TrimeshPrimitiveManager->m_margin-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterface * btGImpactMeshShapePart_TrimeshPrimitiveManager->m_meshInterface-// attribute getter not supported: //attribute: ::btStridingMeshInterface * btGImpactMeshShapePart_TrimeshPrimitiveManager->m_meshInterface-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_set(void *c,float* a); //attribute: ::btVector3 btGImpactMeshShapePart_TrimeshPrimitiveManager->m_scale-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_get(void *c,float* a);-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_part-int btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_part-void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_lock_count-int btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_lock_count-// attribute not supported: //attribute: unsigned char const * btGImpactMeshShapePart_TrimeshPrimitiveManager->vertexbase-void btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numverts-int btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numverts-// attribute not supported: //attribute: ::PHY_ScalarType btGImpactMeshShapePart_TrimeshPrimitiveManager->type-void btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->stride-int btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->stride-// attribute not supported: //attribute: unsigned char const * btGImpactMeshShapePart_TrimeshPrimitiveManager->indexbase-void btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->indexstride-int btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->indexstride-void btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numfaces-int btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numfaces-// attribute not supported: //attribute: ::PHY_ScalarType btGImpactMeshShapePart_TrimeshPrimitiveManager->indicestype-void* btAABB_new0(); //constructor: btAABB  ( ::btAABB::* )(  ) -void* btAABB_new1(float* p0,float* p1,float* p2); //constructor: btAABB  ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void* btAABB_new2(float* p0,float* p1,float* p2,float p3); //constructor: btAABB  ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void* btAABB_new3(void* p0,float p1); //constructor: btAABB  ( ::btAABB::* )( ::btAABB const &,::btScalar ) -void btAABB_free(void *c); int btAABB_overlapping_trans_conservative(void *c,void* p0,float* p1); //method: overlapping_trans_conservative bool ( ::btAABB::* )( ::btAABB const &,::btTransform & ) const-void btAABB_appy_transform(void *c,float* p0); //method: appy_transform void ( ::btAABB::* )( ::btTransform const & ) -void btAABB_find_intersection(void *c,void* p0,void* p1); //method: find_intersection void ( ::btAABB::* )( ::btAABB const &,::btAABB & ) const-int btAABB_collide_ray(void *c,float* p0,float* p1); //method: collide_ray bool ( ::btAABB::* )( ::btVector3 const &,::btVector3 const & ) const-int btAABB_overlapping_trans_cache(void *c,void* p0,void* p1,int p2); //method: overlapping_trans_cache bool ( ::btAABB::* )( ::btAABB const &,::BT_BOX_BOX_TRANSFORM_CACHE const &,bool ) const-void btAABB_get_center_extend(void *c,float* p0,float* p1); //method: get_center_extend void ( ::btAABB::* )( ::btVector3 &,::btVector3 & ) const-void btAABB_invalidate(void *c); //method: invalidate void ( ::btAABB::* )(  ) -int btAABB_has_collision(void *c,void* p0); //method: has_collision bool ( ::btAABB::* )( ::btAABB const & ) const-//not supported method: projection_interval void ( ::btAABB::* )( ::btVector3 const &,::btScalar &,::btScalar & ) const-void btAABB_appy_transform_trans_cache(void *c,void* p0); //method: appy_transform_trans_cache void ( ::btAABB::* )( ::BT_BOX_BOX_TRANSFORM_CACHE const & ) -void btAABB_calc_from_triangle_margin(void *c,float* p0,float* p1,float* p2,float p3); //method: calc_from_triangle_margin void ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btAABB_increment_margin(void *c,float p0); //method: increment_margin void ( ::btAABB::* )( ::btScalar ) -void btAABB_merge(void *c,void* p0); //method: merge void ( ::btAABB::* )( ::btAABB const & ) -int btAABB_collide_plane(void *c,float* p0); //method: collide_plane bool ( ::btAABB::* )( ::btVector4 const & ) const-//not supported method: plane_classify ::eBT_PLANE_INTERSECTION_TYPE ( ::btAABB::* )( ::btVector4 const & ) const-int btAABB_overlapping_trans_conservative2(void *c,void* p0,void* p1); //method: overlapping_trans_conservative2 bool ( ::btAABB::* )( ::btAABB const &,::BT_BOX_BOX_TRANSFORM_CACHE const & ) const-void btAABB_copy_with_margin(void *c,void* p0,float p1); //method: copy_with_margin void ( ::btAABB::* )( ::btAABB const &,::btScalar ) -int btAABB_collide_triangle_exact(void *c,float* p0,float* p1,float* p2,float* p3); //method: collide_triangle_exact bool ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector4 const & ) const-void btAABB_m_max_set(void *c,float* a); //attribute: ::btVector3 btAABB->m_max-void btAABB_m_max_get(void *c,float* a);-void btAABB_m_min_set(void *c,float* a); //attribute: ::btVector3 btAABB->m_min-void btAABB_m_min_get(void *c,float* a);-void* btBvhTree_new(); //constructor: btBvhTree  ( ::btBvhTree::* )(  ) -void btBvhTree_free(void *c); int btBvhTree_getNodeCount(void *c); //method: getNodeCount int ( ::btBvhTree::* )(  ) const-void btBvhTree_build_tree(void *c,void* p0); //method: build_tree void ( ::btBvhTree::* )( ::GIM_BVH_DATA_ARRAY & ) -void btBvhTree_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btBvhTree::* )( int,::btAABB const & ) -int btBvhTree_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btBvhTree::* )( int ) const-int btBvhTree_getRightNode(void *c,int p0); //method: getRightNode int ( ::btBvhTree::* )( int ) const-void btBvhTree_clearNodes(void *c); //method: clearNodes void ( ::btBvhTree::* )(  ) -int btBvhTree_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btBvhTree::* )( int ) const-int btBvhTree_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btBvhTree::* )( int ) const-void* btBvhTree_get_node_pointer(void *c,int p0); //method: get_node_pointer ::GIM_BVH_TREE_NODE const * ( ::btBvhTree::* )( int ) const-int btBvhTree_getNodeData(void *c,int p0); //method: getNodeData int ( ::btBvhTree::* )( int ) const-void btBvhTree_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btBvhTree::* )( int,::btAABB & ) const-void* btGImpactBvh_new0(); //constructor: btGImpactBvh  ( ::btGImpactBvh::* )(  ) -void* btGImpactBvh_new1(void* p0); //constructor: btGImpactBvh  ( ::btGImpactBvh::* )( ::btPrimitiveManagerBase * ) -void btGImpactBvh_free(void *c); int btGImpactBvh_getNodeCount(void *c); //method: getNodeCount int ( ::btGImpactBvh::* )(  ) const-void btGImpactBvh_find_collision(void* p0,float* p1,void* p2,float* p3,void* p4); //method: find_collision void (*)( ::btGImpactBvh *,::btTransform const &,::btGImpactBvh *,::btTransform const &,::btPairSet & )-void btGImpactBvh_getNodeTriangle(void *c,int p0,void* p1); //method: getNodeTriangle void ( ::btGImpactBvh::* )( int,::btPrimitiveTriangle & ) const-int btGImpactBvh_hasHierarchy(void *c); //method: hasHierarchy bool ( ::btGImpactBvh::* )(  ) const-//not supported method: rayQuery bool ( ::btGImpactBvh::* )( ::btVector3 const &,::btVector3 const &,::btAlignedObjectArray<int> & ) const-int btGImpactBvh_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btGImpactBvh::* )( int ) const-int btGImpactBvh_getRightNode(void *c,int p0); //method: getRightNode int ( ::btGImpactBvh::* )( int ) const-//not supported method: boxQueryTrans bool ( ::btGImpactBvh::* )( ::btAABB const &,::btTransform const &,::btAlignedObjectArray<int> & ) const-void btGImpactBvh_update(void *c); //method: update void ( ::btGImpactBvh::* )(  ) -//not supported method: getGlobalBox ::btAABB ( ::btGImpactBvh::* )(  ) const-int btGImpactBvh_isTrimesh(void *c); //method: isTrimesh bool ( ::btGImpactBvh::* )(  ) const-void btGImpactBvh_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btGImpactBvh::* )( int,::btAABB const & ) -void btGImpactBvh_setPrimitiveManager(void *c,void* p0); //method: setPrimitiveManager void ( ::btGImpactBvh::* )( ::btPrimitiveManagerBase * ) -int btGImpactBvh_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btGImpactBvh::* )( int ) const-int btGImpactBvh_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btGImpactBvh::* )( int ) const-void* btGImpactBvh_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase * ( ::btGImpactBvh::* )(  ) const-void btGImpactBvh_buildSet(void *c); //method: buildSet void ( ::btGImpactBvh::* )(  ) -void* btGImpactBvh_get_node_pointer(void *c,int p0); //method: get_node_pointer ::GIM_BVH_TREE_NODE const * ( ::btGImpactBvh::* )( int ) const-int btGImpactBvh_getNodeData(void *c,int p0); //method: getNodeData int ( ::btGImpactBvh::* )( int ) const-void btGImpactBvh_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btGImpactBvh::* )( int,::btAABB & ) const-//not supported method: boxQuery bool ( ::btGImpactBvh::* )( ::btAABB const &,::btAlignedObjectArray<int> & ) const-void* btGImpactCollisionAlgorithm_new(void* p0,void* p1,void* p2); //constructor: btGImpactCollisionAlgorithm  ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject * ) -void btGImpactCollisionAlgorithm_free(void *c); int btGImpactCollisionAlgorithm_getPart1(void *c); //method: getPart1 int ( ::btGImpactCollisionAlgorithm::* )(  ) -int btGImpactCollisionAlgorithm_getPart0(void *c); //method: getPart0 int ( ::btGImpactCollisionAlgorithm::* )(  ) -void btGImpactCollisionAlgorithm_gimpact_vs_shape(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_shape void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btCollisionShape *,bool ) -int btGImpactCollisionAlgorithm_getFace1(void *c); //method: getFace1 int ( ::btGImpactCollisionAlgorithm::* )(  ) -void btGImpactCollisionAlgorithm_gimpact_vs_concave(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_concave void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btConcaveShape *,bool ) -void btGImpactCollisionAlgorithm_gimpact_vs_compoundshape(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_compoundshape void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btCompoundShape *,bool ) -float btGImpactCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void btGImpactCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void btGImpactCollisionAlgorithm_setFace1(void *c,int p0); //method: setFace1 void ( ::btGImpactCollisionAlgorithm::* )( int ) -void btGImpactCollisionAlgorithm_gimpact_vs_gimpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: gimpact_vs_gimpact void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btGImpactShapeInterface * ) -//not supported method: getAllContactManifolds void ( ::btGImpactCollisionAlgorithm::* )( ::btManifoldArray & ) -void btGImpactCollisionAlgorithm_setFace0(void *c,int p0); //method: setFace0 void ( ::btGImpactCollisionAlgorithm::* )( int ) -void btGImpactCollisionAlgorithm_setPart1(void *c,int p0); //method: setPart1 void ( ::btGImpactCollisionAlgorithm::* )( int ) -void btGImpactCollisionAlgorithm_setPart0(void *c,int p0); //method: setPart0 void ( ::btGImpactCollisionAlgorithm::* )( int ) -void btGImpactCollisionAlgorithm_registerAlgorithm(void* p0); //method: registerAlgorithm void (*)( ::btCollisionDispatcher * )-int btGImpactCollisionAlgorithm_getFace0(void *c); //method: getFace0 int ( ::btGImpactCollisionAlgorithm::* )(  ) -void* btGImpactCompoundShape_new(int p0); //constructor: btGImpactCompoundShape  ( ::btGImpactCompoundShape::* )( bool ) -void btGImpactCompoundShape_free(void *c); void btGImpactCompoundShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactCompoundShape::* )( ::btScalar,::btVector3 & ) const-void btGImpactCompoundShape_addChildShape(void *c,float* p0,void* p1); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) -void btGImpactCompoundShape_addChildShape0(void *c,float* p0,void* p1); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) -void btGImpactCompoundShape_addChildShape1(void *c,void* p0); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btCollisionShape * ) -void* btGImpactCompoundShape_getCompoundPrimitiveManager(void *c); //method: getCompoundPrimitiveManager ::btGImpactCompoundShape::CompoundPrimitiveManager * ( ::btGImpactCompoundShape::* )(  ) -void btGImpactCompoundShape_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactCompoundShape::* )( int,::btTransform const & ) -void btGImpactCompoundShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactCompoundShape::* )( int ) const-void btGImpactCompoundShape_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactCompoundShape::* )( int,::btTetrahedronShapeEx & ) const-char const * btGImpactCompoundShape_getName(void *c); //method: getName char const * ( ::btGImpactCompoundShape::* )(  ) const-int btGImpactCompoundShape_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactCompoundShape::* )(  ) const-void* btGImpactCompoundShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactCompoundShape::* )( int ) -void* btGImpactCompoundShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactCompoundShape::* )( int ) -void* btGImpactCompoundShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactCompoundShape::* )( int ) const-void btGImpactCompoundShape_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactCompoundShape::* )( int,::btTriangleShapeEx & ) const-int btGImpactCompoundShape_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactCompoundShape::* )(  ) const-int btGImpactCompoundShape_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactCompoundShape::* )(  ) const-int btGImpactCompoundShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactCompoundShape::* )(  ) const-void* btGImpactCompoundShape_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactCompoundShape::* )(  ) const-void btGImpactCompoundShape_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactCompoundShape::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const-//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactCompoundShape::* )(  ) const-void* btGImpactMeshShape_new(void* p0); //constructor: btGImpactMeshShape  ( ::btGImpactMeshShape::* )( ::btStridingMeshInterface * ) -void btGImpactMeshShape_free(void *c); void btGImpactMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactMeshShape::* )( ::btScalar,::btVector3 & ) const-void btGImpactMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactMeshShape::* )( ::btVector3 const & ) -void btGImpactMeshShape_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactMeshShape::* )( int,::btTransform const & ) -void* btGImpactMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btGImpactMeshShape::* )(  ) -void* btGImpactMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btGImpactMeshShape::* )(  ) -void* btGImpactMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btGImpactMeshShape::* )(  ) const-void* btGImpactMeshShape_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-int btGImpactMeshShape_getMeshPartCount(void *c); //method: getMeshPartCount int ( ::btGImpactMeshShape::* )(  ) const-int btGImpactMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btGImpactMeshShape::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const-char const * btGImpactMeshShape_getName(void *c); //method: getName char const * ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactMeshShape::* )( int,::btTriangleShapeEx & ) const-void* btGImpactMeshShape_getMeshPart(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart * ( ::btGImpactMeshShape::* )( int ) -void* btGImpactMeshShape_getMeshPart0(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart * ( ::btGImpactMeshShape::* )( int ) -void* btGImpactMeshShape_getMeshPart1(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart const * ( ::btGImpactMeshShape::* )( int ) const-int btGImpactMeshShape_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactMeshShape::* )(  ) const-int btGImpactMeshShape_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactMeshShape::* )(  ) const-void* btGImpactMeshShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShape::* )( int ) -void* btGImpactMeshShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShape::* )( int ) -void* btGImpactMeshShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactMeshShape::* )( int ) const-//not supported method: serialize char const * ( ::btGImpactMeshShape::* )( void *,::btSerializer * ) const-void btGImpactMeshShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactMeshShape::* )( int ) const-void btGImpactMeshShape_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactMeshShape::* )( ::btScalar ) -int btGImpactMeshShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactMeshShape::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const-void btGImpactMeshShape_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactMeshShape::* )( int,::btTetrahedronShapeEx & ) const-int btGImpactMeshShape_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactMeshShape::* )(  ) const-void btGImpactMeshShape_postUpdate(void *c); //method: postUpdate void ( ::btGImpactMeshShape::* )(  ) -//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactMeshShape::* )(  ) const-void* btGImpactMeshShapeData_new(); //constructor: btGImpactMeshShapeData  ( ::btGImpactMeshShapeData::* )(  ) -void btGImpactMeshShapeData_free(void *c); // attribute not supported: //attribute: ::btCollisionShapeData btGImpactMeshShapeData->m_collisionShapeData-// attribute not supported: //attribute: ::btStridingMeshInterfaceData btGImpactMeshShapeData->m_meshInterface-// attribute not supported: //attribute: ::btVector3FloatData btGImpactMeshShapeData->m_localScaling-void btGImpactMeshShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btGImpactMeshShapeData->m_collisionMargin-float btGImpactMeshShapeData_m_collisionMargin_get(void *c); //attribute: float btGImpactMeshShapeData->m_collisionMargin-void btGImpactMeshShapeData_m_gimpactSubType_set(void *c,int a); //attribute: int btGImpactMeshShapeData->m_gimpactSubType-int btGImpactMeshShapeData_m_gimpactSubType_get(void *c); //attribute: int btGImpactMeshShapeData->m_gimpactSubType-void* btGImpactMeshShapePart_new0(); //constructor: btGImpactMeshShapePart  ( ::btGImpactMeshShapePart::* )(  ) -void* btGImpactMeshShapePart_new1(void* p0,int p1); //constructor: btGImpactMeshShapePart  ( ::btGImpactMeshShapePart::* )( ::btStridingMeshInterface *,int ) -void btGImpactMeshShapePart_free(void *c); void btGImpactMeshShapePart_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactMeshShapePart::* )( ::btScalar,::btVector3 & ) const-void btGImpactMeshShapePart_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactMeshShapePart::* )( int,::btTransform const & ) -void btGImpactMeshShapePart_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btGImpactMeshShapePart::* )(  ) const-void btGImpactMeshShapePart_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btGImpactMeshShapePart::* )( int,::btVector3 & ) const-void btGImpactMeshShapePart_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactMeshShapePart::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-char const * btGImpactMeshShapePart_getName(void *c); //method: getName char const * ( ::btGImpactMeshShapePart::* )(  ) const-void btGImpactMeshShapePart_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactMeshShapePart::* )( int,::btTriangleShapeEx & ) const-void btGImpactMeshShapePart_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactMeshShapePart::* )( ::btVector3 const & ) -int btGImpactMeshShapePart_getPart(void *c); //method: getPart int ( ::btGImpactMeshShapePart::* )(  ) const-int btGImpactMeshShapePart_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactMeshShapePart::* )(  ) const-int btGImpactMeshShapePart_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactMeshShapePart::* )(  ) const-void* btGImpactMeshShapePart_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShapePart::* )( int ) -void* btGImpactMeshShapePart_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShapePart::* )( int ) -void* btGImpactMeshShapePart_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactMeshShapePart::* )( int ) const-void btGImpactMeshShapePart_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactMeshShapePart::* )( int ) const-void btGImpactMeshShapePart_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactMeshShapePart::* )(  ) const-float btGImpactMeshShapePart_getMargin(void *c); //method: getMargin ::btScalar ( ::btGImpactMeshShapePart::* )(  ) const-void btGImpactMeshShapePart_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactMeshShapePart::* )( ::btScalar ) -void* btGImpactMeshShapePart_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactMeshShapePart::* )(  ) const-int btGImpactMeshShapePart_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactMeshShapePart::* )(  ) const-void btGImpactMeshShapePart_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactMeshShapePart::* )( int,::btTetrahedronShapeEx & ) const-void* btGImpactMeshShapePart_getTrimeshPrimitiveManager(void *c); //method: getTrimeshPrimitiveManager ::btGImpactMeshShapePart::TrimeshPrimitiveManager * ( ::btGImpactMeshShapePart::* )(  ) -int btGImpactMeshShapePart_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactMeshShapePart::* )(  ) const-void btGImpactMeshShapePart_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactMeshShapePart::* )(  ) const-//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactMeshShapePart::* )(  ) const-int btGImpactMeshShapePart_getVertexCount(void *c); //method: getVertexCount int ( ::btGImpactMeshShapePart::* )(  ) const-void* btGImpactQuantizedBvh_new0(); //constructor: btGImpactQuantizedBvh  ( ::btGImpactQuantizedBvh::* )(  ) -void* btGImpactQuantizedBvh_new1(void* p0); //constructor: btGImpactQuantizedBvh  ( ::btGImpactQuantizedBvh::* )( ::btPrimitiveManagerBase * ) -void btGImpactQuantizedBvh_free(void *c); int btGImpactQuantizedBvh_getNodeCount(void *c); //method: getNodeCount int ( ::btGImpactQuantizedBvh::* )(  ) const-void btGImpactQuantizedBvh_find_collision(void* p0,float* p1,void* p2,float* p3,void* p4); //method: find_collision void (*)( ::btGImpactQuantizedBvh *,::btTransform const &,::btGImpactQuantizedBvh *,::btTransform const &,::btPairSet & )-void btGImpactQuantizedBvh_getNodeTriangle(void *c,int p0,void* p1); //method: getNodeTriangle void ( ::btGImpactQuantizedBvh::* )( int,::btPrimitiveTriangle & ) const-int btGImpactQuantizedBvh_hasHierarchy(void *c); //method: hasHierarchy bool ( ::btGImpactQuantizedBvh::* )(  ) const-//not supported method: rayQuery bool ( ::btGImpactQuantizedBvh::* )( ::btVector3 const &,::btVector3 const &,::btAlignedObjectArray<int> & ) const-int btGImpactQuantizedBvh_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btGImpactQuantizedBvh::* )( int ) const-int btGImpactQuantizedBvh_getRightNode(void *c,int p0); //method: getRightNode int ( ::btGImpactQuantizedBvh::* )( int ) const-//not supported method: boxQueryTrans bool ( ::btGImpactQuantizedBvh::* )( ::btAABB const &,::btTransform const &,::btAlignedObjectArray<int> & ) const-void btGImpactQuantizedBvh_update(void *c); //method: update void ( ::btGImpactQuantizedBvh::* )(  ) -//not supported method: getGlobalBox ::btAABB ( ::btGImpactQuantizedBvh::* )(  ) const-int btGImpactQuantizedBvh_isTrimesh(void *c); //method: isTrimesh bool ( ::btGImpactQuantizedBvh::* )(  ) const-void btGImpactQuantizedBvh_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btGImpactQuantizedBvh::* )( int,::btAABB const & ) -void btGImpactQuantizedBvh_setPrimitiveManager(void *c,void* p0); //method: setPrimitiveManager void ( ::btGImpactQuantizedBvh::* )( ::btPrimitiveManagerBase * ) -int btGImpactQuantizedBvh_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btGImpactQuantizedBvh::* )( int ) const-int btGImpactQuantizedBvh_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btGImpactQuantizedBvh::* )( int ) const-void* btGImpactQuantizedBvh_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase * ( ::btGImpactQuantizedBvh::* )(  ) const-void btGImpactQuantizedBvh_buildSet(void *c); //method: buildSet void ( ::btGImpactQuantizedBvh::* )(  ) -void* btGImpactQuantizedBvh_get_node_pointer(void *c,int p0); //method: get_node_pointer ::BT_QUANTIZED_BVH_NODE const * ( ::btGImpactQuantizedBvh::* )( int ) const-int btGImpactQuantizedBvh_getNodeData(void *c,int p0); //method: getNodeData int ( ::btGImpactQuantizedBvh::* )( int ) const-void btGImpactQuantizedBvh_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btGImpactQuantizedBvh::* )( int,::btAABB & ) const-//not supported method: boxQuery bool ( ::btGImpactQuantizedBvh::* )( ::btAABB const &,::btAlignedObjectArray<int> & ) const-void btGImpactShapeInterface_getPrimitiveTriangle(void *c,int p0,void* p1); //method: getPrimitiveTriangle void ( ::btGImpactShapeInterface::* )( int,::btPrimitiveTriangle & ) const-void btGImpactShapeInterface_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactShapeInterface::* )( int,::btTransform const & ) -void btGImpactShapeInterface_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btGImpactShapeInterface::* )(  ) const-void* btGImpactShapeInterface_getLocalBox(void *c); //method: getLocalBox ::btAABB const & ( ::btGImpactShapeInterface::* )(  ) -void* btGImpactShapeInterface_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactShapeInterface::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const-int btGImpactShapeInterface_hasBoxSet(void *c); //method: hasBoxSet bool ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btGImpactShapeInterface::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const-void* btGImpactShapeInterface_getBoxSet(void *c); //method: getBoxSet ::btGImpactBoxSet * ( ::btGImpactShapeInterface::* )(  ) -void btGImpactShapeInterface_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactShapeInterface::* )( int,::btTriangleShapeEx & ) const-void btGImpactShapeInterface_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactShapeInterface::* )( ::btVector3 const & ) -int btGImpactShapeInterface_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactShapeInterface::* )(  ) const-int btGImpactShapeInterface_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btGImpactShapeInterface::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void* btGImpactShapeInterface_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactShapeInterface::* )( int ) -void* btGImpactShapeInterface_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactShapeInterface::* )( int ) -void* btGImpactShapeInterface_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactShapeInterface::* )( int ) const-void btGImpactShapeInterface_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactShapeInterface::* )( int ) const-void btGImpactShapeInterface_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactShapeInterface::* )( ::btScalar ) -int btGImpactShapeInterface_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactShapeInterface::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const-int btGImpactShapeInterface_getShapeType(void *c); //method: getShapeType int ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactShapeInterface::* )( int,::btTetrahedronShapeEx & ) const-int btGImpactShapeInterface_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactShapeInterface::* )(  ) const-void btGImpactShapeInterface_postUpdate(void *c); //method: postUpdate void ( ::btGImpactShapeInterface::* )(  ) -void btGImpactShapeInterface_updateBound(void *c); //method: updateBound void ( ::btGImpactShapeInterface::* )(  ) -//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactShapeInterface::* )(  ) const-void* btPairSet_new(); //constructor: btPairSet  ( ::btPairSet::* )(  ) -void btPairSet_free(void *c); void btPairSet_push_pair_inv(void *c,int p0,int p1); //method: push_pair_inv void ( ::btPairSet::* )( int,int ) -void btPairSet_push_pair(void *c,int p0,int p1); //method: push_pair void ( ::btPairSet::* )( int,int ) -void btPrimitiveManagerBase_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btPrimitiveManagerBase::* )( int,::btAABB & ) const-void btPrimitiveManagerBase_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btPrimitiveManagerBase::* )( int,::btPrimitiveTriangle & ) const-int btPrimitiveManagerBase_is_trimesh(void *c); //method: is_trimesh bool ( ::btPrimitiveManagerBase::* )(  ) const-int btPrimitiveManagerBase_get_primitive_count(void *c); //method: get_primitive_count int ( ::btPrimitiveManagerBase::* )(  ) const-void* btPrimitiveTriangle_new(); //constructor: btPrimitiveTriangle  ( ::btPrimitiveTriangle::* )(  ) -void btPrimitiveTriangle_free(void *c); //not supported method: clip_triangle int ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle &,::btVector3 * ) -void btPrimitiveTriangle_get_edge_plane(void *c,int p0,float* p1); //method: get_edge_plane void ( ::btPrimitiveTriangle::* )( int,::btVector4 & ) const-int btPrimitiveTriangle_overlap_test_conservative(void *c,void* p0); //method: overlap_test_conservative bool ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle const & ) -void btPrimitiveTriangle_buildTriPlane(void *c); //method: buildTriPlane void ( ::btPrimitiveTriangle::* )(  ) -void btPrimitiveTriangle_applyTransform(void *c,float* p0); //method: applyTransform void ( ::btPrimitiveTriangle::* )( ::btTransform const & ) -int btPrimitiveTriangle_find_triangle_collision_clip_method(void *c,void* p0,void* p1); //method: find_triangle_collision_clip_method bool ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle &,::GIM_TRIANGLE_CONTACT & ) -void btPrimitiveTriangle_m_dummy_set(void *c,float a); //attribute: ::btScalar btPrimitiveTriangle->m_dummy-float btPrimitiveTriangle_m_dummy_get(void *c); //attribute: ::btScalar btPrimitiveTriangle->m_dummy-void btPrimitiveTriangle_m_margin_set(void *c,float a); //attribute: ::btScalar btPrimitiveTriangle->m_margin-float btPrimitiveTriangle_m_margin_get(void *c); //attribute: ::btScalar btPrimitiveTriangle->m_margin-void btPrimitiveTriangle_m_plane_set(void *c,float* a); //attribute: ::btVector4 btPrimitiveTriangle->m_plane-void btPrimitiveTriangle_m_plane_get(void *c,float* a);-// attribute not supported: //attribute: ::btVector3[3] btPrimitiveTriangle->m_vertices-void* btQuantizedBvhTree_new(); //constructor: btQuantizedBvhTree  ( ::btQuantizedBvhTree::* )(  ) -void btQuantizedBvhTree_free(void *c); int btQuantizedBvhTree_getNodeCount(void *c); //method: getNodeCount int ( ::btQuantizedBvhTree::* )(  ) const-void btQuantizedBvhTree_build_tree(void *c,void* p0); //method: build_tree void ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY & ) -int btQuantizedBvhTree_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btQuantizedBvhTree::* )( int ) const-void btQuantizedBvhTree_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btQuantizedBvhTree::* )( int,::btAABB const & ) -void btQuantizedBvhTree_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btQuantizedBvhTree::* )( int,::btAABB & ) const-int btQuantizedBvhTree_getRightNode(void *c,int p0); //method: getRightNode int ( ::btQuantizedBvhTree::* )( int ) const-void btQuantizedBvhTree_clearNodes(void *c); //method: clearNodes void ( ::btQuantizedBvhTree::* )(  ) -int btQuantizedBvhTree_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btQuantizedBvhTree::* )( int ) const-int btQuantizedBvhTree_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btQuantizedBvhTree::* )( int ) const-void* btQuantizedBvhTree_get_node_pointer(void *c,int p0); //method: get_node_pointer ::BT_QUANTIZED_BVH_NODE const * ( ::btQuantizedBvhTree::* )( int ) const-//not supported method: testQuantizedBoxOverlapp bool ( ::btQuantizedBvhTree::* )( int,short unsigned int *,short unsigned int * ) const-int btQuantizedBvhTree_getNodeData(void *c,int p0); //method: getNodeData int ( ::btQuantizedBvhTree::* )( int ) const-//not supported method: quantizePoint void ( ::btQuantizedBvhTree::* )( short unsigned int *,::btVector3 const & ) const-void* btTetrahedronShapeEx_new(); //constructor: btTetrahedronShapeEx  ( ::btTetrahedronShapeEx::* )(  ) -void btTetrahedronShapeEx_free(void *c); void btTetrahedronShapeEx_setVertices(void *c,float* p0,float* p1,float* p2,float* p3); //method: setVertices void ( ::btTetrahedronShapeEx::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void* btTriangleShapeEx_new0(); //constructor: btTriangleShapeEx  ( ::btTriangleShapeEx::* )(  ) -void* btTriangleShapeEx_new1(float* p0,float* p1,float* p2); //constructor: btTriangleShapeEx  ( ::btTriangleShapeEx::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btTriangleShapeEx_free(void *c); int btTriangleShapeEx_overlap_test_conservative(void *c,void* p0); //method: overlap_test_conservative bool ( ::btTriangleShapeEx::* )( ::btTriangleShapeEx const & ) -void btTriangleShapeEx_buildTriPlane(void *c,float* p0); //method: buildTriPlane void ( ::btTriangleShapeEx::* )( ::btVector4 & ) const-void btTriangleShapeEx_applyTransform(void *c,float* p0); //method: applyTransform void ( ::btTriangleShapeEx::* )( ::btTransform const & ) -void btTriangleShapeEx_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleShapeEx::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const-void* btDbvt_IClone_new(); //constructor: IClone  ( ::btDbvt::IClone::* )(  ) -void btDbvt_IClone_free(void *c); void btDbvt_IClone_CloneLeaf(void *c,void* p0); //method: CloneLeaf void ( ::btDbvt::IClone::* )( ::btDbvtNode * ) -void* btDbvt_ICollide_new(); //constructor: ICollide  ( ::btDbvt::ICollide::* )(  ) -void btDbvt_ICollide_free(void *c); void btDbvt_ICollide_Process(void *c,void* p0,void* p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btDbvtNode const * ) -void btDbvt_ICollide_Process0(void *c,void* p0,void* p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btDbvtNode const * ) -void btDbvt_ICollide_Process1(void *c,void* p0); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) -void btDbvt_ICollide_Process2(void *c,void* p0,float p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btScalar ) -int btDbvt_ICollide_AllLeaves(void *c,void* p0); //method: AllLeaves bool ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) -int btDbvt_ICollide_Descent(void *c,void* p0); //method: Descent bool ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) -void btDbvt_IWriter_WriteLeaf(void *c,void* p0,int p1,int p2); //method: WriteLeaf void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int,int ) -void btDbvt_IWriter_WriteNode(void *c,void* p0,int p1,int p2,int p3,int p4); //method: WriteNode void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int,int,int,int ) -void btDbvt_IWriter_Prepare(void *c,void* p0,int p1); //method: Prepare void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int ) -void* bt32BitAxisSweep3_new(float* p0,float* p1,unsigned int p2,void* p3,int p4); //constructor: bt32BitAxisSweep3  ( ::bt32BitAxisSweep3::* )( ::btVector3 const &,::btVector3 const &,unsigned int,::btOverlappingPairCache *,bool ) -void bt32BitAxisSweep3_free(void *c); void* btAxisSweep3_new(float* p0,float* p1,short unsigned int p2,void* p3,int p4); //constructor: btAxisSweep3  ( ::btAxisSweep3::* )( ::btVector3 const &,::btVector3 const &,short unsigned int,::btOverlappingPairCache *,bool ) -void btAxisSweep3_free(void *c); int btBroadphaseAabbCallback_process(void *c,void* p0); //method: process bool ( ::btBroadphaseAabbCallback::* )( ::btBroadphaseProxy const * ) -void btBroadphaseInterface_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) -void btBroadphaseInterface_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) -void btBroadphaseInterface_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btBroadphaseInterface::* )( ::btVector3 &,::btVector3 & ) const-void btBroadphaseInterface_resetPool(void *c,void* p0); //method: resetPool void ( ::btBroadphaseInterface::* )( ::btDispatcher * ) -void btBroadphaseInterface_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btBroadphaseInterface::* )( ::btDispatcher * ) -void btBroadphaseInterface_printStats(void *c); //method: printStats void ( ::btBroadphaseInterface::* )(  ) -void btBroadphaseInterface_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const-void btBroadphaseInterface_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) -//not supported method: createProxy ::btBroadphaseProxy * ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) -void* btBroadphaseInterface_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btBroadphaseInterface::* )(  ) -void* btBroadphaseInterface_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btBroadphaseInterface::* )(  ) -void* btBroadphaseInterface_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btBroadphaseInterface::* )(  ) const-void btBroadphaseInterface_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void* btBroadphasePair_new0(); //constructor: btBroadphasePair  ( ::btBroadphasePair::* )(  ) -void* btBroadphasePair_new1(void* p0,void* p1); //constructor: btBroadphasePair  ( ::btBroadphasePair::* )( ::btBroadphaseProxy &,::btBroadphaseProxy & ) -void btBroadphasePair_free(void *c); void btBroadphasePair_m_pProxy0_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy0-// attribute getter not supported: //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy0-void btBroadphasePair_m_pProxy1_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy1-// attribute getter not supported: //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy1-void btBroadphasePair_m_algorithm_set(void *c,void* a); //attribute: ::btCollisionAlgorithm * btBroadphasePair->m_algorithm-// attribute getter not supported: //attribute: ::btCollisionAlgorithm * btBroadphasePair->m_algorithm-// attribute not supported: //attribute: ::btBroadphasePair btBroadphasePair->-void* btBroadphasePairSortPredicate_new(); //constructor: btBroadphasePairSortPredicate  ( ::btBroadphasePairSortPredicate::* )(  ) -void btBroadphasePairSortPredicate_free(void *c); void* btBroadphaseProxy_new0(); //constructor: btBroadphaseProxy  ( ::btBroadphaseProxy::* )(  ) -//not supported constructor: btBroadphaseProxy  ( ::btBroadphaseProxy::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int,void * ) -void btBroadphaseProxy_free(void *c); int btBroadphaseProxy_isConvex(int p0); //method: isConvex bool (*)( int )-int btBroadphaseProxy_isInfinite(int p0); //method: isInfinite bool (*)( int )-int btBroadphaseProxy_getUid(void *c); //method: getUid int ( ::btBroadphaseProxy::* )(  ) const-int btBroadphaseProxy_isConcave(int p0); //method: isConcave bool (*)( int )-int btBroadphaseProxy_isNonMoving(int p0); //method: isNonMoving bool (*)( int )-int btBroadphaseProxy_isCompound(int p0); //method: isCompound bool (*)( int )-int btBroadphaseProxy_isPolyhedral(int p0); //method: isPolyhedral bool (*)( int )-int btBroadphaseProxy_isConvex2d(int p0); //method: isConvex2d bool (*)( int )-int btBroadphaseProxy_isSoftBody(int p0); //method: isSoftBody bool (*)( int )-void btBroadphaseProxy_m_aabbMax_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseProxy->m_aabbMax-void btBroadphaseProxy_m_aabbMax_get(void *c,float* a);-void btBroadphaseProxy_m_aabbMin_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseProxy->m_aabbMin-void btBroadphaseProxy_m_aabbMin_get(void *c,float* a);-// attribute not supported: //attribute: void * btBroadphaseProxy->m_clientObject-void btBroadphaseProxy_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btBroadphaseProxy->m_collisionFilterGroup-short int btBroadphaseProxy_m_collisionFilterGroup_get(void *c); //attribute: short int btBroadphaseProxy->m_collisionFilterGroup-void btBroadphaseProxy_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btBroadphaseProxy->m_collisionFilterMask-short int btBroadphaseProxy_m_collisionFilterMask_get(void *c); //attribute: short int btBroadphaseProxy->m_collisionFilterMask-// attribute not supported: //attribute: void * btBroadphaseProxy->m_multiSapParentProxy-void btBroadphaseProxy_m_uniqueId_set(void *c,int a); //attribute: int btBroadphaseProxy->m_uniqueId-int btBroadphaseProxy_m_uniqueId_get(void *c); //attribute: int btBroadphaseProxy->m_uniqueId-void btBroadphaseRayCallback_m_lambda_max_set(void *c,float a); //attribute: ::btScalar btBroadphaseRayCallback->m_lambda_max-float btBroadphaseRayCallback_m_lambda_max_get(void *c); //attribute: ::btScalar btBroadphaseRayCallback->m_lambda_max-void btBroadphaseRayCallback_m_rayDirectionInverse_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseRayCallback->m_rayDirectionInverse-void btBroadphaseRayCallback_m_rayDirectionInverse_get(void *c,float* a);-// attribute not supported: //attribute: unsigned int[3] btBroadphaseRayCallback->m_signs-void* btBvhSubtreeInfo_new(); //constructor: btBvhSubtreeInfo  ( ::btBvhSubtreeInfo::* )(  ) -void btBvhSubtreeInfo_free(void *c); void btBvhSubtreeInfo_setAabbFromQuantizeNode(void *c,void* p0); //method: setAabbFromQuantizeNode void ( ::btBvhSubtreeInfo::* )( ::btQuantizedBvhNode const & ) -// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfo->m_quantizedAabbMin-// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfo->m_quantizedAabbMax-void btBvhSubtreeInfo_m_rootNodeIndex_set(void *c,int a); //attribute: int btBvhSubtreeInfo->m_rootNodeIndex-int btBvhSubtreeInfo_m_rootNodeIndex_get(void *c); //attribute: int btBvhSubtreeInfo->m_rootNodeIndex-void btBvhSubtreeInfo_m_subtreeSize_set(void *c,int a); //attribute: int btBvhSubtreeInfo->m_subtreeSize-int btBvhSubtreeInfo_m_subtreeSize_get(void *c); //attribute: int btBvhSubtreeInfo->m_subtreeSize-// attribute not supported: //attribute: int[3] btBvhSubtreeInfo->m_padding-void* btBvhSubtreeInfoData_new(); //constructor: btBvhSubtreeInfoData  ( ::btBvhSubtreeInfoData::* )(  ) -void btBvhSubtreeInfoData_free(void *c); void btBvhSubtreeInfoData_m_rootNodeIndex_set(void *c,int a); //attribute: int btBvhSubtreeInfoData->m_rootNodeIndex-int btBvhSubtreeInfoData_m_rootNodeIndex_get(void *c); //attribute: int btBvhSubtreeInfoData->m_rootNodeIndex-void btBvhSubtreeInfoData_m_subtreeSize_set(void *c,int a); //attribute: int btBvhSubtreeInfoData->m_subtreeSize-int btBvhSubtreeInfoData_m_subtreeSize_get(void *c); //attribute: int btBvhSubtreeInfoData->m_subtreeSize-// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfoData->m_quantizedAabbMin-// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfoData->m_quantizedAabbMax-//not supported method: getAllContactManifolds void ( ::btCollisionAlgorithm::* )( ::btManifoldArray & ) -float btCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void btCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void* btCollisionAlgorithmConstructionInfo_new0(); //constructor: btCollisionAlgorithmConstructionInfo  ( ::btCollisionAlgorithmConstructionInfo::* )(  ) -void* btCollisionAlgorithmConstructionInfo_new1(void* p0,int p1); //constructor: btCollisionAlgorithmConstructionInfo  ( ::btCollisionAlgorithmConstructionInfo::* )( ::btDispatcher *,int ) -void btCollisionAlgorithmConstructionInfo_free(void *c); void btCollisionAlgorithmConstructionInfo_m_dispatcher1_set(void *c,void* a); //attribute: ::btDispatcher * btCollisionAlgorithmConstructionInfo->m_dispatcher1-// attribute getter not supported: //attribute: ::btDispatcher * btCollisionAlgorithmConstructionInfo->m_dispatcher1-void btCollisionAlgorithmConstructionInfo_m_manifold_set(void *c,void* a); //attribute: ::btPersistentManifold * btCollisionAlgorithmConstructionInfo->m_manifold-// attribute getter not supported: //attribute: ::btPersistentManifold * btCollisionAlgorithmConstructionInfo->m_manifold-void* btDbvt_new(); //constructor: btDbvt  ( ::btDbvt::* )(  ) -void btDbvt_free(void *c); //not supported method: nearest int (*)( int const *,::btDbvt::sStkNPS const *,::btScalar,int,int )-void btDbvt_enumLeaves(void* p0,void* p1); //method: enumLeaves void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )-void btDbvt_optimizeIncremental(void *c,int p0); //method: optimizeIncremental void ( ::btDbvt::* )( int ) -void btDbvt_rayTest(void* p0,float* p1,float* p2,void* p3); //method: rayTest void (*)( ::btDbvtNode const *,::btVector3 const &,::btVector3 const &,::btDbvt::ICollide & )-void btDbvt_optimizeTopDown(void *c,int p0); //method: optimizeTopDown void ( ::btDbvt::* )( int ) -void btDbvt_enumNodes(void* p0,void* p1); //method: enumNodes void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )-void btDbvt_write(void *c,void* p0); //method: write void ( ::btDbvt::* )( ::btDbvt::IWriter * ) const-//not supported method: allocate int (*)( ::btAlignedObjectArray<int> &,::btAlignedObjectArray<btDbvt::sStkNPS> &,::btDbvt::sStkNPS const & )-int btDbvt_empty(void *c); //method: empty bool ( ::btDbvt::* )(  ) const-void btDbvt_collideTV(void *c,void* p0,void* p1,void* p2); //method: collideTV void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtVolume const &,::btDbvt::ICollide & ) -void btDbvt_collideTU(void* p0,void* p1); //method: collideTU void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )-void btDbvt_collideTT(void *c,void* p0,void* p1,void* p2); //method: collideTT void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtNode const *,::btDbvt::ICollide & ) -void btDbvt_collideTTpersistentStack(void *c,void* p0,void* p1,void* p2); //method: collideTTpersistentStack void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtNode const *,::btDbvt::ICollide & ) -void btDbvt_clone(void *c,void* p0,void* p1); //method: clone void ( ::btDbvt::* )( ::btDbvt &,::btDbvt::IClone * ) const-void btDbvt_benchmark(); //method: benchmark void (*)(  )-void btDbvt_update(void *c,void* p0,int p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,int ) -void btDbvt_update0(void *c,void* p0,int p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,int ) -void btDbvt_update1(void *c,void* p0,void* p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume & ) -int btDbvt_update2(void *c,void* p0,void* p1,float* p2,float p3); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btVector3 const &,::btScalar ) -int btDbvt_update3(void *c,void* p0,void* p1,float* p2); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btVector3 const & ) -int btDbvt_update4(void *c,void* p0,void* p1,float p2); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btScalar ) -int btDbvt_countLeaves(void* p0); //method: countLeaves int (*)( ::btDbvtNode const * )-//not supported method: collideOCL void (*)( ::btDbvtNode const *,::btVector3 const *,::btScalar const *,::btVector3 const &,int,::btDbvt::ICollide &,bool )-//not supported method: insert ::btDbvtNode * ( ::btDbvt::* )( ::btDbvtVolume const &,void * ) -//not supported method: collideKDOP void (*)( ::btDbvtNode const *,::btVector3 const *,::btScalar const *,int,::btDbvt::ICollide & )-//not supported method: extractLeaves void (*)( ::btDbvtNode const *,::btAlignedObjectArray<btDbvtNode const*> & )-void btDbvt_remove(void *c,void* p0); //method: remove void ( ::btDbvt::* )( ::btDbvtNode * ) -//not supported method: rayTestInternal void ( ::btDbvt::* )( ::btDbvtNode const *,::btVector3 const &,::btVector3 const &,::btVector3 const &,unsigned int *,::btScalar,::btVector3 const &,::btVector3 const &,::btDbvt::ICollide & ) const-int btDbvt_maxdepth(void* p0); //method: maxdepth int (*)( ::btDbvtNode const * )-void btDbvt_clear(void *c); //method: clear void ( ::btDbvt::* )(  ) -void btDbvt_optimizeBottomUp(void *c); //method: optimizeBottomUp void ( ::btDbvt::* )(  ) -void btDbvt_m_free_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt->m_free-// attribute getter not supported: //attribute: ::btDbvtNode * btDbvt->m_free-void btDbvt_m_leaves_set(void *c,int a); //attribute: int btDbvt->m_leaves-int btDbvt_m_leaves_get(void *c); //attribute: int btDbvt->m_leaves-void btDbvt_m_lkhd_set(void *c,int a); //attribute: int btDbvt->m_lkhd-int btDbvt_m_lkhd_get(void *c); //attribute: int btDbvt->m_lkhd-void btDbvt_m_opath_set(void *c,unsigned int a); //attribute: unsigned int btDbvt->m_opath-unsigned int btDbvt_m_opath_get(void *c); //attribute: unsigned int btDbvt->m_opath-void btDbvt_m_root_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt->m_root-// attribute getter not supported: //attribute: ::btDbvtNode * btDbvt->m_root-// attribute not supported: //attribute: ::btAlignedObjectArray<btDbvt::sStkNN> btDbvt->m_stkStack-void* btDbvtAabbMm_new(); //constructor: btDbvtAabbMm  ( ::btDbvtAabbMm::* )(  ) -void btDbvtAabbMm_free(void *c); void btDbvtAabbMm_SignedExpand(void *c,float* p0); //method: SignedExpand void ( ::btDbvtAabbMm::* )( ::btVector3 const & ) -void btDbvtAabbMm_Extents(void *c,float* ret); //method: Extents ::btVector3 ( ::btDbvtAabbMm::* )(  ) const-void btDbvtAabbMm_Center(void *c,float* ret); //method: Center ::btVector3 ( ::btDbvtAabbMm::* )(  ) const-void btDbvtAabbMm_Lengths(void *c,float* ret); //method: Lengths ::btVector3 ( ::btDbvtAabbMm::* )(  ) const-void btDbvtAabbMm_Maxs(void *c,float* ret); //method: Maxs ::btVector3 const & ( ::btDbvtAabbMm::* )(  ) const-//not supported method: FromCE ::btDbvtAabbMm (*)( ::btVector3 const &,::btVector3 const & )-//not supported method: FromMM ::btDbvtAabbMm (*)( ::btVector3 const &,::btVector3 const & )-float btDbvtAabbMm_ProjectMinimum(void *c,float* p0,unsigned int p1); //method: ProjectMinimum ::btScalar ( ::btDbvtAabbMm::* )( ::btVector3 const &,unsigned int ) const-int btDbvtAabbMm_Classify(void *c,float* p0,float p1,int p2); //method: Classify int ( ::btDbvtAabbMm::* )( ::btVector3 const &,::btScalar,int ) const-int btDbvtAabbMm_Contain(void *c,void* p0); //method: Contain bool ( ::btDbvtAabbMm::* )( ::btDbvtAabbMm const & ) const-void btDbvtAabbMm_Mins(void *c,float* ret); //method: Mins ::btVector3 const & ( ::btDbvtAabbMm::* )(  ) const-//not supported method: FromCR ::btDbvtAabbMm (*)( ::btVector3 const &,::btScalar )-void btDbvtAabbMm_Expand(void *c,float* p0); //method: Expand void ( ::btDbvtAabbMm::* )( ::btVector3 const & ) -//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const *,int )-//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const *,int )-//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const * *,int )-void* btDbvtBroadphase_new(void* p0); //constructor: btDbvtBroadphase  ( ::btDbvtBroadphase::* )( ::btOverlappingPairCache * ) -void btDbvtBroadphase_free(void *c); void btDbvtBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) -void btDbvtBroadphase_performDeferredRemoval(void *c,void* p0); //method: performDeferredRemoval void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) -void btDbvtBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) -void* btDbvtBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btDbvtBroadphase::* )(  ) -void* btDbvtBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btDbvtBroadphase::* )(  ) -void* btDbvtBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btDbvtBroadphase::* )(  ) const-void btDbvtBroadphase_setVelocityPrediction(void *c,float p0); //method: setVelocityPrediction void ( ::btDbvtBroadphase::* )( ::btScalar ) -void btDbvtBroadphase_benchmark(void* p0); //method: benchmark void (*)( ::btBroadphaseInterface * )-void btDbvtBroadphase_collide(void *c,void* p0); //method: collide void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) -void btDbvtBroadphase_resetPool(void *c,void* p0); //method: resetPool void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) -float btDbvtBroadphase_getVelocityPrediction(void *c); //method: getVelocityPrediction ::btScalar ( ::btDbvtBroadphase::* )(  ) const-void btDbvtBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) -void btDbvtBroadphase_setAabbForceUpdate(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabbForceUpdate void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) -void btDbvtBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btDbvtBroadphase::* )( ::btVector3 &,::btVector3 & ) const-void btDbvtBroadphase_printStats(void *c); //method: printStats void ( ::btDbvtBroadphase::* )(  ) -void btDbvtBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const-void btDbvtBroadphase_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) -//not supported method: createProxy ::btBroadphaseProxy * ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) -void btDbvtBroadphase_optimize(void *c); //method: optimize void ( ::btDbvtBroadphase::* )(  ) -void btDbvtBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) -// attribute not supported: //attribute: ::btDbvt[2] btDbvtBroadphase->m_sets-// attribute not supported: //attribute: ::btDbvtProxy *[3] btDbvtBroadphase->m_stageRoots-void btDbvtBroadphase_m_paircache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btDbvtBroadphase->m_paircache-// attribute getter not supported: //attribute: ::btOverlappingPairCache * btDbvtBroadphase->m_paircache-void btDbvtBroadphase_m_prediction_set(void *c,float a); //attribute: ::btScalar btDbvtBroadphase->m_prediction-float btDbvtBroadphase_m_prediction_get(void *c); //attribute: ::btScalar btDbvtBroadphase->m_prediction-void btDbvtBroadphase_m_stageCurrent_set(void *c,int a); //attribute: int btDbvtBroadphase->m_stageCurrent-int btDbvtBroadphase_m_stageCurrent_get(void *c); //attribute: int btDbvtBroadphase->m_stageCurrent-void btDbvtBroadphase_m_fupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_fupdates-int btDbvtBroadphase_m_fupdates_get(void *c); //attribute: int btDbvtBroadphase->m_fupdates-void btDbvtBroadphase_m_dupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_dupdates-int btDbvtBroadphase_m_dupdates_get(void *c); //attribute: int btDbvtBroadphase->m_dupdates-void btDbvtBroadphase_m_cupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_cupdates-int btDbvtBroadphase_m_cupdates_get(void *c); //attribute: int btDbvtBroadphase->m_cupdates-void btDbvtBroadphase_m_newpairs_set(void *c,int a); //attribute: int btDbvtBroadphase->m_newpairs-int btDbvtBroadphase_m_newpairs_get(void *c); //attribute: int btDbvtBroadphase->m_newpairs-void btDbvtBroadphase_m_fixedleft_set(void *c,int a); //attribute: int btDbvtBroadphase->m_fixedleft-int btDbvtBroadphase_m_fixedleft_get(void *c); //attribute: int btDbvtBroadphase->m_fixedleft-void btDbvtBroadphase_m_updates_call_set(void *c,unsigned int a); //attribute: unsigned int btDbvtBroadphase->m_updates_call-unsigned int btDbvtBroadphase_m_updates_call_get(void *c); //attribute: unsigned int btDbvtBroadphase->m_updates_call-void btDbvtBroadphase_m_updates_done_set(void *c,unsigned int a); //attribute: unsigned int btDbvtBroadphase->m_updates_done-unsigned int btDbvtBroadphase_m_updates_done_get(void *c); //attribute: unsigned int btDbvtBroadphase->m_updates_done-void btDbvtBroadphase_m_updates_ratio_set(void *c,float a); //attribute: ::btScalar btDbvtBroadphase->m_updates_ratio-float btDbvtBroadphase_m_updates_ratio_get(void *c); //attribute: ::btScalar btDbvtBroadphase->m_updates_ratio-void btDbvtBroadphase_m_pid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_pid-int btDbvtBroadphase_m_pid_get(void *c); //attribute: int btDbvtBroadphase->m_pid-void btDbvtBroadphase_m_cid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_cid-int btDbvtBroadphase_m_cid_get(void *c); //attribute: int btDbvtBroadphase->m_cid-void btDbvtBroadphase_m_gid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_gid-int btDbvtBroadphase_m_gid_get(void *c); //attribute: int btDbvtBroadphase->m_gid-void btDbvtBroadphase_m_releasepaircache_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_releasepaircache-int btDbvtBroadphase_m_releasepaircache_get(void *c); //attribute: bool btDbvtBroadphase->m_releasepaircache-void btDbvtBroadphase_m_deferedcollide_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_deferedcollide-int btDbvtBroadphase_m_deferedcollide_get(void *c); //attribute: bool btDbvtBroadphase->m_deferedcollide-void btDbvtBroadphase_m_needcleanup_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_needcleanup-int btDbvtBroadphase_m_needcleanup_get(void *c); //attribute: bool btDbvtBroadphase->m_needcleanup-void* btDbvtNode_new(); //constructor: btDbvtNode  ( ::btDbvtNode::* )(  ) -void btDbvtNode_free(void *c); int btDbvtNode_isinternal(void *c); //method: isinternal bool ( ::btDbvtNode::* )(  ) const-int btDbvtNode_isleaf(void *c); //method: isleaf bool ( ::btDbvtNode::* )(  ) const-// attribute not supported: //attribute: ::btDbvtNode btDbvtNode->-void btDbvtNode_parent_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvtNode->parent-// attribute getter not supported: //attribute: ::btDbvtNode * btDbvtNode->parent-// attribute not supported: //attribute: ::btDbvtVolume btDbvtNode->volume-//not supported constructor: btDbvtProxy  ( ::btDbvtProxy::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int ) -void btDbvtProxy_free(void *c); void btDbvtProxy_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvtProxy->leaf-// attribute getter not supported: //attribute: ::btDbvtNode * btDbvtProxy->leaf-// attribute not supported: //attribute: ::btDbvtProxy *[2] btDbvtProxy->links-void btDbvtProxy_stage_set(void *c,int a); //attribute: int btDbvtProxy->stage-int btDbvtProxy_stage_get(void *c); //attribute: int btDbvtProxy->stage-//not supported method: allocateCollisionAlgorithm void * ( ::btDispatcher::* )( int ) -void btDispatcher_releaseManifold(void *c,void* p0); //method: releaseManifold void ( ::btDispatcher::* )( ::btPersistentManifold * ) -int btDispatcher_getNumManifolds(void *c); //method: getNumManifolds int ( ::btDispatcher::* )(  ) const-void btDispatcher_clearManifold(void *c,void* p0); //method: clearManifold void ( ::btDispatcher::* )( ::btPersistentManifold * ) -//not supported method: freeCollisionAlgorithm void ( ::btDispatcher::* )( void * ) -//not supported method: getInternalManifoldPointer ::btPersistentManifold * * ( ::btDispatcher::* )(  ) -void* btDispatcher_findAlgorithm(void *c,void* p0,void* p1,void* p2); //method: findAlgorithm ::btCollisionAlgorithm * ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject *,::btPersistentManifold * ) -int btDispatcher_needsResponse(void *c,void* p0,void* p1); //method: needsResponse bool ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) -//not supported method: getNewManifold ::btPersistentManifold * ( ::btDispatcher::* )( void *,void * ) -void btDispatcher_dispatchAllCollisionPairs(void *c,void* p0,void* p1,void* p2); //method: dispatchAllCollisionPairs void ( ::btDispatcher::* )( ::btOverlappingPairCache *,::btDispatcherInfo const &,::btDispatcher * ) -//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btDispatcher::* )(  ) -//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btDispatcher::* )(  ) -//not supported method: getInternalManifoldPool ::btPoolAllocator const * ( ::btDispatcher::* )(  ) const-int btDispatcher_needsCollision(void *c,void* p0,void* p1); //method: needsCollision bool ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) -void* btDispatcher_getManifoldByIndexInternal(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btDispatcher::* )( int ) -void* btDispatcherInfo_new(); //constructor: btDispatcherInfo  ( ::btDispatcherInfo::* )(  ) -void btDispatcherInfo_free(void *c); void btDispatcherInfo_m_allowedCcdPenetration_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_allowedCcdPenetration-float btDispatcherInfo_m_allowedCcdPenetration_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_allowedCcdPenetration-void btDispatcherInfo_m_convexConservativeDistanceThreshold_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_convexConservativeDistanceThreshold-float btDispatcherInfo_m_convexConservativeDistanceThreshold_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_convexConservativeDistanceThreshold-void btDispatcherInfo_m_debugDraw_set(void *c,void* a); //attribute: ::btIDebugDraw * btDispatcherInfo->m_debugDraw-// attribute getter not supported: //attribute: ::btIDebugDraw * btDispatcherInfo->m_debugDraw-void btDispatcherInfo_m_dispatchFunc_set(void *c,int a); //attribute: int btDispatcherInfo->m_dispatchFunc-int btDispatcherInfo_m_dispatchFunc_get(void *c); //attribute: int btDispatcherInfo->m_dispatchFunc-void btDispatcherInfo_m_enableSPU_set(void *c,int a); //attribute: bool btDispatcherInfo->m_enableSPU-int btDispatcherInfo_m_enableSPU_get(void *c); //attribute: bool btDispatcherInfo->m_enableSPU-void btDispatcherInfo_m_enableSatConvex_set(void *c,int a); //attribute: bool btDispatcherInfo->m_enableSatConvex-int btDispatcherInfo_m_enableSatConvex_get(void *c); //attribute: bool btDispatcherInfo->m_enableSatConvex-void btDispatcherInfo_m_stackAllocator_set(void *c,void* a); //attribute: ::btStackAlloc * btDispatcherInfo->m_stackAllocator-// attribute getter not supported: //attribute: ::btStackAlloc * btDispatcherInfo->m_stackAllocator-void btDispatcherInfo_m_stepCount_set(void *c,int a); //attribute: int btDispatcherInfo->m_stepCount-int btDispatcherInfo_m_stepCount_get(void *c); //attribute: int btDispatcherInfo->m_stepCount-void btDispatcherInfo_m_timeOfImpact_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_timeOfImpact-float btDispatcherInfo_m_timeOfImpact_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_timeOfImpact-void btDispatcherInfo_m_timeStep_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_timeStep-float btDispatcherInfo_m_timeStep_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_timeStep-void btDispatcherInfo_m_useContinuous_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useContinuous-int btDispatcherInfo_m_useContinuous_get(void *c); //attribute: bool btDispatcherInfo->m_useContinuous-void btDispatcherInfo_m_useConvexConservativeDistanceUtil_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useConvexConservativeDistanceUtil-int btDispatcherInfo_m_useConvexConservativeDistanceUtil_get(void *c); //attribute: bool btDispatcherInfo->m_useConvexConservativeDistanceUtil-void btDispatcherInfo_m_useEpa_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useEpa-int btDispatcherInfo_m_useEpa_get(void *c); //attribute: bool btDispatcherInfo->m_useEpa-void* btHashedOverlappingPairCache_new(); //constructor: btHashedOverlappingPairCache  ( ::btHashedOverlappingPairCache::* )(  ) -void btHashedOverlappingPairCache_free(void *c); void* btHashedOverlappingPairCache_getOverlapFilterCallback(void *c); //method: getOverlapFilterCallback ::btOverlapFilterCallback * ( ::btHashedOverlappingPairCache::* )(  ) -void* btHashedOverlappingPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -int btHashedOverlappingPairCache_needsBroadphaseCollision(void *c,void* p0,void* p1); //method: needsBroadphaseCollision bool ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const-//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btHashedOverlappingPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btHashedOverlappingPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray const & ( ::btHashedOverlappingPairCache::* )(  ) const-void* btHashedOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btHashedOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void btHashedOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btHashedOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) -int btHashedOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btHashedOverlappingPairCache::* )(  ) const-//not supported method: removeOverlappingPair void * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) -int btHashedOverlappingPairCache_GetCount(void *c); //method: GetCount int ( ::btHashedOverlappingPairCache::* )(  ) const-void btHashedOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btHashedOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) -void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )(  ) -void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )(  ) -void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btHashedOverlappingPairCache::* )(  ) const-void btHashedOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btHashedOverlappingPairCache::* )( ::btOverlapFilterCallback * ) -void btMultiSapBroadphase_addToChildBroadphase(void *c,void* p0,void* p1,void* p2); //method: addToChildBroadphase void ( ::btMultiSapBroadphase::* )( ::btMultiSapBroadphase::btMultiSapProxy *,::btBroadphaseProxy *,::btBroadphaseInterface * ) -void btMultiSapBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) -void btMultiSapBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) -void* btMultiSapBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btMultiSapBroadphase::* )(  ) -void* btMultiSapBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btMultiSapBroadphase::* )(  ) -void* btMultiSapBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btMultiSapBroadphase::* )(  ) const-//not supported method: quicksort void ( ::btMultiSapBroadphase::* )( ::btBroadphasePairArray &,int,int ) -void btMultiSapBroadphase_buildTree(void *c,float* p0,float* p1); //method: buildTree void ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const & ) -void btMultiSapBroadphase_resetPool(void *c,void* p0); //method: resetPool void ( ::btMultiSapBroadphase::* )( ::btDispatcher * ) -void btMultiSapBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btMultiSapBroadphase::* )( ::btDispatcher * ) -int btMultiSapBroadphase_testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btMultiSapBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const-//not supported method: getBroadphaseArray ::btSapBroadphaseArray & ( ::btMultiSapBroadphase::* )(  ) -//not supported method: getBroadphaseArray ::btSapBroadphaseArray & ( ::btMultiSapBroadphase::* )(  ) -//not supported method: getBroadphaseArray ::btSapBroadphaseArray const & ( ::btMultiSapBroadphase::* )(  ) const-//not supported method: createProxy ::btBroadphaseProxy * ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) -void btMultiSapBroadphase_printStats(void *c); //method: printStats void ( ::btMultiSapBroadphase::* )(  ) -void btMultiSapBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btMultiSapBroadphase::* )( ::btVector3 &,::btVector3 & ) const-void btMultiSapBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) -//not supported constructor: btMultiSapProxy  ( ::btMultiSapBroadphase::btMultiSapProxy::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int ) -void btMultiSapBroadphase_btMultiSapProxy_free(void *c); void btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_set(void *c,float* a); //attribute: ::btVector3 btMultiSapBroadphase_btMultiSapProxy->m_aabbMax-void btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_get(void *c,float* a);-void btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_set(void *c,float* a); //attribute: ::btVector3 btMultiSapBroadphase_btMultiSapProxy->m_aabbMin-void btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_get(void *c,float* a);-// attribute not supported: //attribute: ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*> btMultiSapBroadphase_btMultiSapProxy->m_bridgeProxies-void btMultiSapBroadphase_btMultiSapProxy_m_shapeType_set(void *c,int a); //attribute: int btMultiSapBroadphase_btMultiSapProxy->m_shapeType-int btMultiSapBroadphase_btMultiSapProxy_m_shapeType_get(void *c); //attribute: int btMultiSapBroadphase_btMultiSapProxy->m_shapeType-void btNodeOverlapCallback_processNode(void *c,int p0,int p1); //method: processNode void ( ::btNodeOverlapCallback::* )( int,int ) -void* btNullPairCache_new(); //constructor: btNullPairCache  ( ::btNullPairCache::* )(  ) -void btNullPairCache_free(void *c); void btNullPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btNullPairCache::* )( ::btDispatcher * ) -void btNullPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btNullPairCache::* )( ::btOverlappingPairCallback * ) -void* btNullPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btNullPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -int btNullPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btNullPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btNullPairCache::* )(  ) -void* btNullPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btNullPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void btNullPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btNullPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) -int btNullPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btNullPairCache::* )(  ) const-//not supported method: removeOverlappingPair void * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) -void btNullPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btNullPairCache::* )( ::btOverlapFilterCallback * ) -void* btNullPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btNullPairCache::* )(  ) -void* btNullPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btNullPairCache::* )(  ) -void* btNullPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btNullPairCache::* )(  ) const-void btNullPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btNullPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) -void* btOptimizedBvhNode_new(); //constructor: btOptimizedBvhNode  ( ::btOptimizedBvhNode::* )(  ) -void btOptimizedBvhNode_free(void *c); void btOptimizedBvhNode_m_aabbMinOrg_set(void *c,float* a); //attribute: ::btVector3 btOptimizedBvhNode->m_aabbMinOrg-void btOptimizedBvhNode_m_aabbMinOrg_get(void *c,float* a);-void btOptimizedBvhNode_m_aabbMaxOrg_set(void *c,float* a); //attribute: ::btVector3 btOptimizedBvhNode->m_aabbMaxOrg-void btOptimizedBvhNode_m_aabbMaxOrg_get(void *c,float* a);-void btOptimizedBvhNode_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_escapeIndex-int btOptimizedBvhNode_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNode->m_escapeIndex-void btOptimizedBvhNode_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_subPart-int btOptimizedBvhNode_m_subPart_get(void *c); //attribute: int btOptimizedBvhNode->m_subPart-void btOptimizedBvhNode_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_triangleIndex-int btOptimizedBvhNode_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNode->m_triangleIndex-// attribute not supported: //attribute: int[5] btOptimizedBvhNode->m_padding-void* btOptimizedBvhNodeDoubleData_new(); //constructor: btOptimizedBvhNodeDoubleData  ( ::btOptimizedBvhNodeDoubleData::* )(  ) -void btOptimizedBvhNodeDoubleData_free(void *c); // attribute not supported: //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMinOrg-// attribute not supported: //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMaxOrg-void btOptimizedBvhNodeDoubleData_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_escapeIndex-int btOptimizedBvhNodeDoubleData_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_escapeIndex-void btOptimizedBvhNodeDoubleData_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_subPart-int btOptimizedBvhNodeDoubleData_m_subPart_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_subPart-void btOptimizedBvhNodeDoubleData_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_triangleIndex-int btOptimizedBvhNodeDoubleData_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_triangleIndex-// attribute not supported: //attribute: char[4] btOptimizedBvhNodeDoubleData->m_pad-void* btOptimizedBvhNodeFloatData_new(); //constructor: btOptimizedBvhNodeFloatData  ( ::btOptimizedBvhNodeFloatData::* )(  ) -void btOptimizedBvhNodeFloatData_free(void *c); // attribute not supported: //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMinOrg-// attribute not supported: //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMaxOrg-void btOptimizedBvhNodeFloatData_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_escapeIndex-int btOptimizedBvhNodeFloatData_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_escapeIndex-void btOptimizedBvhNodeFloatData_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_subPart-int btOptimizedBvhNodeFloatData_m_subPart_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_subPart-void btOptimizedBvhNodeFloatData_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_triangleIndex-int btOptimizedBvhNodeFloatData_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_triangleIndex-// attribute not supported: //attribute: char[4] btOptimizedBvhNodeFloatData->m_pad-int btOverlapCallback_processOverlap(void *c,void* p0); //method: processOverlap bool ( ::btOverlapCallback::* )( ::btBroadphasePair & ) -int btOverlapFilterCallback_needBroadphaseCollision(void *c,void* p0,void* p1); //method: needBroadphaseCollision bool ( ::btOverlapFilterCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const-void btOverlappingPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btOverlappingPairCache::* )( ::btDispatcher * ) -void btOverlappingPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btOverlappingPairCache::* )( ::btOverlappingPairCallback * ) -void btOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btOverlappingPairCache::* )( ::btOverlapFilterCallback * ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btOverlappingPairCache::* )(  ) -void* btOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void btOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) -int btOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btOverlappingPairCache::* )(  ) const-void btOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) -void* btOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btOverlappingPairCache::* )(  ) -void* btOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btOverlappingPairCache::* )(  ) -void* btOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btOverlappingPairCache::* )(  ) const-int btOverlappingPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btOverlappingPairCache::* )(  ) -void* btOverlappingPairCallback_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -//not supported method: removeOverlappingPair void * ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) -void btOverlappingPairCallback_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void* btQuantizedBvh_new(); //constructor: btQuantizedBvh  ( ::btQuantizedBvh::* )(  ) -void btQuantizedBvh_free(void *c); unsigned int btQuantizedBvh_getAlignmentSerializationPadding(); //method: getAlignmentSerializationPadding unsigned int (*)(  )-//not supported method: getQuantizedNodeArray ::QuantizedNodeArray & ( ::btQuantizedBvh::* )(  ) -//not supported method: setTraversalMode void ( ::btQuantizedBvh::* )( ::btQuantizedBvh::btTraversalMode ) -void btQuantizedBvh_buildInternal(void *c); //method: buildInternal void ( ::btQuantizedBvh::* )(  ) -//not supported method: quantize void ( ::btQuantizedBvh::* )( short unsigned int *,::btVector3 const &,int ) const-void btQuantizedBvh_deSerializeFloat(void *c,void* p0); //method: deSerializeFloat void ( ::btQuantizedBvh::* )( ::btQuantizedBvhFloatData & ) -int btQuantizedBvh_isQuantized(void *c); //method: isQuantized bool ( ::btQuantizedBvh::* )(  ) -//not supported method: getSubtreeInfoArray ::BvhSubtreeInfoArray & ( ::btQuantizedBvh::* )(  ) -//not supported method: quantizeWithClamp void ( ::btQuantizedBvh::* )( short unsigned int *,::btVector3 const &,int ) const-//not supported method: unQuantize ::btVector3 ( ::btQuantizedBvh::* )( short unsigned int const * ) const-//not supported method: getLeafNodeArray ::QuantizedNodeArray & ( ::btQuantizedBvh::* )(  ) -void btQuantizedBvh_setQuantizationValues(void *c,float* p0,float* p1,float p2); //method: setQuantizationValues void ( ::btQuantizedBvh::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void btQuantizedBvh_reportAabbOverlappingNodex(void *c,void* p0,float* p1,float* p2); //method: reportAabbOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const & ) const-void btQuantizedBvh_reportBoxCastOverlappingNodex(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: reportBoxCastOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) const-unsigned int btQuantizedBvh_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize unsigned int ( ::btQuantizedBvh::* )(  ) const-void btQuantizedBvh_reportRayOverlappingNodex(void *c,void* p0,float* p1,float* p2); //method: reportRayOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const & ) const-//not supported method: serialize bool ( ::btQuantizedBvh::* )( void *,unsigned int,bool ) const-//not supported method: serialize bool ( ::btQuantizedBvh::* )( void *,unsigned int,bool ) const-//not supported method: serialize char const * ( ::btQuantizedBvh::* )( void *,::btSerializer * ) const-void btQuantizedBvh_deSerializeDouble(void *c,void* p0); //method: deSerializeDouble void ( ::btQuantizedBvh::* )( ::btQuantizedBvhDoubleData & ) -int btQuantizedBvh_calculateSerializeBufferSizeNew(void *c); //method: calculateSerializeBufferSizeNew int ( ::btQuantizedBvh::* )(  ) const-//not supported method: deSerializeInPlace ::btQuantizedBvh * (*)( void *,unsigned int,bool )-void* btQuantizedBvhDoubleData_new(); //constructor: btQuantizedBvhDoubleData  ( ::btQuantizedBvhDoubleData::* )(  ) -void btQuantizedBvhDoubleData_free(void *c); // attribute not supported: //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMax-// attribute not supported: //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMin-// attribute not supported: //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhQuantization-void btQuantizedBvhDoubleData_m_contiguousNodesPtr_set(void *c,void* a); //attribute: ::btOptimizedBvhNodeDoubleData * btQuantizedBvhDoubleData->m_contiguousNodesPtr-// attribute getter not supported: //attribute: ::btOptimizedBvhNodeDoubleData * btQuantizedBvhDoubleData->m_contiguousNodesPtr-void btQuantizedBvhDoubleData_m_curNodeIndex_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_curNodeIndex-int btQuantizedBvhDoubleData_m_curNodeIndex_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_curNodeIndex-void btQuantizedBvhDoubleData_m_numContiguousLeafNodes_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numContiguousLeafNodes-int btQuantizedBvhDoubleData_m_numContiguousLeafNodes_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numContiguousLeafNodes-void btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numQuantizedContiguousNodes-int btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numQuantizedContiguousNodes-void btQuantizedBvhDoubleData_m_numSubtreeHeaders_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numSubtreeHeaders-int btQuantizedBvhDoubleData_m_numSubtreeHeaders_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numSubtreeHeaders-void btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_set(void *c,void* a); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhDoubleData->m_quantizedContiguousNodesPtr-// attribute getter not supported: //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhDoubleData->m_quantizedContiguousNodesPtr-void btQuantizedBvhDoubleData_m_subTreeInfoPtr_set(void *c,void* a); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhDoubleData->m_subTreeInfoPtr-// attribute getter not supported: //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhDoubleData->m_subTreeInfoPtr-void btQuantizedBvhDoubleData_m_traversalMode_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_traversalMode-int btQuantizedBvhDoubleData_m_traversalMode_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_traversalMode-void btQuantizedBvhDoubleData_m_useQuantization_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_useQuantization-int btQuantizedBvhDoubleData_m_useQuantization_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_useQuantization-void* btQuantizedBvhFloatData_new(); //constructor: btQuantizedBvhFloatData  ( ::btQuantizedBvhFloatData::* )(  ) -void btQuantizedBvhFloatData_free(void *c); // attribute not supported: //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMax-// attribute not supported: //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMin-// attribute not supported: //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhQuantization-void btQuantizedBvhFloatData_m_contiguousNodesPtr_set(void *c,void* a); //attribute: ::btOptimizedBvhNodeFloatData * btQuantizedBvhFloatData->m_contiguousNodesPtr-// attribute getter not supported: //attribute: ::btOptimizedBvhNodeFloatData * btQuantizedBvhFloatData->m_contiguousNodesPtr-void btQuantizedBvhFloatData_m_curNodeIndex_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_curNodeIndex-int btQuantizedBvhFloatData_m_curNodeIndex_get(void *c); //attribute: int btQuantizedBvhFloatData->m_curNodeIndex-void btQuantizedBvhFloatData_m_numContiguousLeafNodes_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numContiguousLeafNodes-int btQuantizedBvhFloatData_m_numContiguousLeafNodes_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numContiguousLeafNodes-void btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numQuantizedContiguousNodes-int btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numQuantizedContiguousNodes-void btQuantizedBvhFloatData_m_numSubtreeHeaders_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numSubtreeHeaders-int btQuantizedBvhFloatData_m_numSubtreeHeaders_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numSubtreeHeaders-void btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_set(void *c,void* a); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhFloatData->m_quantizedContiguousNodesPtr-// attribute getter not supported: //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhFloatData->m_quantizedContiguousNodesPtr-void btQuantizedBvhFloatData_m_subTreeInfoPtr_set(void *c,void* a); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhFloatData->m_subTreeInfoPtr-// attribute getter not supported: //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhFloatData->m_subTreeInfoPtr-void btQuantizedBvhFloatData_m_traversalMode_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_traversalMode-int btQuantizedBvhFloatData_m_traversalMode_get(void *c); //attribute: int btQuantizedBvhFloatData->m_traversalMode-void btQuantizedBvhFloatData_m_useQuantization_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_useQuantization-int btQuantizedBvhFloatData_m_useQuantization_get(void *c); //attribute: int btQuantizedBvhFloatData->m_useQuantization-void* btQuantizedBvhNode_new(); //constructor: btQuantizedBvhNode  ( ::btQuantizedBvhNode::* )(  ) -void btQuantizedBvhNode_free(void *c); int btQuantizedBvhNode_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::btQuantizedBvhNode::* )(  ) const-int btQuantizedBvhNode_getTriangleIndex(void *c); //method: getTriangleIndex int ( ::btQuantizedBvhNode::* )(  ) const-int btQuantizedBvhNode_getPartId(void *c); //method: getPartId int ( ::btQuantizedBvhNode::* )(  ) const-int btQuantizedBvhNode_isLeafNode(void *c); //method: isLeafNode bool ( ::btQuantizedBvhNode::* )(  ) const-void btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_set(void *c,int a); //attribute: int btQuantizedBvhNode->m_escapeIndexOrTriangleIndex-int btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_get(void *c); //attribute: int btQuantizedBvhNode->m_escapeIndexOrTriangleIndex-// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNode->m_quantizedAabbMax-// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNode->m_quantizedAabbMin-void* btQuantizedBvhNodeData_new(); //constructor: btQuantizedBvhNodeData  ( ::btQuantizedBvhNodeData::* )(  ) -void btQuantizedBvhNodeData_free(void *c); void btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_set(void *c,int a); //attribute: int btQuantizedBvhNodeData->m_escapeIndexOrTriangleIndex-int btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_get(void *c); //attribute: int btQuantizedBvhNodeData->m_escapeIndexOrTriangleIndex-// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNodeData->m_quantizedAabbMax-// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNodeData->m_quantizedAabbMin-void* btSimpleBroadphase_new(int p0,void* p1); //constructor: btSimpleBroadphase  ( ::btSimpleBroadphase::* )( int,::btOverlappingPairCache * ) -void btSimpleBroadphase_free(void *c); void btSimpleBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) -void btSimpleBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) -void* btSimpleBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btSimpleBroadphase::* )(  ) -void* btSimpleBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btSimpleBroadphase::* )(  ) -void* btSimpleBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btSimpleBroadphase::* )(  ) const-void btSimpleBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btSimpleBroadphase::* )( ::btDispatcher * ) -int btSimpleBroadphase_testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btSimpleBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const-void btSimpleBroadphase_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) -//not supported method: createProxy ::btBroadphaseProxy * ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) -void btSimpleBroadphase_printStats(void *c); //method: printStats void ( ::btSimpleBroadphase::* )(  ) -int btSimpleBroadphase_aabbOverlap(void* p0,void* p1); //method: aabbOverlap bool (*)( ::btSimpleBroadphaseProxy *,::btSimpleBroadphaseProxy * )-void btSimpleBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btSimpleBroadphase::* )( ::btVector3 &,::btVector3 & ) const-void btSimpleBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void* btSimpleBroadphaseProxy_new0(); //constructor: btSimpleBroadphaseProxy  ( ::btSimpleBroadphaseProxy::* )(  ) -//not supported constructor: btSimpleBroadphaseProxy  ( ::btSimpleBroadphaseProxy::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,void * ) -void btSimpleBroadphaseProxy_free(void *c); int btSimpleBroadphaseProxy_GetNextFree(void *c); //method: GetNextFree int ( ::btSimpleBroadphaseProxy::* )(  ) const-void btSimpleBroadphaseProxy_SetNextFree(void *c,int p0); //method: SetNextFree void ( ::btSimpleBroadphaseProxy::* )( int ) -void btSimpleBroadphaseProxy_m_nextFree_set(void *c,int a); //attribute: int btSimpleBroadphaseProxy->m_nextFree-int btSimpleBroadphaseProxy_m_nextFree_get(void *c); //attribute: int btSimpleBroadphaseProxy->m_nextFree-void* btSortedOverlappingPairCache_new(); //constructor: btSortedOverlappingPairCache  ( ::btSortedOverlappingPairCache::* )(  ) -void btSortedOverlappingPairCache_free(void *c); void btSortedOverlappingPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btSortedOverlappingPairCache::* )( ::btDispatcher * ) -void btSortedOverlappingPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btSortedOverlappingPairCache::* )( ::btOverlappingPairCallback * ) -void* btSortedOverlappingPairCache_getOverlapFilterCallback(void *c); //method: getOverlapFilterCallback ::btOverlapFilterCallback * ( ::btSortedOverlappingPairCache::* )(  ) -void* btSortedOverlappingPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -int btSortedOverlappingPairCache_needsBroadphaseCollision(void *c,void* p0,void* p1); //method: needsBroadphaseCollision bool ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const-int btSortedOverlappingPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btSortedOverlappingPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btSortedOverlappingPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btSortedOverlappingPairCache::* )(  ) -//not supported method: getOverlappingPairArray ::btBroadphasePairArray const & ( ::btSortedOverlappingPairCache::* )(  ) const-void* btSortedOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) -void btSortedOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) -void btSortedOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btSortedOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) -int btSortedOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btSortedOverlappingPairCache::* )(  ) const-//not supported method: removeOverlappingPair void * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) -void btSortedOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btSortedOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) -void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )(  ) -void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )(  ) -void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btSortedOverlappingPairCache::* )(  ) const-void btSortedOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btSortedOverlappingPairCache::* )( ::btOverlapFilterCallback * ) -void* btDbvt_sStkCLN_new(void* p0,void* p1); //constructor: sStkCLN  ( ::btDbvt::sStkCLN::* )( ::btDbvtNode const *,::btDbvtNode * ) -void btDbvt_sStkCLN_free(void *c); void btDbvt_sStkCLN_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkCLN->node-// attribute getter not supported: //attribute: ::btDbvtNode const * btDbvt_sStkCLN->node-void btDbvt_sStkCLN_parent_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt_sStkCLN->parent-// attribute getter not supported: //attribute: ::btDbvtNode * btDbvt_sStkCLN->parent-void* btDbvt_sStkNN_new0(); //constructor: sStkNN  ( ::btDbvt::sStkNN::* )(  ) -void* btDbvt_sStkNN_new1(void* p0,void* p1); //constructor: sStkNN  ( ::btDbvt::sStkNN::* )( ::btDbvtNode const *,::btDbvtNode const * ) -void btDbvt_sStkNN_free(void *c); void btDbvt_sStkNN_a_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNN->a-// attribute getter not supported: //attribute: ::btDbvtNode const * btDbvt_sStkNN->a-void btDbvt_sStkNN_b_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNN->b-// attribute getter not supported: //attribute: ::btDbvtNode const * btDbvt_sStkNN->b-void* btDbvt_sStkNP_new(void* p0,unsigned int p1); //constructor: sStkNP  ( ::btDbvt::sStkNP::* )( ::btDbvtNode const *,unsigned int ) -void btDbvt_sStkNP_free(void *c); void btDbvt_sStkNP_mask_set(void *c,int a); //attribute: int btDbvt_sStkNP->mask-int btDbvt_sStkNP_mask_get(void *c); //attribute: int btDbvt_sStkNP->mask-void btDbvt_sStkNP_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNP->node-// attribute getter not supported: //attribute: ::btDbvtNode const * btDbvt_sStkNP->node-void* btDbvt_sStkNPS_new0(); //constructor: sStkNPS  ( ::btDbvt::sStkNPS::* )(  ) -void* btDbvt_sStkNPS_new1(void* p0,unsigned int p1,float p2); //constructor: sStkNPS  ( ::btDbvt::sStkNPS::* )( ::btDbvtNode const *,unsigned int,::btScalar ) -void btDbvt_sStkNPS_free(void *c); void btDbvt_sStkNPS_mask_set(void *c,int a); //attribute: int btDbvt_sStkNPS->mask-int btDbvt_sStkNPS_mask_get(void *c); //attribute: int btDbvt_sStkNPS->mask-void btDbvt_sStkNPS_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNPS->node-// attribute getter not supported: //attribute: ::btDbvtNode const * btDbvt_sStkNPS->node-void btDbvt_sStkNPS_value_set(void *c,float a); //attribute: ::btScalar btDbvt_sStkNPS->value-float btDbvt_sStkNPS_value_get(void *c); //attribute: ::btScalar btDbvt_sStkNPS->value-void* btDiscreteCollisionDetectorInterface_ClosestPointInput_new(); //constructor: ClosestPointInput  ( ::btDiscreteCollisionDetectorInterface::ClosestPointInput::* )(  ) -void btDiscreteCollisionDetectorInterface_ClosestPointInput_free(void *c); void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformA_set(void *c,float* a); //attribute: ::btTransform btDiscreteCollisionDetectorInterface_ClosestPointInput->m_transformA-void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformA_get(void *c,float* a);-void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformB_set(void *c,float* a); //attribute: ::btTransform btDiscreteCollisionDetectorInterface_ClosestPointInput->m_transformB-void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformB_get(void *c,float* a);-void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_maximumDistanceSquared_set(void *c,float a); //attribute: ::btScalar btDiscreteCollisionDetectorInterface_ClosestPointInput->m_maximumDistanceSquared-float btDiscreteCollisionDetectorInterface_ClosestPointInput_m_maximumDistanceSquared_get(void *c); //attribute: ::btScalar btDiscreteCollisionDetectorInterface_ClosestPointInput->m_maximumDistanceSquared-void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btDiscreteCollisionDetectorInterface_ClosestPointInput->m_stackAlloc-// attribute getter not supported: //attribute: ::btStackAlloc * btDiscreteCollisionDetectorInterface_ClosestPointInput->m_stackAlloc-void btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersB(void *c,int p0,int p1); //method: setShapeIdentifiersB void ( ::btDiscreteCollisionDetectorInterface::Result::* )( int,int ) -void btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersA(void *c,int p0,int p1); //method: setShapeIdentifiersA void ( ::btDiscreteCollisionDetectorInterface::Result::* )( int,int ) -void btDiscreteCollisionDetectorInterface_Result_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btDiscreteCollisionDetectorInterface::Result::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void* btConstraintRow_new(); //constructor: btConstraintRow  ( ::btConstraintRow::* )(  ) -void btConstraintRow_free(void *c); // attribute not supported: //attribute: ::btScalar[3] btConstraintRow->m_normal-void btConstraintRow_m_rhs_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_rhs-float btConstraintRow_m_rhs_get(void *c); //attribute: ::btScalar btConstraintRow->m_rhs-void btConstraintRow_m_jacDiagInv_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_jacDiagInv-float btConstraintRow_m_jacDiagInv_get(void *c); //attribute: ::btScalar btConstraintRow->m_jacDiagInv-void btConstraintRow_m_lowerLimit_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_lowerLimit-float btConstraintRow_m_lowerLimit_get(void *c); //attribute: ::btScalar btConstraintRow->m_lowerLimit-void btConstraintRow_m_upperLimit_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_upperLimit-float btConstraintRow_m_upperLimit_get(void *c); //attribute: ::btScalar btConstraintRow->m_upperLimit-void btConstraintRow_m_accumImpulse_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_accumImpulse-float btConstraintRow_m_accumImpulse_get(void *c); //attribute: ::btScalar btConstraintRow->m_accumImpulse-void btDiscreteCollisionDetectorInterface_getClosestPoints(void *c,void* p0,void* p1,void* p2,int p3); //method: getClosestPoints void ( ::btDiscreteCollisionDetectorInterface::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw *,bool ) -void* btGjkEpaSolver2_new(); //constructor: btGjkEpaSolver2  ( ::btGjkEpaSolver2::* )(  ) -void btGjkEpaSolver2_free(void *c); int btGjkEpaSolver2_StackSizeRequirement(); //method: StackSizeRequirement int (*)(  )-int btGjkEpaSolver2_Distance(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5); //method: Distance bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults & )-int btGjkEpaSolver2_Penetration(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5,int p6); //method: Penetration bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults &,bool )-float btGjkEpaSolver2_SignedDistance(float* p0,float p1,void* p2,float* p3,void* p4); //method: SignedDistance ::btScalar (*)( ::btVector3 const &,::btScalar,::btConvexShape const *,::btTransform const &,::btGjkEpaSolver2::sResults & )-float btGjkEpaSolver2_SignedDistance0(float* p0,float p1,void* p2,float* p3,void* p4); //method: SignedDistance ::btScalar (*)( ::btVector3 const &,::btScalar,::btConvexShape const *,::btTransform const &,::btGjkEpaSolver2::sResults & )-int btGjkEpaSolver2_SignedDistance1(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5); //method: SignedDistance bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults & )-//not supported constructor: btGjkPairDetector  ( ::btGjkPairDetector::* )( ::btConvexShape const *,::btConvexShape const *,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) -//not supported constructor: btGjkPairDetector  ( ::btGjkPairDetector::* )( ::btConvexShape const *,::btConvexShape const *,int,int,::btScalar,::btScalar,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) -void btGjkPairDetector_free(void *c); void btGjkPairDetector_setCachedSeperatingAxis(void *c,float* p0); //method: setCachedSeperatingAxis void ( ::btGjkPairDetector::* )( ::btVector3 const & ) -void btGjkPairDetector_getCachedSeparatingAxis(void *c,float* ret); //method: getCachedSeparatingAxis ::btVector3 const & ( ::btGjkPairDetector::* )(  ) const-//not supported method: setPenetrationDepthSolver void ( ::btGjkPairDetector::* )( ::btConvexPenetrationDepthSolver * ) -void btGjkPairDetector_getClosestPoints(void *c,void* p0,void* p1,void* p2,int p3); //method: getClosestPoints void ( ::btGjkPairDetector::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw *,bool ) -void btGjkPairDetector_setMinkowskiA(void *c,void* p0); //method: setMinkowskiA void ( ::btGjkPairDetector::* )( ::btConvexShape * ) -void btGjkPairDetector_setMinkowskiB(void *c,void* p0); //method: setMinkowskiB void ( ::btGjkPairDetector::* )( ::btConvexShape * ) -void btGjkPairDetector_setIgnoreMargin(void *c,int p0); //method: setIgnoreMargin void ( ::btGjkPairDetector::* )( bool ) -void btGjkPairDetector_getClosestPointsNonVirtual(void *c,void* p0,void* p1,void* p2); //method: getClosestPointsNonVirtual void ( ::btGjkPairDetector::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw * ) -float btGjkPairDetector_getCachedSeparatingDistance(void *c); //method: getCachedSeparatingDistance ::btScalar ( ::btGjkPairDetector::* )(  ) const-void btGjkPairDetector_m_lastUsedMethod_set(void *c,int a); //attribute: int btGjkPairDetector->m_lastUsedMethod-int btGjkPairDetector_m_lastUsedMethod_get(void *c); //attribute: int btGjkPairDetector->m_lastUsedMethod-void btGjkPairDetector_m_curIter_set(void *c,int a); //attribute: int btGjkPairDetector->m_curIter-int btGjkPairDetector_m_curIter_get(void *c); //attribute: int btGjkPairDetector->m_curIter-void btGjkPairDetector_m_degenerateSimplex_set(void *c,int a); //attribute: int btGjkPairDetector->m_degenerateSimplex-int btGjkPairDetector_m_degenerateSimplex_get(void *c); //attribute: int btGjkPairDetector->m_degenerateSimplex-void btGjkPairDetector_m_catchDegeneracies_set(void *c,int a); //attribute: int btGjkPairDetector->m_catchDegeneracies-int btGjkPairDetector_m_catchDegeneracies_get(void *c); //attribute: int btGjkPairDetector->m_catchDegeneracies-void* btManifoldPoint_new0(); //constructor: btManifoldPoint  ( ::btManifoldPoint::* )(  ) -void* btManifoldPoint_new1(float* p0,float* p1,float* p2,float p3); //constructor: btManifoldPoint  ( ::btManifoldPoint::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) -void btManifoldPoint_free(void *c); void btManifoldPoint_setDistance(void *c,float p0); //method: setDistance void ( ::btManifoldPoint::* )( ::btScalar ) -int btManifoldPoint_getLifeTime(void *c); //method: getLifeTime int ( ::btManifoldPoint::* )(  ) const-float btManifoldPoint_getDistance(void *c); //method: getDistance ::btScalar ( ::btManifoldPoint::* )(  ) const-float btManifoldPoint_getAppliedImpulse(void *c); //method: getAppliedImpulse ::btScalar ( ::btManifoldPoint::* )(  ) const-void btManifoldPoint_getPositionWorldOnB(void *c,float* ret); //method: getPositionWorldOnB ::btVector3 const & ( ::btManifoldPoint::* )(  ) const-void btManifoldPoint_getPositionWorldOnA(void *c,float* ret); //method: getPositionWorldOnA ::btVector3 const & ( ::btManifoldPoint::* )(  ) const-void btManifoldPoint_m_localPointA_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_localPointA-void btManifoldPoint_m_localPointA_get(void *c,float* a);-void btManifoldPoint_m_localPointB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_localPointB-void btManifoldPoint_m_localPointB_get(void *c,float* a);-void btManifoldPoint_m_positionWorldOnB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_positionWorldOnB-void btManifoldPoint_m_positionWorldOnB_get(void *c,float* a);-void btManifoldPoint_m_positionWorldOnA_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_positionWorldOnA-void btManifoldPoint_m_positionWorldOnA_get(void *c,float* a);-void btManifoldPoint_m_normalWorldOnB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_normalWorldOnB-void btManifoldPoint_m_normalWorldOnB_get(void *c,float* a);-void btManifoldPoint_m_distance1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_distance1-float btManifoldPoint_m_distance1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_distance1-void btManifoldPoint_m_combinedFriction_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_combinedFriction-float btManifoldPoint_m_combinedFriction_get(void *c); //attribute: ::btScalar btManifoldPoint->m_combinedFriction-void btManifoldPoint_m_combinedRestitution_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_combinedRestitution-float btManifoldPoint_m_combinedRestitution_get(void *c); //attribute: ::btScalar btManifoldPoint->m_combinedRestitution-void btManifoldPoint_m_partId0_set(void *c,int a); //attribute: int btManifoldPoint->m_partId0-int btManifoldPoint_m_partId0_get(void *c); //attribute: int btManifoldPoint->m_partId0-void btManifoldPoint_m_partId1_set(void *c,int a); //attribute: int btManifoldPoint->m_partId1-int btManifoldPoint_m_partId1_get(void *c); //attribute: int btManifoldPoint->m_partId1-void btManifoldPoint_m_index0_set(void *c,int a); //attribute: int btManifoldPoint->m_index0-int btManifoldPoint_m_index0_get(void *c); //attribute: int btManifoldPoint->m_index0-void btManifoldPoint_m_index1_set(void *c,int a); //attribute: int btManifoldPoint->m_index1-int btManifoldPoint_m_index1_get(void *c); //attribute: int btManifoldPoint->m_index1-// attribute not supported: //attribute: void * btManifoldPoint->m_userPersistentData-void btManifoldPoint_m_appliedImpulse_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulse-float btManifoldPoint_m_appliedImpulse_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulse-void btManifoldPoint_m_lateralFrictionInitialized_set(void *c,int a); //attribute: bool btManifoldPoint->m_lateralFrictionInitialized-int btManifoldPoint_m_lateralFrictionInitialized_get(void *c); //attribute: bool btManifoldPoint->m_lateralFrictionInitialized-void btManifoldPoint_m_appliedImpulseLateral1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral1-float btManifoldPoint_m_appliedImpulseLateral1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral1-void btManifoldPoint_m_appliedImpulseLateral2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral2-float btManifoldPoint_m_appliedImpulseLateral2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral2-void btManifoldPoint_m_contactMotion1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactMotion1-float btManifoldPoint_m_contactMotion1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactMotion1-void btManifoldPoint_m_contactMotion2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactMotion2-float btManifoldPoint_m_contactMotion2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactMotion2-void btManifoldPoint_m_contactCFM1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactCFM1-float btManifoldPoint_m_contactCFM1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactCFM1-void btManifoldPoint_m_contactCFM2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactCFM2-float btManifoldPoint_m_contactCFM2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactCFM2-void btManifoldPoint_m_lifeTime_set(void *c,int a); //attribute: int btManifoldPoint->m_lifeTime-int btManifoldPoint_m_lifeTime_get(void *c); //attribute: int btManifoldPoint->m_lifeTime-void btManifoldPoint_m_lateralFrictionDir1_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_lateralFrictionDir1-void btManifoldPoint_m_lateralFrictionDir1_get(void *c,float* a);-void btManifoldPoint_m_lateralFrictionDir2_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_lateralFrictionDir2-void btManifoldPoint_m_lateralFrictionDir2_get(void *c,float* a);-// attribute not supported: //attribute: ::btConstraintRow[3] btManifoldPoint->mConstraintRow-void* btPersistentManifold_new0(); //constructor: btPersistentManifold  ( ::btPersistentManifold::* )(  ) -//not supported constructor: btPersistentManifold  ( ::btPersistentManifold::* )( void *,void *,int,::btScalar,::btScalar ) -void btPersistentManifold_free(void *c); //not supported method: setBodies void ( ::btPersistentManifold::* )( void *,void * ) -void btPersistentManifold_replaceContactPoint(void *c,void* p0,int p1); //method: replaceContactPoint void ( ::btPersistentManifold::* )( ::btManifoldPoint const &,int ) -void btPersistentManifold_clearUserCache(void *c,void* p0); //method: clearUserCache void ( ::btPersistentManifold::* )( ::btManifoldPoint & ) -//not supported method: getBody1 void * ( ::btPersistentManifold::* )(  ) -//not supported method: getBody1 void * ( ::btPersistentManifold::* )(  ) -//not supported method: getBody1 void const * ( ::btPersistentManifold::* )(  ) const-float btPersistentManifold_getContactProcessingThreshold(void *c); //method: getContactProcessingThreshold ::btScalar ( ::btPersistentManifold::* )(  ) const-void btPersistentManifold_clearManifold(void *c); //method: clearManifold void ( ::btPersistentManifold::* )(  ) -int btPersistentManifold_getNumContacts(void *c); //method: getNumContacts int ( ::btPersistentManifold::* )(  ) const-//not supported method: getBody0 void * ( ::btPersistentManifold::* )(  ) -//not supported method: getBody0 void * ( ::btPersistentManifold::* )(  ) -//not supported method: getBody0 void const * ( ::btPersistentManifold::* )(  ) const-int btPersistentManifold_addManifoldPoint(void *c,void* p0); //method: addManifoldPoint int ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) -int btPersistentManifold_getCacheEntry(void *c,void* p0); //method: getCacheEntry int ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) const-int btPersistentManifold_validContactDistance(void *c,void* p0); //method: validContactDistance bool ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) const-void btPersistentManifold_removeContactPoint(void *c,int p0); //method: removeContactPoint void ( ::btPersistentManifold::* )( int ) -void* btPersistentManifold_getContactPoint(void *c,int p0); //method: getContactPoint ::btManifoldPoint const & ( ::btPersistentManifold::* )( int ) const-void* btPersistentManifold_getContactPoint0(void *c,int p0); //method: getContactPoint ::btManifoldPoint const & ( ::btPersistentManifold::* )( int ) const-void* btPersistentManifold_getContactPoint1(void *c,int p0); //method: getContactPoint ::btManifoldPoint & ( ::btPersistentManifold::* )( int ) -void btPersistentManifold_refreshContactPoints(void *c,float* p0,float* p1); //method: refreshContactPoints void ( ::btPersistentManifold::* )( ::btTransform const &,::btTransform const & ) -float btPersistentManifold_getContactBreakingThreshold(void *c); //method: getContactBreakingThreshold ::btScalar ( ::btPersistentManifold::* )(  ) const-void btPersistentManifold_m_companionIdA_set(void *c,int a); //attribute: int btPersistentManifold->m_companionIdA-int btPersistentManifold_m_companionIdA_get(void *c); //attribute: int btPersistentManifold->m_companionIdA-void btPersistentManifold_m_companionIdB_set(void *c,int a); //attribute: int btPersistentManifold->m_companionIdB-int btPersistentManifold_m_companionIdB_get(void *c); //attribute: int btPersistentManifold->m_companionIdB-void btPersistentManifold_m_index1a_set(void *c,int a); //attribute: int btPersistentManifold->m_index1a-int btPersistentManifold_m_index1a_get(void *c); //attribute: int btPersistentManifold->m_index1a-void btStorageResult_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btStorageResult::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void btStorageResult_m_normalOnSurfaceB_set(void *c,float* a); //attribute: ::btVector3 btStorageResult->m_normalOnSurfaceB-void btStorageResult_m_normalOnSurfaceB_get(void *c,float* a);-void btStorageResult_m_closestPointInB_set(void *c,float* a); //attribute: ::btVector3 btStorageResult->m_closestPointInB-void btStorageResult_m_closestPointInB_get(void *c,float* a);-void btStorageResult_m_distance_set(void *c,float a); //attribute: ::btScalar btStorageResult->m_distance-float btStorageResult_m_distance_get(void *c); //attribute: ::btScalar btStorageResult->m_distance-void* btSubSimplexClosestResult_new(); //constructor: btSubSimplexClosestResult  ( ::btSubSimplexClosestResult::* )(  ) -void btSubSimplexClosestResult_free(void *c); void btSubSimplexClosestResult_reset(void *c); //method: reset void ( ::btSubSimplexClosestResult::* )(  ) -int btSubSimplexClosestResult_isValid(void *c); //method: isValid bool ( ::btSubSimplexClosestResult::* )(  ) -void btSubSimplexClosestResult_setBarycentricCoordinates(void *c,float p0,float p1,float p2,float p3); //method: setBarycentricCoordinates void ( ::btSubSimplexClosestResult::* )( ::btScalar,::btScalar,::btScalar,::btScalar ) -void btSubSimplexClosestResult_m_closestPointOnSimplex_set(void *c,float* a); //attribute: ::btVector3 btSubSimplexClosestResult->m_closestPointOnSimplex-void btSubSimplexClosestResult_m_closestPointOnSimplex_get(void *c,float* a);-// attribute not supported: //attribute: ::btUsageBitfield btSubSimplexClosestResult->m_usedVertices-// attribute not supported: //attribute: ::btScalar[4] btSubSimplexClosestResult->m_barycentricCoords-void btSubSimplexClosestResult_m_degenerate_set(void *c,int a); //attribute: bool btSubSimplexClosestResult->m_degenerate-int btSubSimplexClosestResult_m_degenerate_get(void *c); //attribute: bool btSubSimplexClosestResult->m_degenerate-void* btUsageBitfield_new(); //constructor: btUsageBitfield  ( ::btUsageBitfield::* )(  ) -void btUsageBitfield_free(void *c); void btUsageBitfield_reset(void *c); //method: reset void ( ::btUsageBitfield::* )(  ) -void btUsageBitfield_unused1_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused1-short unsigned int btUsageBitfield_unused1_get(void *c); //attribute: short unsigned int btUsageBitfield->unused1-void btUsageBitfield_unused2_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused2-short unsigned int btUsageBitfield_unused2_get(void *c); //attribute: short unsigned int btUsageBitfield->unused2-void btUsageBitfield_unused3_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused3-short unsigned int btUsageBitfield_unused3_get(void *c); //attribute: short unsigned int btUsageBitfield->unused3-void btUsageBitfield_unused4_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused4-short unsigned int btUsageBitfield_unused4_get(void *c); //attribute: short unsigned int btUsageBitfield->unused4-void btUsageBitfield_usedVertexA_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexA-short unsigned int btUsageBitfield_usedVertexA_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexA-void btUsageBitfield_usedVertexB_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexB-short unsigned int btUsageBitfield_usedVertexB_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexB-void btUsageBitfield_usedVertexC_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexC-short unsigned int btUsageBitfield_usedVertexC_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexC-void btUsageBitfield_usedVertexD_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexD-short unsigned int btUsageBitfield_usedVertexD_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexD-void* btVoronoiSimplexSolver_new(); //constructor: btVoronoiSimplexSolver  ( ::btVoronoiSimplexSolver::* )(  ) -void btVoronoiSimplexSolver_free(void *c); void btVoronoiSimplexSolver_reset(void *c); //method: reset void ( ::btVoronoiSimplexSolver::* )(  ) -int btVoronoiSimplexSolver_updateClosestVectorAndPoints(void *c); //method: updateClosestVectorAndPoints bool ( ::btVoronoiSimplexSolver::* )(  ) -void btVoronoiSimplexSolver_setEqualVertexThreshold(void *c,float p0); //method: setEqualVertexThreshold void ( ::btVoronoiSimplexSolver::* )( ::btScalar ) -int btVoronoiSimplexSolver_inSimplex(void *c,float* p0); //method: inSimplex bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const & ) -int btVoronoiSimplexSolver_closest(void *c,float* p0); //method: closest bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 & ) -int btVoronoiSimplexSolver_closestPtPointTetrahedron(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,void* p5); //method: closestPtPointTetrahedron bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btSubSimplexClosestResult & ) -int btVoronoiSimplexSolver_closestPtPointTriangle(void *c,float* p0,float* p1,float* p2,float* p3,void* p4); //method: closestPtPointTriangle bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btSubSimplexClosestResult & ) -int btVoronoiSimplexSolver_pointOutsideOfPlane(void *c,float* p0,float* p1,float* p2,float* p3,float* p4); //method: pointOutsideOfPlane int ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) -int btVoronoiSimplexSolver_emptySimplex(void *c); //method: emptySimplex bool ( ::btVoronoiSimplexSolver::* )(  ) const-//not supported method: getSimplex int ( ::btVoronoiSimplexSolver::* )( ::btVector3 *,::btVector3 *,::btVector3 * ) const-float btVoronoiSimplexSolver_maxVertex(void *c); //method: maxVertex ::btScalar ( ::btVoronoiSimplexSolver::* )(  ) -void btVoronoiSimplexSolver_addVertex(void *c,float* p0,float* p1,float* p2); //method: addVertex void ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) -void btVoronoiSimplexSolver_reduceVertices(void *c,void* p0); //method: reduceVertices void ( ::btVoronoiSimplexSolver::* )( ::btUsageBitfield const & ) -void btVoronoiSimplexSolver_backup_closest(void *c,float* p0); //method: backup_closest void ( ::btVoronoiSimplexSolver::* )( ::btVector3 & ) -void btVoronoiSimplexSolver_removeVertex(void *c,int p0); //method: removeVertex void ( ::btVoronoiSimplexSolver::* )( int ) -float btVoronoiSimplexSolver_getEqualVertexThreshold(void *c); //method: getEqualVertexThreshold ::btScalar ( ::btVoronoiSimplexSolver::* )(  ) const-void btVoronoiSimplexSolver_compute_points(void *c,float* p0,float* p1); //method: compute_points void ( ::btVoronoiSimplexSolver::* )( ::btVector3 &,::btVector3 & ) -int btVoronoiSimplexSolver_fullSimplex(void *c); //method: fullSimplex bool ( ::btVoronoiSimplexSolver::* )(  ) const-int btVoronoiSimplexSolver_numVertices(void *c); //method: numVertices int ( ::btVoronoiSimplexSolver::* )(  ) const-// attribute not supported: //attribute: ::btSubSimplexClosestResult btVoronoiSimplexSolver->m_cachedBC-void btVoronoiSimplexSolver_m_cachedP1_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedP1-void btVoronoiSimplexSolver_m_cachedP1_get(void *c,float* a);-void btVoronoiSimplexSolver_m_cachedP2_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedP2-void btVoronoiSimplexSolver_m_cachedP2_get(void *c,float* a);-void btVoronoiSimplexSolver_m_cachedV_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedV-void btVoronoiSimplexSolver_m_cachedV_get(void *c,float* a);-void btVoronoiSimplexSolver_m_cachedValidClosest_set(void *c,int a); //attribute: bool btVoronoiSimplexSolver->m_cachedValidClosest-int btVoronoiSimplexSolver_m_cachedValidClosest_get(void *c); //attribute: bool btVoronoiSimplexSolver->m_cachedValidClosest-void btVoronoiSimplexSolver_m_equalVertexThreshold_set(void *c,float a); //attribute: ::btScalar btVoronoiSimplexSolver->m_equalVertexThreshold-float btVoronoiSimplexSolver_m_equalVertexThreshold_get(void *c); //attribute: ::btScalar btVoronoiSimplexSolver->m_equalVertexThreshold-void btVoronoiSimplexSolver_m_lastW_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_lastW-void btVoronoiSimplexSolver_m_lastW_get(void *c,float* a);-void btVoronoiSimplexSolver_m_needsUpdate_set(void *c,int a); //attribute: bool btVoronoiSimplexSolver->m_needsUpdate-int btVoronoiSimplexSolver_m_needsUpdate_get(void *c); //attribute: bool btVoronoiSimplexSolver->m_needsUpdate-void btVoronoiSimplexSolver_m_numVertices_set(void *c,int a); //attribute: int btVoronoiSimplexSolver->m_numVertices-int btVoronoiSimplexSolver_m_numVertices_get(void *c); //attribute: int btVoronoiSimplexSolver->m_numVertices-// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexPointsP-// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexPointsQ-// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexVectorW-void* btGjkEpaSolver2_sResults_new(); //constructor: sResults  ( ::btGjkEpaSolver2::sResults::* )(  ) -void btGjkEpaSolver2_sResults_free(void *c); void btGjkEpaSolver2_sResults_distance_set(void *c,float a); //attribute: ::btScalar btGjkEpaSolver2_sResults->distance-float btGjkEpaSolver2_sResults_distance_get(void *c); //attribute: ::btScalar btGjkEpaSolver2_sResults->distance-void btGjkEpaSolver2_sResults_normal_set(void *c,float* a); //attribute: ::btVector3 btGjkEpaSolver2_sResults->normal-void btGjkEpaSolver2_sResults_normal_get(void *c,float* a);-// attribute not supported: //attribute: ::btGjkEpaSolver2::sResults::eStatus btGjkEpaSolver2_sResults->status-// attribute not supported: //attribute: ::btVector3[2] btGjkEpaSolver2_sResults->witnesses-void* btCollisionWorld_AllHitsRayResultCallback_new(float* p0,float* p1); //constructor: AllHitsRayResultCallback  ( ::btCollisionWorld::AllHitsRayResultCallback::* )( ::btVector3 const &,::btVector3 const & ) -void btCollisionWorld_AllHitsRayResultCallback_free(void *c); float btCollisionWorld_AllHitsRayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::AllHitsRayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) -// attribute not supported: //attribute: ::btAlignedObjectArray<btCollisionObject*> btCollisionWorld_AllHitsRayResultCallback->m_collisionObjects-// attribute not supported: //attribute: ::btAlignedObjectArray<float> btCollisionWorld_AllHitsRayResultCallback->m_hitFractions-// attribute not supported: //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitNormalWorld-// attribute not supported: //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitPointWorld-void btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_AllHitsRayResultCallback->m_rayFromWorld-void btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_get(void *c,float* a);-void btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_AllHitsRayResultCallback->m_rayToWorld-void btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_get(void *c,float* a);-void* btCollisionWorld_ClosestConvexResultCallback_new(float* p0,float* p1); //constructor: ClosestConvexResultCallback  ( ::btCollisionWorld::ClosestConvexResultCallback::* )( ::btVector3 const &,::btVector3 const & ) -void btCollisionWorld_ClosestConvexResultCallback_free(void *c); float btCollisionWorld_ClosestConvexResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ClosestConvexResultCallback::* )( ::btCollisionWorld::LocalConvexResult &,bool ) -void btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_convexFromWorld-void btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_get(void *c,float* a);-void btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_convexToWorld-void btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_get(void *c,float* a);-void btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_ClosestConvexResultCallback->m_hitCollisionObject-// attribute getter not supported: //attribute: ::btCollisionObject * btCollisionWorld_ClosestConvexResultCallback->m_hitCollisionObject-void btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_hitNormalWorld-void btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_get(void *c,float* a);-void btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_hitPointWorld-void btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_get(void *c,float* a);-void* btCollisionWorld_ClosestRayResultCallback_new(float* p0,float* p1); //constructor: ClosestRayResultCallback  ( ::btCollisionWorld::ClosestRayResultCallback::* )( ::btVector3 const &,::btVector3 const & ) -void btCollisionWorld_ClosestRayResultCallback_free(void *c); float btCollisionWorld_ClosestRayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ClosestRayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) -void btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_hitNormalWorld-void btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_get(void *c,float* a);-void btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_hitPointWorld-void btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_get(void *c,float* a);-void btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_rayFromWorld-void btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_get(void *c,float* a);-void btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_rayToWorld-void btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_get(void *c,float* a);-float btCollisionWorld_ContactResultCallback_addSingleResult(void *c,void* p0,void* p1,int p2,int p3,void* p4,int p5,int p6); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ContactResultCallback::* )( ::btManifoldPoint &,::btCollisionObject const *,int,int,::btCollisionObject const *,int,int ) -int btCollisionWorld_ContactResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::ContactResultCallback::* )( ::btBroadphaseProxy * ) const-void btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterGroup-short int btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterGroup-void btCollisionWorld_ContactResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterMask-short int btCollisionWorld_ContactResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterMask-float btCollisionWorld_ConvexResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ConvexResultCallback::* )( ::btCollisionWorld::LocalConvexResult &,bool ) -int btCollisionWorld_ConvexResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::ConvexResultCallback::* )( ::btBroadphaseProxy * ) const-int btCollisionWorld_ConvexResultCallback_hasHit(void *c); //method: hasHit bool ( ::btCollisionWorld::ConvexResultCallback::* )(  ) const-void btCollisionWorld_ConvexResultCallback_m_closestHitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_ConvexResultCallback->m_closestHitFraction-float btCollisionWorld_ConvexResultCallback_m_closestHitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_ConvexResultCallback->m_closestHitFraction-void btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterGroup-short int btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterGroup-void btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterMask-short int btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterMask-void* btSphereSphereCollisionAlgorithm_CreateFunc_new(); //constructor: CreateFunc  ( ::btSphereSphereCollisionAlgorithm::CreateFunc::* )(  ) -void btSphereSphereCollisionAlgorithm_CreateFunc_free(void *c); void* btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btSphereSphereCollisionAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) -//not supported constructor: CreateFunc  ( ::btConvexConvexAlgorithm::CreateFunc::* )( ::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) -void btConvexConvexAlgorithm_CreateFunc_free(void *c); void* btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btConvexConvexAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) -// attribute not supported: //attribute: ::btConvexPenetrationDepthSolver * btConvexConvexAlgorithm_CreateFunc->m_pdSolver-void btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_set(void *c,void* a); //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm_CreateFunc->m_simplexSolver-// attribute getter not supported: //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm_CreateFunc->m_simplexSolver-void btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_set(void *c,int a); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_numPerturbationIterations-int btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_get(void *c); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_numPerturbationIterations-void btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_set(void *c,int a); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_minimumPointsPerturbationThreshold-int btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_get(void *c); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_minimumPointsPerturbationThreshold-void* btCollisionWorld_LocalConvexResult_new(void* p0,void* p1,float* p2,float* p3,float p4); //constructor: LocalConvexResult  ( ::btCollisionWorld::LocalConvexResult::* )( ::btCollisionObject *,::btCollisionWorld::LocalShapeInfo *,::btVector3 const &,::btVector3 const &,::btScalar ) -void btCollisionWorld_LocalConvexResult_free(void *c); void btCollisionWorld_LocalConvexResult_m_hitCollisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_LocalConvexResult->m_hitCollisionObject-// attribute getter not supported: //attribute: ::btCollisionObject * btCollisionWorld_LocalConvexResult->m_hitCollisionObject-void btCollisionWorld_LocalConvexResult_m_hitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_LocalConvexResult->m_hitFraction-float btCollisionWorld_LocalConvexResult_m_hitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_LocalConvexResult->m_hitFraction-void btCollisionWorld_LocalConvexResult_m_hitNormalLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalConvexResult->m_hitNormalLocal-void btCollisionWorld_LocalConvexResult_m_hitNormalLocal_get(void *c,float* a);-void btCollisionWorld_LocalConvexResult_m_hitPointLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalConvexResult->m_hitPointLocal-void btCollisionWorld_LocalConvexResult_m_hitPointLocal_get(void *c,float* a);-void btCollisionWorld_LocalConvexResult_m_localShapeInfo_set(void *c,void* a); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalConvexResult->m_localShapeInfo-// attribute getter not supported: //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalConvexResult->m_localShapeInfo-void* btCollisionWorld_LocalRayResult_new(void* p0,void* p1,float* p2,float p3); //constructor: LocalRayResult  ( ::btCollisionWorld::LocalRayResult::* )( ::btCollisionObject *,::btCollisionWorld::LocalShapeInfo *,::btVector3 const &,::btScalar ) -void btCollisionWorld_LocalRayResult_free(void *c); void btCollisionWorld_LocalRayResult_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_LocalRayResult->m_collisionObject-// attribute getter not supported: //attribute: ::btCollisionObject * btCollisionWorld_LocalRayResult->m_collisionObject-void btCollisionWorld_LocalRayResult_m_hitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_LocalRayResult->m_hitFraction-float btCollisionWorld_LocalRayResult_m_hitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_LocalRayResult->m_hitFraction-void btCollisionWorld_LocalRayResult_m_hitNormalLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalRayResult->m_hitNormalLocal-void btCollisionWorld_LocalRayResult_m_hitNormalLocal_get(void *c,float* a);-void btCollisionWorld_LocalRayResult_m_localShapeInfo_set(void *c,void* a); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalRayResult->m_localShapeInfo-// attribute getter not supported: //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalRayResult->m_localShapeInfo-void* btCollisionWorld_LocalShapeInfo_new(); //constructor: LocalShapeInfo  ( ::btCollisionWorld::LocalShapeInfo::* )(  ) -void btCollisionWorld_LocalShapeInfo_free(void *c); void btCollisionWorld_LocalShapeInfo_m_shapePart_set(void *c,int a); //attribute: int btCollisionWorld_LocalShapeInfo->m_shapePart-int btCollisionWorld_LocalShapeInfo_m_shapePart_get(void *c); //attribute: int btCollisionWorld_LocalShapeInfo->m_shapePart-void btCollisionWorld_LocalShapeInfo_m_triangleIndex_set(void *c,int a); //attribute: int btCollisionWorld_LocalShapeInfo->m_triangleIndex-int btCollisionWorld_LocalShapeInfo_m_triangleIndex_get(void *c); //attribute: int btCollisionWorld_LocalShapeInfo->m_triangleIndex-float btCollisionWorld_RayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::RayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) -int btCollisionWorld_RayResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::RayResultCallback::* )( ::btBroadphaseProxy * ) const-int btCollisionWorld_RayResultCallback_hasHit(void *c); //method: hasHit bool ( ::btCollisionWorld::RayResultCallback::* )(  ) const-void btCollisionWorld_RayResultCallback_m_closestHitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_RayResultCallback->m_closestHitFraction-float btCollisionWorld_RayResultCallback_m_closestHitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_RayResultCallback->m_closestHitFraction-void btCollisionWorld_RayResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterGroup-short int btCollisionWorld_RayResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterGroup-void btCollisionWorld_RayResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterMask-short int btCollisionWorld_RayResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterMask-void btCollisionWorld_RayResultCallback_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_RayResultCallback->m_collisionObject-// attribute getter not supported: //attribute: ::btCollisionObject * btCollisionWorld_RayResultCallback->m_collisionObject-void btCollisionWorld_RayResultCallback_m_flags_set(void *c,unsigned int a); //attribute: unsigned int btCollisionWorld_RayResultCallback->m_flags-unsigned int btCollisionWorld_RayResultCallback_m_flags_get(void *c); //attribute: unsigned int btCollisionWorld_RayResultCallback->m_flags-void* btCollisionAlgorithmCreateFunc_new(); //constructor: btCollisionAlgorithmCreateFunc  ( ::btCollisionAlgorithmCreateFunc::* )(  ) -void btCollisionAlgorithmCreateFunc_free(void *c); void* btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btCollisionAlgorithmCreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) -void btCollisionAlgorithmCreateFunc_m_swapped_set(void *c,int a); //attribute: bool btCollisionAlgorithmCreateFunc->m_swapped-int btCollisionAlgorithmCreateFunc_m_swapped_get(void *c); //attribute: bool btCollisionAlgorithmCreateFunc->m_swapped-//not supported method: getPersistentManifoldPool ::btPoolAllocator * ( ::btCollisionConfiguration::* )(  ) -void* btCollisionConfiguration_getStackAllocator(void *c); //method: getStackAllocator ::btStackAlloc * ( ::btCollisionConfiguration::* )(  ) -//not supported method: getCollisionAlgorithmPool ::btPoolAllocator * ( ::btCollisionConfiguration::* )(  ) -void* btCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btCollisionConfiguration::* )( int,int ) -void* btCollisionDispatcher_new(void* p0); //constructor: btCollisionDispatcher  ( ::btCollisionDispatcher::* )( ::btCollisionConfiguration * ) -void btCollisionDispatcher_free(void *c); //not supported method: allocateCollisionAlgorithm void * ( ::btCollisionDispatcher::* )( int ) -int btCollisionDispatcher_getDispatcherFlags(void *c); //method: getDispatcherFlags int ( ::btCollisionDispatcher::* )(  ) const-void* btCollisionDispatcher_getCollisionConfiguration(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration * ( ::btCollisionDispatcher::* )(  ) -void* btCollisionDispatcher_getCollisionConfiguration0(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration * ( ::btCollisionDispatcher::* )(  ) -void* btCollisionDispatcher_getCollisionConfiguration1(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration const * ( ::btCollisionDispatcher::* )(  ) const-void btCollisionDispatcher_setDispatcherFlags(void *c,int p0); //method: setDispatcherFlags void ( ::btCollisionDispatcher::* )( int ) -void btCollisionDispatcher_releaseManifold(void *c,void* p0); //method: releaseManifold void ( ::btCollisionDispatcher::* )( ::btPersistentManifold * ) -void btCollisionDispatcher_setCollisionConfiguration(void *c,void* p0); //method: setCollisionConfiguration void ( ::btCollisionDispatcher::* )( ::btCollisionConfiguration * ) -int btCollisionDispatcher_getNumManifolds(void *c); //method: getNumManifolds int ( ::btCollisionDispatcher::* )(  ) const-void btCollisionDispatcher_clearManifold(void *c,void* p0); //method: clearManifold void ( ::btCollisionDispatcher::* )( ::btPersistentManifold * ) -//not supported method: freeCollisionAlgorithm void ( ::btCollisionDispatcher::* )( void * ) -//not supported method: getInternalManifoldPointer ::btPersistentManifold * * ( ::btCollisionDispatcher::* )(  ) -void btCollisionDispatcher_registerCollisionCreateFunc(void *c,int p0,int p1,void* p2); //method: registerCollisionCreateFunc void ( ::btCollisionDispatcher::* )( int,int,::btCollisionAlgorithmCreateFunc * ) -void btCollisionDispatcher_defaultNearCallback(void* p0,void* p1,void* p2); //method: defaultNearCallback void (*)( ::btBroadphasePair &,::btCollisionDispatcher &,::btDispatcherInfo const & )-//not supported method: getNearCallback ::btNearCallback ( ::btCollisionDispatcher::* )(  ) const-void* btCollisionDispatcher_findAlgorithm(void *c,void* p0,void* p1,void* p2); //method: findAlgorithm ::btCollisionAlgorithm * ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject *,::btPersistentManifold * ) -int btCollisionDispatcher_needsResponse(void *c,void* p0,void* p1); //method: needsResponse bool ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) -//not supported method: getNewManifold ::btPersistentManifold * ( ::btCollisionDispatcher::* )( void *,void * ) -void btCollisionDispatcher_dispatchAllCollisionPairs(void *c,void* p0,void* p1,void* p2); //method: dispatchAllCollisionPairs void ( ::btCollisionDispatcher::* )( ::btOverlappingPairCache *,::btDispatcherInfo const &,::btDispatcher * ) -//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btCollisionDispatcher::* )(  ) -//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btCollisionDispatcher::* )(  ) -//not supported method: getInternalManifoldPool ::btPoolAllocator const * ( ::btCollisionDispatcher::* )(  ) const-int btCollisionDispatcher_needsCollision(void *c,void* p0,void* p1); //method: needsCollision bool ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) -void* btCollisionDispatcher_getManifoldByIndexInternal(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btCollisionDispatcher::* )( int ) -void* btCollisionDispatcher_getManifoldByIndexInternal0(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btCollisionDispatcher::* )( int ) -void* btCollisionDispatcher_getManifoldByIndexInternal1(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold const * ( ::btCollisionDispatcher::* )( int ) const-//not supported method: setNearCallback void ( ::btCollisionDispatcher::* )( ::btNearCallback ) -void* btCollisionObject_new(); //constructor: btCollisionObject  ( ::btCollisionObject::* )(  ) -void btCollisionObject_free(void *c); float btCollisionObject_getCcdSquareMotionThreshold(void *c); //method: getCcdSquareMotionThreshold ::btScalar ( ::btCollisionObject::* )(  ) const-void btCollisionObject_activate(void *c,int p0); //method: activate void ( ::btCollisionObject::* )( bool ) -void btCollisionObject_setInterpolationLinearVelocity(void *c,float* p0); //method: setInterpolationLinearVelocity void ( ::btCollisionObject::* )( ::btVector3 const & ) -float btCollisionObject_getFriction(void *c); //method: getFriction ::btScalar ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setCompanionId(void *c,int p0); //method: setCompanionId void ( ::btCollisionObject::* )( int ) -void btCollisionObject_setInterpolationAngularVelocity(void *c,float* p0); //method: setInterpolationAngularVelocity void ( ::btCollisionObject::* )( ::btVector3 const & ) -//not supported method: serialize char const * ( ::btCollisionObject::* )( void *,::btSerializer * ) const-void btCollisionObject_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btCollisionObject::* )( ::btTransform const & ) -int btCollisionObject_getCompanionId(void *c); //method: getCompanionId int ( ::btCollisionObject::* )(  ) const-//not supported method: internalSetExtensionPointer void ( ::btCollisionObject::* )( void * ) -void btCollisionObject_setContactProcessingThreshold(void *c,float p0); //method: setContactProcessingThreshold void ( ::btCollisionObject::* )( ::btScalar ) -void btCollisionObject_setInterpolationWorldTransform(void *c,float* p0); //method: setInterpolationWorldTransform void ( ::btCollisionObject::* )( ::btTransform const & ) -void btCollisionObject_getInterpolationLinearVelocity(void *c,float* ret); //method: getInterpolationLinearVelocity ::btVector3 const & ( ::btCollisionObject::* )(  ) const-int btCollisionObject_mergesSimulationIslands(void *c); //method: mergesSimulationIslands bool ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setCollisionShape(void *c,void* p0); //method: setCollisionShape void ( ::btCollisionObject::* )( ::btCollisionShape * ) -void btCollisionObject_setCcdMotionThreshold(void *c,float p0); //method: setCcdMotionThreshold void ( ::btCollisionObject::* )( ::btScalar ) -int btCollisionObject_getIslandTag(void *c); //method: getIslandTag int ( ::btCollisionObject::* )(  ) const-int btCollisionObject_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCollisionObject::* )(  ) const-float btCollisionObject_getCcdMotionThreshold(void *c); //method: getCcdMotionThreshold ::btScalar ( ::btCollisionObject::* )(  ) const-//not supported method: setUserPointer void ( ::btCollisionObject::* )( void * ) -int btCollisionObject_checkCollideWith(void *c,void* p0); //method: checkCollideWith bool ( ::btCollisionObject::* )( ::btCollisionObject * ) -void btCollisionObject_getAnisotropicFriction(void *c,float* ret); //method: getAnisotropicFriction ::btVector3 const & ( ::btCollisionObject::* )(  ) const-void btCollisionObject_getInterpolationAngularVelocity(void *c,float* ret); //method: getInterpolationAngularVelocity ::btVector3 const & ( ::btCollisionObject::* )(  ) const-void btCollisionObject_forceActivationState(void *c,int p0); //method: forceActivationState void ( ::btCollisionObject::* )( int ) -int btCollisionObject_isStaticObject(void *c); //method: isStaticObject bool ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setFriction(void *c,float p0); //method: setFriction void ( ::btCollisionObject::* )( ::btScalar ) -void btCollisionObject_getInterpolationWorldTransform(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const-void btCollisionObject_getInterpolationWorldTransform0(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const-void btCollisionObject_getInterpolationWorldTransform1(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) -void btCollisionObject_setIslandTag(void *c,int p0); //method: setIslandTag void ( ::btCollisionObject::* )( int ) -void btCollisionObject_setHitFraction(void *c,float p0); //method: setHitFraction void ( ::btCollisionObject::* )( ::btScalar ) -void btCollisionObject_serializeSingleObject(void *c,void* p0); //method: serializeSingleObject void ( ::btCollisionObject::* )( ::btSerializer * ) const-int btCollisionObject_getCollisionFlags(void *c); //method: getCollisionFlags int ( ::btCollisionObject::* )(  ) const-float btCollisionObject_getDeactivationTime(void *c); //method: getDeactivationTime ::btScalar ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getCollisionShape(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getCollisionShape0(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getCollisionShape1(void *c); //method: getCollisionShape ::btCollisionShape * ( ::btCollisionObject::* )(  ) -void btCollisionObject_setAnisotropicFriction(void *c,float* p0); //method: setAnisotropicFriction void ( ::btCollisionObject::* )( ::btVector3 const & ) -void* btCollisionObject_getBroadphaseHandle(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy * ( ::btCollisionObject::* )(  ) -void* btCollisionObject_getBroadphaseHandle0(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy * ( ::btCollisionObject::* )(  ) -void* btCollisionObject_getBroadphaseHandle1(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy const * ( ::btCollisionObject::* )(  ) const-//not supported method: getUserPointer void * ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setCcdSweptSphereRadius(void *c,float p0); //method: setCcdSweptSphereRadius void ( ::btCollisionObject::* )( ::btScalar ) -void btCollisionObject_getWorldTransform(void *c,float* ret); //method: getWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) -void btCollisionObject_getWorldTransform0(void *c,float* ret); //method: getWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) -void btCollisionObject_getWorldTransform1(void *c,float* ret); //method: getWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setCollisionFlags(void *c,int p0); //method: setCollisionFlags void ( ::btCollisionObject::* )( int ) -void btCollisionObject_internalSetTemporaryCollisionShape(void *c,void* p0); //method: internalSetTemporaryCollisionShape void ( ::btCollisionObject::* )( ::btCollisionShape * ) -float btCollisionObject_getHitFraction(void *c); //method: getHitFraction ::btScalar ( ::btCollisionObject::* )(  ) const-int btCollisionObject_isActive(void *c); //method: isActive bool ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setActivationState(void *c,int p0); //method: setActivationState void ( ::btCollisionObject::* )( int ) -int btCollisionObject_getInternalType(void *c); //method: getInternalType int ( ::btCollisionObject::* )(  ) const-int btCollisionObject_getActivationState(void *c); //method: getActivationState int ( ::btCollisionObject::* )(  ) const-int btCollisionObject_hasContactResponse(void *c); //method: hasContactResponse bool ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getRootCollisionShape(void *c); //method: getRootCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getRootCollisionShape0(void *c); //method: getRootCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const-void* btCollisionObject_getRootCollisionShape1(void *c); //method: getRootCollisionShape ::btCollisionShape * ( ::btCollisionObject::* )(  ) -float btCollisionObject_getRestitution(void *c); //method: getRestitution ::btScalar ( ::btCollisionObject::* )(  ) const-float btCollisionObject_getCcdSweptSphereRadius(void *c); //method: getCcdSweptSphereRadius ::btScalar ( ::btCollisionObject::* )(  ) const-float btCollisionObject_getContactProcessingThreshold(void *c); //method: getContactProcessingThreshold ::btScalar ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setDeactivationTime(void *c,float p0); //method: setDeactivationTime void ( ::btCollisionObject::* )( ::btScalar ) -//not supported method: internalGetExtensionPointer void * ( ::btCollisionObject::* )(  ) const-int btCollisionObject_isStaticOrKinematicObject(void *c); //method: isStaticOrKinematicObject bool ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setRestitution(void *c,float p0); //method: setRestitution void ( ::btCollisionObject::* )( ::btScalar ) -int btCollisionObject_hasAnisotropicFriction(void *c); //method: hasAnisotropicFriction bool ( ::btCollisionObject::* )(  ) const-void btCollisionObject_setBroadphaseHandle(void *c,void* p0); //method: setBroadphaseHandle void ( ::btCollisionObject::* )( ::btBroadphaseProxy * ) -int btCollisionObject_isKinematicObject(void *c); //method: isKinematicObject bool ( ::btCollisionObject::* )(  ) const-void* btCollisionObjectDoubleData_new(); //constructor: btCollisionObjectDoubleData  ( ::btCollisionObjectDoubleData::* )(  ) -void btCollisionObjectDoubleData_free(void *c); void btCollisionObjectDoubleData_m_activationState1_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_activationState1-int btCollisionObjectDoubleData_m_activationState1_get(void *c); //attribute: int btCollisionObjectDoubleData->m_activationState1-// attribute not supported: //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_anisotropicFriction-// attribute not supported: //attribute: void * btCollisionObjectDoubleData->m_broadphaseHandle-void btCollisionObjectDoubleData_m_ccdMotionThreshold_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_ccdMotionThreshold-double btCollisionObjectDoubleData_m_ccdMotionThreshold_get(void *c); //attribute: double btCollisionObjectDoubleData->m_ccdMotionThreshold-void btCollisionObjectDoubleData_m_ccdSweptSphereRadius_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_ccdSweptSphereRadius-double btCollisionObjectDoubleData_m_ccdSweptSphereRadius_get(void *c); //attribute: double btCollisionObjectDoubleData->m_ccdSweptSphereRadius-void btCollisionObjectDoubleData_m_checkCollideWith_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_checkCollideWith-int btCollisionObjectDoubleData_m_checkCollideWith_get(void *c); //attribute: int btCollisionObjectDoubleData->m_checkCollideWith-void btCollisionObjectDoubleData_m_collisionFlags_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_collisionFlags-int btCollisionObjectDoubleData_m_collisionFlags_get(void *c); //attribute: int btCollisionObjectDoubleData->m_collisionFlags-// attribute not supported: //attribute: void * btCollisionObjectDoubleData->m_collisionShape-void btCollisionObjectDoubleData_m_companionId_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_companionId-int btCollisionObjectDoubleData_m_companionId_get(void *c); //attribute: int btCollisionObjectDoubleData->m_companionId-void btCollisionObjectDoubleData_m_contactProcessingThreshold_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_contactProcessingThreshold-double btCollisionObjectDoubleData_m_contactProcessingThreshold_get(void *c); //attribute: double btCollisionObjectDoubleData->m_contactProcessingThreshold-void btCollisionObjectDoubleData_m_deactivationTime_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_deactivationTime-double btCollisionObjectDoubleData_m_deactivationTime_get(void *c); //attribute: double btCollisionObjectDoubleData->m_deactivationTime-void btCollisionObjectDoubleData_m_friction_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_friction-double btCollisionObjectDoubleData_m_friction_get(void *c); //attribute: double btCollisionObjectDoubleData->m_friction-void btCollisionObjectDoubleData_m_hasAnisotropicFriction_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_hasAnisotropicFriction-int btCollisionObjectDoubleData_m_hasAnisotropicFriction_get(void *c); //attribute: int btCollisionObjectDoubleData->m_hasAnisotropicFriction-void btCollisionObjectDoubleData_m_hitFraction_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_hitFraction-double btCollisionObjectDoubleData_m_hitFraction_get(void *c); //attribute: double btCollisionObjectDoubleData->m_hitFraction-void btCollisionObjectDoubleData_m_internalType_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_internalType-int btCollisionObjectDoubleData_m_internalType_get(void *c); //attribute: int btCollisionObjectDoubleData->m_internalType-// attribute not supported: //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationAngularVelocity-// attribute not supported: //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationLinearVelocity-// attribute not supported: //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_interpolationWorldTransform-void btCollisionObjectDoubleData_m_islandTag1_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_islandTag1-int btCollisionObjectDoubleData_m_islandTag1_get(void *c); //attribute: int btCollisionObjectDoubleData->m_islandTag1-void btCollisionObjectDoubleData_m_name_set(void *c,char * a); //attribute: char * btCollisionObjectDoubleData->m_name-char * btCollisionObjectDoubleData_m_name_get(void *c); //attribute: char * btCollisionObjectDoubleData->m_name-// attribute not supported: //attribute: char[4] btCollisionObjectDoubleData->m_padding-void btCollisionObjectDoubleData_m_restitution_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_restitution-double btCollisionObjectDoubleData_m_restitution_get(void *c); //attribute: double btCollisionObjectDoubleData->m_restitution-void btCollisionObjectDoubleData_m_rootCollisionShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCollisionObjectDoubleData->m_rootCollisionShape-// attribute getter not supported: //attribute: ::btCollisionShapeData * btCollisionObjectDoubleData->m_rootCollisionShape-// attribute not supported: //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_worldTransform-void* btCollisionObjectFloatData_new(); //constructor: btCollisionObjectFloatData  ( ::btCollisionObjectFloatData::* )(  ) -void btCollisionObjectFloatData_free(void *c); void btCollisionObjectFloatData_m_activationState1_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_activationState1-int btCollisionObjectFloatData_m_activationState1_get(void *c); //attribute: int btCollisionObjectFloatData->m_activationState1-// attribute not supported: //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_anisotropicFriction-// attribute not supported: //attribute: void * btCollisionObjectFloatData->m_broadphaseHandle-void btCollisionObjectFloatData_m_ccdMotionThreshold_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_ccdMotionThreshold-float btCollisionObjectFloatData_m_ccdMotionThreshold_get(void *c); //attribute: float btCollisionObjectFloatData->m_ccdMotionThreshold-void btCollisionObjectFloatData_m_ccdSweptSphereRadius_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_ccdSweptSphereRadius-float btCollisionObjectFloatData_m_ccdSweptSphereRadius_get(void *c); //attribute: float btCollisionObjectFloatData->m_ccdSweptSphereRadius-void btCollisionObjectFloatData_m_checkCollideWith_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_checkCollideWith-int btCollisionObjectFloatData_m_checkCollideWith_get(void *c); //attribute: int btCollisionObjectFloatData->m_checkCollideWith-void btCollisionObjectFloatData_m_collisionFlags_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_collisionFlags-int btCollisionObjectFloatData_m_collisionFlags_get(void *c); //attribute: int btCollisionObjectFloatData->m_collisionFlags-// attribute not supported: //attribute: void * btCollisionObjectFloatData->m_collisionShape-void btCollisionObjectFloatData_m_companionId_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_companionId-int btCollisionObjectFloatData_m_companionId_get(void *c); //attribute: int btCollisionObjectFloatData->m_companionId-void btCollisionObjectFloatData_m_contactProcessingThreshold_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_contactProcessingThreshold-float btCollisionObjectFloatData_m_contactProcessingThreshold_get(void *c); //attribute: float btCollisionObjectFloatData->m_contactProcessingThreshold-void btCollisionObjectFloatData_m_deactivationTime_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_deactivationTime-float btCollisionObjectFloatData_m_deactivationTime_get(void *c); //attribute: float btCollisionObjectFloatData->m_deactivationTime-void btCollisionObjectFloatData_m_friction_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_friction-float btCollisionObjectFloatData_m_friction_get(void *c); //attribute: float btCollisionObjectFloatData->m_friction-void btCollisionObjectFloatData_m_hasAnisotropicFriction_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_hasAnisotropicFriction-int btCollisionObjectFloatData_m_hasAnisotropicFriction_get(void *c); //attribute: int btCollisionObjectFloatData->m_hasAnisotropicFriction-void btCollisionObjectFloatData_m_hitFraction_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_hitFraction-float btCollisionObjectFloatData_m_hitFraction_get(void *c); //attribute: float btCollisionObjectFloatData->m_hitFraction-void btCollisionObjectFloatData_m_internalType_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_internalType-int btCollisionObjectFloatData_m_internalType_get(void *c); //attribute: int btCollisionObjectFloatData->m_internalType-// attribute not supported: //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationAngularVelocity-// attribute not supported: //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationLinearVelocity-// attribute not supported: //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_interpolationWorldTransform-void btCollisionObjectFloatData_m_islandTag1_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_islandTag1-int btCollisionObjectFloatData_m_islandTag1_get(void *c); //attribute: int btCollisionObjectFloatData->m_islandTag1-void btCollisionObjectFloatData_m_name_set(void *c,char * a); //attribute: char * btCollisionObjectFloatData->m_name-char * btCollisionObjectFloatData_m_name_get(void *c); //attribute: char * btCollisionObjectFloatData->m_name-void btCollisionObjectFloatData_m_restitution_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_restitution-float btCollisionObjectFloatData_m_restitution_get(void *c); //attribute: float btCollisionObjectFloatData->m_restitution-void btCollisionObjectFloatData_m_rootCollisionShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCollisionObjectFloatData->m_rootCollisionShape-// attribute getter not supported: //attribute: ::btCollisionShapeData * btCollisionObjectFloatData->m_rootCollisionShape-// attribute not supported: //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_worldTransform-void* btCollisionWorld_new(void* p0,void* p1,void* p2); //constructor: btCollisionWorld  ( ::btCollisionWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btCollisionConfiguration * ) -void btCollisionWorld_free(void *c); void btCollisionWorld_setBroadphase(void *c,void* p0); //method: setBroadphase void ( ::btCollisionWorld::* )( ::btBroadphaseInterface * ) -void btCollisionWorld_serialize(void *c,void* p0); //method: serialize void ( ::btCollisionWorld::* )( ::btSerializer * ) -void* btCollisionWorld_getDispatcher(void *c); //method: getDispatcher ::btDispatcher * ( ::btCollisionWorld::* )(  ) -void* btCollisionWorld_getDispatcher0(void *c); //method: getDispatcher ::btDispatcher * ( ::btCollisionWorld::* )(  ) -void* btCollisionWorld_getDispatcher1(void *c); //method: getDispatcher ::btDispatcher const * ( ::btCollisionWorld::* )(  ) const-void* btCollisionWorld_getDispatchInfo(void *c); //method: getDispatchInfo ::btDispatcherInfo & ( ::btCollisionWorld::* )(  ) -void* btCollisionWorld_getDispatchInfo0(void *c); //method: getDispatchInfo ::btDispatcherInfo & ( ::btCollisionWorld::* )(  ) -void* btCollisionWorld_getDispatchInfo1(void *c); //method: getDispatchInfo ::btDispatcherInfo const & ( ::btCollisionWorld::* )(  ) const-void* btCollisionWorld_getDebugDrawer(void *c); //method: getDebugDrawer ::btIDebugDraw * ( ::btCollisionWorld::* )(  ) -void btCollisionWorld_performDiscreteCollisionDetection(void *c); //method: performDiscreteCollisionDetection void ( ::btCollisionWorld::* )(  ) -//not supported method: getCollisionObjectArray ::btCollisionObjectArray & ( ::btCollisionWorld::* )(  ) -//not supported method: getCollisionObjectArray ::btCollisionObjectArray & ( ::btCollisionWorld::* )(  ) -//not supported method: getCollisionObjectArray ::btCollisionObjectArray const & ( ::btCollisionWorld::* )(  ) const-void btCollisionWorld_debugDrawObject(void *c,float* p0,void* p1,float* p2); //method: debugDrawObject void ( ::btCollisionWorld::* )( ::btTransform const &,::btCollisionShape const *,::btVector3 const & ) -void btCollisionWorld_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btCollisionWorld::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const-void btCollisionWorld_addCollisionObject(void *c,void* p0,short int p1,short int p2); //method: addCollisionObject void ( ::btCollisionWorld::* )( ::btCollisionObject *,short int,short int ) -void btCollisionWorld_setForceUpdateAllAabbs(void *c,int p0); //method: setForceUpdateAllAabbs void ( ::btCollisionWorld::* )( bool ) -void btCollisionWorld_contactTest(void *c,void* p0,void* p1); //method: contactTest void ( ::btCollisionWorld::* )( ::btCollisionObject *,::btCollisionWorld::ContactResultCallback & ) -int btCollisionWorld_getForceUpdateAllAabbs(void *c); //method: getForceUpdateAllAabbs bool ( ::btCollisionWorld::* )(  ) const-void btCollisionWorld_updateAabbs(void *c); //method: updateAabbs void ( ::btCollisionWorld::* )(  ) -void btCollisionWorld_setDebugDrawer(void *c,void* p0); //method: setDebugDrawer void ( ::btCollisionWorld::* )( ::btIDebugDraw * ) -void btCollisionWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btCollisionWorld::* )(  ) -void btCollisionWorld_convexSweepTest(void *c,void* p0,float* p1,float* p2,void* p3,float p4); //method: convexSweepTest void ( ::btCollisionWorld::* )( ::btConvexShape const *,::btTransform const &,::btTransform const &,::btCollisionWorld::ConvexResultCallback &,::btScalar ) const-int btCollisionWorld_getNumCollisionObjects(void *c); //method: getNumCollisionObjects int ( ::btCollisionWorld::* )(  ) const-void btCollisionWorld_contactPairTest(void *c,void* p0,void* p1,void* p2); //method: contactPairTest void ( ::btCollisionWorld::* )( ::btCollisionObject *,::btCollisionObject *,::btCollisionWorld::ContactResultCallback & ) -void* btCollisionWorld_getBroadphase(void *c); //method: getBroadphase ::btBroadphaseInterface const * ( ::btCollisionWorld::* )(  ) const-void* btCollisionWorld_getBroadphase0(void *c); //method: getBroadphase ::btBroadphaseInterface const * ( ::btCollisionWorld::* )(  ) const-void* btCollisionWorld_getBroadphase1(void *c); //method: getBroadphase ::btBroadphaseInterface * ( ::btCollisionWorld::* )(  ) -void btCollisionWorld_rayTestSingle(float* p0,float* p1,void* p2,void* p3,float* p4,void* p5); //method: rayTestSingle void (*)( ::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::RayResultCallback & )-void btCollisionWorld_objectQuerySingle(void* p0,float* p1,float* p2,void* p3,void* p4,float* p5,void* p6,float p7); //method: objectQuerySingle void (*)( ::btConvexShape const *,::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::ConvexResultCallback &,::btScalar )-void btCollisionWorld_updateSingleAabb(void *c,void* p0); //method: updateSingleAabb void ( ::btCollisionWorld::* )( ::btCollisionObject * ) -void* btCollisionWorld_getPairCache(void *c); //method: getPairCache ::btOverlappingPairCache * ( ::btCollisionWorld::* )(  ) -void btCollisionWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btCollisionWorld::* )( ::btCollisionObject * ) -//not supported constructor: btConvexConvexAlgorithm  ( ::btConvexConvexAlgorithm::* )( ::btPersistentManifold *,::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject *,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver *,int,int ) -void btConvexConvexAlgorithm_free(void *c); //not supported method: getAllContactManifolds void ( ::btConvexConvexAlgorithm::* )( ::btManifoldArray & ) -float btConvexConvexAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btConvexConvexAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void btConvexConvexAlgorithm_setLowLevelOfDetail(void *c,int p0); //method: setLowLevelOfDetail void ( ::btConvexConvexAlgorithm::* )( bool ) -void btConvexConvexAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btConvexConvexAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void* btConvexConvexAlgorithm_getManifold(void *c); //method: getManifold ::btPersistentManifold const * ( ::btConvexConvexAlgorithm::* )(  ) -void* btDefaultCollisionConfiguration_new(void* p0); //constructor: btDefaultCollisionConfiguration  ( ::btDefaultCollisionConfiguration::* )( ::btDefaultCollisionConstructionInfo const & ) -void btDefaultCollisionConfiguration_free(void *c); void* btDefaultCollisionConfiguration_getStackAllocator(void *c); //method: getStackAllocator ::btStackAlloc * ( ::btDefaultCollisionConfiguration::* )(  ) -//not supported method: getPersistentManifoldPool ::btPoolAllocator * ( ::btDefaultCollisionConfiguration::* )(  ) -void* btDefaultCollisionConfiguration_getSimplexSolver(void *c); //method: getSimplexSolver ::btVoronoiSimplexSolver * ( ::btDefaultCollisionConfiguration::* )(  ) -void btDefaultCollisionConfiguration_setConvexConvexMultipointIterations(void *c,int p0,int p1); //method: setConvexConvexMultipointIterations void ( ::btDefaultCollisionConfiguration::* )( int,int ) -//not supported method: getCollisionAlgorithmPool ::btPoolAllocator * ( ::btDefaultCollisionConfiguration::* )(  ) -void* btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btDefaultCollisionConfiguration::* )( int,int ) -void* btDefaultCollisionConstructionInfo_new(); //constructor: btDefaultCollisionConstructionInfo  ( ::btDefaultCollisionConstructionInfo::* )(  ) -void btDefaultCollisionConstructionInfo_free(void *c); // attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConstructionInfo->m_collisionAlgorithmPool-void btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_customCollisionAlgorithmMaxElementSize-int btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_customCollisionAlgorithmMaxElementSize-void btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxCollisionAlgorithmPoolSize-int btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxCollisionAlgorithmPoolSize-void btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxPersistentManifoldPoolSize-int btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxPersistentManifoldPoolSize-void btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultStackAllocatorSize-int btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultStackAllocatorSize-// attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConstructionInfo->m_persistentManifoldPool-void btDefaultCollisionConstructionInfo_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btDefaultCollisionConstructionInfo->m_stackAlloc-// attribute getter not supported: //attribute: ::btStackAlloc * btDefaultCollisionConstructionInfo->m_stackAlloc-void btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_useEpaPenetrationAlgorithm-int btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_useEpaPenetrationAlgorithm-void* btManifoldResult_new0(); //constructor: btManifoldResult  ( ::btManifoldResult::* )(  ) -void* btManifoldResult_new1(void* p0,void* p1); //constructor: btManifoldResult  ( ::btManifoldResult::* )( ::btCollisionObject *,::btCollisionObject * ) -void btManifoldResult_free(void *c); void* btManifoldResult_getPersistentManifold(void *c); //method: getPersistentManifold ::btPersistentManifold const * ( ::btManifoldResult::* )(  ) const-void* btManifoldResult_getPersistentManifold0(void *c); //method: getPersistentManifold ::btPersistentManifold const * ( ::btManifoldResult::* )(  ) const-void* btManifoldResult_getPersistentManifold1(void *c); //method: getPersistentManifold ::btPersistentManifold * ( ::btManifoldResult::* )(  ) -void* btManifoldResult_getBody0Internal(void *c); //method: getBody0Internal ::btCollisionObject const * ( ::btManifoldResult::* )(  ) const-void btManifoldResult_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btManifoldResult::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) -void* btManifoldResult_getBody1Internal(void *c); //method: getBody1Internal ::btCollisionObject const * ( ::btManifoldResult::* )(  ) const-void btManifoldResult_setShapeIdentifiersB(void *c,int p0,int p1); //method: setShapeIdentifiersB void ( ::btManifoldResult::* )( int,int ) -void btManifoldResult_setShapeIdentifiersA(void *c,int p0,int p1); //method: setShapeIdentifiersA void ( ::btManifoldResult::* )( int,int ) -void btManifoldResult_refreshContactPoints(void *c); //method: refreshContactPoints void ( ::btManifoldResult::* )(  ) -void btManifoldResult_setPersistentManifold(void *c,void* p0); //method: setPersistentManifold void ( ::btManifoldResult::* )( ::btPersistentManifold * ) -void* btSphereSphereCollisionAlgorithm_new0(void* p0,void* p1,void* p2,void* p3); //constructor: btSphereSphereCollisionAlgorithm  ( ::btSphereSphereCollisionAlgorithm::* )( ::btPersistentManifold *,::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject * ) -void* btSphereSphereCollisionAlgorithm_new1(void* p0); //constructor: btSphereSphereCollisionAlgorithm  ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionAlgorithmConstructionInfo const & ) -void btSphereSphereCollisionAlgorithm_free(void *c); //not supported method: getAllContactManifolds void ( ::btSphereSphereCollisionAlgorithm::* )( ::btManifoldArray & ) -float btSphereSphereCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) -void btSphereSphereCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +typedef void* O_btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u_;+typedef void* O_btAlignedAllocator_GIM_BVH_DATA_16u_;+typedef void* O_btAlignedAllocator_GIM_BVH_TREE_NODE_16u_;+typedef void* O_btAlignedAllocator_GIM_PAIR_16u_;+typedef void* O_btAlignedAllocator_bool_16u_;+typedef void* O_btAlignedAllocator_btActionInterface_ptr_16u_;+typedef void* O_btAlignedAllocator_btBroadphaseInterface_ptr_16u_;+typedef void* O_btAlignedAllocator_btBroadphasePair_16u_;+typedef void* O_btAlignedAllocator_btBvhSubtreeInfo_16u_;+typedef void* O_btAlignedAllocator_btChunk_ptr_16u_;+typedef void* O_btAlignedAllocator_btCollisionObject_ptr_16u_;+typedef void* O_btAlignedAllocator_btCollisionShape_ptr_16u_;+typedef void* O_btAlignedAllocator_btCompoundShapeChild_16u_;+typedef void* O_btAlignedAllocator_btDbvt_sStkNN_16u_;+typedef void* O_btAlignedAllocator_btDbvt_sStkNP_16u_;+typedef void* O_btAlignedAllocator_btDbvt_sStkNPS_16u_;+typedef void* O_btAlignedAllocator_btDbvtNodeconst_ptr_16u_;+typedef void* O_btAlignedAllocator_btGImpactMeshShapePart_ptr_16u_;+typedef void* O_btAlignedAllocator_btHashInt_16u_;+typedef void* O_btAlignedAllocator_btHashPtr_16u_;+typedef void* O_btAlignedAllocator_btHashString_16u_;+typedef void* O_btAlignedAllocator_btIndexedMesh_16u_;+typedef void* O_btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u_;+typedef void* O_btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u_;+typedef void* O_btAlignedAllocator_btOptimizedBvhNode_16u_;+typedef void* O_btAlignedAllocator_btPersistentManifold_ptr_16u_;+typedef void* O_btAlignedAllocator_btPointerUid_16u_;+typedef void* O_btAlignedAllocator_btQuantizedBvhNode_16u_;+typedef void* O_btAlignedAllocator_btRigidBody_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Anchor_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Cluster_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Face_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Joint_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Link_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Material_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Node_ptr_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Node_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Note_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_RContact_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_SContact_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_Tetra_16u_;+typedef void* O_btAlignedAllocator_btSoftBody_ePSolver___16u_;+typedef void* O_btAlignedAllocator_btSoftBody_eVSolver___16u_;+typedef void* O_btAlignedAllocator_btSolverConstraint_16u_;+typedef void* O_btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u_;+typedef void* O_btAlignedAllocator_btTransform_16u_;+typedef void* O_btAlignedAllocator_btTriangleInfo_16u_;+typedef void* O_btAlignedAllocator_btTypedConstraint_ptr_16u_;+typedef void* O_btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u_;+typedef void* O_btAlignedAllocator_btVector3_16u_;+typedef void* O_btAlignedAllocator_btWheelInfo_16u_;+typedef void* O_btAlignedAllocator_charconst_ptr_16u_;+typedef void* O_btAlignedAllocator_char_ptr_16u_;+typedef void* O_btAlignedAllocator_float_16u_;+typedef void* O_btAlignedAllocator_int_16u_;+typedef void* O_btAlignedAllocator_short_ptr_16u_;+typedef void* O_btAlignedAllocator_short_16u_;+typedef void* O_btAlignedAllocator_unsignedint_16u_;+typedef void* O_btAlignedAllocator_unsignedshort_16u_;+typedef void* O_btAlignedAllocator_void_ptr_16u_;+typedef void* O_btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_;+typedef void* O_btAlignedObjectArray_GIM_BVH_DATA_;+typedef void* O_btAlignedObjectArray_GIM_BVH_TREE_NODE_;+typedef void* O_btAlignedObjectArray_GIM_PAIR_;+typedef void* O_btAlignedObjectArray_bool_;+typedef void* O_btAlignedObjectArray_btActionInterface_ptr_;+typedef void* O_btAlignedObjectArray_btBroadphaseInterface_ptr_;+typedef void* O_btAlignedObjectArray_btBroadphasePair_;+typedef void* O_btAlignedObjectArray_btBvhSubtreeInfo_;+typedef void* O_btAlignedObjectArray_btChunk_ptr_;+typedef void* O_btAlignedObjectArray_btCollisionObject_ptr_;+typedef void* O_btAlignedObjectArray_btCollisionShape_ptr_;+typedef void* O_btAlignedObjectArray_btCompoundShapeChild_;+typedef void* O_btAlignedObjectArray_btDbvt_sStkNN_;+typedef void* O_btAlignedObjectArray_btDbvt_sStkNP_;+typedef void* O_btAlignedObjectArray_btDbvt_sStkNPS_;+typedef void* O_btAlignedObjectArray_btDbvtNodeconst_ptr_;+typedef void* O_btAlignedObjectArray_btGImpactMeshShapePart_ptr_;+typedef void* O_btAlignedObjectArray_btHashInt_;+typedef void* O_btAlignedObjectArray_btHashPtr_;+typedef void* O_btAlignedObjectArray_btHashString_;+typedef void* O_btAlignedObjectArray_btIndexedMesh_;+typedef void* O_btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_;+typedef void* O_btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_;+typedef void* O_btAlignedObjectArray_btOptimizedBvhNode_;+typedef void* O_btAlignedObjectArray_btPersistentManifold_ptr_;+typedef void* O_btAlignedObjectArray_btPointerUid_;+typedef void* O_btAlignedObjectArray_btQuantizedBvhNode_;+typedef void* O_btAlignedObjectArray_btRigidBody_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_Anchor_;+typedef void* O_btAlignedObjectArray_btSoftBody_Cluster_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_Face_;+typedef void* O_btAlignedObjectArray_btSoftBody_Joint_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_Link_;+typedef void* O_btAlignedObjectArray_btSoftBody_Material_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_Node_ptr_;+typedef void* O_btAlignedObjectArray_btSoftBody_Node_;+typedef void* O_btAlignedObjectArray_btSoftBody_Note_;+typedef void* O_btAlignedObjectArray_btSoftBody_RContact_;+typedef void* O_btAlignedObjectArray_btSoftBody_SContact_;+typedef void* O_btAlignedObjectArray_btSoftBody_Tetra_;+typedef void* O_btAlignedObjectArray_btSoftBody_ePSolver___;+typedef void* O_btAlignedObjectArray_btSoftBody_eVSolver___;+typedef void* O_btAlignedObjectArray_btSolverConstraint_;+typedef void* O_btAlignedObjectArray_btSparseSdf_3__Cell_ptr_;+typedef void* O_btAlignedObjectArray_btTransform_;+typedef void* O_btAlignedObjectArray_btTriangleInfo_;+typedef void* O_btAlignedObjectArray_btTypedConstraint_ptr_;+typedef void* O_btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_;+typedef void* O_btAlignedObjectArray_btVector3_;+typedef void* O_btAlignedObjectArray_btWheelInfo_;+typedef void* O_btAlignedObjectArray_charconst_ptr_;+typedef void* O_btAlignedObjectArray_char_ptr_;+typedef void* O_btAlignedObjectArray_float_;+typedef void* O_btAlignedObjectArray_int_;+typedef void* O_btAlignedObjectArray_short_ptr_;+typedef void* O_btAlignedObjectArray_short_;+typedef void* O_btAlignedObjectArray_unsignedint_;+typedef void* O_btAlignedObjectArray_unsignedshort_;+typedef void* O_btAlignedObjectArray_void_ptr_;+typedef void* O_btAngularLimit;+typedef void* O_btAxisSweep3;+typedef void* O_btAxisSweep3Internal_unsignedint_;+typedef void* O_btAxisSweep3Internal_unsignedshort_;+typedef void* O_btBU_Simplex1to4;+typedef void* O_btBlock;+typedef void* O_btBoxShape;+typedef void* O_btMultiSapBroadphase_btBridgeProxy;+typedef void* O_btBroadphaseAabbCallback;+typedef void* O_btBroadphaseInterface;+typedef void* O_btBroadphasePair;+typedef void* O_btBroadphasePairSortPredicate;+typedef void* O_btBroadphaseProxy;+typedef void* O_btBroadphaseRayCallback;+typedef void* O_btBvhSubtreeInfo;+typedef void* O_btBvhSubtreeInfoData;+typedef void* O_btBvhTree;+typedef void* O_btBvhTriangleMeshShape;+typedef void* O_btCapsuleShape;+typedef void* O_btCapsuleShapeData;+typedef void* O_btCapsuleShapeX;+typedef void* O_btCapsuleShapeZ;+typedef void* O_btCharIndexTripletData;+typedef void* O_btChunk;+typedef void* O_btClock;+typedef void* O_btCollisionAlgorithm;+typedef void* O_btCollisionAlgorithmConstructionInfo;+typedef void* O_btCollisionAlgorithmCreateFunc;+typedef void* O_btCollisionConfiguration;+typedef void* O_btCollisionDispatcher;+typedef void* O_btCollisionObject;+typedef void* O_btCollisionObjectDoubleData;+typedef void* O_btCollisionObjectFloatData;+typedef void* O_btCollisionShape;+typedef void* O_btCollisionShapeData;+typedef void* O_btCollisionWorld;+typedef void* O_btCompoundShape;+typedef void* O_btCompoundShapeChild;+typedef void* O_btCompoundShapeChildData;+typedef void* O_btCompoundShapeData;+typedef void* O_btConcaveShape;+typedef void* O_btConeShape;+typedef void* O_btConeShapeX;+typedef void* O_btConeShapeZ;+typedef void* O_btConeTwistConstraint;+typedef void* O_btConeTwistConstraintData;+typedef void* O_btTypedConstraint_btConstraintInfo1;+typedef void* O_btTypedConstraint_btConstraintInfo2;+typedef void* O_btConstraintRow;+typedef void* O_btConstraintSetting;+typedef void* O_btConstraintSolver;+typedef void* O_btContactConstraint;+typedef void* O_btContactSolverInfo;+typedef void* O_btContactSolverInfoData;+typedef void* O_btConvexConvexAlgorithm;+typedef void* O_btConvexHullShape;+typedef void* O_btConvexHullShapeData;+typedef void* O_btConvexInternalAabbCachingShape;+typedef void* O_btConvexInternalShape;+typedef void* O_btConvexInternalShapeData;+typedef void* O_btConvexSeparatingDistanceUtil;+typedef void* O_btConvexShape;+typedef void* O_btConvexTriangleMeshShape;+typedef void* O_btCylinderShape;+typedef void* O_btCylinderShapeData;+typedef void* O_btCylinderShapeX;+typedef void* O_btCylinderShapeZ;+typedef void* O_btDbvt;+typedef void* O_btDbvtAabbMm;+typedef void* O_btDbvtBroadphase;+typedef void* O_btDbvtNode;+typedef void* O_btDbvtProxy;+typedef void* O_btDefaultCollisionConfiguration;+typedef void* O_btDefaultCollisionConstructionInfo;+typedef void* O_btDefaultMotionState;+typedef void* O_btDefaultSerializer;+typedef void* O_btDefaultVehicleRaycaster;+typedef void* O_btDiscreteCollisionDetectorInterface;+typedef void* O_btDiscreteDynamicsWorld;+typedef void* O_btDispatcher;+typedef void* O_btDispatcherInfo;+typedef void* O_btDynamicsWorld;+typedef void* O_btEmptyShape;+typedef void* O_btGImpactBvh;+typedef void* O_btGImpactCollisionAlgorithm;+typedef void* O_btGImpactCompoundShape;+typedef void* O_btGImpactMeshShape;+typedef void* O_btGImpactMeshShapeData;+typedef void* O_btGImpactMeshShapePart;+typedef void* O_btGImpactQuantizedBvh;+typedef void* O_btGImpactShapeInterface;+typedef void* O_btGLDebugDrawer;+typedef void* O_btGeneric6DofConstraint;+typedef void* O_btGeneric6DofConstraintData;+typedef void* O_btGeneric6DofSpringConstraint;+typedef void* O_btGeneric6DofSpringConstraintData;+typedef void* O_btGeometryUtil;+typedef void* O_btGhostObject;+typedef void* O_btGhostPairCallback;+typedef void* O_btGjkEpaSolver2;+typedef void* O_btGjkPairDetector;+typedef void* O_btHashInt;+typedef void* O_btHashMap_btHashInt_btTriangleInfo_;+typedef void* O_btHashMap_btHashInt_int_;+typedef void* O_btHashMap_btHashPtr_btPointerUid_;+typedef void* O_btHashMap_btHashPtr_charconst_ptr_;+typedef void* O_btHashMap_btHashPtr_void_ptr_;+typedef void* O_btHashMap_btHashString_int_;+typedef void* O_btHashPtr;+typedef void* O_btHashString;+typedef void* O_btHashedOverlappingPairCache;+typedef void* O_btHinge2Constraint;+typedef void* O_btHingeConstraint;+typedef void* O_btHingeConstraintDoubleData;+typedef void* O_btHingeConstraintFloatData;+typedef void* O_btIDebugDraw;+typedef void* O_btIndexedMesh;+typedef void* O_btIntIndexData;+typedef void* O_btInternalTriangleIndexCallback;+typedef void* O_btJacobianEntry;+typedef void* O_btManifoldPoint;+typedef void* O_btManifoldResult;+typedef void* O_btMatrix3x3DoubleData;+typedef void* O_btMatrix3x3FloatData;+typedef void* O_btMeshPartData;+typedef void* O_btMotionState;+typedef void* O_btMultiSapBroadphase;+typedef void* O_btMultiSapBroadphase_btMultiSapProxy;+typedef void* O_btMultiSphereShape;+typedef void* O_btMultiSphereShapeData;+typedef void* O_btNodeOverlapCallback;+typedef void* O_btNullPairCache;+typedef void* O_btOptimizedBvh;+typedef void* O_btOptimizedBvhNode;+typedef void* O_btOptimizedBvhNodeDoubleData;+typedef void* O_btOptimizedBvhNodeFloatData;+typedef void* O_btOverlapCallback;+typedef void* O_btOverlapFilterCallback;+typedef void* O_btOverlappingPairCache;+typedef void* O_btOverlappingPairCallback;+typedef void* O_btPairCachingGhostObject;+typedef void* O_btPairSet;+typedef void* O_btPersistentManifold;+typedef void* O_btPoint2PointConstraint;+typedef void* O_btPoint2PointConstraintDoubleData;+typedef void* O_btPoint2PointConstraintFloatData;+typedef void* O_btPointerUid;+typedef void* O_btPolyhedralConvexAabbCachingShape;+typedef void* O_btPolyhedralConvexShape;+typedef void* O_btPositionAndRadius;+typedef void* O_btPrimitiveManagerBase;+typedef void* O_btPrimitiveTriangle;+typedef void* O_btQuadWord;+typedef void* O_btQuantizedBvh;+typedef void* O_btQuantizedBvhDoubleData;+typedef void* O_btQuantizedBvhFloatData;+typedef void* O_btQuantizedBvhNode;+typedef void* O_btQuantizedBvhNodeData;+typedef void* O_btQuantizedBvhTree;+typedef void* O_btRaycastVehicle;+typedef void* O_btRigidBody;+typedef void* O_btRigidBody_btRigidBodyConstructionInfo;+typedef void* O_btRigidBodyDoubleData;+typedef void* O_btRigidBodyFloatData;+typedef void* O_btRotationalLimitMotor;+typedef void* O_btScaledBvhTriangleMeshShape;+typedef void* O_btScaledTriangleMeshShapeData;+typedef void* O_btSequentialImpulseConstraintSolver;+typedef void* O_btSerializer;+typedef void* O_btShortIntIndexData;+typedef void* O_btShortIntIndexTripletData;+typedef void* O_btSimpleBroadphase;+typedef void* O_btSimpleBroadphaseProxy;+typedef void* O_btSimpleDynamicsWorld;+typedef void* O_btSliderConstraint;+typedef void* O_btSliderConstraintData;+typedef void* O_btSoftBody;+typedef void* O_btSoftBodyHelpers;+typedef void* O_btSoftBodyRigidBodyCollisionConfiguration;+typedef void* O_btSoftBodyWorldInfo;+typedef void* O_btSoftRigidDynamicsWorld;+typedef void* O_btSolverBodyObsolete;+typedef void* O_btSolverConstraint;+typedef void* O_btSortedOverlappingPairCache;+typedef void* O_btSparseSdf_3_;+typedef void* O_btSphereShape;+typedef void* O_btSphereSphereCollisionAlgorithm;+typedef void* O_btStackAlloc;+typedef void* O_btStaticPlaneShape;+typedef void* O_btStaticPlaneShapeData;+typedef void* O_btStorageResult;+typedef void* O_btStridingMeshInterface;+typedef void* O_btStridingMeshInterfaceData;+typedef void* O_btSubSimplexClosestResult;+typedef void* O_btTetrahedronShapeEx;+typedef void* O_btTransformDoubleData;+typedef void* O_btTransformFloatData;+typedef void* O_btTransformUtil;+typedef void* O_btTranslationalLimitMotor;+typedef void* O_btTriangleCallback;+typedef void* O_btTriangleIndexVertexArray;+typedef void* O_btTriangleInfo;+typedef void* O_btTriangleInfoData;+typedef void* O_btTriangleInfoMap;+typedef void* O_btTriangleInfoMapData;+typedef void* O_btTriangleMesh;+typedef void* O_btTriangleMeshShape;+typedef void* O_btTriangleMeshShapeData;+typedef void* O_btTriangleShape;+typedef void* O_btTriangleShapeEx;+typedef void* O_btTypedConstraint;+typedef void* O_btTypedConstraintData;+typedef void* O_btTypedObject;+typedef void* O_btUniformScalingShape;+typedef void* O_btUniversalConstraint;+typedef void* O_btUsageBitfield;+typedef void* O_btVector3DoubleData;+typedef void* O_btVector3FloatData;+typedef void* O_btVehicleRaycaster;+typedef void* O_btVehicleRaycaster_btVehicleRaycasterResult;+typedef void* O_btRaycastVehicle_btVehicleTuning;+typedef void* O_btVoronoiSimplexSolver;+typedef void* O_btWheelInfo;+typedef void* O_btWheelInfoConstructionInfo;+typedef void* O_btSoftBody_eAeroModel;+typedef void* O_btSoftBody_eFeature;+typedef void* O_btSoftBody_ePSolver;+typedef void* O_btSoftBody_eSolverPresets;+typedef void* O_btSoftBody_Joint_eType;+typedef void* O_btSoftBody_eVSolver;+typedef void* O_btSoftBody_fCollision;+typedef void* O_fDrawFlags;+typedef void* O_btSoftBody_fMaterial;+typedef void* O_btSoftBody_sCti;+typedef void* O_btSoftBody_sMedium;+typedef void* O_btSoftBody_sRayCast;+typedef void* O_btGjkEpaSolver2_sResults;+typedef void* O_btDbvt_sStkCLN;+typedef void* O_btDbvt_sStkNN;+typedef void* O_btDbvt_sStkNP;+typedef void* O_btDbvt_sStkNPS;+void* btGLDebugDrawer_new(); //constructor: btGLDebugDrawer  ( ::btGLDebugDrawer::* )(  ) +void btGLDebugDrawer_free(void *c); +void btGLDebugDrawer_draw3dText(void *c,float* p0,char const * p1); //method: draw3dText void ( ::btGLDebugDrawer::* )( ::btVector3 const &,char const * ) +void btGLDebugDrawer_drawTriangle(void *c,float* p0,float* p1,float* p2,float* p3,float p4); //method: drawTriangle void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btGLDebugDrawer_drawBox(void *c,float* p0,float* p1,float* p2,float p3); //method: drawBox void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btGLDebugDrawer_drawContactPoint(void *c,float* p0,float* p1,float p2,int p3,float* p4); //method: drawContactPoint void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btScalar,int,::btVector3 const & ) +void btGLDebugDrawer_drawLine(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btGLDebugDrawer_drawLine0(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btGLDebugDrawer_drawLine1(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btGLDebugDrawer_reportErrorWarning(void *c,char const * p0); //method: reportErrorWarning void ( ::btGLDebugDrawer::* )( char const * ) +int btGLDebugDrawer_getDebugMode(void *c); //method: getDebugMode int ( ::btGLDebugDrawer::* )(  ) const+void btGLDebugDrawer_setDebugMode(void *c,int p0); //method: setDebugMode void ( ::btGLDebugDrawer::* )( int ) +void btGLDebugDrawer_drawSphere(void *c,float* p0,float p1,float* p2); //method: drawSphere void ( ::btGLDebugDrawer::* )( ::btVector3 const &,::btScalar,::btVector3 const & ) +void* btSoftBody_AJoint_new(); //constructor: AJoint  ( ::btSoftBody::AJoint::* )(  ) +void btSoftBody_AJoint_free(void *c); +void btSoftBody_AJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::AJoint::* )( ::btScalar ) +//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::AJoint::* )(  ) const+// error:  - unsupported++void btSoftBody_AJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::AJoint::* )( ::btScalar,::btScalar ) +void btSoftBody_AJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::AJoint::* )( ::btScalar,int ) +// attribute not supported: //attribute: ::btVector3[2] btSoftBody_AJoint->m_axis+void btSoftBody_AJoint_m_icontrol_set(void *c,void* a); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint->m_icontrol+void* btSoftBody_AJoint_m_icontrol_get(void *c); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint->m_icontrol+void* btSoftBody_Anchor_new(); //constructor: Anchor  ( ::btSoftBody::Anchor::* )(  ) +void btSoftBody_Anchor_free(void *c); +void btSoftBody_Anchor_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_Anchor->m_node+void* btSoftBody_Anchor_m_node_get(void *c); //attribute: ::btSoftBody::Node * btSoftBody_Anchor->m_node+void btSoftBody_Anchor_m_local_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Anchor->m_local+void btSoftBody_Anchor_m_local_get(void *c,float* a);+void btSoftBody_Anchor_m_body_set(void *c,void* a); //attribute: ::btRigidBody * btSoftBody_Anchor->m_body+void* btSoftBody_Anchor_m_body_get(void *c); //attribute: ::btRigidBody * btSoftBody_Anchor->m_body+void btSoftBody_Anchor_m_influence_set(void *c,float a); //attribute: ::btScalar btSoftBody_Anchor->m_influence+float btSoftBody_Anchor_m_influence_get(void *c); //attribute: ::btScalar btSoftBody_Anchor->m_influence+void btSoftBody_Anchor_m_c0_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Anchor->m_c0+void btSoftBody_Anchor_m_c0_get(void *c,float* a);+void btSoftBody_Anchor_m_c1_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Anchor->m_c1+void btSoftBody_Anchor_m_c1_get(void *c,float* a);+void btSoftBody_Anchor_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Anchor->m_c2+float btSoftBody_Anchor_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Anchor->m_c2+void* btSoftBody_Body_new0(); //constructor: Body  ( ::btSoftBody::Body::* )(  ) +void* btSoftBody_Body_new1(void* p0); //constructor: Body  ( ::btSoftBody::Body::* )( ::btSoftBody::Cluster * ) +void* btSoftBody_Body_new2(void* p0); //constructor: Body  ( ::btSoftBody::Body::* )( ::btCollisionObject * ) +void btSoftBody_Body_free(void *c); +void btSoftBody_Body_invWorldInertia(void *c,float* ret); //method: invWorldInertia ::btMatrix3x3 const & ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_activate(void *c); //method: activate void ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_linearVelocity(void *c,float* ret); //method: linearVelocity ::btVector3 ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_applyVImpulse(void *c,float* p0,float* p1); //method: applyVImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const &,::btVector3 const & ) const+void btSoftBody_Body_applyDImpulse(void *c,float* p0,float* p1); //method: applyDImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const &,::btVector3 const & ) const+void btSoftBody_Body_applyDCImpulse(void *c,float* p0); //method: applyDCImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+void btSoftBody_Body_applyAImpulse(void *c,void* p0); //method: applyAImpulse void ( ::btSoftBody::Body::* )( ::btSoftBody::Impulse const & ) const+void btSoftBody_Body_angularVelocity(void *c,float* p0,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+void btSoftBody_Body_angularVelocity0(void *c,float* p0,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+void btSoftBody_Body_angularVelocity1(void *c,float* ret); //method: angularVelocity ::btVector3 ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_applyVAImpulse(void *c,float* p0); //method: applyVAImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+void btSoftBody_Body_applyImpulse(void *c,void* p0,float* p1); //method: applyImpulse void ( ::btSoftBody::Body::* )( ::btSoftBody::Impulse const &,::btVector3 const & ) const+void btSoftBody_Body_applyDAImpulse(void *c,float* p0); //method: applyDAImpulse void ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+void btSoftBody_Body_velocity(void *c,float* p0,float* ret); //method: velocity ::btVector3 ( ::btSoftBody::Body::* )( ::btVector3 const & ) const+float btSoftBody_Body_invMass(void *c); //method: invMass ::btScalar ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_xform(void *c,float* ret); //method: xform ::btTransform const & ( ::btSoftBody::Body::* )(  ) const+void btSoftBody_Body_m_soft_set(void *c,void* a); //attribute: ::btSoftBody::Cluster * btSoftBody_Body->m_soft+void* btSoftBody_Body_m_soft_get(void *c); //attribute: ::btSoftBody::Cluster * btSoftBody_Body->m_soft+void btSoftBody_Body_m_rigid_set(void *c,void* a); //attribute: ::btRigidBody * btSoftBody_Body->m_rigid+void* btSoftBody_Body_m_rigid_get(void *c); //attribute: ::btRigidBody * btSoftBody_Body->m_rigid+void btSoftBody_Body_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btSoftBody_Body->m_collisionObject+void* btSoftBody_Body_m_collisionObject_get(void *c); //attribute: ::btCollisionObject * btSoftBody_Body->m_collisionObject+void* btSoftBody_CJoint_new(); //constructor: CJoint  ( ::btSoftBody::CJoint::* )(  ) +void btSoftBody_CJoint_free(void *c); +void btSoftBody_CJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::CJoint::* )( ::btScalar ) +//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::CJoint::* )(  ) const+// error:  - unsupported++void btSoftBody_CJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::CJoint::* )( ::btScalar,::btScalar ) +void btSoftBody_CJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::CJoint::* )( ::btScalar,int ) +void btSoftBody_CJoint_m_life_set(void *c,int a); //attribute: int btSoftBody_CJoint->m_life+int btSoftBody_CJoint_m_life_get(void *c); //attribute: int btSoftBody_CJoint->m_life+void btSoftBody_CJoint_m_maxlife_set(void *c,int a); //attribute: int btSoftBody_CJoint->m_maxlife+int btSoftBody_CJoint_m_maxlife_get(void *c); //attribute: int btSoftBody_CJoint->m_maxlife+// attribute not supported: //attribute: ::btVector3[2] btSoftBody_CJoint->m_rpos+void btSoftBody_CJoint_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_CJoint->m_normal+void btSoftBody_CJoint_m_normal_get(void *c,float* a);+void btSoftBody_CJoint_m_friction_set(void *c,float a); //attribute: ::btScalar btSoftBody_CJoint->m_friction+float btSoftBody_CJoint_m_friction_get(void *c); //attribute: ::btScalar btSoftBody_CJoint->m_friction+void* btSoftBody_Cluster_new(); //constructor: Cluster  ( ::btSoftBody::Cluster::* )(  ) +void btSoftBody_Cluster_free(void *c); +void btSoftBody_Cluster_m_adamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_adamping+float btSoftBody_Cluster_m_adamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_adamping+void btSoftBody_Cluster_m_av_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_av+void btSoftBody_Cluster_m_av_get(void *c,float* a);+void btSoftBody_Cluster_m_clusterIndex_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_clusterIndex+int btSoftBody_Cluster_m_clusterIndex_get(void *c); //attribute: int btSoftBody_Cluster->m_clusterIndex+void btSoftBody_Cluster_m_collide_set(void *c,int a); //attribute: bool btSoftBody_Cluster->m_collide+int btSoftBody_Cluster_m_collide_get(void *c); //attribute: bool btSoftBody_Cluster->m_collide+void btSoftBody_Cluster_m_com_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_com+void btSoftBody_Cluster_m_com_get(void *c,float* a);+void btSoftBody_Cluster_m_containsAnchor_set(void *c,int a); //attribute: bool btSoftBody_Cluster->m_containsAnchor+int btSoftBody_Cluster_m_containsAnchor_get(void *c); //attribute: bool btSoftBody_Cluster->m_containsAnchor+// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Cluster->m_dimpulses+void btSoftBody_Cluster_m_framerefs_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Cluster->m_framerefs+void* btSoftBody_Cluster_m_framerefs_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Cluster->m_framerefs+void btSoftBody_Cluster_m_framexform_set(void *c,float* a); //attribute: ::btTransform btSoftBody_Cluster->m_framexform+void btSoftBody_Cluster_m_framexform_get(void *c,float* a);+void btSoftBody_Cluster_m_idmass_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_idmass+float btSoftBody_Cluster_m_idmass_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_idmass+void btSoftBody_Cluster_m_imass_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_imass+float btSoftBody_Cluster_m_imass_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_imass+void btSoftBody_Cluster_m_invwi_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Cluster->m_invwi+void btSoftBody_Cluster_m_invwi_get(void *c,float* a);+void btSoftBody_Cluster_m_ldamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_ldamping+float btSoftBody_Cluster_m_ldamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_ldamping+void btSoftBody_Cluster_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Cluster->m_leaf+void* btSoftBody_Cluster_m_leaf_get(void *c); //attribute: ::btDbvtNode * btSoftBody_Cluster->m_leaf+void btSoftBody_Cluster_m_locii_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Cluster->m_locii+void btSoftBody_Cluster_m_locii_get(void *c,float* a);+void btSoftBody_Cluster_m_lv_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Cluster->m_lv+void btSoftBody_Cluster_m_lv_get(void *c,float* a);+void btSoftBody_Cluster_m_masses_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btSoftBody_Cluster->m_masses+void* btSoftBody_Cluster_m_masses_get(void *c); //attribute: ::btAlignedObjectArray<float> btSoftBody_Cluster->m_masses+void btSoftBody_Cluster_m_matching_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_matching+float btSoftBody_Cluster_m_matching_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_matching+void btSoftBody_Cluster_m_maxSelfCollisionImpulse_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_maxSelfCollisionImpulse+float btSoftBody_Cluster_m_maxSelfCollisionImpulse_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_maxSelfCollisionImpulse+void btSoftBody_Cluster_m_ndamping_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_ndamping+float btSoftBody_Cluster_m_ndamping_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_ndamping+void btSoftBody_Cluster_m_ndimpulses_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_ndimpulses+int btSoftBody_Cluster_m_ndimpulses_get(void *c); //attribute: int btSoftBody_Cluster->m_ndimpulses+void btSoftBody_Cluster_m_nodes_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Node*> btSoftBody_Cluster->m_nodes+void* btSoftBody_Cluster_m_nodes_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Node*> btSoftBody_Cluster->m_nodes+void btSoftBody_Cluster_m_nvimpulses_set(void *c,int a); //attribute: int btSoftBody_Cluster->m_nvimpulses+int btSoftBody_Cluster_m_nvimpulses_get(void *c); //attribute: int btSoftBody_Cluster->m_nvimpulses+void btSoftBody_Cluster_m_selfCollisionImpulseFactor_set(void *c,float a); //attribute: ::btScalar btSoftBody_Cluster->m_selfCollisionImpulseFactor+float btSoftBody_Cluster_m_selfCollisionImpulseFactor_get(void *c); //attribute: ::btScalar btSoftBody_Cluster->m_selfCollisionImpulseFactor+// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Cluster->m_vimpulses+void* btSoftBody_Config_new(); //constructor: Config  ( ::btSoftBody::Config::* )(  ) +void btSoftBody_Config_free(void *c); +// attribute not supported: //attribute: ::btSoftBody::eAeroModel::_ btSoftBody_Config->aeromodel+void btSoftBody_Config_kVCF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kVCF+float btSoftBody_Config_kVCF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kVCF+void btSoftBody_Config_kDP_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDP+float btSoftBody_Config_kDP_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDP+void btSoftBody_Config_kDG_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDG+float btSoftBody_Config_kDG_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDG+void btSoftBody_Config_kLF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kLF+float btSoftBody_Config_kLF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kLF+void btSoftBody_Config_kPR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kPR+float btSoftBody_Config_kPR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kPR+void btSoftBody_Config_kVC_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kVC+float btSoftBody_Config_kVC_get(void *c); //attribute: ::btScalar btSoftBody_Config->kVC+void btSoftBody_Config_kDF_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kDF+float btSoftBody_Config_kDF_get(void *c); //attribute: ::btScalar btSoftBody_Config->kDF+void btSoftBody_Config_kMT_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kMT+float btSoftBody_Config_kMT_get(void *c); //attribute: ::btScalar btSoftBody_Config->kMT+void btSoftBody_Config_kCHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kCHR+float btSoftBody_Config_kCHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kCHR+void btSoftBody_Config_kKHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kKHR+float btSoftBody_Config_kKHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kKHR+void btSoftBody_Config_kSHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSHR+float btSoftBody_Config_kSHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSHR+void btSoftBody_Config_kAHR_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kAHR+float btSoftBody_Config_kAHR_get(void *c); //attribute: ::btScalar btSoftBody_Config->kAHR+void btSoftBody_Config_kSRHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSRHR_CL+float btSoftBody_Config_kSRHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSRHR_CL+void btSoftBody_Config_kSKHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSKHR_CL+float btSoftBody_Config_kSKHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSKHR_CL+void btSoftBody_Config_kSSHR_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSSHR_CL+float btSoftBody_Config_kSSHR_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSSHR_CL+void btSoftBody_Config_kSR_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSR_SPLT_CL+float btSoftBody_Config_kSR_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSR_SPLT_CL+void btSoftBody_Config_kSK_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSK_SPLT_CL+float btSoftBody_Config_kSK_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSK_SPLT_CL+void btSoftBody_Config_kSS_SPLT_CL_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->kSS_SPLT_CL+float btSoftBody_Config_kSS_SPLT_CL_get(void *c); //attribute: ::btScalar btSoftBody_Config->kSS_SPLT_CL+void btSoftBody_Config_maxvolume_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->maxvolume+float btSoftBody_Config_maxvolume_get(void *c); //attribute: ::btScalar btSoftBody_Config->maxvolume+void btSoftBody_Config_timescale_set(void *c,float a); //attribute: ::btScalar btSoftBody_Config->timescale+float btSoftBody_Config_timescale_get(void *c); //attribute: ::btScalar btSoftBody_Config->timescale+void btSoftBody_Config_viterations_set(void *c,int a); //attribute: int btSoftBody_Config->viterations+int btSoftBody_Config_viterations_get(void *c); //attribute: int btSoftBody_Config->viterations+void btSoftBody_Config_piterations_set(void *c,int a); //attribute: int btSoftBody_Config->piterations+int btSoftBody_Config_piterations_get(void *c); //attribute: int btSoftBody_Config->piterations+void btSoftBody_Config_diterations_set(void *c,int a); //attribute: int btSoftBody_Config->diterations+int btSoftBody_Config_diterations_get(void *c); //attribute: int btSoftBody_Config->diterations+void btSoftBody_Config_citerations_set(void *c,int a); //attribute: int btSoftBody_Config->citerations+int btSoftBody_Config_citerations_get(void *c); //attribute: int btSoftBody_Config->citerations+void btSoftBody_Config_collisions_set(void *c,int a); //attribute: int btSoftBody_Config->collisions+int btSoftBody_Config_collisions_get(void *c); //attribute: int btSoftBody_Config->collisions+void btSoftBody_Config_m_vsequence_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::eVSolver::_> btSoftBody_Config->m_vsequence+void* btSoftBody_Config_m_vsequence_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::eVSolver::_> btSoftBody_Config->m_vsequence+void btSoftBody_Config_m_psequence_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_psequence+void* btSoftBody_Config_m_psequence_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_psequence+void btSoftBody_Config_m_dsequence_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_dsequence+void* btSoftBody_Config_m_dsequence_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::ePSolver::_> btSoftBody_Config->m_dsequence+void* btSoftBody_Element_new(); //constructor: Element  ( ::btSoftBody::Element::* )(  ) +void btSoftBody_Element_free(void *c); +void btSoftBody_Element_m_tag_set(void *c,void* a); //attribute: void * btSoftBody_Element->m_tag+void* btSoftBody_Element_m_tag_get(void *c); //attribute: void * btSoftBody_Element->m_tag+void* btSoftBody_Face_new(); //constructor: Face  ( ::btSoftBody::Face::* )(  ) +void btSoftBody_Face_free(void *c); +// attribute not supported: //attribute: ::btSoftBody::Node *[3] btSoftBody_Face->m_n+void btSoftBody_Face_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Face->m_normal+void btSoftBody_Face_m_normal_get(void *c,float* a);+void btSoftBody_Face_m_ra_set(void *c,float a); //attribute: ::btScalar btSoftBody_Face->m_ra+float btSoftBody_Face_m_ra_get(void *c); //attribute: ::btScalar btSoftBody_Face->m_ra+void btSoftBody_Face_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Face->m_leaf+void* btSoftBody_Face_m_leaf_get(void *c); //attribute: ::btDbvtNode * btSoftBody_Face->m_leaf+void* btSoftBody_Feature_new(); //constructor: Feature  ( ::btSoftBody::Feature::* )(  ) +void btSoftBody_Feature_free(void *c); +void btSoftBody_Feature_m_material_set(void *c,void* a); //attribute: ::btSoftBody::Material * btSoftBody_Feature->m_material+void* btSoftBody_Feature_m_material_get(void *c); //attribute: ::btSoftBody::Material * btSoftBody_Feature->m_material+void* btSoftBody_AJoint_IControl_new(); //constructor: IControl  ( ::btSoftBody::AJoint::IControl::* )(  ) +void btSoftBody_AJoint_IControl_free(void *c); +void* btSoftBody_AJoint_IControl_Default(); //method: Default ::btSoftBody::AJoint::IControl * (*)(  )+float btSoftBody_AJoint_IControl_Speed(void *c,void* p0,float p1); //method: Speed ::btScalar ( ::btSoftBody::AJoint::IControl::* )( ::btSoftBody::AJoint *,::btScalar ) +void btSoftBody_AJoint_IControl_Prepare(void *c,void* p0); //method: Prepare void ( ::btSoftBody::AJoint::IControl::* )( ::btSoftBody::AJoint * ) +float btSoftBody_ImplicitFn_Eval(void *c,float* p0); //method: Eval ::btScalar ( ::btSoftBody::ImplicitFn::* )( ::btVector3 const & ) +void* btSoftBody_Impulse_new(); //constructor: Impulse  ( ::btSoftBody::Impulse::* )(  ) +void btSoftBody_Impulse_free(void *c); +void btSoftBody_Impulse_m_asDrift_set(void *c,int a); //attribute: int btSoftBody_Impulse->m_asDrift+int btSoftBody_Impulse_m_asDrift_get(void *c); //attribute: int btSoftBody_Impulse->m_asDrift+void btSoftBody_Impulse_m_asVelocity_set(void *c,int a); //attribute: int btSoftBody_Impulse->m_asVelocity+int btSoftBody_Impulse_m_asVelocity_get(void *c); //attribute: int btSoftBody_Impulse->m_asVelocity+void btSoftBody_Impulse_m_drift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Impulse->m_drift+void btSoftBody_Impulse_m_drift_get(void *c,float* a);+void btSoftBody_Impulse_m_velocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Impulse->m_velocity+void btSoftBody_Impulse_m_velocity_get(void *c,float* a);+void btSoftBody_Joint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::Joint::* )( ::btScalar ) +//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::Joint::* )(  ) const+// error:  - unsupported++void btSoftBody_Joint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::Joint::* )( ::btScalar,::btScalar ) +void btSoftBody_Joint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::Joint::* )( ::btScalar,int ) +// attribute not supported: //attribute: ::btSoftBody::Body[2] btSoftBody_Joint->m_bodies+// attribute not supported: //attribute: ::btVector3[2] btSoftBody_Joint->m_refs+void btSoftBody_Joint_m_cfm_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_cfm+float btSoftBody_Joint_m_cfm_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_cfm+void btSoftBody_Joint_m_erp_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_erp+float btSoftBody_Joint_m_erp_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_erp+void btSoftBody_Joint_m_split_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint->m_split+float btSoftBody_Joint_m_split_get(void *c); //attribute: ::btScalar btSoftBody_Joint->m_split+void btSoftBody_Joint_m_drift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Joint->m_drift+void btSoftBody_Joint_m_drift_get(void *c,float* a);+void btSoftBody_Joint_m_sdrift_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Joint->m_sdrift+void btSoftBody_Joint_m_sdrift_get(void *c,float* a);+void btSoftBody_Joint_m_massmatrix_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Joint->m_massmatrix+void btSoftBody_Joint_m_massmatrix_get(void *c,float* a);+void btSoftBody_Joint_m_delete_set(void *c,int a); //attribute: bool btSoftBody_Joint->m_delete+int btSoftBody_Joint_m_delete_get(void *c); //attribute: bool btSoftBody_Joint->m_delete+void* btSoftBody_LJoint_new(); //constructor: LJoint  ( ::btSoftBody::LJoint::* )(  ) +void btSoftBody_LJoint_free(void *c); +void btSoftBody_LJoint_Terminate(void *c,float p0); //method: Terminate void ( ::btSoftBody::LJoint::* )( ::btScalar ) +//not supported method: Type ::btSoftBody::Joint::eType::_ ( ::btSoftBody::LJoint::* )(  ) const+// error:  - unsupported++void btSoftBody_LJoint_Solve(void *c,float p0,float p1); //method: Solve void ( ::btSoftBody::LJoint::* )( ::btScalar,::btScalar ) +void btSoftBody_LJoint_Prepare(void *c,float p0,int p1); //method: Prepare void ( ::btSoftBody::LJoint::* )( ::btScalar,int ) +// attribute not supported: //attribute: ::btVector3[2] btSoftBody_LJoint->m_rpos+void* btSoftBody_Link_new(); //constructor: Link  ( ::btSoftBody::Link::* )(  ) +void btSoftBody_Link_free(void *c); +// attribute not supported: //attribute: ::btSoftBody::Node *[2] btSoftBody_Link->m_n+void btSoftBody_Link_m_rl_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_rl+float btSoftBody_Link_m_rl_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_rl+void btSoftBody_Link_m_bbending_set(void *c,int a); //attribute: int btSoftBody_Link->m_bbending+int btSoftBody_Link_m_bbending_get(void *c); //attribute: int btSoftBody_Link->m_bbending+void btSoftBody_Link_m_c0_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c0+float btSoftBody_Link_m_c0_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c0+void btSoftBody_Link_m_c1_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c1+float btSoftBody_Link_m_c1_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c1+void btSoftBody_Link_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Link->m_c2+float btSoftBody_Link_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Link->m_c2+void btSoftBody_Link_m_c3_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Link->m_c3+void btSoftBody_Link_m_c3_get(void *c,float* a);+void* btSoftBody_Material_new(); //constructor: Material  ( ::btSoftBody::Material::* )(  ) +void btSoftBody_Material_free(void *c); +void btSoftBody_Material_m_flags_set(void *c,int a); //attribute: int btSoftBody_Material->m_flags+int btSoftBody_Material_m_flags_get(void *c); //attribute: int btSoftBody_Material->m_flags+void btSoftBody_Material_m_kAST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kAST+float btSoftBody_Material_m_kAST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kAST+void btSoftBody_Material_m_kLST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kLST+float btSoftBody_Material_m_kLST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kLST+void btSoftBody_Material_m_kVST_set(void *c,float a); //attribute: ::btScalar btSoftBody_Material->m_kVST+float btSoftBody_Material_m_kVST_get(void *c); //attribute: ::btScalar btSoftBody_Material->m_kVST+void* btSoftBody_Node_new(); //constructor: Node  ( ::btSoftBody::Node::* )(  ) +void btSoftBody_Node_free(void *c); +void btSoftBody_Node_m_area_set(void *c,float a); //attribute: ::btScalar btSoftBody_Node->m_area+float btSoftBody_Node_m_area_get(void *c); //attribute: ::btScalar btSoftBody_Node->m_area+void btSoftBody_Node_m_battach_set(void *c,int a); //attribute: int btSoftBody_Node->m_battach+int btSoftBody_Node_m_battach_get(void *c); //attribute: int btSoftBody_Node->m_battach+void btSoftBody_Node_m_f_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_f+void btSoftBody_Node_m_f_get(void *c,float* a);+void btSoftBody_Node_m_im_set(void *c,float a); //attribute: ::btScalar btSoftBody_Node->m_im+float btSoftBody_Node_m_im_get(void *c); //attribute: ::btScalar btSoftBody_Node->m_im+void btSoftBody_Node_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Node->m_leaf+void* btSoftBody_Node_m_leaf_get(void *c); //attribute: ::btDbvtNode * btSoftBody_Node->m_leaf+void btSoftBody_Node_m_n_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_n+void btSoftBody_Node_m_n_get(void *c,float* a);+void btSoftBody_Node_m_q_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_q+void btSoftBody_Node_m_q_get(void *c,float* a);+void btSoftBody_Node_m_v_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_v+void btSoftBody_Node_m_v_get(void *c,float* a);+void btSoftBody_Node_m_x_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Node->m_x+void btSoftBody_Node_m_x_get(void *c,float* a);+void* btSoftBody_Note_new(); //constructor: Note  ( ::btSoftBody::Note::* )(  ) +void btSoftBody_Note_free(void *c); +void btSoftBody_Note_m_text_set(void *c,char const * a); //attribute: char const * btSoftBody_Note->m_text+char const * btSoftBody_Note_m_text_get(void *c); //attribute: char const * btSoftBody_Note->m_text+void btSoftBody_Note_m_offset_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Note->m_offset+void btSoftBody_Note_m_offset_get(void *c,float* a);+void btSoftBody_Note_m_rank_set(void *c,int a); //attribute: int btSoftBody_Note->m_rank+int btSoftBody_Note_m_rank_get(void *c); //attribute: int btSoftBody_Note->m_rank+// attribute not supported: //attribute: ::btSoftBody::Node *[4] btSoftBody_Note->m_nodes+// attribute not supported: //attribute: ::btScalar[4] btSoftBody_Note->m_coords+void* btSoftBody_Pose_new(); //constructor: Pose  ( ::btSoftBody::Pose::* )(  ) +void btSoftBody_Pose_free(void *c); +void btSoftBody_Pose_m_bvolume_set(void *c,int a); //attribute: bool btSoftBody_Pose->m_bvolume+int btSoftBody_Pose_m_bvolume_get(void *c); //attribute: bool btSoftBody_Pose->m_bvolume+void btSoftBody_Pose_m_bframe_set(void *c,int a); //attribute: bool btSoftBody_Pose->m_bframe+int btSoftBody_Pose_m_bframe_get(void *c); //attribute: bool btSoftBody_Pose->m_bframe+void btSoftBody_Pose_m_volume_set(void *c,float a); //attribute: ::btScalar btSoftBody_Pose->m_volume+float btSoftBody_Pose_m_volume_get(void *c); //attribute: ::btScalar btSoftBody_Pose->m_volume+void btSoftBody_Pose_m_pos_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Pose->m_pos+void* btSoftBody_Pose_m_pos_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btSoftBody_Pose->m_pos+void btSoftBody_Pose_m_wgh_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btSoftBody_Pose->m_wgh+void* btSoftBody_Pose_m_wgh_get(void *c); //attribute: ::btAlignedObjectArray<float> btSoftBody_Pose->m_wgh+void btSoftBody_Pose_m_com_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_Pose->m_com+void btSoftBody_Pose_m_com_get(void *c,float* a);+void btSoftBody_Pose_m_rot_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_rot+void btSoftBody_Pose_m_rot_get(void *c,float* a);+void btSoftBody_Pose_m_scl_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_scl+void btSoftBody_Pose_m_scl_get(void *c,float* a);+void btSoftBody_Pose_m_aqq_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_Pose->m_aqq+void btSoftBody_Pose_m_aqq_get(void *c,float* a);+void* btSoftBody_RContact_new(); //constructor: RContact  ( ::btSoftBody::RContact::* )(  ) +void btSoftBody_RContact_free(void *c); +void btSoftBody_RContact_m_cti_set(void *c,void* a); //attribute: ::btSoftBody::sCti btSoftBody_RContact->m_cti+void* btSoftBody_RContact_m_cti_get(void *c); //attribute: ::btSoftBody::sCti btSoftBody_RContact->m_cti+void btSoftBody_RContact_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_RContact->m_node+void* btSoftBody_RContact_m_node_get(void *c); //attribute: ::btSoftBody::Node * btSoftBody_RContact->m_node+void btSoftBody_RContact_m_c0_set(void *c,float* a); //attribute: ::btMatrix3x3 btSoftBody_RContact->m_c0+void btSoftBody_RContact_m_c0_get(void *c,float* a);+void btSoftBody_RContact_m_c1_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RContact->m_c1+void btSoftBody_RContact_m_c1_get(void *c,float* a);+void btSoftBody_RContact_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c2+float btSoftBody_RContact_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c2+void btSoftBody_RContact_m_c3_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c3+float btSoftBody_RContact_m_c3_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c3+void btSoftBody_RContact_m_c4_set(void *c,float a); //attribute: ::btScalar btSoftBody_RContact->m_c4+float btSoftBody_RContact_m_c4_get(void *c); //attribute: ::btScalar btSoftBody_RContact->m_c4+void* btSoftBody_RayFromToCaster_new(float* p0,float* p1,float p2); //constructor: RayFromToCaster  ( ::btSoftBody::RayFromToCaster::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void btSoftBody_RayFromToCaster_free(void *c); +void btSoftBody_RayFromToCaster_Process(void *c,void* p0); //method: Process void ( ::btSoftBody::RayFromToCaster::* )( ::btDbvtNode const * ) +void btSoftBody_RayFromToCaster_m_rayFrom_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayFrom+void btSoftBody_RayFromToCaster_m_rayFrom_get(void *c,float* a);+void btSoftBody_RayFromToCaster_m_rayTo_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayTo+void btSoftBody_RayFromToCaster_m_rayTo_get(void *c,float* a);+void btSoftBody_RayFromToCaster_m_rayNormalizedDirection_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_RayFromToCaster->m_rayNormalizedDirection+void btSoftBody_RayFromToCaster_m_rayNormalizedDirection_get(void *c,float* a);+void btSoftBody_RayFromToCaster_m_mint_set(void *c,float a); //attribute: ::btScalar btSoftBody_RayFromToCaster->m_mint+float btSoftBody_RayFromToCaster_m_mint_get(void *c); //attribute: ::btScalar btSoftBody_RayFromToCaster->m_mint+void btSoftBody_RayFromToCaster_m_face_set(void *c,void* a); //attribute: ::btSoftBody::Face * btSoftBody_RayFromToCaster->m_face+void* btSoftBody_RayFromToCaster_m_face_get(void *c); //attribute: ::btSoftBody::Face * btSoftBody_RayFromToCaster->m_face+void btSoftBody_RayFromToCaster_m_tests_set(void *c,int a); //attribute: int btSoftBody_RayFromToCaster->m_tests+int btSoftBody_RayFromToCaster_m_tests_get(void *c); //attribute: int btSoftBody_RayFromToCaster->m_tests+void* btSoftBody_SContact_new(); //constructor: SContact  ( ::btSoftBody::SContact::* )(  ) +void btSoftBody_SContact_free(void *c); +void btSoftBody_SContact_m_node_set(void *c,void* a); //attribute: ::btSoftBody::Node * btSoftBody_SContact->m_node+void* btSoftBody_SContact_m_node_get(void *c); //attribute: ::btSoftBody::Node * btSoftBody_SContact->m_node+void btSoftBody_SContact_m_face_set(void *c,void* a); //attribute: ::btSoftBody::Face * btSoftBody_SContact->m_face+void* btSoftBody_SContact_m_face_get(void *c); //attribute: ::btSoftBody::Face * btSoftBody_SContact->m_face+void btSoftBody_SContact_m_weights_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_SContact->m_weights+void btSoftBody_SContact_m_weights_get(void *c,float* a);+void btSoftBody_SContact_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_SContact->m_normal+void btSoftBody_SContact_m_normal_get(void *c,float* a);+void btSoftBody_SContact_m_margin_set(void *c,float a); //attribute: ::btScalar btSoftBody_SContact->m_margin+float btSoftBody_SContact_m_margin_get(void *c); //attribute: ::btScalar btSoftBody_SContact->m_margin+void btSoftBody_SContact_m_friction_set(void *c,float a); //attribute: ::btScalar btSoftBody_SContact->m_friction+float btSoftBody_SContact_m_friction_get(void *c); //attribute: ::btScalar btSoftBody_SContact->m_friction+// attribute not supported: //attribute: ::btScalar[2] btSoftBody_SContact->m_cfm+void* btSoftBody_SolverState_new(); //constructor: SolverState  ( ::btSoftBody::SolverState::* )(  ) +void btSoftBody_SolverState_free(void *c); +void btSoftBody_SolverState_sdt_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->sdt+float btSoftBody_SolverState_sdt_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->sdt+void btSoftBody_SolverState_isdt_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->isdt+float btSoftBody_SolverState_isdt_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->isdt+void btSoftBody_SolverState_velmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->velmrg+float btSoftBody_SolverState_velmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->velmrg+void btSoftBody_SolverState_radmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->radmrg+float btSoftBody_SolverState_radmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->radmrg+void btSoftBody_SolverState_updmrg_set(void *c,float a); //attribute: ::btScalar btSoftBody_SolverState->updmrg+float btSoftBody_SolverState_updmrg_get(void *c); //attribute: ::btScalar btSoftBody_SolverState->updmrg+void* btSoftBody_Joint_Specs_new(); //constructor: Specs  ( ::btSoftBody::Joint::Specs::* )(  ) +void btSoftBody_Joint_Specs_free(void *c); +void btSoftBody_Joint_Specs_erp_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->erp+float btSoftBody_Joint_Specs_erp_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->erp+void btSoftBody_Joint_Specs_cfm_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->cfm+float btSoftBody_Joint_Specs_cfm_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->cfm+void btSoftBody_Joint_Specs_split_set(void *c,float a); //attribute: ::btScalar btSoftBody_Joint_Specs->split+float btSoftBody_Joint_Specs_split_get(void *c); //attribute: ::btScalar btSoftBody_Joint_Specs->split+void* btSoftBody_LJoint_Specs_new(); //constructor: Specs  ( ::btSoftBody::LJoint::Specs::* )(  ) +void btSoftBody_LJoint_Specs_free(void *c); +void btSoftBody_LJoint_Specs_position_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_LJoint_Specs->position+void btSoftBody_LJoint_Specs_position_get(void *c,float* a);+void* btSoftBody_AJoint_Specs_new(); //constructor: Specs  ( ::btSoftBody::AJoint::Specs::* )(  ) +void btSoftBody_AJoint_Specs_free(void *c); +void btSoftBody_AJoint_Specs_axis_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_AJoint_Specs->axis+void btSoftBody_AJoint_Specs_axis_get(void *c,float* a);+void btSoftBody_AJoint_Specs_icontrol_set(void *c,void* a); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint_Specs->icontrol+void* btSoftBody_AJoint_Specs_icontrol_get(void *c); //attribute: ::btSoftBody::AJoint::IControl * btSoftBody_AJoint_Specs->icontrol+void* btSoftBody_Tetra_new(); //constructor: Tetra  ( ::btSoftBody::Tetra::* )(  ) +void btSoftBody_Tetra_free(void *c); +// attribute not supported: //attribute: ::btSoftBody::Node *[4] btSoftBody_Tetra->m_n+void btSoftBody_Tetra_m_rv_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_rv+float btSoftBody_Tetra_m_rv_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_rv+void btSoftBody_Tetra_m_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btSoftBody_Tetra->m_leaf+void* btSoftBody_Tetra_m_leaf_get(void *c); //attribute: ::btDbvtNode * btSoftBody_Tetra->m_leaf+// attribute not supported: //attribute: ::btVector3[4] btSoftBody_Tetra->m_c0+void btSoftBody_Tetra_m_c1_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_c1+float btSoftBody_Tetra_m_c1_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_c1+void btSoftBody_Tetra_m_c2_set(void *c,float a); //attribute: ::btScalar btSoftBody_Tetra->m_c2+float btSoftBody_Tetra_m_c2_get(void *c); //attribute: ::btScalar btSoftBody_Tetra->m_c2+//not supported constructor: btSoftBody  ( ::btSoftBody::* )( ::btSoftBodyWorldInfo *,int,::btVector3 const *,::btScalar const * ) +// error: ::btSoftBodyWorldInfo * - ok, int - ok,  - unsupported,  - unsupported++void* btSoftBody_new1(void* p0); //constructor: btSoftBody  ( ::btSoftBody::* )( ::btSoftBodyWorldInfo * ) +void btSoftBody_free(void *c); +float btSoftBody_getVolume(void *c); //method: getVolume ::btScalar ( ::btSoftBody::* )(  ) const+int btSoftBody_cutLink(void *c,int p0,int p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( int,int,::btScalar ) +int btSoftBody_cutLink0(void *c,int p0,int p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( int,int,::btScalar ) +int btSoftBody_cutLink1(void *c,void* p0,void* p1,float p2); //method: cutLink bool ( ::btSoftBody::* )( ::btSoftBody::Node const *,::btSoftBody::Node const *,::btScalar ) +void btSoftBody_PSolve_Links(void* p0,float p1,float p2); //method: PSolve_Links void (*)( ::btSoftBody *,::btScalar,::btScalar )+int btSoftBody_generateClusters(void *c,int p0,int p1); //method: generateClusters int ( ::btSoftBody::* )( int,int ) +void btSoftBody_setCollisionShape(void *c,void* p0); //method: setCollisionShape void ( ::btSoftBody::* )( ::btCollisionShape * ) +void btSoftBody_initializeClusters(void *c); //method: initializeClusters void ( ::btSoftBody::* )(  ) +void btSoftBody_clusterVAImpulse(void* p0,float* p1); //method: clusterVAImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )+void btSoftBody_addForce(void *c,float* p0); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_addForce0(void *c,float* p0); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_addForce1(void *c,float* p0,int p1); //method: addForce void ( ::btSoftBody::* )( ::btVector3 const &,int ) +char const * btSoftBody_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btSoftBody::* )( void *,::btSerializer * ) const+void btSoftBody_updateBounds(void *c); //method: updateBounds void ( ::btSoftBody::* )(  ) +void btSoftBody_rotate(void *c,float* p0); //method: rotate void ( ::btSoftBody::* )( ::btQuaternion const & ) +void btSoftBody_releaseCluster(void *c,int p0); //method: releaseCluster void ( ::btSoftBody::* )( int ) +void btSoftBody_updateNormals(void *c); //method: updateNormals void ( ::btSoftBody::* )(  ) +void btSoftBody_prepareClusters(void *c,int p0); //method: prepareClusters void ( ::btSoftBody::* )( int ) +void btSoftBody_releaseClusters(void *c); //method: releaseClusters void ( ::btSoftBody::* )(  ) +float btSoftBody_getTotalMass(void *c); //method: getTotalMass ::btScalar ( ::btSoftBody::* )(  ) const+int btSoftBody_checkContact(void *c,void* p0,float* p1,float p2,void* p3); //method: checkContact bool ( ::btSoftBody::* )( ::btCollisionObject *,::btVector3 const &,::btScalar,::btSoftBody::sCti & ) const+//not supported method: indicesToPointers void ( ::btSoftBody::* )( int const * ) +// error:  - unsupported, void - ok++void btSoftBody_clusterDImpulse(void* p0,float* p1,float* p2); //method: clusterDImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btVector3 const & )+void btSoftBody_initDefaults(void *c); //method: initDefaults void ( ::btSoftBody::* )(  ) +int btSoftBody_checkLink(void *c,int p0,int p1); //method: checkLink bool ( ::btSoftBody::* )( int,int ) const+int btSoftBody_checkLink0(void *c,int p0,int p1); //method: checkLink bool ( ::btSoftBody::* )( int,int ) const+int btSoftBody_checkLink1(void *c,void* p0,void* p1); //method: checkLink bool ( ::btSoftBody::* )( ::btSoftBody::Node const *,::btSoftBody::Node const * ) const+void btSoftBody_setVolumeMass(void *c,float p0); //method: setVolumeMass void ( ::btSoftBody::* )( ::btScalar ) +void btSoftBody_clusterImpulse(void* p0,float* p1,void* p2); //method: clusterImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btSoftBody::Impulse const & )+int btSoftBody_checkFace(void *c,int p0,int p1,int p2); //method: checkFace bool ( ::btSoftBody::* )( int,int,int ) const+void btSoftBody_evaluateCom(void *c,float* ret); //method: evaluateCom ::btVector3 ( ::btSoftBody::* )(  ) const+void btSoftBody_clusterDAImpulse(void* p0,float* p1); //method: clusterDAImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )+void btSoftBody_VSolve_Links(void* p0,float p1); //method: VSolve_Links void (*)( ::btSoftBody *,::btScalar )+void btSoftBody_setTotalMass(void *c,float p0,int p1); //method: setTotalMass void ( ::btSoftBody::* )( ::btScalar,bool ) +void btSoftBody_clusterDCImpulse(void* p0,float* p1); //method: clusterDCImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const & )+void btSoftBody_clusterVelocity(void* p0,float* p1,float* ret); //method: clusterVelocity ::btVector3 (*)( ::btSoftBody::Cluster const *,::btVector3 const & )+int btSoftBody_generateBendingConstraints(void *c,int p0,void* p1); //method: generateBendingConstraints int ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_updateClusters(void *c); //method: updateClusters void ( ::btSoftBody::* )(  ) +void btSoftBody_appendAnchor(void *c,int p0,void* p1,int p2,float p3); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,bool,::btScalar ) +void btSoftBody_appendAnchor0(void *c,int p0,void* p1,int p2,float p3); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,bool,::btScalar ) +void btSoftBody_appendAnchor1(void *c,int p0,void* p1,float* p2,int p3,float p4); //method: appendAnchor void ( ::btSoftBody::* )( int,::btRigidBody *,::btVector3 const &,bool,::btScalar ) +void btSoftBody_applyClusters(void *c,int p0); //method: applyClusters void ( ::btSoftBody::* )( bool ) +void btSoftBody_setVelocity(void *c,float* p0); //method: setVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) +int btSoftBody_clusterCount(void *c); //method: clusterCount int ( ::btSoftBody::* )(  ) const+void* btSoftBody_upcast(void* p0); //method: upcast ::btSoftBody const * (*)( ::btCollisionObject const * )+void* btSoftBody_upcast0(void* p0); //method: upcast ::btSoftBody const * (*)( ::btCollisionObject const * )+void* btSoftBody_upcast1(void* p0); //method: upcast ::btSoftBody * (*)( ::btCollisionObject * )+void btSoftBody_getWindVelocity(void *c,float* ret); //method: getWindVelocity ::btVector3 const & ( ::btSoftBody::* )(  ) +void btSoftBody_predictMotion(void *c,float p0); //method: predictMotion void ( ::btSoftBody::* )( ::btScalar ) +void btSoftBody_pointersToIndices(void *c); //method: pointersToIndices void ( ::btSoftBody::* )(  ) +float btSoftBody_getMass(void *c,int p0); //method: getMass ::btScalar ( ::btSoftBody::* )( int ) const+void btSoftBody_PSolve_RContacts(void* p0,float p1,float p2); //method: PSolve_RContacts void (*)( ::btSoftBody *,::btScalar,::btScalar )+void btSoftBody_initializeFaceTree(void *c); //method: initializeFaceTree void ( ::btSoftBody::* )(  ) +void btSoftBody_addVelocity(void *c,float* p0); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_addVelocity0(void *c,float* p0); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_addVelocity1(void *c,float* p0,int p1); //method: addVelocity void ( ::btSoftBody::* )( ::btVector3 const &,int ) +void btSoftBody_PSolve_Anchors(void* p0,float p1,float p2); //method: PSolve_Anchors void (*)( ::btSoftBody *,::btScalar,::btScalar )+void btSoftBody_cleanupClusters(void *c); //method: cleanupClusters void ( ::btSoftBody::* )(  ) +void btSoftBody_transform(void *c,float* p0); //method: transform void ( ::btSoftBody::* )( ::btTransform const & ) +//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) +// error: ::btSoftBody::LJoint::Specs const & - ok, ::btSoftBody::Cluster * - ok,  - unsupported, void - ok++//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) +// error: ::btSoftBody::LJoint::Specs const & - ok, ::btSoftBody::Cluster * - ok,  - unsupported, void - ok++//not supported method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody::Body ) +// error: ::btSoftBody::LJoint::Specs const & - ok,  - unsupported, void - ok++void btSoftBody_appendLinearJoint2(void *c,void* p0,void* p1); //method: appendLinearJoint void ( ::btSoftBody::* )( ::btSoftBody::LJoint::Specs const &,::btSoftBody * ) +void btSoftBody_randomizeConstraints(void *c); //method: randomizeConstraints void ( ::btSoftBody::* )(  ) +void btSoftBody_updatePose(void *c); //method: updatePose void ( ::btSoftBody::* )(  ) +void btSoftBody_translate(void *c,float* p0); //method: translate void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_getAabb(void *c,float* p0,float* p1); //method: getAabb void ( ::btSoftBody::* )( ::btVector3 &,::btVector3 & ) const+void btSoftBody_PSolve_SContacts(void* p0,float p1,float p2); //method: PSolve_SContacts void (*)( ::btSoftBody *,::btScalar,::btScalar )+void* btSoftBody_appendMaterial(void *c); //method: appendMaterial ::btSoftBody::Material * ( ::btSoftBody::* )(  ) +void btSoftBody_appendNode(void *c,float* p0,float p1); //method: appendNode void ( ::btSoftBody::* )( ::btVector3 const &,::btScalar ) +void btSoftBody_setMass(void *c,int p0,float p1); //method: setMass void ( ::btSoftBody::* )( int,::btScalar ) +void btSoftBody_integrateMotion(void *c); //method: integrateMotion void ( ::btSoftBody::* )(  ) +void btSoftBody_defaultCollisionHandler(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btCollisionObject * ) +void btSoftBody_defaultCollisionHandler0(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btCollisionObject * ) +void btSoftBody_defaultCollisionHandler1(void *c,void* p0); //method: defaultCollisionHandler void ( ::btSoftBody::* )( ::btSoftBody * ) +void btSoftBody_solveConstraints(void *c); //method: solveConstraints void ( ::btSoftBody::* )(  ) +void btSoftBody_setTotalDensity(void *c,float p0); //method: setTotalDensity void ( ::btSoftBody::* )( ::btScalar ) +void btSoftBody_appendNote(void *c,char const * p0,float* p1,float* p2,void* p3,void* p4,void* p5,void* p6); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btVector4 const &,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node * ) +void btSoftBody_appendNote0(void *c,char const * p0,float* p1,float* p2,void* p3,void* p4,void* p5,void* p6); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btVector4 const &,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Node * ) +void btSoftBody_appendNote1(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Node * ) +void btSoftBody_appendNote2(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Link * ) +void btSoftBody_appendNote3(void *c,char const * p0,float* p1,void* p2); //method: appendNote void ( ::btSoftBody::* )( char const *,::btVector3 const &,::btSoftBody::Face * ) +void btSoftBody_setVolumeDensity(void *c,float p0); //method: setVolumeDensity void ( ::btSoftBody::* )( ::btScalar ) +//not supported method: solveCommonConstraints void (*)( ::btSoftBody * *,int,int )+// error:  - unsupported, int - ok, int - ok, void - ok++void btSoftBody_updateConstants(void *c); //method: updateConstants void ( ::btSoftBody::* )(  ) +void btSoftBody_staticSolve(void *c,int p0); //method: staticSolve void ( ::btSoftBody::* )( int ) +//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) +// error:  - unsupported++//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) +// error:  - unsupported++//not supported method: getSoftBodySolver ::btSoftBodySolver * ( ::btSoftBody::* )(  ) const+// error:  - unsupported++void btSoftBody_refine(void *c,void* p0,float p1,int p2); //method: refine void ( ::btSoftBody::* )( ::btSoftBody::ImplicitFn *,::btScalar,bool ) +void btSoftBody_appendLink(void *c,int p0,void* p1); //method: appendLink void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendLink0(void *c,int p0,void* p1); //method: appendLink void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendLink1(void *c,int p0,int p1,void* p2,int p3); //method: appendLink void ( ::btSoftBody::* )( int,int,::btSoftBody::Material *,bool ) +void btSoftBody_appendLink2(void *c,void* p0,void* p1,void* p2,int p3); //method: appendLink void ( ::btSoftBody::* )( ::btSoftBody::Node *,::btSoftBody::Node *,::btSoftBody::Material *,bool ) +int btSoftBody_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btSoftBody::* )(  ) const+void btSoftBody_solveClusters(void* p0); //method: solveClusters void (*)( ::btAlignedObjectArray<btSoftBody*> const & )+void btSoftBody_solveClusters0(void* p0); //method: solveClusters void (*)( ::btAlignedObjectArray<btSoftBody*> const & )+void btSoftBody_solveClusters1(void *c,float p0); //method: solveClusters void ( ::btSoftBody::* )( ::btScalar ) +int btSoftBody_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest bool ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btSoftBody::sRayCast & ) +int btSoftBody_rayTest0(void *c,float* p0,float* p1,void* p2); //method: rayTest bool ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btSoftBody::sRayCast & ) +//not supported method: rayTest int ( ::btSoftBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar &,::btSoftBody::eFeature::_ &,int &,bool ) const+// error: ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported,  - unsupported,  - unsupported, bool - ok, int - ok++void btSoftBody_setPose(void *c,int p0,int p1); //method: setPose void ( ::btSoftBody::* )( bool,bool ) +void btSoftBody_appendFace(void *c,int p0,void* p1); //method: appendFace void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendFace0(void *c,int p0,void* p1); //method: appendFace void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendFace1(void *c,int p0,int p1,int p2,void* p3); //method: appendFace void ( ::btSoftBody::* )( int,int,int,::btSoftBody::Material * ) +void btSoftBody_dampClusters(void *c); //method: dampClusters void ( ::btSoftBody::* )(  ) +void* btSoftBody_getWorldInfo(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo * ( ::btSoftBody::* )(  ) +//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) +// error: ::btSoftBody::AJoint::Specs const & - ok, ::btSoftBody::Cluster * - ok,  - unsupported, void - ok++//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Cluster *,::btSoftBody::Body ) +// error: ::btSoftBody::AJoint::Specs const & - ok, ::btSoftBody::Cluster * - ok,  - unsupported, void - ok++//not supported method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody::Body ) +// error: ::btSoftBody::AJoint::Specs const & - ok,  - unsupported, void - ok++void btSoftBody_appendAngularJoint2(void *c,void* p0,void* p1); //method: appendAngularJoint void ( ::btSoftBody::* )( ::btSoftBody::AJoint::Specs const &,::btSoftBody * ) +//not supported method: setSolver void ( ::btSoftBody::* )( ::btSoftBody::eSolverPresets::_ ) +// error:  - unsupported, void - ok++void btSoftBody_clusterVImpulse(void* p0,float* p1,float* p2); //method: clusterVImpulse void (*)( ::btSoftBody::Cluster *,::btVector3 const &,::btVector3 const & )+void btSoftBody_scale(void *c,float* p0); //method: scale void ( ::btSoftBody::* )( ::btVector3 const & ) +void btSoftBody_clusterAImpulse(void* p0,void* p1); //method: clusterAImpulse void (*)( ::btSoftBody::Cluster *,::btSoftBody::Impulse const & )+void btSoftBody_clusterCom(void* p0,float* ret); //method: clusterCom ::btVector3 (*)( ::btSoftBody::Cluster const * )+void btSoftBody_clusterCom0(void* p0,float* ret); //method: clusterCom ::btVector3 (*)( ::btSoftBody::Cluster const * )+void btSoftBody_clusterCom1(void *c,int p0,float* ret); //method: clusterCom ::btVector3 ( ::btSoftBody::* )( int ) const+//not supported method: setSoftBodySolver void ( ::btSoftBody::* )( ::btSoftBodySolver * ) +// error:  - unsupported, void - ok++void btSoftBody_setWindVelocity(void *c,float* p0); //method: setWindVelocity void ( ::btSoftBody::* )( ::btVector3 const & ) +//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar,::btScalar ) * (*)( ::btSoftBody::ePSolver::_ )+// error:  - unsupported,  - unsupported++//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar,::btScalar ) * (*)( ::btSoftBody::ePSolver::_ )+// error:  - unsupported,  - unsupported++//not supported method: getSolver void (*)( ::btSoftBody *,::btScalar ) * (*)( ::btSoftBody::eVSolver::_ )+// error:  - unsupported,  - unsupported++void btSoftBody_applyForces(void *c); //method: applyForces void ( ::btSoftBody::* )(  ) +void btSoftBody_appendTetra(void *c,int p0,void* p1); //method: appendTetra void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendTetra0(void *c,int p0,void* p1); //method: appendTetra void ( ::btSoftBody::* )( int,::btSoftBody::Material * ) +void btSoftBody_appendTetra1(void *c,int p0,int p1,int p2,int p3,void* p4); //method: appendTetra void ( ::btSoftBody::* )( int,int,int,int,::btSoftBody::Material * ) +void btSoftBody_m_anchors_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Anchor> btSoftBody->m_anchors+void* btSoftBody_m_anchors_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Anchor> btSoftBody->m_anchors+void btSoftBody_m_bUpdateRtCst_set(void *c,int a); //attribute: bool btSoftBody->m_bUpdateRtCst+int btSoftBody_m_bUpdateRtCst_get(void *c); //attribute: bool btSoftBody->m_bUpdateRtCst+// attribute not supported: //attribute: ::btVector3[2] btSoftBody->m_bounds+void btSoftBody_m_cdbvt_set(void *c,void* a); //attribute: ::btDbvt btSoftBody->m_cdbvt+void* btSoftBody_m_cdbvt_get(void *c); //attribute: ::btDbvt btSoftBody->m_cdbvt+void btSoftBody_m_cfg_set(void *c,void* a); //attribute: ::btSoftBody::Config btSoftBody->m_cfg+void* btSoftBody_m_cfg_get(void *c); //attribute: ::btSoftBody::Config btSoftBody->m_cfg+void btSoftBody_m_clusterConnectivity_set(void *c,void* a); //attribute: ::btAlignedObjectArray<bool> btSoftBody->m_clusterConnectivity+void* btSoftBody_m_clusterConnectivity_get(void *c); //attribute: ::btAlignedObjectArray<bool> btSoftBody->m_clusterConnectivity+void btSoftBody_m_clusters_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Cluster*> btSoftBody->m_clusters+void* btSoftBody_m_clusters_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Cluster*> btSoftBody->m_clusters+void btSoftBody_m_collisionDisabledObjects_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCollisionObject*> btSoftBody->m_collisionDisabledObjects+void* btSoftBody_m_collisionDisabledObjects_get(void *c); //attribute: ::btAlignedObjectArray<btCollisionObject*> btSoftBody->m_collisionDisabledObjects+void btSoftBody_m_faces_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Face> btSoftBody->m_faces+void* btSoftBody_m_faces_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Face> btSoftBody->m_faces+void btSoftBody_m_fdbvt_set(void *c,void* a); //attribute: ::btDbvt btSoftBody->m_fdbvt+void* btSoftBody_m_fdbvt_get(void *c); //attribute: ::btDbvt btSoftBody->m_fdbvt+void btSoftBody_m_initialWorldTransform_set(void *c,float* a); //attribute: ::btTransform btSoftBody->m_initialWorldTransform+void btSoftBody_m_initialWorldTransform_get(void *c,float* a);+void btSoftBody_m_joints_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Joint*> btSoftBody->m_joints+void* btSoftBody_m_joints_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Joint*> btSoftBody->m_joints+void btSoftBody_m_links_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Link> btSoftBody->m_links+void* btSoftBody_m_links_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Link> btSoftBody->m_links+void btSoftBody_m_materials_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Material*> btSoftBody->m_materials+void* btSoftBody_m_materials_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Material*> btSoftBody->m_materials+void btSoftBody_m_ndbvt_set(void *c,void* a); //attribute: ::btDbvt btSoftBody->m_ndbvt+void* btSoftBody_m_ndbvt_get(void *c); //attribute: ::btDbvt btSoftBody->m_ndbvt+void btSoftBody_m_nodes_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Node> btSoftBody->m_nodes+void* btSoftBody_m_nodes_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Node> btSoftBody->m_nodes+void btSoftBody_m_notes_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Note> btSoftBody->m_notes+void* btSoftBody_m_notes_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Note> btSoftBody->m_notes+void btSoftBody_m_pose_set(void *c,void* a); //attribute: ::btSoftBody::Pose btSoftBody->m_pose+void* btSoftBody_m_pose_get(void *c); //attribute: ::btSoftBody::Pose btSoftBody->m_pose+void btSoftBody_m_rcontacts_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::RContact> btSoftBody->m_rcontacts+void* btSoftBody_m_rcontacts_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::RContact> btSoftBody->m_rcontacts+void btSoftBody_m_scontacts_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::SContact> btSoftBody->m_scontacts+void* btSoftBody_m_scontacts_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::SContact> btSoftBody->m_scontacts+// attribute not supported: //attribute: ::btSoftBodySolver * btSoftBody->m_softBodySolver+void btSoftBody_m_sst_set(void *c,void* a); //attribute: ::btSoftBody::SolverState btSoftBody->m_sst+void* btSoftBody_m_sst_get(void *c); //attribute: ::btSoftBody::SolverState btSoftBody->m_sst+void btSoftBody_m_tag_set(void *c,void* a); //attribute: void * btSoftBody->m_tag+void* btSoftBody_m_tag_get(void *c); //attribute: void * btSoftBody->m_tag+void btSoftBody_m_tetras_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSoftBody::Tetra> btSoftBody->m_tetras+void* btSoftBody_m_tetras_get(void *c); //attribute: ::btAlignedObjectArray<btSoftBody::Tetra> btSoftBody->m_tetras+void btSoftBody_m_timeacc_set(void *c,float a); //attribute: ::btScalar btSoftBody->m_timeacc+float btSoftBody_m_timeacc_get(void *c); //attribute: ::btScalar btSoftBody->m_timeacc+void btSoftBody_m_userIndexMapping_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btSoftBody->m_userIndexMapping+void* btSoftBody_m_userIndexMapping_get(void *c); //attribute: ::btAlignedObjectArray<int> btSoftBody->m_userIndexMapping+void btSoftBody_m_windVelocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody->m_windVelocity+void btSoftBody_m_windVelocity_get(void *c,float* a);+void btSoftBody_m_worldInfo_set(void *c,void* a); //attribute: ::btSoftBodyWorldInfo * btSoftBody->m_worldInfo+void* btSoftBody_m_worldInfo_get(void *c); //attribute: ::btSoftBodyWorldInfo * btSoftBody->m_worldInfo+void* btSoftBodyHelpers_new(); //constructor: btSoftBodyHelpers  ( ::btSoftBodyHelpers::* )(  ) +void btSoftBodyHelpers_free(void *c); +void btSoftBodyHelpers_DrawInfos(void* p0,void* p1,int p2,int p3,int p4); //method: DrawInfos void (*)( ::btSoftBody *,::btIDebugDraw *,bool,bool,bool )+void btSoftBodyHelpers_Draw(void* p0,void* p1,int p2); //method: Draw void (*)( ::btSoftBody *,::btIDebugDraw *,int )+void* btSoftBodyHelpers_CreateEllipsoid(void* p0,float* p1,float* p2,int p3); //method: CreateEllipsoid ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,int )+void* btSoftBodyHelpers_CreateFromTetGenData(void* p0,char const * p1,char const * p2,char const * p3,int p4,int p5,int p6); //method: CreateFromTetGenData ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,char const *,char const *,char const *,bool,bool,bool )+void btSoftBodyHelpers_DrawFrame(void* p0,void* p1); //method: DrawFrame void (*)( ::btSoftBody *,::btIDebugDraw * )+void* btSoftBodyHelpers_CreateRope(void* p0,float* p1,float* p2,int p3,int p4); //method: CreateRope ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,int,int )+float btSoftBodyHelpers_CalculateUV(int p0,int p1,int p2,int p3,int p4); //method: CalculateUV float (*)( int,int,int,int,int )+void btSoftBodyHelpers_DrawFaceTree(void* p0,void* p1,int p2,int p3); //method: DrawFaceTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )+void btSoftBodyHelpers_DrawClusterTree(void* p0,void* p1,int p2,int p3); //method: DrawClusterTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )+//not supported method: CreateFromTriMesh ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btScalar const *,int const *,int,bool )+// error: ::btSoftBodyWorldInfo & - ok,  - unsupported,  - unsupported, int - ok, bool - ok, ::btSoftBody * - ok++void btSoftBodyHelpers_DrawNodeTree(void* p0,void* p1,int p2,int p3); //method: DrawNodeTree void (*)( ::btSoftBody *,::btIDebugDraw *,int,int )+//not supported method: CreateFromConvexHull ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const *,int,bool )+// error: ::btSoftBodyWorldInfo & - ok,  - unsupported, int - ok, bool - ok, ::btSoftBody * - ok++void* btSoftBodyHelpers_CreatePatch(void* p0,float* p1,float* p2,float* p3,float* p4,int p5,int p6,int p7,int p8); //method: CreatePatch ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int,int,bool )+//not supported method: CreatePatchUV ::btSoftBody * (*)( ::btSoftBodyWorldInfo &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int,int,bool,float * )+// error: ::btSoftBodyWorldInfo & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, int - ok, int - ok, int - ok, bool - ok,  - unsupported, ::btSoftBody * - ok++void* btSoftBodyRigidBodyCollisionConfiguration_new(void* p0); //constructor: btSoftBodyRigidBodyCollisionConfiguration  ( ::btSoftBodyRigidBodyCollisionConfiguration::* )( ::btDefaultCollisionConstructionInfo const & ) +void btSoftBodyRigidBodyCollisionConfiguration_free(void *c); +void* btSoftBodyRigidBodyCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btSoftBodyRigidBodyCollisionConfiguration::* )( int,int ) +void btSoftBodyRigidBodyCollisionConfiguration_m_softSoftCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softSoftCreateFunc+void* btSoftBodyRigidBodyCollisionConfiguration_m_softSoftCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softSoftCreateFunc+void btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConvexCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softRigidConvexCreateFunc+void* btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConvexCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softRigidConvexCreateFunc+void btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConvexCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_swappedSoftRigidConvexCreateFunc+void* btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConvexCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_swappedSoftRigidConvexCreateFunc+void btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConcaveCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softRigidConcaveCreateFunc+void* btSoftBodyRigidBodyCollisionConfiguration_m_softRigidConcaveCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_softRigidConcaveCreateFunc+void btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConcaveCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_swappedSoftRigidConcaveCreateFunc+void* btSoftBodyRigidBodyCollisionConfiguration_m_swappedSoftRigidConcaveCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btSoftBodyRigidBodyCollisionConfiguration->m_swappedSoftRigidConcaveCreateFunc+void* btSoftBodyWorldInfo_new(); //constructor: btSoftBodyWorldInfo  ( ::btSoftBodyWorldInfo::* )(  ) +void btSoftBodyWorldInfo_free(void *c); +void btSoftBodyWorldInfo_air_density_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->air_density+float btSoftBodyWorldInfo_air_density_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->air_density+void btSoftBodyWorldInfo_m_broadphase_set(void *c,void* a); //attribute: ::btBroadphaseInterface * btSoftBodyWorldInfo->m_broadphase+void* btSoftBodyWorldInfo_m_broadphase_get(void *c); //attribute: ::btBroadphaseInterface * btSoftBodyWorldInfo->m_broadphase+void btSoftBodyWorldInfo_m_dispatcher_set(void *c,void* a); //attribute: ::btDispatcher * btSoftBodyWorldInfo->m_dispatcher+void* btSoftBodyWorldInfo_m_dispatcher_get(void *c); //attribute: ::btDispatcher * btSoftBodyWorldInfo->m_dispatcher+void btSoftBodyWorldInfo_m_gravity_set(void *c,float* a); //attribute: ::btVector3 btSoftBodyWorldInfo->m_gravity+void btSoftBodyWorldInfo_m_gravity_get(void *c,float* a);+void btSoftBodyWorldInfo_m_sparsesdf_set(void *c,void* a); //attribute: ::btSparseSdf<3> btSoftBodyWorldInfo->m_sparsesdf+void* btSoftBodyWorldInfo_m_sparsesdf_get(void *c); //attribute: ::btSparseSdf<3> btSoftBodyWorldInfo->m_sparsesdf+void btSoftBodyWorldInfo_water_density_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->water_density+float btSoftBodyWorldInfo_water_density_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->water_density+void btSoftBodyWorldInfo_water_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBodyWorldInfo->water_normal+void btSoftBodyWorldInfo_water_normal_get(void *c,float* a);+void btSoftBodyWorldInfo_water_offset_set(void *c,float a); //attribute: ::btScalar btSoftBodyWorldInfo->water_offset+float btSoftBodyWorldInfo_water_offset_get(void *c); //attribute: ::btScalar btSoftBodyWorldInfo->water_offset+//not supported constructor: btSoftRigidDynamicsWorld  ( ::btSoftRigidDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration *,::btSoftBodySolver * ) +// error: ::btDispatcher * - ok, ::btBroadphaseInterface * - ok, ::btConstraintSolver * - ok, ::btCollisionConfiguration * - ok,  - unsupported++void btSoftRigidDynamicsWorld_free(void *c); +void btSoftRigidDynamicsWorld_predictUnconstraintMotion(void *c,float p0); //method: predictUnconstraintMotion void ( ::btSoftRigidDynamicsWorld::* )( ::btScalar ) +void* btSoftRigidDynamicsWorld_getWorldInfo(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo & ( ::btSoftRigidDynamicsWorld::* )(  ) +void* btSoftRigidDynamicsWorld_getWorldInfo0(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo & ( ::btSoftRigidDynamicsWorld::* )(  ) +void* btSoftRigidDynamicsWorld_getWorldInfo1(void *c); //method: getWorldInfo ::btSoftBodyWorldInfo const & ( ::btSoftRigidDynamicsWorld::* )(  ) const+void btSoftRigidDynamicsWorld_setDrawFlags(void *c,int p0); //method: setDrawFlags void ( ::btSoftRigidDynamicsWorld::* )( int ) +void* btSoftRigidDynamicsWorld_getSoftBodyArray(void *c); //method: getSoftBodyArray ::btSoftBodyArray & ( ::btSoftRigidDynamicsWorld::* )(  ) +void* btSoftRigidDynamicsWorld_getSoftBodyArray0(void *c); //method: getSoftBodyArray ::btSoftBodyArray & ( ::btSoftRigidDynamicsWorld::* )(  ) +void* btSoftRigidDynamicsWorld_getSoftBodyArray1(void *c); //method: getSoftBodyArray ::btSoftBodyArray const & ( ::btSoftRigidDynamicsWorld::* )(  ) const+void btSoftRigidDynamicsWorld_serialize(void *c,void* p0); //method: serialize void ( ::btSoftRigidDynamicsWorld::* )( ::btSerializer * ) +void btSoftRigidDynamicsWorld_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btSoftRigidDynamicsWorld::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const+//not supported method: getWorldType ::btDynamicsWorldType ( ::btSoftRigidDynamicsWorld::* )(  ) const+// error:  - unsupported++void btSoftRigidDynamicsWorld_solveSoftBodiesConstraints(void *c,float p0); //method: solveSoftBodiesConstraints void ( ::btSoftRigidDynamicsWorld::* )( ::btScalar ) +void btSoftRigidDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btSoftRigidDynamicsWorld::* )( ::btCollisionObject * ) +void btSoftRigidDynamicsWorld_addSoftBody(void *c,void* p0,short int p1,short int p2); //method: addSoftBody void ( ::btSoftRigidDynamicsWorld::* )( ::btSoftBody *,short int,short int ) +void btSoftRigidDynamicsWorld_rayTestSingle(float* p0,float* p1,void* p2,void* p3,float* p4,void* p5); //method: rayTestSingle void (*)( ::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::RayResultCallback & )+void btSoftRigidDynamicsWorld_internalSingleStepSimulation(void *c,float p0); //method: internalSingleStepSimulation void ( ::btSoftRigidDynamicsWorld::* )( ::btScalar ) +void btSoftRigidDynamicsWorld_serializeSoftBodies(void *c,void* p0); //method: serializeSoftBodies void ( ::btSoftRigidDynamicsWorld::* )( ::btSerializer * ) +void btSoftRigidDynamicsWorld_removeSoftBody(void *c,void* p0); //method: removeSoftBody void ( ::btSoftRigidDynamicsWorld::* )( ::btSoftBody * ) +int btSoftRigidDynamicsWorld_getDrawFlags(void *c); //method: getDrawFlags int ( ::btSoftRigidDynamicsWorld::* )(  ) const+void btSoftRigidDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btSoftRigidDynamicsWorld::* )(  ) +void btSoftRigidDynamicsWorld_m_softBodies_set(void *c,void* a); //attribute: ::btSoftBodyArray btSoftRigidDynamicsWorld->m_softBodies+void* btSoftRigidDynamicsWorld_m_softBodies_get(void *c); //attribute: ::btSoftBodyArray btSoftRigidDynamicsWorld->m_softBodies+void btSoftRigidDynamicsWorld_m_drawFlags_set(void *c,int a); //attribute: int btSoftRigidDynamicsWorld->m_drawFlags+int btSoftRigidDynamicsWorld_m_drawFlags_get(void *c); //attribute: int btSoftRigidDynamicsWorld->m_drawFlags+void btSoftRigidDynamicsWorld_m_drawNodeTree_set(void *c,int a); //attribute: bool btSoftRigidDynamicsWorld->m_drawNodeTree+int btSoftRigidDynamicsWorld_m_drawNodeTree_get(void *c); //attribute: bool btSoftRigidDynamicsWorld->m_drawNodeTree+void btSoftRigidDynamicsWorld_m_drawFaceTree_set(void *c,int a); //attribute: bool btSoftRigidDynamicsWorld->m_drawFaceTree+int btSoftRigidDynamicsWorld_m_drawFaceTree_get(void *c); //attribute: bool btSoftRigidDynamicsWorld->m_drawFaceTree+void btSoftRigidDynamicsWorld_m_drawClusterTree_set(void *c,int a); //attribute: bool btSoftRigidDynamicsWorld->m_drawClusterTree+int btSoftRigidDynamicsWorld_m_drawClusterTree_get(void *c); //attribute: bool btSoftRigidDynamicsWorld->m_drawClusterTree+void btSoftRigidDynamicsWorld_m_sbi_set(void *c,void* a); //attribute: ::btSoftBodyWorldInfo btSoftRigidDynamicsWorld->m_sbi+void* btSoftRigidDynamicsWorld_m_sbi_get(void *c); //attribute: ::btSoftBodyWorldInfo btSoftRigidDynamicsWorld->m_sbi+// attribute not supported: //attribute: ::btSoftBodySolver * btSoftRigidDynamicsWorld->m_softBodySolver+void btSoftRigidDynamicsWorld_m_ownsSolver_set(void *c,int a); //attribute: bool btSoftRigidDynamicsWorld->m_ownsSolver+int btSoftRigidDynamicsWorld_m_ownsSolver_get(void *c); //attribute: bool btSoftRigidDynamicsWorld->m_ownsSolver+void* btSparseSdf_3__new(); //constructor: btSparseSdf  ( ::btSparseSdf<3>::* )(  ) +void btSparseSdf_3__free(void *c); +void btSparseSdf_3__Reset(void *c); //method: Reset void ( ::btSparseSdf<3>::* )(  ) +unsigned int btSparseSdf_3__Hash(int p0,int p1,int p2,void* p3); //method: Hash unsigned int (*)( int,int,int,::btCollisionShape * )+int btSparseSdf_3__RemoveReferences(void *c,void* p0); //method: RemoveReferences int ( ::btSparseSdf<3>::* )( ::btCollisionShape * ) +float btSparseSdf_3__Lerp(float p0,float p1,float p2); //method: Lerp ::btScalar (*)( ::btScalar,::btScalar,::btScalar )+float btSparseSdf_3__Evaluate(void *c,float* p0,void* p1,float* p2,float p3); //method: Evaluate ::btScalar ( ::btSparseSdf<3>::* )( ::btVector3 const &,::btCollisionShape *,::btVector3 &,::btScalar ) +void btSparseSdf_3__GarbageCollect(void *c,int p0); //method: GarbageCollect void ( ::btSparseSdf<3>::* )( int ) +//not supported method: BuildCell void ( ::btSparseSdf<3>::* )( ::btSparseSdf<3>::Cell & ) +// error:  - unsupported, void - ok++float btSparseSdf_3__DistanceToShape(float* p0,void* p1); //method: DistanceToShape ::btScalar (*)( ::btVector3 const &,::btCollisionShape * )+void btSparseSdf_3__Initialize(void *c,int p0); //method: Initialize void ( ::btSparseSdf<3>::* )( int ) +//not supported method: Decompose ::btSparseSdf<3>::IntFrac (*)( ::btScalar )+// error: ::btScalar - ok,  - unsupported++void btSparseSdf_3__cells_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btSparseSdf<3>::Cell*> btSparseSdf_3_->cells+void* btSparseSdf_3__cells_get(void *c); //attribute: ::btAlignedObjectArray<btSparseSdf<3>::Cell*> btSparseSdf_3_->cells+void btSparseSdf_3__ncells_set(void *c,int a); //attribute: int btSparseSdf_3_->ncells+int btSparseSdf_3__ncells_get(void *c); //attribute: int btSparseSdf_3_->ncells+void btSparseSdf_3__nprobes_set(void *c,int a); //attribute: int btSparseSdf_3_->nprobes+int btSparseSdf_3__nprobes_get(void *c); //attribute: int btSparseSdf_3_->nprobes+void btSparseSdf_3__nqueries_set(void *c,int a); //attribute: int btSparseSdf_3_->nqueries+int btSparseSdf_3__nqueries_get(void *c); //attribute: int btSparseSdf_3_->nqueries+void btSparseSdf_3__puid_set(void *c,int a); //attribute: int btSparseSdf_3_->puid+int btSparseSdf_3__puid_get(void *c); //attribute: int btSparseSdf_3_->puid+void btSparseSdf_3__voxelsz_set(void *c,float a); //attribute: ::btScalar btSparseSdf_3_->voxelsz+float btSparseSdf_3__voxelsz_get(void *c); //attribute: ::btScalar btSparseSdf_3_->voxelsz+void* btSoftBody_eAeroModel_new(); //constructor: eAeroModel  ( ::btSoftBody::eAeroModel::* )(  ) +void btSoftBody_eAeroModel_free(void *c); +void* btSoftBody_eFeature_new(); //constructor: eFeature  ( ::btSoftBody::eFeature::* )(  ) +void btSoftBody_eFeature_free(void *c); +void* btSoftBody_ePSolver_new(); //constructor: ePSolver  ( ::btSoftBody::ePSolver::* )(  ) +void btSoftBody_ePSolver_free(void *c); +void* btSoftBody_eSolverPresets_new(); //constructor: eSolverPresets  ( ::btSoftBody::eSolverPresets::* )(  ) +void btSoftBody_eSolverPresets_free(void *c); +void* btSoftBody_Joint_eType_new(); //constructor: eType  ( ::btSoftBody::Joint::eType::* )(  ) +void btSoftBody_Joint_eType_free(void *c); +void* btSoftBody_eVSolver_new(); //constructor: eVSolver  ( ::btSoftBody::eVSolver::* )(  ) +void btSoftBody_eVSolver_free(void *c); +void* btSoftBody_fCollision_new(); //constructor: fCollision  ( ::btSoftBody::fCollision::* )(  ) +void btSoftBody_fCollision_free(void *c); +void* fDrawFlags_new(); //constructor: fDrawFlags  ( ::fDrawFlags::* )(  ) +void fDrawFlags_free(void *c); +void* btSoftBody_fMaterial_new(); //constructor: fMaterial  ( ::btSoftBody::fMaterial::* )(  ) +void btSoftBody_fMaterial_free(void *c); +void* btSoftBody_sCti_new(); //constructor: sCti  ( ::btSoftBody::sCti::* )(  ) +void btSoftBody_sCti_free(void *c); +void btSoftBody_sCti_m_colObj_set(void *c,void* a); //attribute: ::btCollisionObject * btSoftBody_sCti->m_colObj+void* btSoftBody_sCti_m_colObj_get(void *c); //attribute: ::btCollisionObject * btSoftBody_sCti->m_colObj+void btSoftBody_sCti_m_normal_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_sCti->m_normal+void btSoftBody_sCti_m_normal_get(void *c,float* a);+void btSoftBody_sCti_m_offset_set(void *c,float a); //attribute: ::btScalar btSoftBody_sCti->m_offset+float btSoftBody_sCti_m_offset_get(void *c); //attribute: ::btScalar btSoftBody_sCti->m_offset+void* btSoftBody_sMedium_new(); //constructor: sMedium  ( ::btSoftBody::sMedium::* )(  ) +void btSoftBody_sMedium_free(void *c); +void btSoftBody_sMedium_m_density_set(void *c,float a); //attribute: ::btScalar btSoftBody_sMedium->m_density+float btSoftBody_sMedium_m_density_get(void *c); //attribute: ::btScalar btSoftBody_sMedium->m_density+void btSoftBody_sMedium_m_pressure_set(void *c,float a); //attribute: ::btScalar btSoftBody_sMedium->m_pressure+float btSoftBody_sMedium_m_pressure_get(void *c); //attribute: ::btScalar btSoftBody_sMedium->m_pressure+void btSoftBody_sMedium_m_velocity_set(void *c,float* a); //attribute: ::btVector3 btSoftBody_sMedium->m_velocity+void btSoftBody_sMedium_m_velocity_get(void *c,float* a);+void* btSoftBody_sRayCast_new(); //constructor: sRayCast  ( ::btSoftBody::sRayCast::* )(  ) +void btSoftBody_sRayCast_free(void *c); +void btSoftBody_sRayCast_body_set(void *c,void* a); //attribute: ::btSoftBody * btSoftBody_sRayCast->body+void* btSoftBody_sRayCast_body_get(void *c); //attribute: ::btSoftBody * btSoftBody_sRayCast->body+// attribute not supported: //attribute: ::btSoftBody::eFeature::_ btSoftBody_sRayCast->feature+void btSoftBody_sRayCast_fraction_set(void *c,float a); //attribute: ::btScalar btSoftBody_sRayCast->fraction+float btSoftBody_sRayCast_fraction_get(void *c); //attribute: ::btScalar btSoftBody_sRayCast->fraction+void btSoftBody_sRayCast_index_set(void *c,int a); //attribute: int btSoftBody_sRayCast->index+int btSoftBody_sRayCast_index_get(void *c); //attribute: int btSoftBody_sRayCast->index+void* cProfileIterator_new(void* p0); //constructor: CProfileIterator  ( ::CProfileIterator::* )( ::CProfileNode * ) +void cProfileIterator_free(void *c); +char const * cProfileIterator_Get_Current_Name(void *c); //method: Get_Current_Name char const * ( ::CProfileIterator::* )(  ) +int cProfileIterator_Get_Current_Total_Calls(void *c); //method: Get_Current_Total_Calls int ( ::CProfileIterator::* )(  ) +float cProfileIterator_Get_Current_Total_Time(void *c); //method: Get_Current_Total_Time float ( ::CProfileIterator::* )(  ) +void cProfileIterator_Enter_Child(void *c,int p0); //method: Enter_Child void ( ::CProfileIterator::* )( int ) +int cProfileIterator_Is_Done(void *c); //method: Is_Done bool ( ::CProfileIterator::* )(  ) +void cProfileIterator_Next(void *c); //method: Next void ( ::CProfileIterator::* )(  ) +int cProfileIterator_Is_Root(void *c); //method: Is_Root bool ( ::CProfileIterator::* )(  ) +char const * cProfileIterator_Get_Current_Parent_Name(void *c); //method: Get_Current_Parent_Name char const * ( ::CProfileIterator::* )(  ) +void* cProfileIterator_Get_Current_UserPointer(void *c); //method: Get_Current_UserPointer void * ( ::CProfileIterator::* )(  ) +int cProfileIterator_Get_Current_Parent_Total_Calls(void *c); //method: Get_Current_Parent_Total_Calls int ( ::CProfileIterator::* )(  ) +void cProfileIterator_Set_Current_UserPointer(void *c,void* p0); //method: Set_Current_UserPointer void ( ::CProfileIterator::* )( void * ) +float cProfileIterator_Get_Current_Parent_Total_Time(void *c); //method: Get_Current_Parent_Total_Time float ( ::CProfileIterator::* )(  ) +void cProfileIterator_Enter_Parent(void *c); //method: Enter_Parent void ( ::CProfileIterator::* )(  ) +void cProfileIterator_First(void *c); //method: First void ( ::CProfileIterator::* )(  ) +void cProfileIterator_CurrentParent_set(void *c,void* a); //attribute: ::CProfileNode * cProfileIterator->CurrentParent+void* cProfileIterator_CurrentParent_get(void *c); //attribute: ::CProfileNode * cProfileIterator->CurrentParent+void cProfileIterator_CurrentChild_set(void *c,void* a); //attribute: ::CProfileNode * cProfileIterator->CurrentChild+void* cProfileIterator_CurrentChild_get(void *c); //attribute: ::CProfileNode * cProfileIterator->CurrentChild+void* cProfileManager_new(); //constructor: CProfileManager  ( ::CProfileManager::* )(  ) +void cProfileManager_free(void *c); +void cProfileManager_Reset(); //method: Reset void (*)(  )+void cProfileManager_dumpAll(); //method: dumpAll void (*)(  )+int cProfileManager_Get_Frame_Count_Since_Reset(); //method: Get_Frame_Count_Since_Reset int (*)(  )+void cProfileManager_Release_Iterator(void* p0); //method: Release_Iterator void (*)( ::CProfileIterator * )+void cProfileManager_Stop_Profile(); //method: Stop_Profile void (*)(  )+void cProfileManager_CleanupMemory(); //method: CleanupMemory void (*)(  )+float cProfileManager_Get_Time_Since_Reset(); //method: Get_Time_Since_Reset float (*)(  )+void cProfileManager_Start_Profile(char const * p0); //method: Start_Profile void (*)( char const * )+void cProfileManager_Increment_Frame_Counter(); //method: Increment_Frame_Counter void (*)(  )+void cProfileManager_dumpRecursive(void* p0,int p1); //method: dumpRecursive void (*)( ::CProfileIterator *,int )+void* cProfileManager_Get_Iterator(); //method: Get_Iterator ::CProfileIterator * (*)(  )+void cProfileManager_Root_set(void *c,void* a); //attribute: ::CProfileNode cProfileManager->Root+void* cProfileManager_Root_get(void *c); //attribute: ::CProfileNode cProfileManager->Root+void cProfileManager_CurrentNode_set(void *c,void* a); //attribute: ::CProfileNode * cProfileManager->CurrentNode+void* cProfileManager_CurrentNode_get(void *c); //attribute: ::CProfileNode * cProfileManager->CurrentNode+void cProfileManager_FrameCounter_set(void *c,int a); //attribute: int cProfileManager->FrameCounter+int cProfileManager_FrameCounter_get(void *c); //attribute: int cProfileManager->FrameCounter+void cProfileManager_ResetTime_set(void *c,long unsigned int a); //attribute: long unsigned int cProfileManager->ResetTime+long unsigned int cProfileManager_ResetTime_get(void *c); //attribute: long unsigned int cProfileManager->ResetTime+void* cProfileNode_new(char const * p0,void* p1); //constructor: CProfileNode  ( ::CProfileNode::* )( char const *,::CProfileNode * ) +void cProfileNode_free(void *c); +void cProfileNode_Reset(void *c); //method: Reset void ( ::CProfileNode::* )(  ) +int cProfileNode_Return(void *c); //method: Return bool ( ::CProfileNode::* )(  ) +void cProfileNode_SetUserPointer(void *c,void* p0); //method: SetUserPointer void ( ::CProfileNode::* )( void * ) +void* cProfileNode_Get_Sub_Node(void *c,char const * p0); //method: Get_Sub_Node ::CProfileNode * ( ::CProfileNode::* )( char const * ) +void cProfileNode_CleanupMemory(void *c); //method: CleanupMemory void ( ::CProfileNode::* )(  ) +void* cProfileNode_Get_Parent(void *c); //method: Get_Parent ::CProfileNode * ( ::CProfileNode::* )(  ) +void* cProfileNode_GetUserPointer(void *c); //method: GetUserPointer void * ( ::CProfileNode::* )(  ) const+char const * cProfileNode_Get_Name(void *c); //method: Get_Name char const * ( ::CProfileNode::* )(  ) +float cProfileNode_Get_Total_Time(void *c); //method: Get_Total_Time float ( ::CProfileNode::* )(  ) +void cProfileNode_Call(void *c); //method: Call void ( ::CProfileNode::* )(  ) +void* cProfileNode_Get_Sibling(void *c); //method: Get_Sibling ::CProfileNode * ( ::CProfileNode::* )(  ) +void* cProfileNode_Get_Child(void *c); //method: Get_Child ::CProfileNode * ( ::CProfileNode::* )(  ) +int cProfileNode_Get_Total_Calls(void *c); //method: Get_Total_Calls int ( ::CProfileNode::* )(  ) +void cProfileNode_Child_set(void *c,void* a); //attribute: ::CProfileNode * cProfileNode->Child+void* cProfileNode_Child_get(void *c); //attribute: ::CProfileNode * cProfileNode->Child+void cProfileNode_Name_set(void *c,char const * a); //attribute: char const * cProfileNode->Name+char const * cProfileNode_Name_get(void *c); //attribute: char const * cProfileNode->Name+void cProfileNode_Parent_set(void *c,void* a); //attribute: ::CProfileNode * cProfileNode->Parent+void* cProfileNode_Parent_get(void *c); //attribute: ::CProfileNode * cProfileNode->Parent+void cProfileNode_RecursionCounter_set(void *c,int a); //attribute: int cProfileNode->RecursionCounter+int cProfileNode_RecursionCounter_get(void *c); //attribute: int cProfileNode->RecursionCounter+void cProfileNode_Sibling_set(void *c,void* a); //attribute: ::CProfileNode * cProfileNode->Sibling+void* cProfileNode_Sibling_get(void *c); //attribute: ::CProfileNode * cProfileNode->Sibling+void cProfileNode_StartTime_set(void *c,long unsigned int a); //attribute: long unsigned int cProfileNode->StartTime+long unsigned int cProfileNode_StartTime_get(void *c); //attribute: long unsigned int cProfileNode->StartTime+void cProfileNode_TotalCalls_set(void *c,int a); //attribute: int cProfileNode->TotalCalls+int cProfileNode_TotalCalls_get(void *c); //attribute: int cProfileNode->TotalCalls+void cProfileNode_TotalTime_set(void *c,float a); //attribute: float cProfileNode->TotalTime+float cProfileNode_TotalTime_get(void *c); //attribute: float cProfileNode->TotalTime+void cProfileNode_m_userPtr_set(void *c,void* a); //attribute: void * cProfileNode->m_userPtr+void* cProfileNode_m_userPtr_get(void *c); //attribute: void * cProfileNode->m_userPtr+void* cProfileSample_new(char const * p0); //constructor: CProfileSample  ( ::CProfileSample::* )( char const * ) +void cProfileSample_free(void *c); +void* btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )(  ) +void btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__free(void *c); +void btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE * ) +void btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE * ) +//not supported method: allocate ::BT_QUANTIZED_BVH_NODE * ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::size_type,::BT_QUANTIZED_BVH_NODE const * * ) +// error:  - unsupported,  - unsupported, ::BT_QUANTIZED_BVH_NODE * - ok++void btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE *,::BT_QUANTIZED_BVH_NODE const & ) +void* btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address(void *c,void* p0); //method: address ::BT_QUANTIZED_BVH_NODE * ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE & ) const+void* btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address0(void *c,void* p0); //method: address ::BT_QUANTIZED_BVH_NODE * ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE & ) const+void* btAlignedAllocator_BT_QUANTIZED_BVH_NODE_16u__address1(void *c,void* p0); //method: address ::BT_QUANTIZED_BVH_NODE const * ( ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u>::* )( ::BT_QUANTIZED_BVH_NODE const & ) const+void* btAlignedAllocator_GIM_BVH_DATA_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )(  ) +void btAlignedAllocator_GIM_BVH_DATA_16u__free(void *c); +void btAlignedAllocator_GIM_BVH_DATA_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA * ) +void btAlignedAllocator_GIM_BVH_DATA_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA * ) +//not supported method: allocate ::GIM_BVH_DATA * ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::size_type,::GIM_BVH_DATA const * * ) +// error:  - unsupported,  - unsupported, ::GIM_BVH_DATA * - ok++void btAlignedAllocator_GIM_BVH_DATA_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA *,::GIM_BVH_DATA const & ) +void* btAlignedAllocator_GIM_BVH_DATA_16u__address(void *c,void* p0); //method: address ::GIM_BVH_DATA * ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA & ) const+void* btAlignedAllocator_GIM_BVH_DATA_16u__address0(void *c,void* p0); //method: address ::GIM_BVH_DATA * ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA & ) const+void* btAlignedAllocator_GIM_BVH_DATA_16u__address1(void *c,void* p0); //method: address ::GIM_BVH_DATA const * ( ::btAlignedAllocator<GIM_BVH_DATA, 16u>::* )( ::GIM_BVH_DATA const & ) const+void* btAlignedAllocator_GIM_BVH_TREE_NODE_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )(  ) +void btAlignedAllocator_GIM_BVH_TREE_NODE_16u__free(void *c); +void btAlignedAllocator_GIM_BVH_TREE_NODE_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE * ) +void btAlignedAllocator_GIM_BVH_TREE_NODE_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE * ) +//not supported method: allocate ::GIM_BVH_TREE_NODE * ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::size_type,::GIM_BVH_TREE_NODE const * * ) +// error:  - unsupported,  - unsupported, ::GIM_BVH_TREE_NODE * - ok++void btAlignedAllocator_GIM_BVH_TREE_NODE_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE *,::GIM_BVH_TREE_NODE const & ) +void* btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address(void *c,void* p0); //method: address ::GIM_BVH_TREE_NODE * ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE & ) const+void* btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address0(void *c,void* p0); //method: address ::GIM_BVH_TREE_NODE * ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE & ) const+void* btAlignedAllocator_GIM_BVH_TREE_NODE_16u__address1(void *c,void* p0); //method: address ::GIM_BVH_TREE_NODE const * ( ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u>::* )( ::GIM_BVH_TREE_NODE const & ) const+void* btAlignedAllocator_GIM_PAIR_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )(  ) +void btAlignedAllocator_GIM_PAIR_16u__free(void *c); +void btAlignedAllocator_GIM_PAIR_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR * ) +void btAlignedAllocator_GIM_PAIR_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR * ) +//not supported method: allocate ::GIM_PAIR * ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::size_type,::GIM_PAIR const * * ) +// error:  - unsupported,  - unsupported, ::GIM_PAIR * - ok++void btAlignedAllocator_GIM_PAIR_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR *,::GIM_PAIR const & ) +void* btAlignedAllocator_GIM_PAIR_16u__address(void *c,void* p0); //method: address ::GIM_PAIR * ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR & ) const+void* btAlignedAllocator_GIM_PAIR_16u__address0(void *c,void* p0); //method: address ::GIM_PAIR * ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR & ) const+void* btAlignedAllocator_GIM_PAIR_16u__address1(void *c,void* p0); //method: address ::GIM_PAIR const * ( ::btAlignedAllocator<GIM_PAIR, 16u>::* )( ::GIM_PAIR const & ) const+void* btAlignedAllocator_bool_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<bool, 16u>::* )(  ) +void btAlignedAllocator_bool_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<bool, 16u>::* )( bool * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<bool, 16u>::* )( bool * ) +// error:  - unsupported, void - ok++//not supported method: allocate bool * ( ::btAlignedAllocator<bool, 16u>::* )( ::size_type,bool const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<bool, 16u>::* )( bool *,bool const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address bool * ( ::btAlignedAllocator<bool, 16u>::* )( bool & ) const+// error:  - unsupported,  - unsupported++//not supported method: address bool * ( ::btAlignedAllocator<bool, 16u>::* )( bool & ) const+// error:  - unsupported,  - unsupported++//not supported method: address bool const * ( ::btAlignedAllocator<bool, 16u>::* )( bool const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_btActionInterface_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btActionInterface*, 16u>::* )(  ) +void btAlignedAllocator_btActionInterface_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btActionInterface * * ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::size_type,::btActionInterface * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * *,::btActionInterface * const & ) +// error:  - unsupported, ::btActionInterface * - ok, void - ok++//not supported method: address ::btActionInterface * * ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * & ) const+// error: ::btActionInterface * - ok,  - unsupported++//not supported method: address ::btActionInterface * * ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * & ) const+// error: ::btActionInterface * - ok,  - unsupported++//not supported method: address ::btActionInterface * const * ( ::btAlignedAllocator<btActionInterface*, 16u>::* )( ::btActionInterface * const & ) const+// error: ::btActionInterface * - ok,  - unsupported++void* btAlignedAllocator_btBroadphaseInterface_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )(  ) +void btAlignedAllocator_btBroadphaseInterface_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btBroadphaseInterface * * ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::size_type,::btBroadphaseInterface * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * *,::btBroadphaseInterface * const & ) +// error:  - unsupported, ::btBroadphaseInterface * - ok, void - ok++//not supported method: address ::btBroadphaseInterface * * ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * & ) const+// error: ::btBroadphaseInterface * - ok,  - unsupported++//not supported method: address ::btBroadphaseInterface * * ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * & ) const+// error: ::btBroadphaseInterface * - ok,  - unsupported++//not supported method: address ::btBroadphaseInterface * const * ( ::btAlignedAllocator<btBroadphaseInterface*, 16u>::* )( ::btBroadphaseInterface * const & ) const+// error: ::btBroadphaseInterface * - ok,  - unsupported++void* btAlignedAllocator_btBroadphasePair_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )(  ) +void btAlignedAllocator_btBroadphasePair_16u__free(void *c); +void btAlignedAllocator_btBroadphasePair_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair * ) +void btAlignedAllocator_btBroadphasePair_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair * ) +//not supported method: allocate ::btBroadphasePair * ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::size_type,::btBroadphasePair const * * ) +// error:  - unsupported,  - unsupported, ::btBroadphasePair * - ok++void btAlignedAllocator_btBroadphasePair_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair *,::btBroadphasePair const & ) +void* btAlignedAllocator_btBroadphasePair_16u__address(void *c,void* p0); //method: address ::btBroadphasePair * ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair & ) const+void* btAlignedAllocator_btBroadphasePair_16u__address0(void *c,void* p0); //method: address ::btBroadphasePair * ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair & ) const+void* btAlignedAllocator_btBroadphasePair_16u__address1(void *c,void* p0); //method: address ::btBroadphasePair const * ( ::btAlignedAllocator<btBroadphasePair, 16u>::* )( ::btBroadphasePair const & ) const+void* btAlignedAllocator_btBvhSubtreeInfo_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )(  ) +void btAlignedAllocator_btBvhSubtreeInfo_16u__free(void *c); +void btAlignedAllocator_btBvhSubtreeInfo_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo * ) +void btAlignedAllocator_btBvhSubtreeInfo_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo * ) +//not supported method: allocate ::btBvhSubtreeInfo * ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::size_type,::btBvhSubtreeInfo const * * ) +// error:  - unsupported,  - unsupported, ::btBvhSubtreeInfo * - ok++void btAlignedAllocator_btBvhSubtreeInfo_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo *,::btBvhSubtreeInfo const & ) +void* btAlignedAllocator_btBvhSubtreeInfo_16u__address(void *c,void* p0); //method: address ::btBvhSubtreeInfo * ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo & ) const+void* btAlignedAllocator_btBvhSubtreeInfo_16u__address0(void *c,void* p0); //method: address ::btBvhSubtreeInfo * ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo & ) const+void* btAlignedAllocator_btBvhSubtreeInfo_16u__address1(void *c,void* p0); //method: address ::btBvhSubtreeInfo const * ( ::btAlignedAllocator<btBvhSubtreeInfo, 16u>::* )( ::btBvhSubtreeInfo const & ) const+void* btAlignedAllocator_btChunk_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btChunk*, 16u>::* )(  ) +void btAlignedAllocator_btChunk_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btChunk * * ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::size_type,::btChunk * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * *,::btChunk * const & ) +// error:  - unsupported, ::btChunk * - ok, void - ok++//not supported method: address ::btChunk * * ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * & ) const+// error: ::btChunk * - ok,  - unsupported++//not supported method: address ::btChunk * * ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * & ) const+// error: ::btChunk * - ok,  - unsupported++//not supported method: address ::btChunk * const * ( ::btAlignedAllocator<btChunk*, 16u>::* )( ::btChunk * const & ) const+// error: ::btChunk * - ok,  - unsupported++void* btAlignedAllocator_btCollisionObject_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )(  ) +void btAlignedAllocator_btCollisionObject_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btCollisionObject * * ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::size_type,::btCollisionObject * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * *,::btCollisionObject * const & ) +// error:  - unsupported, ::btCollisionObject * - ok, void - ok++//not supported method: address ::btCollisionObject * * ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * & ) const+// error: ::btCollisionObject * - ok,  - unsupported++//not supported method: address ::btCollisionObject * * ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * & ) const+// error: ::btCollisionObject * - ok,  - unsupported++//not supported method: address ::btCollisionObject * const * ( ::btAlignedAllocator<btCollisionObject*, 16u>::* )( ::btCollisionObject * const & ) const+// error: ::btCollisionObject * - ok,  - unsupported++void* btAlignedAllocator_btCollisionShape_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )(  ) +void btAlignedAllocator_btCollisionShape_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btCollisionShape * * ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::size_type,::btCollisionShape * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * *,::btCollisionShape * const & ) +// error:  - unsupported, ::btCollisionShape * - ok, void - ok++//not supported method: address ::btCollisionShape * * ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * & ) const+// error: ::btCollisionShape * - ok,  - unsupported++//not supported method: address ::btCollisionShape * * ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * & ) const+// error: ::btCollisionShape * - ok,  - unsupported++//not supported method: address ::btCollisionShape * const * ( ::btAlignedAllocator<btCollisionShape*, 16u>::* )( ::btCollisionShape * const & ) const+// error: ::btCollisionShape * - ok,  - unsupported++void* btAlignedAllocator_btCompoundShapeChild_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )(  ) +void btAlignedAllocator_btCompoundShapeChild_16u__free(void *c); +void btAlignedAllocator_btCompoundShapeChild_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild * ) +void btAlignedAllocator_btCompoundShapeChild_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild * ) +//not supported method: allocate ::btCompoundShapeChild * ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::size_type,::btCompoundShapeChild const * * ) +// error:  - unsupported,  - unsupported, ::btCompoundShapeChild * - ok++void btAlignedAllocator_btCompoundShapeChild_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild *,::btCompoundShapeChild const & ) +void* btAlignedAllocator_btCompoundShapeChild_16u__address(void *c,void* p0); //method: address ::btCompoundShapeChild * ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild & ) const+void* btAlignedAllocator_btCompoundShapeChild_16u__address0(void *c,void* p0); //method: address ::btCompoundShapeChild * ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild & ) const+void* btAlignedAllocator_btCompoundShapeChild_16u__address1(void *c,void* p0); //method: address ::btCompoundShapeChild const * ( ::btAlignedAllocator<btCompoundShapeChild, 16u>::* )( ::btCompoundShapeChild const & ) const+void* btAlignedAllocator_btDbvt_sStkNN_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )(  ) +void btAlignedAllocator_btDbvt_sStkNN_16u__free(void *c); +void btAlignedAllocator_btDbvt_sStkNN_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN * ) +void btAlignedAllocator_btDbvt_sStkNN_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN * ) +//not supported method: allocate ::btDbvt::sStkNN * ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::size_type,::btDbvt::sStkNN const * * ) +// error:  - unsupported,  - unsupported, ::btDbvt::sStkNN * - ok++void btAlignedAllocator_btDbvt_sStkNN_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN *,::btDbvt::sStkNN const & ) +void* btAlignedAllocator_btDbvt_sStkNN_16u__address(void *c,void* p0); //method: address ::btDbvt::sStkNN * ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN & ) const+void* btAlignedAllocator_btDbvt_sStkNN_16u__address0(void *c,void* p0); //method: address ::btDbvt::sStkNN * ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN & ) const+void* btAlignedAllocator_btDbvt_sStkNN_16u__address1(void *c,void* p0); //method: address ::btDbvt::sStkNN const * ( ::btAlignedAllocator<btDbvt::sStkNN, 16u>::* )( ::btDbvt::sStkNN const & ) const+void* btAlignedAllocator_btDbvt_sStkNP_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )(  ) +void btAlignedAllocator_btDbvt_sStkNP_16u__free(void *c); +void btAlignedAllocator_btDbvt_sStkNP_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP * ) +void btAlignedAllocator_btDbvt_sStkNP_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP * ) +//not supported method: allocate ::btDbvt::sStkNP * ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::size_type,::btDbvt::sStkNP const * * ) +// error:  - unsupported,  - unsupported, ::btDbvt::sStkNP * - ok++void btAlignedAllocator_btDbvt_sStkNP_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP *,::btDbvt::sStkNP const & ) +void* btAlignedAllocator_btDbvt_sStkNP_16u__address(void *c,void* p0); //method: address ::btDbvt::sStkNP * ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP & ) const+void* btAlignedAllocator_btDbvt_sStkNP_16u__address0(void *c,void* p0); //method: address ::btDbvt::sStkNP * ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP & ) const+void* btAlignedAllocator_btDbvt_sStkNP_16u__address1(void *c,void* p0); //method: address ::btDbvt::sStkNP const * ( ::btAlignedAllocator<btDbvt::sStkNP, 16u>::* )( ::btDbvt::sStkNP const & ) const+void* btAlignedAllocator_btDbvt_sStkNPS_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )(  ) +void btAlignedAllocator_btDbvt_sStkNPS_16u__free(void *c); +void btAlignedAllocator_btDbvt_sStkNPS_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS * ) +void btAlignedAllocator_btDbvt_sStkNPS_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS * ) +//not supported method: allocate ::btDbvt::sStkNPS * ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::size_type,::btDbvt::sStkNPS const * * ) +// error:  - unsupported,  - unsupported, ::btDbvt::sStkNPS * - ok++void btAlignedAllocator_btDbvt_sStkNPS_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS *,::btDbvt::sStkNPS const & ) +void* btAlignedAllocator_btDbvt_sStkNPS_16u__address(void *c,void* p0); //method: address ::btDbvt::sStkNPS * ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS & ) const+void* btAlignedAllocator_btDbvt_sStkNPS_16u__address0(void *c,void* p0); //method: address ::btDbvt::sStkNPS * ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS & ) const+void* btAlignedAllocator_btDbvt_sStkNPS_16u__address1(void *c,void* p0); //method: address ::btDbvt::sStkNPS const * ( ::btAlignedAllocator<btDbvt::sStkNPS, 16u>::* )( ::btDbvt::sStkNPS const & ) const+void* btAlignedAllocator_btDbvtNodeconst_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )(  ) +void btAlignedAllocator_btDbvtNodeconst_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btDbvtNode const * * ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::size_type,::btDbvtNode const * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * *,::btDbvtNode const * const & ) +// error:  - unsupported, ::btDbvtNode const * - ok, void - ok++//not supported method: address ::btDbvtNode const * * ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * & ) const+// error: ::btDbvtNode const * - ok,  - unsupported++//not supported method: address ::btDbvtNode const * * ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * & ) const+// error: ::btDbvtNode const * - ok,  - unsupported++//not supported method: address ::btDbvtNode const * const * ( ::btAlignedAllocator<btDbvtNode const*, 16u>::* )( ::btDbvtNode const * const & ) const+// error: ::btDbvtNode const * - ok,  - unsupported++void* btAlignedAllocator_btGImpactMeshShapePart_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )(  ) +void btAlignedAllocator_btGImpactMeshShapePart_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btGImpactMeshShapePart * * ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::size_type,::btGImpactMeshShapePart * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * *,::btGImpactMeshShapePart * const & ) +// error:  - unsupported, ::btGImpactMeshShapePart * - ok, void - ok++//not supported method: address ::btGImpactMeshShapePart * * ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * & ) const+// error: ::btGImpactMeshShapePart * - ok,  - unsupported++//not supported method: address ::btGImpactMeshShapePart * * ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * & ) const+// error: ::btGImpactMeshShapePart * - ok,  - unsupported++//not supported method: address ::btGImpactMeshShapePart * const * ( ::btAlignedAllocator<btGImpactMeshShapePart*, 16u>::* )( ::btGImpactMeshShapePart * const & ) const+// error: ::btGImpactMeshShapePart * - ok,  - unsupported++void* btAlignedAllocator_btHashInt_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btHashInt, 16u>::* )(  ) +void btAlignedAllocator_btHashInt_16u__free(void *c); +void btAlignedAllocator_btHashInt_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt * ) +void btAlignedAllocator_btHashInt_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt * ) +//not supported method: allocate ::btHashInt * ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::size_type,::btHashInt const * * ) +// error:  - unsupported,  - unsupported, ::btHashInt * - ok++void btAlignedAllocator_btHashInt_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt *,::btHashInt const & ) +void* btAlignedAllocator_btHashInt_16u__address(void *c,void* p0); //method: address ::btHashInt * ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt & ) const+void* btAlignedAllocator_btHashInt_16u__address0(void *c,void* p0); //method: address ::btHashInt * ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt & ) const+void* btAlignedAllocator_btHashInt_16u__address1(void *c,void* p0); //method: address ::btHashInt const * ( ::btAlignedAllocator<btHashInt, 16u>::* )( ::btHashInt const & ) const+void* btAlignedAllocator_btHashPtr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btHashPtr, 16u>::* )(  ) +void btAlignedAllocator_btHashPtr_16u__free(void *c); +void btAlignedAllocator_btHashPtr_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr * ) +void btAlignedAllocator_btHashPtr_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr * ) +//not supported method: allocate ::btHashPtr * ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::size_type,::btHashPtr const * * ) +// error:  - unsupported,  - unsupported, ::btHashPtr * - ok++void btAlignedAllocator_btHashPtr_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr *,::btHashPtr const & ) +void* btAlignedAllocator_btHashPtr_16u__address(void *c,void* p0); //method: address ::btHashPtr * ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr & ) const+void* btAlignedAllocator_btHashPtr_16u__address0(void *c,void* p0); //method: address ::btHashPtr * ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr & ) const+void* btAlignedAllocator_btHashPtr_16u__address1(void *c,void* p0); //method: address ::btHashPtr const * ( ::btAlignedAllocator<btHashPtr, 16u>::* )( ::btHashPtr const & ) const+void* btAlignedAllocator_btHashString_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btHashString, 16u>::* )(  ) +void btAlignedAllocator_btHashString_16u__free(void *c); +void btAlignedAllocator_btHashString_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString * ) +void btAlignedAllocator_btHashString_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString * ) +//not supported method: allocate ::btHashString * ( ::btAlignedAllocator<btHashString, 16u>::* )( ::size_type,::btHashString const * * ) +// error:  - unsupported,  - unsupported, ::btHashString * - ok++void btAlignedAllocator_btHashString_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString *,::btHashString const & ) +void* btAlignedAllocator_btHashString_16u__address(void *c,void* p0); //method: address ::btHashString * ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString & ) const+void* btAlignedAllocator_btHashString_16u__address0(void *c,void* p0); //method: address ::btHashString * ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString & ) const+void* btAlignedAllocator_btHashString_16u__address1(void *c,void* p0); //method: address ::btHashString const * ( ::btAlignedAllocator<btHashString, 16u>::* )( ::btHashString const & ) const+void* btAlignedAllocator_btIndexedMesh_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )(  ) +void btAlignedAllocator_btIndexedMesh_16u__free(void *c); +void btAlignedAllocator_btIndexedMesh_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh * ) +void btAlignedAllocator_btIndexedMesh_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh * ) +//not supported method: allocate ::btIndexedMesh * ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::size_type,::btIndexedMesh const * * ) +// error:  - unsupported,  - unsupported, ::btIndexedMesh * - ok++void btAlignedAllocator_btIndexedMesh_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh *,::btIndexedMesh const & ) +void* btAlignedAllocator_btIndexedMesh_16u__address(void *c,void* p0); //method: address ::btIndexedMesh * ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh & ) const+void* btAlignedAllocator_btIndexedMesh_16u__address0(void *c,void* p0); //method: address ::btIndexedMesh * ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh & ) const+void* btAlignedAllocator_btIndexedMesh_16u__address1(void *c,void* p0); //method: address ::btIndexedMesh const * ( ::btAlignedAllocator<btIndexedMesh, 16u>::* )( ::btIndexedMesh const & ) const+void* btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )(  ) +void btAlignedAllocator_btMultiSapBroadphase_btBridgeProxy_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btMultiSapBroadphase::btBridgeProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::size_type,::btMultiSapBroadphase::btBridgeProxy * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * *,::btMultiSapBroadphase::btBridgeProxy * const & ) +// error:  - unsupported, ::btMultiSapBroadphase::btBridgeProxy * - ok, void - ok++//not supported method: address ::btMultiSapBroadphase::btBridgeProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * & ) const+// error: ::btMultiSapBroadphase::btBridgeProxy * - ok,  - unsupported++//not supported method: address ::btMultiSapBroadphase::btBridgeProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * & ) const+// error: ::btMultiSapBroadphase::btBridgeProxy * - ok,  - unsupported++//not supported method: address ::btMultiSapBroadphase::btBridgeProxy * const * ( ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u>::* )( ::btMultiSapBroadphase::btBridgeProxy * const & ) const+// error: ::btMultiSapBroadphase::btBridgeProxy * - ok,  - unsupported++void* btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )(  ) +void btAlignedAllocator_btMultiSapBroadphase_btMultiSapProxy_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btMultiSapBroadphase::btMultiSapProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::size_type,::btMultiSapBroadphase::btMultiSapProxy * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * *,::btMultiSapBroadphase::btMultiSapProxy * const & ) +// error:  - unsupported, ::btMultiSapBroadphase::btMultiSapProxy * - ok, void - ok++//not supported method: address ::btMultiSapBroadphase::btMultiSapProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * & ) const+// error: ::btMultiSapBroadphase::btMultiSapProxy * - ok,  - unsupported++//not supported method: address ::btMultiSapBroadphase::btMultiSapProxy * * ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * & ) const+// error: ::btMultiSapBroadphase::btMultiSapProxy * - ok,  - unsupported++//not supported method: address ::btMultiSapBroadphase::btMultiSapProxy * const * ( ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u>::* )( ::btMultiSapBroadphase::btMultiSapProxy * const & ) const+// error: ::btMultiSapBroadphase::btMultiSapProxy * - ok,  - unsupported++void* btAlignedAllocator_btOptimizedBvhNode_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )(  ) +void btAlignedAllocator_btOptimizedBvhNode_16u__free(void *c); +void btAlignedAllocator_btOptimizedBvhNode_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode * ) +void btAlignedAllocator_btOptimizedBvhNode_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode * ) +//not supported method: allocate ::btOptimizedBvhNode * ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::size_type,::btOptimizedBvhNode const * * ) +// error:  - unsupported,  - unsupported, ::btOptimizedBvhNode * - ok++void btAlignedAllocator_btOptimizedBvhNode_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode *,::btOptimizedBvhNode const & ) +void* btAlignedAllocator_btOptimizedBvhNode_16u__address(void *c,void* p0); //method: address ::btOptimizedBvhNode * ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode & ) const+void* btAlignedAllocator_btOptimizedBvhNode_16u__address0(void *c,void* p0); //method: address ::btOptimizedBvhNode * ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode & ) const+void* btAlignedAllocator_btOptimizedBvhNode_16u__address1(void *c,void* p0); //method: address ::btOptimizedBvhNode const * ( ::btAlignedAllocator<btOptimizedBvhNode, 16u>::* )( ::btOptimizedBvhNode const & ) const+void* btAlignedAllocator_btPersistentManifold_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )(  ) +void btAlignedAllocator_btPersistentManifold_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btPersistentManifold * * ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::size_type,::btPersistentManifold * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * *,::btPersistentManifold * const & ) +// error:  - unsupported, ::btPersistentManifold * - ok, void - ok++//not supported method: address ::btPersistentManifold * * ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * & ) const+// error: ::btPersistentManifold * - ok,  - unsupported++//not supported method: address ::btPersistentManifold * * ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * & ) const+// error: ::btPersistentManifold * - ok,  - unsupported++//not supported method: address ::btPersistentManifold * const * ( ::btAlignedAllocator<btPersistentManifold*, 16u>::* )( ::btPersistentManifold * const & ) const+// error: ::btPersistentManifold * - ok,  - unsupported++void* btAlignedAllocator_btPointerUid_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btPointerUid, 16u>::* )(  ) +void btAlignedAllocator_btPointerUid_16u__free(void *c); +void btAlignedAllocator_btPointerUid_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid * ) +void btAlignedAllocator_btPointerUid_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid * ) +//not supported method: allocate ::btPointerUid * ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::size_type,::btPointerUid const * * ) +// error:  - unsupported,  - unsupported, ::btPointerUid * - ok++void btAlignedAllocator_btPointerUid_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid *,::btPointerUid const & ) +void* btAlignedAllocator_btPointerUid_16u__address(void *c,void* p0); //method: address ::btPointerUid * ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid & ) const+void* btAlignedAllocator_btPointerUid_16u__address0(void *c,void* p0); //method: address ::btPointerUid * ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid & ) const+void* btAlignedAllocator_btPointerUid_16u__address1(void *c,void* p0); //method: address ::btPointerUid const * ( ::btAlignedAllocator<btPointerUid, 16u>::* )( ::btPointerUid const & ) const+void* btAlignedAllocator_btQuantizedBvhNode_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )(  ) +void btAlignedAllocator_btQuantizedBvhNode_16u__free(void *c); +void btAlignedAllocator_btQuantizedBvhNode_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode * ) +void btAlignedAllocator_btQuantizedBvhNode_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode * ) +//not supported method: allocate ::btQuantizedBvhNode * ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::size_type,::btQuantizedBvhNode const * * ) +// error:  - unsupported,  - unsupported, ::btQuantizedBvhNode * - ok++void btAlignedAllocator_btQuantizedBvhNode_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode *,::btQuantizedBvhNode const & ) +void* btAlignedAllocator_btQuantizedBvhNode_16u__address(void *c,void* p0); //method: address ::btQuantizedBvhNode * ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode & ) const+void* btAlignedAllocator_btQuantizedBvhNode_16u__address0(void *c,void* p0); //method: address ::btQuantizedBvhNode * ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode & ) const+void* btAlignedAllocator_btQuantizedBvhNode_16u__address1(void *c,void* p0); //method: address ::btQuantizedBvhNode const * ( ::btAlignedAllocator<btQuantizedBvhNode, 16u>::* )( ::btQuantizedBvhNode const & ) const+void* btAlignedAllocator_btRigidBody_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btRigidBody*, 16u>::* )(  ) +void btAlignedAllocator_btRigidBody_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btRigidBody * * ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::size_type,::btRigidBody * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * *,::btRigidBody * const & ) +// error:  - unsupported, ::btRigidBody * - ok, void - ok++//not supported method: address ::btRigidBody * * ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * & ) const+// error: ::btRigidBody * - ok,  - unsupported++//not supported method: address ::btRigidBody * * ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * & ) const+// error: ::btRigidBody * - ok,  - unsupported++//not supported method: address ::btRigidBody * const * ( ::btAlignedAllocator<btRigidBody*, 16u>::* )( ::btRigidBody * const & ) const+// error: ::btRigidBody * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody*, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody * * ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::size_type,::btSoftBody * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * *,::btSoftBody * const & ) +// error:  - unsupported, ::btSoftBody * - ok, void - ok++//not supported method: address ::btSoftBody * * ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * & ) const+// error: ::btSoftBody * - ok,  - unsupported++//not supported method: address ::btSoftBody * * ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * & ) const+// error: ::btSoftBody * - ok,  - unsupported++//not supported method: address ::btSoftBody * const * ( ::btAlignedAllocator<btSoftBody*, 16u>::* )( ::btSoftBody * const & ) const+// error: ::btSoftBody * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_Anchor_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Anchor_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Anchor_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor * ) +void btAlignedAllocator_btSoftBody_Anchor_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor * ) +//not supported method: allocate ::btSoftBody::Anchor * ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::size_type,::btSoftBody::Anchor const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Anchor * - ok++void btAlignedAllocator_btSoftBody_Anchor_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor *,::btSoftBody::Anchor const & ) +void* btAlignedAllocator_btSoftBody_Anchor_16u__address(void *c,void* p0); //method: address ::btSoftBody::Anchor * ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor & ) const+void* btAlignedAllocator_btSoftBody_Anchor_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Anchor * ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor & ) const+void* btAlignedAllocator_btSoftBody_Anchor_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Anchor const * ( ::btAlignedAllocator<btSoftBody::Anchor, 16u>::* )( ::btSoftBody::Anchor const & ) const+void* btAlignedAllocator_btSoftBody_Cluster_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Cluster_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::Cluster * * ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::size_type,::btSoftBody::Cluster * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * *,::btSoftBody::Cluster * const & ) +// error:  - unsupported, ::btSoftBody::Cluster * - ok, void - ok++//not supported method: address ::btSoftBody::Cluster * * ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * & ) const+// error: ::btSoftBody::Cluster * - ok,  - unsupported++//not supported method: address ::btSoftBody::Cluster * * ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * & ) const+// error: ::btSoftBody::Cluster * - ok,  - unsupported++//not supported method: address ::btSoftBody::Cluster * const * ( ::btAlignedAllocator<btSoftBody::Cluster*, 16u>::* )( ::btSoftBody::Cluster * const & ) const+// error: ::btSoftBody::Cluster * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_Face_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Face_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Face_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face * ) +void btAlignedAllocator_btSoftBody_Face_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face * ) +//not supported method: allocate ::btSoftBody::Face * ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::size_type,::btSoftBody::Face const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Face * - ok++void btAlignedAllocator_btSoftBody_Face_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face *,::btSoftBody::Face const & ) +void* btAlignedAllocator_btSoftBody_Face_16u__address(void *c,void* p0); //method: address ::btSoftBody::Face * ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face & ) const+void* btAlignedAllocator_btSoftBody_Face_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Face * ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face & ) const+void* btAlignedAllocator_btSoftBody_Face_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Face const * ( ::btAlignedAllocator<btSoftBody::Face, 16u>::* )( ::btSoftBody::Face const & ) const+void* btAlignedAllocator_btSoftBody_Joint_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Joint_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::Joint * * ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::size_type,::btSoftBody::Joint * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * *,::btSoftBody::Joint * const & ) +// error:  - unsupported, ::btSoftBody::Joint * - ok, void - ok++//not supported method: address ::btSoftBody::Joint * * ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * & ) const+// error: ::btSoftBody::Joint * - ok,  - unsupported++//not supported method: address ::btSoftBody::Joint * * ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * & ) const+// error: ::btSoftBody::Joint * - ok,  - unsupported++//not supported method: address ::btSoftBody::Joint * const * ( ::btAlignedAllocator<btSoftBody::Joint*, 16u>::* )( ::btSoftBody::Joint * const & ) const+// error: ::btSoftBody::Joint * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_Link_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Link_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Link_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link * ) +void btAlignedAllocator_btSoftBody_Link_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link * ) +//not supported method: allocate ::btSoftBody::Link * ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::size_type,::btSoftBody::Link const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Link * - ok++void btAlignedAllocator_btSoftBody_Link_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link *,::btSoftBody::Link const & ) +void* btAlignedAllocator_btSoftBody_Link_16u__address(void *c,void* p0); //method: address ::btSoftBody::Link * ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link & ) const+void* btAlignedAllocator_btSoftBody_Link_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Link * ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link & ) const+void* btAlignedAllocator_btSoftBody_Link_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Link const * ( ::btAlignedAllocator<btSoftBody::Link, 16u>::* )( ::btSoftBody::Link const & ) const+void* btAlignedAllocator_btSoftBody_Material_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Material_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::Material * * ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::size_type,::btSoftBody::Material * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * *,::btSoftBody::Material * const & ) +// error:  - unsupported, ::btSoftBody::Material * - ok, void - ok++//not supported method: address ::btSoftBody::Material * * ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * & ) const+// error: ::btSoftBody::Material * - ok,  - unsupported++//not supported method: address ::btSoftBody::Material * * ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * & ) const+// error: ::btSoftBody::Material * - ok,  - unsupported++//not supported method: address ::btSoftBody::Material * const * ( ::btAlignedAllocator<btSoftBody::Material*, 16u>::* )( ::btSoftBody::Material * const & ) const+// error: ::btSoftBody::Material * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_Node_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Node_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::Node * * ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::size_type,::btSoftBody::Node * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * *,::btSoftBody::Node * const & ) +// error:  - unsupported, ::btSoftBody::Node * - ok, void - ok++//not supported method: address ::btSoftBody::Node * * ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * & ) const+// error: ::btSoftBody::Node * - ok,  - unsupported++//not supported method: address ::btSoftBody::Node * * ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * & ) const+// error: ::btSoftBody::Node * - ok,  - unsupported++//not supported method: address ::btSoftBody::Node * const * ( ::btAlignedAllocator<btSoftBody::Node*, 16u>::* )( ::btSoftBody::Node * const & ) const+// error: ::btSoftBody::Node * - ok,  - unsupported++void* btAlignedAllocator_btSoftBody_Node_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Node_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Node_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node * ) +void btAlignedAllocator_btSoftBody_Node_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node * ) +//not supported method: allocate ::btSoftBody::Node * ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::size_type,::btSoftBody::Node const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Node * - ok++void btAlignedAllocator_btSoftBody_Node_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node *,::btSoftBody::Node const & ) +void* btAlignedAllocator_btSoftBody_Node_16u__address(void *c,void* p0); //method: address ::btSoftBody::Node * ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node & ) const+void* btAlignedAllocator_btSoftBody_Node_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Node * ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node & ) const+void* btAlignedAllocator_btSoftBody_Node_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Node const * ( ::btAlignedAllocator<btSoftBody::Node, 16u>::* )( ::btSoftBody::Node const & ) const+void* btAlignedAllocator_btSoftBody_Note_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Note_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Note_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note * ) +void btAlignedAllocator_btSoftBody_Note_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note * ) +//not supported method: allocate ::btSoftBody::Note * ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::size_type,::btSoftBody::Note const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Note * - ok++void btAlignedAllocator_btSoftBody_Note_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note *,::btSoftBody::Note const & ) +void* btAlignedAllocator_btSoftBody_Note_16u__address(void *c,void* p0); //method: address ::btSoftBody::Note * ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note & ) const+void* btAlignedAllocator_btSoftBody_Note_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Note * ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note & ) const+void* btAlignedAllocator_btSoftBody_Note_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Note const * ( ::btAlignedAllocator<btSoftBody::Note, 16u>::* )( ::btSoftBody::Note const & ) const+void* btAlignedAllocator_btSoftBody_RContact_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_RContact_16u__free(void *c); +void btAlignedAllocator_btSoftBody_RContact_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact * ) +void btAlignedAllocator_btSoftBody_RContact_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact * ) +//not supported method: allocate ::btSoftBody::RContact * ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::size_type,::btSoftBody::RContact const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::RContact * - ok++void btAlignedAllocator_btSoftBody_RContact_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact *,::btSoftBody::RContact const & ) +void* btAlignedAllocator_btSoftBody_RContact_16u__address(void *c,void* p0); //method: address ::btSoftBody::RContact * ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact & ) const+void* btAlignedAllocator_btSoftBody_RContact_16u__address0(void *c,void* p0); //method: address ::btSoftBody::RContact * ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact & ) const+void* btAlignedAllocator_btSoftBody_RContact_16u__address1(void *c,void* p0); //method: address ::btSoftBody::RContact const * ( ::btAlignedAllocator<btSoftBody::RContact, 16u>::* )( ::btSoftBody::RContact const & ) const+void* btAlignedAllocator_btSoftBody_SContact_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_SContact_16u__free(void *c); +void btAlignedAllocator_btSoftBody_SContact_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact * ) +void btAlignedAllocator_btSoftBody_SContact_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact * ) +//not supported method: allocate ::btSoftBody::SContact * ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::size_type,::btSoftBody::SContact const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::SContact * - ok++void btAlignedAllocator_btSoftBody_SContact_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact *,::btSoftBody::SContact const & ) +void* btAlignedAllocator_btSoftBody_SContact_16u__address(void *c,void* p0); //method: address ::btSoftBody::SContact * ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact & ) const+void* btAlignedAllocator_btSoftBody_SContact_16u__address0(void *c,void* p0); //method: address ::btSoftBody::SContact * ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact & ) const+void* btAlignedAllocator_btSoftBody_SContact_16u__address1(void *c,void* p0); //method: address ::btSoftBody::SContact const * ( ::btAlignedAllocator<btSoftBody::SContact, 16u>::* )( ::btSoftBody::SContact const & ) const+void* btAlignedAllocator_btSoftBody_Tetra_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_Tetra_16u__free(void *c); +void btAlignedAllocator_btSoftBody_Tetra_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra * ) +void btAlignedAllocator_btSoftBody_Tetra_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra * ) +//not supported method: allocate ::btSoftBody::Tetra * ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::size_type,::btSoftBody::Tetra const * * ) +// error:  - unsupported,  - unsupported, ::btSoftBody::Tetra * - ok++void btAlignedAllocator_btSoftBody_Tetra_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra *,::btSoftBody::Tetra const & ) +void* btAlignedAllocator_btSoftBody_Tetra_16u__address(void *c,void* p0); //method: address ::btSoftBody::Tetra * ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra & ) const+void* btAlignedAllocator_btSoftBody_Tetra_16u__address0(void *c,void* p0); //method: address ::btSoftBody::Tetra * ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra & ) const+void* btAlignedAllocator_btSoftBody_Tetra_16u__address1(void *c,void* p0); //method: address ::btSoftBody::Tetra const * ( ::btAlignedAllocator<btSoftBody::Tetra, 16u>::* )( ::btSoftBody::Tetra const & ) const+void* btAlignedAllocator_btSoftBody_ePSolver___16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_ePSolver___16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::ePSolver::_ * ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::size_type,::btSoftBody::ePSolver::_ const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ *,::btSoftBody::ePSolver::_ const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address ::btSoftBody::ePSolver::_ * ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSoftBody::ePSolver::_ * ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSoftBody::ePSolver::_ const * ( ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u>::* )( ::btSoftBody::ePSolver::_ const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_btSoftBody_eVSolver___16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )(  ) +void btAlignedAllocator_btSoftBody_eVSolver___16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSoftBody::eVSolver::_ * ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::size_type,::btSoftBody::eVSolver::_ const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ *,::btSoftBody::eVSolver::_ const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address ::btSoftBody::eVSolver::_ * ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSoftBody::eVSolver::_ * ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSoftBody::eVSolver::_ const * ( ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u>::* )( ::btSoftBody::eVSolver::_ const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_btSolverConstraint_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )(  ) +void btAlignedAllocator_btSolverConstraint_16u__free(void *c); +void btAlignedAllocator_btSolverConstraint_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint * ) +void btAlignedAllocator_btSolverConstraint_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint * ) +//not supported method: allocate ::btSolverConstraint * ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::size_type,::btSolverConstraint const * * ) +// error:  - unsupported,  - unsupported, ::btSolverConstraint * - ok++void btAlignedAllocator_btSolverConstraint_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint *,::btSolverConstraint const & ) +void* btAlignedAllocator_btSolverConstraint_16u__address(void *c,void* p0); //method: address ::btSolverConstraint * ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint & ) const+void* btAlignedAllocator_btSolverConstraint_16u__address0(void *c,void* p0); //method: address ::btSolverConstraint * ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint & ) const+void* btAlignedAllocator_btSolverConstraint_16u__address1(void *c,void* p0); //method: address ::btSolverConstraint const * ( ::btAlignedAllocator<btSolverConstraint, 16u>::* )( ::btSolverConstraint const & ) const+void* btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )(  ) +void btAlignedAllocator_btSparseSdf_3__Cell_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btSparseSdf<3>::Cell * * ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::size_type,::btSparseSdf<3>::Cell * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * *,::btSparseSdf<3>::Cell * const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address ::btSparseSdf<3>::Cell * * ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSparseSdf<3>::Cell * * ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address ::btSparseSdf<3>::Cell * const * ( ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u>::* )( ::btSparseSdf<3>::Cell * const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_btTransform_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btTransform, 16u>::* )(  ) +void btAlignedAllocator_btTransform_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btTransform * ( ::btAlignedAllocator<btTransform, 16u>::* )( ::size_type,::btTransform const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform *,::btTransform const & ) +// error:  - unsupported, ::btTransform const & - ok, void - ok++//not supported method: address ::btTransform * ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform & ) const+// error: ::btTransform & - ok,  - unsupported++//not supported method: address ::btTransform * ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform & ) const+// error: ::btTransform & - ok,  - unsupported++//not supported method: address ::btTransform const * ( ::btAlignedAllocator<btTransform, 16u>::* )( ::btTransform const & ) const+// error: ::btTransform const & - ok,  - unsupported++void* btAlignedAllocator_btTriangleInfo_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )(  ) +void btAlignedAllocator_btTriangleInfo_16u__free(void *c); +void btAlignedAllocator_btTriangleInfo_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo * ) +void btAlignedAllocator_btTriangleInfo_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo * ) +//not supported method: allocate ::btTriangleInfo * ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::size_type,::btTriangleInfo const * * ) +// error:  - unsupported,  - unsupported, ::btTriangleInfo * - ok++void btAlignedAllocator_btTriangleInfo_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo *,::btTriangleInfo const & ) +void* btAlignedAllocator_btTriangleInfo_16u__address(void *c,void* p0); //method: address ::btTriangleInfo * ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo & ) const+void* btAlignedAllocator_btTriangleInfo_16u__address0(void *c,void* p0); //method: address ::btTriangleInfo * ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo & ) const+void* btAlignedAllocator_btTriangleInfo_16u__address1(void *c,void* p0); //method: address ::btTriangleInfo const * ( ::btAlignedAllocator<btTriangleInfo, 16u>::* )( ::btTriangleInfo const & ) const+void* btAlignedAllocator_btTypedConstraint_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )(  ) +void btAlignedAllocator_btTypedConstraint_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btTypedConstraint * * ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::size_type,::btTypedConstraint * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * *,::btTypedConstraint * const & ) +// error:  - unsupported, ::btTypedConstraint * - ok, void - ok++//not supported method: address ::btTypedConstraint * * ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * & ) const+// error: ::btTypedConstraint * - ok,  - unsupported++//not supported method: address ::btTypedConstraint * * ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * & ) const+// error: ::btTypedConstraint * - ok,  - unsupported++//not supported method: address ::btTypedConstraint * const * ( ::btAlignedAllocator<btTypedConstraint*, 16u>::* )( ::btTypedConstraint * const & ) const+// error: ::btTypedConstraint * - ok,  - unsupported++void* btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )(  ) +void btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__free(void *c); +void btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 * ) +//not supported method: allocate ::btTypedConstraint::btConstraintInfo1 * ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::size_type,::btTypedConstraint::btConstraintInfo1 const * * ) +// error:  - unsupported,  - unsupported, ::btTypedConstraint::btConstraintInfo1 * - ok++void btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 *,::btTypedConstraint::btConstraintInfo1 const & ) +void* btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address(void *c,void* p0); //method: address ::btTypedConstraint::btConstraintInfo1 * ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 & ) const+void* btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address0(void *c,void* p0); //method: address ::btTypedConstraint::btConstraintInfo1 * ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 & ) const+void* btAlignedAllocator_btTypedConstraint_btConstraintInfo1_16u__address1(void *c,void* p0); //method: address ::btTypedConstraint::btConstraintInfo1 const * ( ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u>::* )( ::btTypedConstraint::btConstraintInfo1 const & ) const+void* btAlignedAllocator_btVector3_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btVector3, 16u>::* )(  ) +void btAlignedAllocator_btVector3_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 * ) +// error:  - unsupported, void - ok++//not supported method: allocate ::btVector3 * ( ::btAlignedAllocator<btVector3, 16u>::* )( ::size_type,::btVector3 const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 *,::btVector3 const & ) +// error:  - unsupported, ::btVector3 const & - ok, void - ok++//not supported method: address ::btVector3 * ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 & ) const+// error: ::btVector3 & - ok,  - unsupported++//not supported method: address ::btVector3 * ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 & ) const+// error: ::btVector3 & - ok,  - unsupported++//not supported method: address ::btVector3 const * ( ::btAlignedAllocator<btVector3, 16u>::* )( ::btVector3 const & ) const+// error: ::btVector3 const & - ok,  - unsupported++void* btAlignedAllocator_btWheelInfo_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<btWheelInfo, 16u>::* )(  ) +void btAlignedAllocator_btWheelInfo_16u__free(void *c); +void btAlignedAllocator_btWheelInfo_16u__destroy(void *c,void* p0); //method: destroy void ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo * ) +void btAlignedAllocator_btWheelInfo_16u__deallocate(void *c,void* p0); //method: deallocate void ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo * ) +//not supported method: allocate ::btWheelInfo * ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::size_type,::btWheelInfo const * * ) +// error:  - unsupported,  - unsupported, ::btWheelInfo * - ok++void btAlignedAllocator_btWheelInfo_16u__construct(void *c,void* p0,void* p1); //method: construct void ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo *,::btWheelInfo const & ) +void* btAlignedAllocator_btWheelInfo_16u__address(void *c,void* p0); //method: address ::btWheelInfo * ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo & ) const+void* btAlignedAllocator_btWheelInfo_16u__address0(void *c,void* p0); //method: address ::btWheelInfo * ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo & ) const+void* btAlignedAllocator_btWheelInfo_16u__address1(void *c,void* p0); //method: address ::btWheelInfo const * ( ::btAlignedAllocator<btWheelInfo, 16u>::* )( ::btWheelInfo const & ) const+void* btAlignedAllocator_charconst_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<char const*, 16u>::* )(  ) +void btAlignedAllocator_charconst_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<char const*, 16u>::* )( char const * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<char const*, 16u>::* )( char const * * ) +// error:  - unsupported, void - ok++//not supported method: allocate char const * * ( ::btAlignedAllocator<char const*, 16u>::* )( ::size_type,char const * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<char const*, 16u>::* )( char const * *,char const * const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address char const * * ( ::btAlignedAllocator<char const*, 16u>::* )( char const * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address char const * * ( ::btAlignedAllocator<char const*, 16u>::* )( char const * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address char const * const * ( ::btAlignedAllocator<char const*, 16u>::* )( char const * const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_char_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<char*, 16u>::* )(  ) +void btAlignedAllocator_char_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<char*, 16u>::* )( char * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<char*, 16u>::* )( char * * ) +// error:  - unsupported, void - ok++//not supported method: allocate char * * ( ::btAlignedAllocator<char*, 16u>::* )( ::size_type,char * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<char*, 16u>::* )( char * *,char * const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address char * * ( ::btAlignedAllocator<char*, 16u>::* )( char * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address char * * ( ::btAlignedAllocator<char*, 16u>::* )( char * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address char * const * ( ::btAlignedAllocator<char*, 16u>::* )( char * const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_float_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<float, 16u>::* )(  ) +void btAlignedAllocator_float_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<float, 16u>::* )( float * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<float, 16u>::* )( float * ) +// error:  - unsupported, void - ok++//not supported method: allocate float * ( ::btAlignedAllocator<float, 16u>::* )( ::size_type,float const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<float, 16u>::* )( float *,float const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address float * ( ::btAlignedAllocator<float, 16u>::* )( float & ) const+// error:  - unsupported,  - unsupported++//not supported method: address float * ( ::btAlignedAllocator<float, 16u>::* )( float & ) const+// error:  - unsupported,  - unsupported++//not supported method: address float const * ( ::btAlignedAllocator<float, 16u>::* )( float const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_int_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<int, 16u>::* )(  ) +void btAlignedAllocator_int_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<int, 16u>::* )( int * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<int, 16u>::* )( int * ) +// error:  - unsupported, void - ok++//not supported method: allocate int * ( ::btAlignedAllocator<int, 16u>::* )( ::size_type,int const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<int, 16u>::* )( int *,int const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address int * ( ::btAlignedAllocator<int, 16u>::* )( int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address int * ( ::btAlignedAllocator<int, 16u>::* )( int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address int const * ( ::btAlignedAllocator<int, 16u>::* )( int const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_short_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<short*, 16u>::* )(  ) +void btAlignedAllocator_short_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<short*, 16u>::* )( short int * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<short*, 16u>::* )( short int * * ) +// error:  - unsupported, void - ok++//not supported method: allocate short int * * ( ::btAlignedAllocator<short*, 16u>::* )( ::size_type,short int * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<short*, 16u>::* )( short int * *,short int * const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address short int * * ( ::btAlignedAllocator<short*, 16u>::* )( short int * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short int * * ( ::btAlignedAllocator<short*, 16u>::* )( short int * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short int * const * ( ::btAlignedAllocator<short*, 16u>::* )( short int * const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_short_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<short, 16u>::* )(  ) +void btAlignedAllocator_short_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<short, 16u>::* )( short int * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<short, 16u>::* )( short int * ) +// error:  - unsupported, void - ok++//not supported method: allocate short int * ( ::btAlignedAllocator<short, 16u>::* )( ::size_type,short int const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<short, 16u>::* )( short int *,short int const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address short int * ( ::btAlignedAllocator<short, 16u>::* )( short int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short int * ( ::btAlignedAllocator<short, 16u>::* )( short int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short int const * ( ::btAlignedAllocator<short, 16u>::* )( short int const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_unsignedint_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<unsigned int, 16u>::* )(  ) +void btAlignedAllocator_unsignedint_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int * ) +// error:  - unsupported, void - ok++//not supported method: allocate unsigned int * ( ::btAlignedAllocator<unsigned int, 16u>::* )( ::size_type,unsigned int const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int *,unsigned int const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address unsigned int * ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address unsigned int * ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address unsigned int const * ( ::btAlignedAllocator<unsigned int, 16u>::* )( unsigned int const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_unsignedshort_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<unsigned short, 16u>::* )(  ) +void btAlignedAllocator_unsignedshort_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int * ) +// error:  - unsupported, void - ok++//not supported method: allocate short unsigned int * ( ::btAlignedAllocator<unsigned short, 16u>::* )( ::size_type,short unsigned int const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int *,short unsigned int const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address short unsigned int * ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short unsigned int * ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int & ) const+// error:  - unsupported,  - unsupported++//not supported method: address short unsigned int const * ( ::btAlignedAllocator<unsigned short, 16u>::* )( short unsigned int const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedAllocator_void_ptr_16u__new(); //constructor: btAlignedAllocator  ( ::btAlignedAllocator<void*, 16u>::* )(  ) +void btAlignedAllocator_void_ptr_16u__free(void *c); +//not supported method: destroy void ( ::btAlignedAllocator<void*, 16u>::* )( void * * ) +// error:  - unsupported, void - ok++//not supported method: deallocate void ( ::btAlignedAllocator<void*, 16u>::* )( void * * ) +// error:  - unsupported, void - ok++//not supported method: allocate void * * ( ::btAlignedAllocator<void*, 16u>::* )( ::size_type,void * const * * ) +// error:  - unsupported,  - unsupported,  - unsupported++//not supported method: construct void ( ::btAlignedAllocator<void*, 16u>::* )( void * *,void * const & ) +// error:  - unsupported,  - unsupported, void - ok++//not supported method: address void * * ( ::btAlignedAllocator<void*, 16u>::* )( void * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address void * * ( ::btAlignedAllocator<void*, 16u>::* )( void * & ) const+// error:  - unsupported,  - unsupported++//not supported method: address void * const * ( ::btAlignedAllocator<void*, 16u>::* )( void * const & ) const+// error:  - unsupported,  - unsupported++void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__free(void *c); +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( ::BT_QUANTIZED_BVH_NODE const & ) +void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at(void *c,int p0); //method: at ::BT_QUANTIZED_BVH_NODE const & ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) const+void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at0(void *c,int p0); //method: at ::BT_QUANTIZED_BVH_NODE const & ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) const+void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__at1(void *c,int p0); //method: at ::BT_QUANTIZED_BVH_NODE & ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) +int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__size(void *c); //method: size int ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) const+int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) const+void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__init(void *c); //method: init void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int,int ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( void *,int,int ) +void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expandNonInitializing(void *c); //method: expandNonInitializing ::BT_QUANTIZED_BVH_NODE & ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int,::BT_QUANTIZED_BVH_NODE const & ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int,int ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int,int,::BT_QUANTIZED_BVH_NODE * ) const+void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__expand(void *c,void* p0); //method: expand ::BT_QUANTIZED_BVH_NODE & ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( ::BT_QUANTIZED_BVH_NODE const & ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__clear(void *c); //method: clear void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )(  ) +int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<BT_QUANTIZED_BVH_NODE>::* )( int ) +void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u> btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_allocator+void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<BT_QUANTIZED_BVH_NODE, 16u> btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_allocator+void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_size+int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_size_get(void *c); //attribute: int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_size+void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_capacity+int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_capacity+void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_data_set(void *c,void* a); //attribute: ::BT_QUANTIZED_BVH_NODE * btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_data+void* btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_data_get(void *c); //attribute: ::BT_QUANTIZED_BVH_NODE * btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_data+void btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_ownsMemory+int btAlignedObjectArray_BT_QUANTIZED_BVH_NODE__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_BT_QUANTIZED_BVH_NODE_->m_ownsMemory+void* btAlignedObjectArray_GIM_BVH_DATA__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +void btAlignedObjectArray_GIM_BVH_DATA__free(void *c); +void btAlignedObjectArray_GIM_BVH_DATA__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( ::GIM_BVH_DATA const & ) +void* btAlignedObjectArray_GIM_BVH_DATA__at(void *c,int p0); //method: at ::GIM_BVH_DATA const & ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) const+void* btAlignedObjectArray_GIM_BVH_DATA__at0(void *c,int p0); //method: at ::GIM_BVH_DATA const & ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) const+void* btAlignedObjectArray_GIM_BVH_DATA__at1(void *c,int p0); //method: at ::GIM_BVH_DATA & ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) +int btAlignedObjectArray_GIM_BVH_DATA__size(void *c); //method: size int ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) const+int btAlignedObjectArray_GIM_BVH_DATA__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) const+void btAlignedObjectArray_GIM_BVH_DATA__init(void *c); //method: init void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +void* btAlignedObjectArray_GIM_BVH_DATA__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) +void btAlignedObjectArray_GIM_BVH_DATA__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +void btAlignedObjectArray_GIM_BVH_DATA__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +void btAlignedObjectArray_GIM_BVH_DATA__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int,int ) +void btAlignedObjectArray_GIM_BVH_DATA__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( void *,int,int ) +void* btAlignedObjectArray_GIM_BVH_DATA__expandNonInitializing(void *c); //method: expandNonInitializing ::GIM_BVH_DATA & ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +void btAlignedObjectArray_GIM_BVH_DATA__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int,::GIM_BVH_DATA const & ) +void btAlignedObjectArray_GIM_BVH_DATA__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int,int ) +void btAlignedObjectArray_GIM_BVH_DATA__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int,int,::GIM_BVH_DATA * ) const+void* btAlignedObjectArray_GIM_BVH_DATA__expand(void *c,void* p0); //method: expand ::GIM_BVH_DATA & ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( ::GIM_BVH_DATA const & ) +void btAlignedObjectArray_GIM_BVH_DATA__clear(void *c); //method: clear void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )(  ) +int btAlignedObjectArray_GIM_BVH_DATA__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) +void btAlignedObjectArray_GIM_BVH_DATA__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<GIM_BVH_DATA>::* )( int ) +void btAlignedObjectArray_GIM_BVH_DATA__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<GIM_BVH_DATA, 16u> btAlignedObjectArray_GIM_BVH_DATA_->m_allocator+void* btAlignedObjectArray_GIM_BVH_DATA__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<GIM_BVH_DATA, 16u> btAlignedObjectArray_GIM_BVH_DATA_->m_allocator+void btAlignedObjectArray_GIM_BVH_DATA__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_BVH_DATA_->m_size+int btAlignedObjectArray_GIM_BVH_DATA__m_size_get(void *c); //attribute: int btAlignedObjectArray_GIM_BVH_DATA_->m_size+void btAlignedObjectArray_GIM_BVH_DATA__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_BVH_DATA_->m_capacity+int btAlignedObjectArray_GIM_BVH_DATA__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_GIM_BVH_DATA_->m_capacity+void btAlignedObjectArray_GIM_BVH_DATA__m_data_set(void *c,void* a); //attribute: ::GIM_BVH_DATA * btAlignedObjectArray_GIM_BVH_DATA_->m_data+void* btAlignedObjectArray_GIM_BVH_DATA__m_data_get(void *c); //attribute: ::GIM_BVH_DATA * btAlignedObjectArray_GIM_BVH_DATA_->m_data+void btAlignedObjectArray_GIM_BVH_DATA__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_GIM_BVH_DATA_->m_ownsMemory+int btAlignedObjectArray_GIM_BVH_DATA__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_GIM_BVH_DATA_->m_ownsMemory+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__free(void *c); +void btAlignedObjectArray_GIM_BVH_TREE_NODE__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( ::GIM_BVH_TREE_NODE const & ) +void* btAlignedObjectArray_GIM_BVH_TREE_NODE__at(void *c,int p0); //method: at ::GIM_BVH_TREE_NODE const & ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) const+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__at0(void *c,int p0); //method: at ::GIM_BVH_TREE_NODE const & ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) const+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__at1(void *c,int p0); //method: at ::GIM_BVH_TREE_NODE & ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) +int btAlignedObjectArray_GIM_BVH_TREE_NODE__size(void *c); //method: size int ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) const+int btAlignedObjectArray_GIM_BVH_TREE_NODE__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) const+void btAlignedObjectArray_GIM_BVH_TREE_NODE__init(void *c); //method: init void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +void* btAlignedObjectArray_GIM_BVH_TREE_NODE__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int,int ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( void *,int,int ) +void* btAlignedObjectArray_GIM_BVH_TREE_NODE__expandNonInitializing(void *c); //method: expandNonInitializing ::GIM_BVH_TREE_NODE & ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int,::GIM_BVH_TREE_NODE const & ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int,int ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int,int,::GIM_BVH_TREE_NODE * ) const+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__expand(void *c,void* p0); //method: expand ::GIM_BVH_TREE_NODE & ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( ::GIM_BVH_TREE_NODE const & ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__clear(void *c); //method: clear void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )(  ) +int btAlignedObjectArray_GIM_BVH_TREE_NODE__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<GIM_BVH_TREE_NODE>::* )( int ) +void btAlignedObjectArray_GIM_BVH_TREE_NODE__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u> btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_allocator+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<GIM_BVH_TREE_NODE, 16u> btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_allocator+void btAlignedObjectArray_GIM_BVH_TREE_NODE__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_size+int btAlignedObjectArray_GIM_BVH_TREE_NODE__m_size_get(void *c); //attribute: int btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_size+void btAlignedObjectArray_GIM_BVH_TREE_NODE__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_capacity+int btAlignedObjectArray_GIM_BVH_TREE_NODE__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_capacity+void btAlignedObjectArray_GIM_BVH_TREE_NODE__m_data_set(void *c,void* a); //attribute: ::GIM_BVH_TREE_NODE * btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_data+void* btAlignedObjectArray_GIM_BVH_TREE_NODE__m_data_get(void *c); //attribute: ::GIM_BVH_TREE_NODE * btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_data+void btAlignedObjectArray_GIM_BVH_TREE_NODE__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_ownsMemory+int btAlignedObjectArray_GIM_BVH_TREE_NODE__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_GIM_BVH_TREE_NODE_->m_ownsMemory+void* btAlignedObjectArray_GIM_PAIR__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +void btAlignedObjectArray_GIM_PAIR__free(void *c); +void btAlignedObjectArray_GIM_PAIR__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<GIM_PAIR>::* )( ::GIM_PAIR const & ) +void* btAlignedObjectArray_GIM_PAIR__at(void *c,int p0); //method: at ::GIM_PAIR const & ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) const+void* btAlignedObjectArray_GIM_PAIR__at0(void *c,int p0); //method: at ::GIM_PAIR const & ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) const+void* btAlignedObjectArray_GIM_PAIR__at1(void *c,int p0); //method: at ::GIM_PAIR & ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) +int btAlignedObjectArray_GIM_PAIR__size(void *c); //method: size int ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) const+int btAlignedObjectArray_GIM_PAIR__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) const+void btAlignedObjectArray_GIM_PAIR__init(void *c); //method: init void ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +void* btAlignedObjectArray_GIM_PAIR__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) +void btAlignedObjectArray_GIM_PAIR__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +void btAlignedObjectArray_GIM_PAIR__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +void btAlignedObjectArray_GIM_PAIR__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<GIM_PAIR>::* )( int,int ) +void btAlignedObjectArray_GIM_PAIR__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<GIM_PAIR>::* )( void *,int,int ) +void* btAlignedObjectArray_GIM_PAIR__expandNonInitializing(void *c); //method: expandNonInitializing ::GIM_PAIR & ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +void btAlignedObjectArray_GIM_PAIR__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<GIM_PAIR>::* )( int,::GIM_PAIR const & ) +void btAlignedObjectArray_GIM_PAIR__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<GIM_PAIR>::* )( int,int ) +void btAlignedObjectArray_GIM_PAIR__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<GIM_PAIR>::* )( int,int,::GIM_PAIR * ) const+void* btAlignedObjectArray_GIM_PAIR__expand(void *c,void* p0); //method: expand ::GIM_PAIR & ( ::btAlignedObjectArray<GIM_PAIR>::* )( ::GIM_PAIR const & ) +void btAlignedObjectArray_GIM_PAIR__clear(void *c); //method: clear void ( ::btAlignedObjectArray<GIM_PAIR>::* )(  ) +int btAlignedObjectArray_GIM_PAIR__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) +void btAlignedObjectArray_GIM_PAIR__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<GIM_PAIR>::* )( int ) +void btAlignedObjectArray_GIM_PAIR__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<GIM_PAIR, 16u> btAlignedObjectArray_GIM_PAIR_->m_allocator+void* btAlignedObjectArray_GIM_PAIR__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<GIM_PAIR, 16u> btAlignedObjectArray_GIM_PAIR_->m_allocator+void btAlignedObjectArray_GIM_PAIR__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_PAIR_->m_size+int btAlignedObjectArray_GIM_PAIR__m_size_get(void *c); //attribute: int btAlignedObjectArray_GIM_PAIR_->m_size+void btAlignedObjectArray_GIM_PAIR__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_GIM_PAIR_->m_capacity+int btAlignedObjectArray_GIM_PAIR__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_GIM_PAIR_->m_capacity+void btAlignedObjectArray_GIM_PAIR__m_data_set(void *c,void* a); //attribute: ::GIM_PAIR * btAlignedObjectArray_GIM_PAIR_->m_data+void* btAlignedObjectArray_GIM_PAIR__m_data_get(void *c); //attribute: ::GIM_PAIR * btAlignedObjectArray_GIM_PAIR_->m_data+void btAlignedObjectArray_GIM_PAIR__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_GIM_PAIR_->m_ownsMemory+int btAlignedObjectArray_GIM_PAIR__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_GIM_PAIR_->m_ownsMemory+void* btAlignedObjectArray_bool__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<bool>::* )(  ) +void btAlignedObjectArray_bool__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<bool>::* )( bool const & ) +// error:  - unsupported, void - ok++//not supported method: at bool const & ( ::btAlignedObjectArray<bool>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at bool const & ( ::btAlignedObjectArray<bool>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at bool & ( ::btAlignedObjectArray<bool>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_bool__size(void *c); //method: size int ( ::btAlignedObjectArray<bool>::* )(  ) const+int btAlignedObjectArray_bool__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<bool>::* )(  ) const+void btAlignedObjectArray_bool__init(void *c); //method: init void ( ::btAlignedObjectArray<bool>::* )(  ) +void btAlignedObjectArray_bool__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<bool>::* )( int,int ) +void btAlignedObjectArray_bool__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<bool>::* )(  ) +void btAlignedObjectArray_bool__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<bool>::* )(  ) +void* btAlignedObjectArray_bool__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<bool>::* )( int ) +void btAlignedObjectArray_bool__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<bool>::* )( void *,int,int ) +//not supported method: expandNonInitializing bool & ( ::btAlignedObjectArray<bool>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_bool__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<bool>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<bool>::* )( int,int,bool * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<bool>::* )( int,bool const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_bool__clear(void *c); //method: clear void ( ::btAlignedObjectArray<bool>::* )(  ) +int btAlignedObjectArray_bool__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<bool>::* )( int ) +//not supported method: expand bool & ( ::btAlignedObjectArray<bool>::* )( bool const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_bool__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<bool>::* )( int ) +void btAlignedObjectArray_bool__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<bool, 16u> btAlignedObjectArray_bool_->m_allocator+void* btAlignedObjectArray_bool__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<bool, 16u> btAlignedObjectArray_bool_->m_allocator+void btAlignedObjectArray_bool__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_bool_->m_capacity+int btAlignedObjectArray_bool__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_bool_->m_capacity+// attribute not supported: //attribute: bool * btAlignedObjectArray_bool_->m_data+void btAlignedObjectArray_bool__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_bool_->m_ownsMemory+int btAlignedObjectArray_bool__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_bool_->m_ownsMemory+void btAlignedObjectArray_bool__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_bool_->m_size+int btAlignedObjectArray_bool__m_size_get(void *c); //attribute: int btAlignedObjectArray_bool_->m_size+void* btAlignedObjectArray_btActionInterface_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +void btAlignedObjectArray_btActionInterface_ptr__free(void *c); +void btAlignedObjectArray_btActionInterface_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btActionInterface*>::* )( ::btActionInterface * const & ) +void* btAlignedObjectArray_btActionInterface_ptr__at(void *c,int p0); //method: at ::btActionInterface * const & ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) const+void* btAlignedObjectArray_btActionInterface_ptr__at0(void *c,int p0); //method: at ::btActionInterface * const & ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) const+void* btAlignedObjectArray_btActionInterface_ptr__at1(void *c,int p0); //method: at ::btActionInterface * & ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) +int btAlignedObjectArray_btActionInterface_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) const+int btAlignedObjectArray_btActionInterface_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) const+void btAlignedObjectArray_btActionInterface_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +void* btAlignedObjectArray_btActionInterface_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) +void btAlignedObjectArray_btActionInterface_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +void btAlignedObjectArray_btActionInterface_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +void btAlignedObjectArray_btActionInterface_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btActionInterface*>::* )( int,int ) +void btAlignedObjectArray_btActionInterface_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btActionInterface*>::* )( void *,int,int ) +void* btAlignedObjectArray_btActionInterface_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btActionInterface * & ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +void btAlignedObjectArray_btActionInterface_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btActionInterface*>::* )( int,::btActionInterface * const & ) +void btAlignedObjectArray_btActionInterface_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btActionInterface*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btActionInterface*>::* )( int,int,::btActionInterface * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btActionInterface_ptr__expand(void *c,void* p0); //method: expand ::btActionInterface * & ( ::btAlignedObjectArray<btActionInterface*>::* )( ::btActionInterface * const & ) +void btAlignedObjectArray_btActionInterface_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btActionInterface*>::* )(  ) +int btAlignedObjectArray_btActionInterface_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) +void btAlignedObjectArray_btActionInterface_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btActionInterface*>::* )( int ) +void btAlignedObjectArray_btActionInterface_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btActionInterface*, 16u> btAlignedObjectArray_btActionInterface_ptr_->m_allocator+void* btAlignedObjectArray_btActionInterface_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btActionInterface*, 16u> btAlignedObjectArray_btActionInterface_ptr_->m_allocator+void btAlignedObjectArray_btActionInterface_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btActionInterface_ptr_->m_size+int btAlignedObjectArray_btActionInterface_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btActionInterface_ptr_->m_size+void btAlignedObjectArray_btActionInterface_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btActionInterface_ptr_->m_capacity+int btAlignedObjectArray_btActionInterface_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btActionInterface_ptr_->m_capacity+// attribute not supported: //attribute: ::btActionInterface * * btAlignedObjectArray_btActionInterface_ptr_->m_data+void btAlignedObjectArray_btActionInterface_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btActionInterface_ptr_->m_ownsMemory+int btAlignedObjectArray_btActionInterface_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btActionInterface_ptr_->m_ownsMemory+void* btAlignedObjectArray_btBroadphaseInterface_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__free(void *c); +void btAlignedObjectArray_btBroadphaseInterface_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( ::btBroadphaseInterface * const & ) +void* btAlignedObjectArray_btBroadphaseInterface_ptr__at(void *c,int p0); //method: at ::btBroadphaseInterface * const & ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) const+void* btAlignedObjectArray_btBroadphaseInterface_ptr__at0(void *c,int p0); //method: at ::btBroadphaseInterface * const & ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) const+void* btAlignedObjectArray_btBroadphaseInterface_ptr__at1(void *c,int p0); //method: at ::btBroadphaseInterface * & ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) +int btAlignedObjectArray_btBroadphaseInterface_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) const+int btAlignedObjectArray_btBroadphaseInterface_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) const+void btAlignedObjectArray_btBroadphaseInterface_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +void* btAlignedObjectArray_btBroadphaseInterface_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int,int ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( void *,int,int ) +void* btAlignedObjectArray_btBroadphaseInterface_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btBroadphaseInterface * & ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int,::btBroadphaseInterface * const & ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int,int,::btBroadphaseInterface * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btBroadphaseInterface_ptr__expand(void *c,void* p0); //method: expand ::btBroadphaseInterface * & ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( ::btBroadphaseInterface * const & ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )(  ) +int btAlignedObjectArray_btBroadphaseInterface_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btBroadphaseInterface*>::* )( int ) +void btAlignedObjectArray_btBroadphaseInterface_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btBroadphaseInterface*, 16u> btAlignedObjectArray_btBroadphaseInterface_ptr_->m_allocator+void* btAlignedObjectArray_btBroadphaseInterface_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btBroadphaseInterface*, 16u> btAlignedObjectArray_btBroadphaseInterface_ptr_->m_allocator+void btAlignedObjectArray_btBroadphaseInterface_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btBroadphaseInterface_ptr_->m_size+int btAlignedObjectArray_btBroadphaseInterface_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btBroadphaseInterface_ptr_->m_size+void btAlignedObjectArray_btBroadphaseInterface_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btBroadphaseInterface_ptr_->m_capacity+int btAlignedObjectArray_btBroadphaseInterface_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btBroadphaseInterface_ptr_->m_capacity+// attribute not supported: //attribute: ::btBroadphaseInterface * * btAlignedObjectArray_btBroadphaseInterface_ptr_->m_data+void btAlignedObjectArray_btBroadphaseInterface_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btBroadphaseInterface_ptr_->m_ownsMemory+int btAlignedObjectArray_btBroadphaseInterface_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btBroadphaseInterface_ptr_->m_ownsMemory+void* btAlignedObjectArray_btBroadphasePair__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +void btAlignedObjectArray_btBroadphasePair__free(void *c); +void btAlignedObjectArray_btBroadphasePair__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btBroadphasePair>::* )( ::btBroadphasePair const & ) +void* btAlignedObjectArray_btBroadphasePair__at(void *c,int p0); //method: at ::btBroadphasePair const & ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) const+void* btAlignedObjectArray_btBroadphasePair__at0(void *c,int p0); //method: at ::btBroadphasePair const & ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) const+void* btAlignedObjectArray_btBroadphasePair__at1(void *c,int p0); //method: at ::btBroadphasePair & ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) +int btAlignedObjectArray_btBroadphasePair__size(void *c); //method: size int ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) const+int btAlignedObjectArray_btBroadphasePair__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) const+void btAlignedObjectArray_btBroadphasePair__init(void *c); //method: init void ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +void* btAlignedObjectArray_btBroadphasePair__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) +void btAlignedObjectArray_btBroadphasePair__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +void btAlignedObjectArray_btBroadphasePair__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +void btAlignedObjectArray_btBroadphasePair__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btBroadphasePair>::* )( int,int ) +void btAlignedObjectArray_btBroadphasePair__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btBroadphasePair>::* )( void *,int,int ) +void* btAlignedObjectArray_btBroadphasePair__expandNonInitializing(void *c); //method: expandNonInitializing ::btBroadphasePair & ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +void btAlignedObjectArray_btBroadphasePair__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btBroadphasePair>::* )( int,::btBroadphasePair const & ) +void btAlignedObjectArray_btBroadphasePair__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btBroadphasePair>::* )( int,int ) +void btAlignedObjectArray_btBroadphasePair__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btBroadphasePair>::* )( int,int,::btBroadphasePair * ) const+void* btAlignedObjectArray_btBroadphasePair__expand(void *c,void* p0); //method: expand ::btBroadphasePair & ( ::btAlignedObjectArray<btBroadphasePair>::* )( ::btBroadphasePair const & ) +void btAlignedObjectArray_btBroadphasePair__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btBroadphasePair>::* )(  ) +int btAlignedObjectArray_btBroadphasePair__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) +void btAlignedObjectArray_btBroadphasePair__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btBroadphasePair>::* )( int ) +void btAlignedObjectArray_btBroadphasePair__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btBroadphasePair, 16u> btAlignedObjectArray_btBroadphasePair_->m_allocator+void* btAlignedObjectArray_btBroadphasePair__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btBroadphasePair, 16u> btAlignedObjectArray_btBroadphasePair_->m_allocator+void btAlignedObjectArray_btBroadphasePair__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btBroadphasePair_->m_size+int btAlignedObjectArray_btBroadphasePair__m_size_get(void *c); //attribute: int btAlignedObjectArray_btBroadphasePair_->m_size+void btAlignedObjectArray_btBroadphasePair__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btBroadphasePair_->m_capacity+int btAlignedObjectArray_btBroadphasePair__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btBroadphasePair_->m_capacity+void btAlignedObjectArray_btBroadphasePair__m_data_set(void *c,void* a); //attribute: ::btBroadphasePair * btAlignedObjectArray_btBroadphasePair_->m_data+void* btAlignedObjectArray_btBroadphasePair__m_data_get(void *c); //attribute: ::btBroadphasePair * btAlignedObjectArray_btBroadphasePair_->m_data+void btAlignedObjectArray_btBroadphasePair__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btBroadphasePair_->m_ownsMemory+int btAlignedObjectArray_btBroadphasePair__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btBroadphasePair_->m_ownsMemory+void* btAlignedObjectArray_btBvhSubtreeInfo__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +void btAlignedObjectArray_btBvhSubtreeInfo__free(void *c); +void btAlignedObjectArray_btBvhSubtreeInfo__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( ::btBvhSubtreeInfo const & ) +void* btAlignedObjectArray_btBvhSubtreeInfo__at(void *c,int p0); //method: at ::btBvhSubtreeInfo const & ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) const+void* btAlignedObjectArray_btBvhSubtreeInfo__at0(void *c,int p0); //method: at ::btBvhSubtreeInfo const & ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) const+void* btAlignedObjectArray_btBvhSubtreeInfo__at1(void *c,int p0); //method: at ::btBvhSubtreeInfo & ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) +int btAlignedObjectArray_btBvhSubtreeInfo__size(void *c); //method: size int ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) const+int btAlignedObjectArray_btBvhSubtreeInfo__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) const+void btAlignedObjectArray_btBvhSubtreeInfo__init(void *c); //method: init void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +void* btAlignedObjectArray_btBvhSubtreeInfo__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) +void btAlignedObjectArray_btBvhSubtreeInfo__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +void btAlignedObjectArray_btBvhSubtreeInfo__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +void btAlignedObjectArray_btBvhSubtreeInfo__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int,int ) +void btAlignedObjectArray_btBvhSubtreeInfo__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( void *,int,int ) +void* btAlignedObjectArray_btBvhSubtreeInfo__expandNonInitializing(void *c); //method: expandNonInitializing ::btBvhSubtreeInfo & ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +void btAlignedObjectArray_btBvhSubtreeInfo__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int,::btBvhSubtreeInfo const & ) +void btAlignedObjectArray_btBvhSubtreeInfo__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int,int ) +void btAlignedObjectArray_btBvhSubtreeInfo__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int,int,::btBvhSubtreeInfo * ) const+void* btAlignedObjectArray_btBvhSubtreeInfo__expand(void *c,void* p0); //method: expand ::btBvhSubtreeInfo & ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( ::btBvhSubtreeInfo const & ) +void btAlignedObjectArray_btBvhSubtreeInfo__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )(  ) +int btAlignedObjectArray_btBvhSubtreeInfo__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) +void btAlignedObjectArray_btBvhSubtreeInfo__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btBvhSubtreeInfo>::* )( int ) +void btAlignedObjectArray_btBvhSubtreeInfo__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btBvhSubtreeInfo, 16u> btAlignedObjectArray_btBvhSubtreeInfo_->m_allocator+void* btAlignedObjectArray_btBvhSubtreeInfo__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btBvhSubtreeInfo, 16u> btAlignedObjectArray_btBvhSubtreeInfo_->m_allocator+void btAlignedObjectArray_btBvhSubtreeInfo__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btBvhSubtreeInfo_->m_size+int btAlignedObjectArray_btBvhSubtreeInfo__m_size_get(void *c); //attribute: int btAlignedObjectArray_btBvhSubtreeInfo_->m_size+void btAlignedObjectArray_btBvhSubtreeInfo__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btBvhSubtreeInfo_->m_capacity+int btAlignedObjectArray_btBvhSubtreeInfo__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btBvhSubtreeInfo_->m_capacity+void btAlignedObjectArray_btBvhSubtreeInfo__m_data_set(void *c,void* a); //attribute: ::btBvhSubtreeInfo * btAlignedObjectArray_btBvhSubtreeInfo_->m_data+void* btAlignedObjectArray_btBvhSubtreeInfo__m_data_get(void *c); //attribute: ::btBvhSubtreeInfo * btAlignedObjectArray_btBvhSubtreeInfo_->m_data+void btAlignedObjectArray_btBvhSubtreeInfo__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btBvhSubtreeInfo_->m_ownsMemory+int btAlignedObjectArray_btBvhSubtreeInfo__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btBvhSubtreeInfo_->m_ownsMemory+void* btAlignedObjectArray_btChunk_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btChunk*>::* )(  ) +void btAlignedObjectArray_btChunk_ptr__free(void *c); +void btAlignedObjectArray_btChunk_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btChunk*>::* )( ::btChunk * const & ) +void* btAlignedObjectArray_btChunk_ptr__at(void *c,int p0); //method: at ::btChunk * const & ( ::btAlignedObjectArray<btChunk*>::* )( int ) const+void* btAlignedObjectArray_btChunk_ptr__at0(void *c,int p0); //method: at ::btChunk * const & ( ::btAlignedObjectArray<btChunk*>::* )( int ) const+void* btAlignedObjectArray_btChunk_ptr__at1(void *c,int p0); //method: at ::btChunk * & ( ::btAlignedObjectArray<btChunk*>::* )( int ) +int btAlignedObjectArray_btChunk_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btChunk*>::* )(  ) const+int btAlignedObjectArray_btChunk_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btChunk*>::* )(  ) const+void btAlignedObjectArray_btChunk_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btChunk*>::* )(  ) +void* btAlignedObjectArray_btChunk_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btChunk*>::* )( int ) +void btAlignedObjectArray_btChunk_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btChunk*>::* )(  ) +void btAlignedObjectArray_btChunk_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btChunk*>::* )(  ) +void btAlignedObjectArray_btChunk_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btChunk*>::* )( int,int ) +void btAlignedObjectArray_btChunk_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btChunk*>::* )( void *,int,int ) +void* btAlignedObjectArray_btChunk_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btChunk * & ( ::btAlignedObjectArray<btChunk*>::* )(  ) +void btAlignedObjectArray_btChunk_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btChunk*>::* )( int,::btChunk * const & ) +void btAlignedObjectArray_btChunk_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btChunk*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btChunk*>::* )( int,int,::btChunk * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btChunk_ptr__expand(void *c,void* p0); //method: expand ::btChunk * & ( ::btAlignedObjectArray<btChunk*>::* )( ::btChunk * const & ) +void btAlignedObjectArray_btChunk_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btChunk*>::* )(  ) +int btAlignedObjectArray_btChunk_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btChunk*>::* )( int ) +void btAlignedObjectArray_btChunk_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btChunk*>::* )( int ) +void btAlignedObjectArray_btChunk_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btChunk*, 16u> btAlignedObjectArray_btChunk_ptr_->m_allocator+void* btAlignedObjectArray_btChunk_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btChunk*, 16u> btAlignedObjectArray_btChunk_ptr_->m_allocator+void btAlignedObjectArray_btChunk_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btChunk_ptr_->m_size+int btAlignedObjectArray_btChunk_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btChunk_ptr_->m_size+void btAlignedObjectArray_btChunk_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btChunk_ptr_->m_capacity+int btAlignedObjectArray_btChunk_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btChunk_ptr_->m_capacity+// attribute not supported: //attribute: ::btChunk * * btAlignedObjectArray_btChunk_ptr_->m_data+void btAlignedObjectArray_btChunk_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btChunk_ptr_->m_ownsMemory+int btAlignedObjectArray_btChunk_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btChunk_ptr_->m_ownsMemory+void* btAlignedObjectArray_btCollisionObject_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +void btAlignedObjectArray_btCollisionObject_ptr__free(void *c); +void btAlignedObjectArray_btCollisionObject_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btCollisionObject*>::* )( ::btCollisionObject * const & ) +void* btAlignedObjectArray_btCollisionObject_ptr__at(void *c,int p0); //method: at ::btCollisionObject * const & ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) const+void* btAlignedObjectArray_btCollisionObject_ptr__at0(void *c,int p0); //method: at ::btCollisionObject * const & ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) const+void* btAlignedObjectArray_btCollisionObject_ptr__at1(void *c,int p0); //method: at ::btCollisionObject * & ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) +int btAlignedObjectArray_btCollisionObject_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) const+int btAlignedObjectArray_btCollisionObject_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) const+void btAlignedObjectArray_btCollisionObject_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +void btAlignedObjectArray_btCollisionObject_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btCollisionObject*>::* )( int,int ) +void btAlignedObjectArray_btCollisionObject_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +void btAlignedObjectArray_btCollisionObject_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +void* btAlignedObjectArray_btCollisionObject_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) +void btAlignedObjectArray_btCollisionObject_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btCollisionObject*>::* )( void *,int,int ) +void* btAlignedObjectArray_btCollisionObject_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btCollisionObject * & ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +void btAlignedObjectArray_btCollisionObject_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btCollisionObject*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btCollisionObject*>::* )( int,int,::btCollisionObject * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btCollisionObject_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btCollisionObject*>::* )( int,::btCollisionObject * const & ) +void btAlignedObjectArray_btCollisionObject_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btCollisionObject*>::* )(  ) +int btAlignedObjectArray_btCollisionObject_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) +void* btAlignedObjectArray_btCollisionObject_ptr__expand(void *c,void* p0); //method: expand ::btCollisionObject * & ( ::btAlignedObjectArray<btCollisionObject*>::* )( ::btCollisionObject * const & ) +void btAlignedObjectArray_btCollisionObject_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btCollisionObject*>::* )( int ) +void btAlignedObjectArray_btCollisionObject_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btCollisionObject*, 16u> btAlignedObjectArray_btCollisionObject_ptr_->m_allocator+void* btAlignedObjectArray_btCollisionObject_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btCollisionObject*, 16u> btAlignedObjectArray_btCollisionObject_ptr_->m_allocator+void btAlignedObjectArray_btCollisionObject_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btCollisionObject_ptr_->m_capacity+int btAlignedObjectArray_btCollisionObject_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btCollisionObject_ptr_->m_capacity+// attribute not supported: //attribute: ::btCollisionObject * * btAlignedObjectArray_btCollisionObject_ptr_->m_data+void btAlignedObjectArray_btCollisionObject_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btCollisionObject_ptr_->m_ownsMemory+int btAlignedObjectArray_btCollisionObject_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btCollisionObject_ptr_->m_ownsMemory+void btAlignedObjectArray_btCollisionObject_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btCollisionObject_ptr_->m_size+int btAlignedObjectArray_btCollisionObject_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btCollisionObject_ptr_->m_size+void* btAlignedObjectArray_btCollisionShape_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +void btAlignedObjectArray_btCollisionShape_ptr__free(void *c); +void btAlignedObjectArray_btCollisionShape_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btCollisionShape*>::* )( ::btCollisionShape * const & ) +void* btAlignedObjectArray_btCollisionShape_ptr__at(void *c,int p0); //method: at ::btCollisionShape * const & ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) const+void* btAlignedObjectArray_btCollisionShape_ptr__at0(void *c,int p0); //method: at ::btCollisionShape * const & ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) const+void* btAlignedObjectArray_btCollisionShape_ptr__at1(void *c,int p0); //method: at ::btCollisionShape * & ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) +int btAlignedObjectArray_btCollisionShape_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) const+int btAlignedObjectArray_btCollisionShape_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) const+void btAlignedObjectArray_btCollisionShape_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +void* btAlignedObjectArray_btCollisionShape_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) +void btAlignedObjectArray_btCollisionShape_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +void btAlignedObjectArray_btCollisionShape_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +void btAlignedObjectArray_btCollisionShape_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btCollisionShape*>::* )( int,int ) +void btAlignedObjectArray_btCollisionShape_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btCollisionShape*>::* )( void *,int,int ) +void* btAlignedObjectArray_btCollisionShape_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btCollisionShape * & ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +void btAlignedObjectArray_btCollisionShape_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btCollisionShape*>::* )( int,::btCollisionShape * const & ) +void btAlignedObjectArray_btCollisionShape_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btCollisionShape*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btCollisionShape*>::* )( int,int,::btCollisionShape * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btCollisionShape_ptr__expand(void *c,void* p0); //method: expand ::btCollisionShape * & ( ::btAlignedObjectArray<btCollisionShape*>::* )( ::btCollisionShape * const & ) +void btAlignedObjectArray_btCollisionShape_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btCollisionShape*>::* )(  ) +int btAlignedObjectArray_btCollisionShape_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) +void btAlignedObjectArray_btCollisionShape_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btCollisionShape*>::* )( int ) +void btAlignedObjectArray_btCollisionShape_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btCollisionShape*, 16u> btAlignedObjectArray_btCollisionShape_ptr_->m_allocator+void* btAlignedObjectArray_btCollisionShape_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btCollisionShape*, 16u> btAlignedObjectArray_btCollisionShape_ptr_->m_allocator+void btAlignedObjectArray_btCollisionShape_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btCollisionShape_ptr_->m_size+int btAlignedObjectArray_btCollisionShape_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btCollisionShape_ptr_->m_size+void btAlignedObjectArray_btCollisionShape_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btCollisionShape_ptr_->m_capacity+int btAlignedObjectArray_btCollisionShape_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btCollisionShape_ptr_->m_capacity+// attribute not supported: //attribute: ::btCollisionShape * * btAlignedObjectArray_btCollisionShape_ptr_->m_data+void btAlignedObjectArray_btCollisionShape_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btCollisionShape_ptr_->m_ownsMemory+int btAlignedObjectArray_btCollisionShape_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btCollisionShape_ptr_->m_ownsMemory+void* btAlignedObjectArray_btCompoundShapeChild__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +void btAlignedObjectArray_btCompoundShapeChild__free(void *c); +void btAlignedObjectArray_btCompoundShapeChild__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( ::btCompoundShapeChild const & ) +void* btAlignedObjectArray_btCompoundShapeChild__at(void *c,int p0); //method: at ::btCompoundShapeChild const & ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) const+void* btAlignedObjectArray_btCompoundShapeChild__at0(void *c,int p0); //method: at ::btCompoundShapeChild const & ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) const+void* btAlignedObjectArray_btCompoundShapeChild__at1(void *c,int p0); //method: at ::btCompoundShapeChild & ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) +int btAlignedObjectArray_btCompoundShapeChild__size(void *c); //method: size int ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) const+int btAlignedObjectArray_btCompoundShapeChild__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) const+void btAlignedObjectArray_btCompoundShapeChild__init(void *c); //method: init void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +void* btAlignedObjectArray_btCompoundShapeChild__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) +void btAlignedObjectArray_btCompoundShapeChild__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +void btAlignedObjectArray_btCompoundShapeChild__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +void btAlignedObjectArray_btCompoundShapeChild__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int,int ) +void btAlignedObjectArray_btCompoundShapeChild__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( void *,int,int ) +void* btAlignedObjectArray_btCompoundShapeChild__expandNonInitializing(void *c); //method: expandNonInitializing ::btCompoundShapeChild & ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +void btAlignedObjectArray_btCompoundShapeChild__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int,::btCompoundShapeChild const & ) +void btAlignedObjectArray_btCompoundShapeChild__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int,int ) +void btAlignedObjectArray_btCompoundShapeChild__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int,int,::btCompoundShapeChild * ) const+void* btAlignedObjectArray_btCompoundShapeChild__expand(void *c,void* p0); //method: expand ::btCompoundShapeChild & ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( ::btCompoundShapeChild const & ) +void btAlignedObjectArray_btCompoundShapeChild__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )(  ) +int btAlignedObjectArray_btCompoundShapeChild__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) +void btAlignedObjectArray_btCompoundShapeChild__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btCompoundShapeChild>::* )( int ) +void btAlignedObjectArray_btCompoundShapeChild__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btCompoundShapeChild, 16u> btAlignedObjectArray_btCompoundShapeChild_->m_allocator+void* btAlignedObjectArray_btCompoundShapeChild__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btCompoundShapeChild, 16u> btAlignedObjectArray_btCompoundShapeChild_->m_allocator+void btAlignedObjectArray_btCompoundShapeChild__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btCompoundShapeChild_->m_size+int btAlignedObjectArray_btCompoundShapeChild__m_size_get(void *c); //attribute: int btAlignedObjectArray_btCompoundShapeChild_->m_size+void btAlignedObjectArray_btCompoundShapeChild__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btCompoundShapeChild_->m_capacity+int btAlignedObjectArray_btCompoundShapeChild__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btCompoundShapeChild_->m_capacity+void btAlignedObjectArray_btCompoundShapeChild__m_data_set(void *c,void* a); //attribute: ::btCompoundShapeChild * btAlignedObjectArray_btCompoundShapeChild_->m_data+void* btAlignedObjectArray_btCompoundShapeChild__m_data_get(void *c); //attribute: ::btCompoundShapeChild * btAlignedObjectArray_btCompoundShapeChild_->m_data+void btAlignedObjectArray_btCompoundShapeChild__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btCompoundShapeChild_->m_ownsMemory+int btAlignedObjectArray_btCompoundShapeChild__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btCompoundShapeChild_->m_ownsMemory+void* btAlignedObjectArray_btDbvt_sStkNN__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNN__free(void *c); +void btAlignedObjectArray_btDbvt_sStkNN__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( ::btDbvt::sStkNN const & ) +void* btAlignedObjectArray_btDbvt_sStkNN__at(void *c,int p0); //method: at ::btDbvt::sStkNN const & ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNN__at0(void *c,int p0); //method: at ::btDbvt::sStkNN const & ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNN__at1(void *c,int p0); //method: at ::btDbvt::sStkNN & ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) +int btAlignedObjectArray_btDbvt_sStkNN__size(void *c); //method: size int ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) const+int btAlignedObjectArray_btDbvt_sStkNN__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) const+void btAlignedObjectArray_btDbvt_sStkNN__init(void *c); //method: init void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +void* btAlignedObjectArray_btDbvt_sStkNN__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNN__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNN__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNN__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNN__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( void *,int,int ) +void* btAlignedObjectArray_btDbvt_sStkNN__expandNonInitializing(void *c); //method: expandNonInitializing ::btDbvt::sStkNN & ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNN__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int,::btDbvt::sStkNN const & ) +void btAlignedObjectArray_btDbvt_sStkNN__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNN__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int,int,::btDbvt::sStkNN * ) const+void* btAlignedObjectArray_btDbvt_sStkNN__expand(void *c,void* p0); //method: expand ::btDbvt::sStkNN & ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( ::btDbvt::sStkNN const & ) +void btAlignedObjectArray_btDbvt_sStkNN__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )(  ) +int btAlignedObjectArray_btDbvt_sStkNN__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNN__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btDbvt::sStkNN>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNN__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btDbvt::sStkNN, 16u> btAlignedObjectArray_btDbvt_sStkNN_->m_allocator+void* btAlignedObjectArray_btDbvt_sStkNN__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btDbvt::sStkNN, 16u> btAlignedObjectArray_btDbvt_sStkNN_->m_allocator+void btAlignedObjectArray_btDbvt_sStkNN__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNN_->m_size+int btAlignedObjectArray_btDbvt_sStkNN__m_size_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNN_->m_size+void btAlignedObjectArray_btDbvt_sStkNN__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNN_->m_capacity+int btAlignedObjectArray_btDbvt_sStkNN__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNN_->m_capacity+void btAlignedObjectArray_btDbvt_sStkNN__m_data_set(void *c,void* a); //attribute: ::btDbvt::sStkNN * btAlignedObjectArray_btDbvt_sStkNN_->m_data+void* btAlignedObjectArray_btDbvt_sStkNN__m_data_get(void *c); //attribute: ::btDbvt::sStkNN * btAlignedObjectArray_btDbvt_sStkNN_->m_data+void btAlignedObjectArray_btDbvt_sStkNN__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btDbvt_sStkNN_->m_ownsMemory+int btAlignedObjectArray_btDbvt_sStkNN__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btDbvt_sStkNN_->m_ownsMemory+void* btAlignedObjectArray_btDbvt_sStkNP__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNP__free(void *c); +void btAlignedObjectArray_btDbvt_sStkNP__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( ::btDbvt::sStkNP const & ) +void* btAlignedObjectArray_btDbvt_sStkNP__at(void *c,int p0); //method: at ::btDbvt::sStkNP const & ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNP__at0(void *c,int p0); //method: at ::btDbvt::sStkNP const & ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNP__at1(void *c,int p0); //method: at ::btDbvt::sStkNP & ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) +int btAlignedObjectArray_btDbvt_sStkNP__size(void *c); //method: size int ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) const+int btAlignedObjectArray_btDbvt_sStkNP__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) const+void btAlignedObjectArray_btDbvt_sStkNP__init(void *c); //method: init void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +void* btAlignedObjectArray_btDbvt_sStkNP__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNP__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNP__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNP__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNP__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( void *,int,int ) +void* btAlignedObjectArray_btDbvt_sStkNP__expandNonInitializing(void *c); //method: expandNonInitializing ::btDbvt::sStkNP & ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNP__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int,::btDbvt::sStkNP const & ) +void btAlignedObjectArray_btDbvt_sStkNP__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNP__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int,int,::btDbvt::sStkNP * ) const+void* btAlignedObjectArray_btDbvt_sStkNP__expand(void *c,void* p0); //method: expand ::btDbvt::sStkNP & ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( ::btDbvt::sStkNP const & ) +void btAlignedObjectArray_btDbvt_sStkNP__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )(  ) +int btAlignedObjectArray_btDbvt_sStkNP__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNP__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btDbvt::sStkNP>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNP__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btDbvt::sStkNP, 16u> btAlignedObjectArray_btDbvt_sStkNP_->m_allocator+void* btAlignedObjectArray_btDbvt_sStkNP__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btDbvt::sStkNP, 16u> btAlignedObjectArray_btDbvt_sStkNP_->m_allocator+void btAlignedObjectArray_btDbvt_sStkNP__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNP_->m_size+int btAlignedObjectArray_btDbvt_sStkNP__m_size_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNP_->m_size+void btAlignedObjectArray_btDbvt_sStkNP__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNP_->m_capacity+int btAlignedObjectArray_btDbvt_sStkNP__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNP_->m_capacity+void btAlignedObjectArray_btDbvt_sStkNP__m_data_set(void *c,void* a); //attribute: ::btDbvt::sStkNP * btAlignedObjectArray_btDbvt_sStkNP_->m_data+void* btAlignedObjectArray_btDbvt_sStkNP__m_data_get(void *c); //attribute: ::btDbvt::sStkNP * btAlignedObjectArray_btDbvt_sStkNP_->m_data+void btAlignedObjectArray_btDbvt_sStkNP__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btDbvt_sStkNP_->m_ownsMemory+int btAlignedObjectArray_btDbvt_sStkNP__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btDbvt_sStkNP_->m_ownsMemory+void* btAlignedObjectArray_btDbvt_sStkNPS__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNPS__free(void *c); +void btAlignedObjectArray_btDbvt_sStkNPS__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( ::btDbvt::sStkNPS const & ) +void* btAlignedObjectArray_btDbvt_sStkNPS__at(void *c,int p0); //method: at ::btDbvt::sStkNPS const & ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNPS__at0(void *c,int p0); //method: at ::btDbvt::sStkNPS const & ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) const+void* btAlignedObjectArray_btDbvt_sStkNPS__at1(void *c,int p0); //method: at ::btDbvt::sStkNPS & ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) +int btAlignedObjectArray_btDbvt_sStkNPS__size(void *c); //method: size int ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) const+int btAlignedObjectArray_btDbvt_sStkNPS__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) const+void btAlignedObjectArray_btDbvt_sStkNPS__init(void *c); //method: init void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +void* btAlignedObjectArray_btDbvt_sStkNPS__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNPS__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNPS__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNPS__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNPS__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( void *,int,int ) +void* btAlignedObjectArray_btDbvt_sStkNPS__expandNonInitializing(void *c); //method: expandNonInitializing ::btDbvt::sStkNPS & ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +void btAlignedObjectArray_btDbvt_sStkNPS__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int,::btDbvt::sStkNPS const & ) +void btAlignedObjectArray_btDbvt_sStkNPS__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int,int ) +void btAlignedObjectArray_btDbvt_sStkNPS__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int,int,::btDbvt::sStkNPS * ) const+void* btAlignedObjectArray_btDbvt_sStkNPS__expand(void *c,void* p0); //method: expand ::btDbvt::sStkNPS & ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( ::btDbvt::sStkNPS const & ) +void btAlignedObjectArray_btDbvt_sStkNPS__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )(  ) +int btAlignedObjectArray_btDbvt_sStkNPS__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNPS__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btDbvt::sStkNPS>::* )( int ) +void btAlignedObjectArray_btDbvt_sStkNPS__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btDbvt::sStkNPS, 16u> btAlignedObjectArray_btDbvt_sStkNPS_->m_allocator+void* btAlignedObjectArray_btDbvt_sStkNPS__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btDbvt::sStkNPS, 16u> btAlignedObjectArray_btDbvt_sStkNPS_->m_allocator+void btAlignedObjectArray_btDbvt_sStkNPS__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNPS_->m_size+int btAlignedObjectArray_btDbvt_sStkNPS__m_size_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNPS_->m_size+void btAlignedObjectArray_btDbvt_sStkNPS__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvt_sStkNPS_->m_capacity+int btAlignedObjectArray_btDbvt_sStkNPS__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btDbvt_sStkNPS_->m_capacity+void btAlignedObjectArray_btDbvt_sStkNPS__m_data_set(void *c,void* a); //attribute: ::btDbvt::sStkNPS * btAlignedObjectArray_btDbvt_sStkNPS_->m_data+void* btAlignedObjectArray_btDbvt_sStkNPS__m_data_get(void *c); //attribute: ::btDbvt::sStkNPS * btAlignedObjectArray_btDbvt_sStkNPS_->m_data+void btAlignedObjectArray_btDbvt_sStkNPS__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btDbvt_sStkNPS_->m_ownsMemory+int btAlignedObjectArray_btDbvt_sStkNPS__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btDbvt_sStkNPS_->m_ownsMemory+void* btAlignedObjectArray_btDbvtNodeconst_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__free(void *c); +void btAlignedObjectArray_btDbvtNodeconst_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( ::btDbvtNode const * const & ) +void* btAlignedObjectArray_btDbvtNodeconst_ptr__at(void *c,int p0); //method: at ::btDbvtNode const * const & ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) const+void* btAlignedObjectArray_btDbvtNodeconst_ptr__at0(void *c,int p0); //method: at ::btDbvtNode const * const & ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) const+void* btAlignedObjectArray_btDbvtNodeconst_ptr__at1(void *c,int p0); //method: at ::btDbvtNode const * & ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) +int btAlignedObjectArray_btDbvtNodeconst_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) const+int btAlignedObjectArray_btDbvtNodeconst_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) const+void btAlignedObjectArray_btDbvtNodeconst_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +void* btAlignedObjectArray_btDbvtNodeconst_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int,int ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( void *,int,int ) +void* btAlignedObjectArray_btDbvtNodeconst_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btDbvtNode const * & ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int,::btDbvtNode const * const & ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int,int,::btDbvtNode const * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btDbvtNodeconst_ptr__expand(void *c,void* p0); //method: expand ::btDbvtNode const * & ( ::btAlignedObjectArray<btDbvtNode const*>::* )( ::btDbvtNode const * const & ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btDbvtNode const*>::* )(  ) +int btAlignedObjectArray_btDbvtNodeconst_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btDbvtNode const*>::* )( int ) +void btAlignedObjectArray_btDbvtNodeconst_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btDbvtNode const*, 16u> btAlignedObjectArray_btDbvtNodeconst_ptr_->m_allocator+void* btAlignedObjectArray_btDbvtNodeconst_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btDbvtNode const*, 16u> btAlignedObjectArray_btDbvtNodeconst_ptr_->m_allocator+void btAlignedObjectArray_btDbvtNodeconst_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvtNodeconst_ptr_->m_size+int btAlignedObjectArray_btDbvtNodeconst_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btDbvtNodeconst_ptr_->m_size+void btAlignedObjectArray_btDbvtNodeconst_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btDbvtNodeconst_ptr_->m_capacity+int btAlignedObjectArray_btDbvtNodeconst_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btDbvtNodeconst_ptr_->m_capacity+// attribute not supported: //attribute: ::btDbvtNode const * * btAlignedObjectArray_btDbvtNodeconst_ptr_->m_data+void btAlignedObjectArray_btDbvtNodeconst_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btDbvtNodeconst_ptr_->m_ownsMemory+int btAlignedObjectArray_btDbvtNodeconst_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btDbvtNodeconst_ptr_->m_ownsMemory+void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__free(void *c); +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( ::btGImpactMeshShapePart * const & ) +void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__at(void *c,int p0); //method: at ::btGImpactMeshShapePart * const & ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) const+void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__at0(void *c,int p0); //method: at ::btGImpactMeshShapePart * const & ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) const+void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__at1(void *c,int p0); //method: at ::btGImpactMeshShapePart * & ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) +int btAlignedObjectArray_btGImpactMeshShapePart_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) const+int btAlignedObjectArray_btGImpactMeshShapePart_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) const+void btAlignedObjectArray_btGImpactMeshShapePart_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int,int ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( void *,int,int ) +void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btGImpactMeshShapePart * & ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int,::btGImpactMeshShapePart * const & ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int,int,::btGImpactMeshShapePart * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__expand(void *c,void* p0); //method: expand ::btGImpactMeshShapePart * & ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( ::btGImpactMeshShapePart * const & ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )(  ) +int btAlignedObjectArray_btGImpactMeshShapePart_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btGImpactMeshShapePart*>::* )( int ) +void btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btGImpactMeshShapePart*, 16u> btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_allocator+void* btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btGImpactMeshShapePart*, 16u> btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_allocator+void btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_size+int btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_size+void btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_capacity+int btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_capacity+// attribute not supported: //attribute: ::btGImpactMeshShapePart * * btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_data+void btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_ownsMemory+int btAlignedObjectArray_btGImpactMeshShapePart_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btGImpactMeshShapePart_ptr_->m_ownsMemory+void* btAlignedObjectArray_btHashInt__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btHashInt>::* )(  ) +void btAlignedObjectArray_btHashInt__free(void *c); +void btAlignedObjectArray_btHashInt__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btHashInt>::* )( ::btHashInt const & ) +void* btAlignedObjectArray_btHashInt__at(void *c,int p0); //method: at ::btHashInt const & ( ::btAlignedObjectArray<btHashInt>::* )( int ) const+void* btAlignedObjectArray_btHashInt__at0(void *c,int p0); //method: at ::btHashInt const & ( ::btAlignedObjectArray<btHashInt>::* )( int ) const+void* btAlignedObjectArray_btHashInt__at1(void *c,int p0); //method: at ::btHashInt & ( ::btAlignedObjectArray<btHashInt>::* )( int ) +int btAlignedObjectArray_btHashInt__size(void *c); //method: size int ( ::btAlignedObjectArray<btHashInt>::* )(  ) const+int btAlignedObjectArray_btHashInt__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btHashInt>::* )(  ) const+void btAlignedObjectArray_btHashInt__init(void *c); //method: init void ( ::btAlignedObjectArray<btHashInt>::* )(  ) +void* btAlignedObjectArray_btHashInt__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btHashInt>::* )( int ) +void btAlignedObjectArray_btHashInt__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btHashInt>::* )(  ) +void btAlignedObjectArray_btHashInt__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btHashInt>::* )(  ) +void btAlignedObjectArray_btHashInt__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btHashInt>::* )( int,int ) +void btAlignedObjectArray_btHashInt__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btHashInt>::* )( void *,int,int ) +void* btAlignedObjectArray_btHashInt__expandNonInitializing(void *c); //method: expandNonInitializing ::btHashInt & ( ::btAlignedObjectArray<btHashInt>::* )(  ) +void btAlignedObjectArray_btHashInt__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btHashInt>::* )( int,::btHashInt const & ) +void btAlignedObjectArray_btHashInt__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btHashInt>::* )( int,int ) +void btAlignedObjectArray_btHashInt__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btHashInt>::* )( int,int,::btHashInt * ) const+void* btAlignedObjectArray_btHashInt__expand(void *c,void* p0); //method: expand ::btHashInt & ( ::btAlignedObjectArray<btHashInt>::* )( ::btHashInt const & ) +void btAlignedObjectArray_btHashInt__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btHashInt>::* )(  ) +int btAlignedObjectArray_btHashInt__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btHashInt>::* )( int ) +void btAlignedObjectArray_btHashInt__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btHashInt>::* )( int ) +void btAlignedObjectArray_btHashInt__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btHashInt, 16u> btAlignedObjectArray_btHashInt_->m_allocator+void* btAlignedObjectArray_btHashInt__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btHashInt, 16u> btAlignedObjectArray_btHashInt_->m_allocator+void btAlignedObjectArray_btHashInt__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashInt_->m_size+int btAlignedObjectArray_btHashInt__m_size_get(void *c); //attribute: int btAlignedObjectArray_btHashInt_->m_size+void btAlignedObjectArray_btHashInt__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashInt_->m_capacity+int btAlignedObjectArray_btHashInt__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btHashInt_->m_capacity+void btAlignedObjectArray_btHashInt__m_data_set(void *c,void* a); //attribute: ::btHashInt * btAlignedObjectArray_btHashInt_->m_data+void* btAlignedObjectArray_btHashInt__m_data_get(void *c); //attribute: ::btHashInt * btAlignedObjectArray_btHashInt_->m_data+void btAlignedObjectArray_btHashInt__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btHashInt_->m_ownsMemory+int btAlignedObjectArray_btHashInt__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btHashInt_->m_ownsMemory+void* btAlignedObjectArray_btHashPtr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +void btAlignedObjectArray_btHashPtr__free(void *c); +void btAlignedObjectArray_btHashPtr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btHashPtr>::* )( ::btHashPtr const & ) +void* btAlignedObjectArray_btHashPtr__at(void *c,int p0); //method: at ::btHashPtr const & ( ::btAlignedObjectArray<btHashPtr>::* )( int ) const+void* btAlignedObjectArray_btHashPtr__at0(void *c,int p0); //method: at ::btHashPtr const & ( ::btAlignedObjectArray<btHashPtr>::* )( int ) const+void* btAlignedObjectArray_btHashPtr__at1(void *c,int p0); //method: at ::btHashPtr & ( ::btAlignedObjectArray<btHashPtr>::* )( int ) +int btAlignedObjectArray_btHashPtr__size(void *c); //method: size int ( ::btAlignedObjectArray<btHashPtr>::* )(  ) const+int btAlignedObjectArray_btHashPtr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btHashPtr>::* )(  ) const+void btAlignedObjectArray_btHashPtr__init(void *c); //method: init void ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +void* btAlignedObjectArray_btHashPtr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btHashPtr>::* )( int ) +void btAlignedObjectArray_btHashPtr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +void btAlignedObjectArray_btHashPtr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +void btAlignedObjectArray_btHashPtr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btHashPtr>::* )( int,int ) +void btAlignedObjectArray_btHashPtr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btHashPtr>::* )( void *,int,int ) +void* btAlignedObjectArray_btHashPtr__expandNonInitializing(void *c); //method: expandNonInitializing ::btHashPtr & ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +void btAlignedObjectArray_btHashPtr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btHashPtr>::* )( int,::btHashPtr const & ) +void btAlignedObjectArray_btHashPtr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btHashPtr>::* )( int,int ) +void btAlignedObjectArray_btHashPtr__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btHashPtr>::* )( int,int,::btHashPtr * ) const+void* btAlignedObjectArray_btHashPtr__expand(void *c,void* p0); //method: expand ::btHashPtr & ( ::btAlignedObjectArray<btHashPtr>::* )( ::btHashPtr const & ) +void btAlignedObjectArray_btHashPtr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btHashPtr>::* )(  ) +int btAlignedObjectArray_btHashPtr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btHashPtr>::* )( int ) +void btAlignedObjectArray_btHashPtr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btHashPtr>::* )( int ) +void btAlignedObjectArray_btHashPtr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btHashPtr, 16u> btAlignedObjectArray_btHashPtr_->m_allocator+void* btAlignedObjectArray_btHashPtr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btHashPtr, 16u> btAlignedObjectArray_btHashPtr_->m_allocator+void btAlignedObjectArray_btHashPtr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashPtr_->m_size+int btAlignedObjectArray_btHashPtr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btHashPtr_->m_size+void btAlignedObjectArray_btHashPtr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashPtr_->m_capacity+int btAlignedObjectArray_btHashPtr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btHashPtr_->m_capacity+void btAlignedObjectArray_btHashPtr__m_data_set(void *c,void* a); //attribute: ::btHashPtr * btAlignedObjectArray_btHashPtr_->m_data+void* btAlignedObjectArray_btHashPtr__m_data_get(void *c); //attribute: ::btHashPtr * btAlignedObjectArray_btHashPtr_->m_data+void btAlignedObjectArray_btHashPtr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btHashPtr_->m_ownsMemory+int btAlignedObjectArray_btHashPtr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btHashPtr_->m_ownsMemory+void* btAlignedObjectArray_btHashString__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btHashString>::* )(  ) +void btAlignedObjectArray_btHashString__free(void *c); +void btAlignedObjectArray_btHashString__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btHashString>::* )( ::btHashString const & ) +void* btAlignedObjectArray_btHashString__at(void *c,int p0); //method: at ::btHashString const & ( ::btAlignedObjectArray<btHashString>::* )( int ) const+void* btAlignedObjectArray_btHashString__at0(void *c,int p0); //method: at ::btHashString const & ( ::btAlignedObjectArray<btHashString>::* )( int ) const+void* btAlignedObjectArray_btHashString__at1(void *c,int p0); //method: at ::btHashString & ( ::btAlignedObjectArray<btHashString>::* )( int ) +int btAlignedObjectArray_btHashString__size(void *c); //method: size int ( ::btAlignedObjectArray<btHashString>::* )(  ) const+int btAlignedObjectArray_btHashString__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btHashString>::* )(  ) const+void btAlignedObjectArray_btHashString__init(void *c); //method: init void ( ::btAlignedObjectArray<btHashString>::* )(  ) +void* btAlignedObjectArray_btHashString__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btHashString>::* )( int ) +void btAlignedObjectArray_btHashString__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btHashString>::* )(  ) +void btAlignedObjectArray_btHashString__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btHashString>::* )(  ) +void btAlignedObjectArray_btHashString__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btHashString>::* )( int,int ) +void btAlignedObjectArray_btHashString__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btHashString>::* )( void *,int,int ) +void* btAlignedObjectArray_btHashString__expandNonInitializing(void *c); //method: expandNonInitializing ::btHashString & ( ::btAlignedObjectArray<btHashString>::* )(  ) +void btAlignedObjectArray_btHashString__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btHashString>::* )( int,::btHashString const & ) +void btAlignedObjectArray_btHashString__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btHashString>::* )( int,int ) +void btAlignedObjectArray_btHashString__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btHashString>::* )( int,int,::btHashString * ) const+void* btAlignedObjectArray_btHashString__expand(void *c,void* p0); //method: expand ::btHashString & ( ::btAlignedObjectArray<btHashString>::* )( ::btHashString const & ) +void btAlignedObjectArray_btHashString__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btHashString>::* )(  ) +int btAlignedObjectArray_btHashString__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btHashString>::* )( int ) +void btAlignedObjectArray_btHashString__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btHashString>::* )( int ) +void btAlignedObjectArray_btHashString__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btHashString, 16u> btAlignedObjectArray_btHashString_->m_allocator+void* btAlignedObjectArray_btHashString__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btHashString, 16u> btAlignedObjectArray_btHashString_->m_allocator+void btAlignedObjectArray_btHashString__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashString_->m_size+int btAlignedObjectArray_btHashString__m_size_get(void *c); //attribute: int btAlignedObjectArray_btHashString_->m_size+void btAlignedObjectArray_btHashString__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btHashString_->m_capacity+int btAlignedObjectArray_btHashString__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btHashString_->m_capacity+void btAlignedObjectArray_btHashString__m_data_set(void *c,void* a); //attribute: ::btHashString * btAlignedObjectArray_btHashString_->m_data+void* btAlignedObjectArray_btHashString__m_data_get(void *c); //attribute: ::btHashString * btAlignedObjectArray_btHashString_->m_data+void btAlignedObjectArray_btHashString__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btHashString_->m_ownsMemory+int btAlignedObjectArray_btHashString__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btHashString_->m_ownsMemory+void* btAlignedObjectArray_btIndexedMesh__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +void btAlignedObjectArray_btIndexedMesh__free(void *c); +void btAlignedObjectArray_btIndexedMesh__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btIndexedMesh>::* )( ::btIndexedMesh const & ) +void* btAlignedObjectArray_btIndexedMesh__at(void *c,int p0); //method: at ::btIndexedMesh const & ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) const+void* btAlignedObjectArray_btIndexedMesh__at0(void *c,int p0); //method: at ::btIndexedMesh const & ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) const+void* btAlignedObjectArray_btIndexedMesh__at1(void *c,int p0); //method: at ::btIndexedMesh & ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) +int btAlignedObjectArray_btIndexedMesh__size(void *c); //method: size int ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) const+int btAlignedObjectArray_btIndexedMesh__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) const+void btAlignedObjectArray_btIndexedMesh__init(void *c); //method: init void ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +void* btAlignedObjectArray_btIndexedMesh__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) +void btAlignedObjectArray_btIndexedMesh__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +void btAlignedObjectArray_btIndexedMesh__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +void btAlignedObjectArray_btIndexedMesh__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btIndexedMesh>::* )( int,int ) +void btAlignedObjectArray_btIndexedMesh__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btIndexedMesh>::* )( void *,int,int ) +void* btAlignedObjectArray_btIndexedMesh__expandNonInitializing(void *c); //method: expandNonInitializing ::btIndexedMesh & ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +void btAlignedObjectArray_btIndexedMesh__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btIndexedMesh>::* )( int,::btIndexedMesh const & ) +void btAlignedObjectArray_btIndexedMesh__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btIndexedMesh>::* )( int,int ) +void btAlignedObjectArray_btIndexedMesh__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btIndexedMesh>::* )( int,int,::btIndexedMesh * ) const+void* btAlignedObjectArray_btIndexedMesh__expand(void *c,void* p0); //method: expand ::btIndexedMesh & ( ::btAlignedObjectArray<btIndexedMesh>::* )( ::btIndexedMesh const & ) +void btAlignedObjectArray_btIndexedMesh__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btIndexedMesh>::* )(  ) +int btAlignedObjectArray_btIndexedMesh__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) +void btAlignedObjectArray_btIndexedMesh__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btIndexedMesh>::* )( int ) +void btAlignedObjectArray_btIndexedMesh__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btIndexedMesh, 16u> btAlignedObjectArray_btIndexedMesh_->m_allocator+void* btAlignedObjectArray_btIndexedMesh__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btIndexedMesh, 16u> btAlignedObjectArray_btIndexedMesh_->m_allocator+void btAlignedObjectArray_btIndexedMesh__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btIndexedMesh_->m_size+int btAlignedObjectArray_btIndexedMesh__m_size_get(void *c); //attribute: int btAlignedObjectArray_btIndexedMesh_->m_size+void btAlignedObjectArray_btIndexedMesh__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btIndexedMesh_->m_capacity+int btAlignedObjectArray_btIndexedMesh__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btIndexedMesh_->m_capacity+void btAlignedObjectArray_btIndexedMesh__m_data_set(void *c,void* a); //attribute: ::btIndexedMesh * btAlignedObjectArray_btIndexedMesh_->m_data+void* btAlignedObjectArray_btIndexedMesh__m_data_get(void *c); //attribute: ::btIndexedMesh * btAlignedObjectArray_btIndexedMesh_->m_data+void btAlignedObjectArray_btIndexedMesh__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btIndexedMesh_->m_ownsMemory+int btAlignedObjectArray_btIndexedMesh__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btIndexedMesh_->m_ownsMemory+void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__free(void *c); +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( ::btMultiSapBroadphase::btBridgeProxy * const & ) +void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at(void *c,int p0); //method: at ::btMultiSapBroadphase::btBridgeProxy * const & ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) const+void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at0(void *c,int p0); //method: at ::btMultiSapBroadphase::btBridgeProxy * const & ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) const+void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__at1(void *c,int p0); //method: at ::btMultiSapBroadphase::btBridgeProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) +int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) const+int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) const+void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int,int ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( void *,int,int ) +void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btMultiSapBroadphase::btBridgeProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int,::btMultiSapBroadphase::btBridgeProxy * const & ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int,int,::btMultiSapBroadphase::btBridgeProxy * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__expand(void *c,void* p0); //method: expand ::btMultiSapBroadphase::btBridgeProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( ::btMultiSapBroadphase::btBridgeProxy * const & ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )(  ) +int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u> btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_allocator+void* btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btMultiSapBroadphase::btBridgeProxy*, 16u> btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_allocator+void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_size+int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_size+void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_capacity+int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_capacity+// attribute not supported: //attribute: ::btMultiSapBroadphase::btBridgeProxy * * btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_data+void btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_ownsMemory+int btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btMultiSapBroadphase_btBridgeProxy_ptr_->m_ownsMemory+void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__free(void *c); +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( ::btMultiSapBroadphase::btMultiSapProxy * const & ) +void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at(void *c,int p0); //method: at ::btMultiSapBroadphase::btMultiSapProxy * const & ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) const+void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at0(void *c,int p0); //method: at ::btMultiSapBroadphase::btMultiSapProxy * const & ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) const+void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__at1(void *c,int p0); //method: at ::btMultiSapBroadphase::btMultiSapProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) +int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) const+int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) const+void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int,int ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( void *,int,int ) +void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btMultiSapBroadphase::btMultiSapProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int,::btMultiSapBroadphase::btMultiSapProxy * const & ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int,int,::btMultiSapBroadphase::btMultiSapProxy * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__expand(void *c,void* p0); //method: expand ::btMultiSapBroadphase::btMultiSapProxy * & ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( ::btMultiSapBroadphase::btMultiSapProxy * const & ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )(  ) +int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*>::* )( int ) +void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u> btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_allocator+void* btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btMultiSapBroadphase::btMultiSapProxy*, 16u> btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_allocator+void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_size+int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_size+void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_capacity+int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_capacity+// attribute not supported: //attribute: ::btMultiSapBroadphase::btMultiSapProxy * * btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_data+void btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_ownsMemory+int btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btMultiSapBroadphase_btMultiSapProxy_ptr_->m_ownsMemory+void* btAlignedObjectArray_btOptimizedBvhNode__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +void btAlignedObjectArray_btOptimizedBvhNode__free(void *c); +void btAlignedObjectArray_btOptimizedBvhNode__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( ::btOptimizedBvhNode const & ) +void* btAlignedObjectArray_btOptimizedBvhNode__at(void *c,int p0); //method: at ::btOptimizedBvhNode const & ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) const+void* btAlignedObjectArray_btOptimizedBvhNode__at0(void *c,int p0); //method: at ::btOptimizedBvhNode const & ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) const+void* btAlignedObjectArray_btOptimizedBvhNode__at1(void *c,int p0); //method: at ::btOptimizedBvhNode & ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) +int btAlignedObjectArray_btOptimizedBvhNode__size(void *c); //method: size int ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) const+int btAlignedObjectArray_btOptimizedBvhNode__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) const+void btAlignedObjectArray_btOptimizedBvhNode__init(void *c); //method: init void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +void* btAlignedObjectArray_btOptimizedBvhNode__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) +void btAlignedObjectArray_btOptimizedBvhNode__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +void btAlignedObjectArray_btOptimizedBvhNode__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +void btAlignedObjectArray_btOptimizedBvhNode__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int,int ) +void btAlignedObjectArray_btOptimizedBvhNode__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( void *,int,int ) +void* btAlignedObjectArray_btOptimizedBvhNode__expandNonInitializing(void *c); //method: expandNonInitializing ::btOptimizedBvhNode & ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +void btAlignedObjectArray_btOptimizedBvhNode__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int,::btOptimizedBvhNode const & ) +void btAlignedObjectArray_btOptimizedBvhNode__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int,int ) +void btAlignedObjectArray_btOptimizedBvhNode__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int,int,::btOptimizedBvhNode * ) const+void* btAlignedObjectArray_btOptimizedBvhNode__expand(void *c,void* p0); //method: expand ::btOptimizedBvhNode & ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( ::btOptimizedBvhNode const & ) +void btAlignedObjectArray_btOptimizedBvhNode__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )(  ) +int btAlignedObjectArray_btOptimizedBvhNode__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) +void btAlignedObjectArray_btOptimizedBvhNode__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btOptimizedBvhNode>::* )( int ) +void btAlignedObjectArray_btOptimizedBvhNode__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btOptimizedBvhNode, 16u> btAlignedObjectArray_btOptimizedBvhNode_->m_allocator+void* btAlignedObjectArray_btOptimizedBvhNode__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btOptimizedBvhNode, 16u> btAlignedObjectArray_btOptimizedBvhNode_->m_allocator+void btAlignedObjectArray_btOptimizedBvhNode__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btOptimizedBvhNode_->m_size+int btAlignedObjectArray_btOptimizedBvhNode__m_size_get(void *c); //attribute: int btAlignedObjectArray_btOptimizedBvhNode_->m_size+void btAlignedObjectArray_btOptimizedBvhNode__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btOptimizedBvhNode_->m_capacity+int btAlignedObjectArray_btOptimizedBvhNode__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btOptimizedBvhNode_->m_capacity+void btAlignedObjectArray_btOptimizedBvhNode__m_data_set(void *c,void* a); //attribute: ::btOptimizedBvhNode * btAlignedObjectArray_btOptimizedBvhNode_->m_data+void* btAlignedObjectArray_btOptimizedBvhNode__m_data_get(void *c); //attribute: ::btOptimizedBvhNode * btAlignedObjectArray_btOptimizedBvhNode_->m_data+void btAlignedObjectArray_btOptimizedBvhNode__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btOptimizedBvhNode_->m_ownsMemory+int btAlignedObjectArray_btOptimizedBvhNode__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btOptimizedBvhNode_->m_ownsMemory+void* btAlignedObjectArray_btPersistentManifold_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +void btAlignedObjectArray_btPersistentManifold_ptr__free(void *c); +void btAlignedObjectArray_btPersistentManifold_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( ::btPersistentManifold * const & ) +void* btAlignedObjectArray_btPersistentManifold_ptr__at(void *c,int p0); //method: at ::btPersistentManifold * const & ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) const+void* btAlignedObjectArray_btPersistentManifold_ptr__at0(void *c,int p0); //method: at ::btPersistentManifold * const & ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) const+void* btAlignedObjectArray_btPersistentManifold_ptr__at1(void *c,int p0); //method: at ::btPersistentManifold * & ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) +int btAlignedObjectArray_btPersistentManifold_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) const+int btAlignedObjectArray_btPersistentManifold_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) const+void btAlignedObjectArray_btPersistentManifold_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +void* btAlignedObjectArray_btPersistentManifold_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) +void btAlignedObjectArray_btPersistentManifold_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +void btAlignedObjectArray_btPersistentManifold_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +void btAlignedObjectArray_btPersistentManifold_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int,int ) +void btAlignedObjectArray_btPersistentManifold_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( void *,int,int ) +void* btAlignedObjectArray_btPersistentManifold_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btPersistentManifold * & ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +void btAlignedObjectArray_btPersistentManifold_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int,::btPersistentManifold * const & ) +void btAlignedObjectArray_btPersistentManifold_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int,int,::btPersistentManifold * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btPersistentManifold_ptr__expand(void *c,void* p0); //method: expand ::btPersistentManifold * & ( ::btAlignedObjectArray<btPersistentManifold*>::* )( ::btPersistentManifold * const & ) +void btAlignedObjectArray_btPersistentManifold_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btPersistentManifold*>::* )(  ) +int btAlignedObjectArray_btPersistentManifold_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) +void btAlignedObjectArray_btPersistentManifold_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btPersistentManifold*>::* )( int ) +void btAlignedObjectArray_btPersistentManifold_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btPersistentManifold*, 16u> btAlignedObjectArray_btPersistentManifold_ptr_->m_allocator+void* btAlignedObjectArray_btPersistentManifold_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btPersistentManifold*, 16u> btAlignedObjectArray_btPersistentManifold_ptr_->m_allocator+void btAlignedObjectArray_btPersistentManifold_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btPersistentManifold_ptr_->m_size+int btAlignedObjectArray_btPersistentManifold_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btPersistentManifold_ptr_->m_size+void btAlignedObjectArray_btPersistentManifold_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btPersistentManifold_ptr_->m_capacity+int btAlignedObjectArray_btPersistentManifold_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btPersistentManifold_ptr_->m_capacity+// attribute not supported: //attribute: ::btPersistentManifold * * btAlignedObjectArray_btPersistentManifold_ptr_->m_data+void btAlignedObjectArray_btPersistentManifold_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btPersistentManifold_ptr_->m_ownsMemory+int btAlignedObjectArray_btPersistentManifold_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btPersistentManifold_ptr_->m_ownsMemory+void* btAlignedObjectArray_btPointerUid__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +void btAlignedObjectArray_btPointerUid__free(void *c); +void btAlignedObjectArray_btPointerUid__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btPointerUid>::* )( ::btPointerUid const & ) +void* btAlignedObjectArray_btPointerUid__at(void *c,int p0); //method: at ::btPointerUid const & ( ::btAlignedObjectArray<btPointerUid>::* )( int ) const+void* btAlignedObjectArray_btPointerUid__at0(void *c,int p0); //method: at ::btPointerUid const & ( ::btAlignedObjectArray<btPointerUid>::* )( int ) const+void* btAlignedObjectArray_btPointerUid__at1(void *c,int p0); //method: at ::btPointerUid & ( ::btAlignedObjectArray<btPointerUid>::* )( int ) +int btAlignedObjectArray_btPointerUid__size(void *c); //method: size int ( ::btAlignedObjectArray<btPointerUid>::* )(  ) const+int btAlignedObjectArray_btPointerUid__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btPointerUid>::* )(  ) const+void btAlignedObjectArray_btPointerUid__init(void *c); //method: init void ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +void* btAlignedObjectArray_btPointerUid__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btPointerUid>::* )( int ) +void btAlignedObjectArray_btPointerUid__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +void btAlignedObjectArray_btPointerUid__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +void btAlignedObjectArray_btPointerUid__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btPointerUid>::* )( int,int ) +void btAlignedObjectArray_btPointerUid__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btPointerUid>::* )( void *,int,int ) +void* btAlignedObjectArray_btPointerUid__expandNonInitializing(void *c); //method: expandNonInitializing ::btPointerUid & ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +void btAlignedObjectArray_btPointerUid__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btPointerUid>::* )( int,::btPointerUid const & ) +void btAlignedObjectArray_btPointerUid__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btPointerUid>::* )( int,int ) +void btAlignedObjectArray_btPointerUid__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btPointerUid>::* )( int,int,::btPointerUid * ) const+void* btAlignedObjectArray_btPointerUid__expand(void *c,void* p0); //method: expand ::btPointerUid & ( ::btAlignedObjectArray<btPointerUid>::* )( ::btPointerUid const & ) +void btAlignedObjectArray_btPointerUid__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btPointerUid>::* )(  ) +int btAlignedObjectArray_btPointerUid__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btPointerUid>::* )( int ) +void btAlignedObjectArray_btPointerUid__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btPointerUid>::* )( int ) +void btAlignedObjectArray_btPointerUid__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btPointerUid, 16u> btAlignedObjectArray_btPointerUid_->m_allocator+void* btAlignedObjectArray_btPointerUid__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btPointerUid, 16u> btAlignedObjectArray_btPointerUid_->m_allocator+void btAlignedObjectArray_btPointerUid__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btPointerUid_->m_size+int btAlignedObjectArray_btPointerUid__m_size_get(void *c); //attribute: int btAlignedObjectArray_btPointerUid_->m_size+void btAlignedObjectArray_btPointerUid__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btPointerUid_->m_capacity+int btAlignedObjectArray_btPointerUid__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btPointerUid_->m_capacity+void btAlignedObjectArray_btPointerUid__m_data_set(void *c,void* a); //attribute: ::btPointerUid * btAlignedObjectArray_btPointerUid_->m_data+void* btAlignedObjectArray_btPointerUid__m_data_get(void *c); //attribute: ::btPointerUid * btAlignedObjectArray_btPointerUid_->m_data+void btAlignedObjectArray_btPointerUid__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btPointerUid_->m_ownsMemory+int btAlignedObjectArray_btPointerUid__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btPointerUid_->m_ownsMemory+void* btAlignedObjectArray_btQuantizedBvhNode__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +void btAlignedObjectArray_btQuantizedBvhNode__free(void *c); +void btAlignedObjectArray_btQuantizedBvhNode__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( ::btQuantizedBvhNode const & ) +void* btAlignedObjectArray_btQuantizedBvhNode__at(void *c,int p0); //method: at ::btQuantizedBvhNode const & ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) const+void* btAlignedObjectArray_btQuantizedBvhNode__at0(void *c,int p0); //method: at ::btQuantizedBvhNode const & ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) const+void* btAlignedObjectArray_btQuantizedBvhNode__at1(void *c,int p0); //method: at ::btQuantizedBvhNode & ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) +int btAlignedObjectArray_btQuantizedBvhNode__size(void *c); //method: size int ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) const+int btAlignedObjectArray_btQuantizedBvhNode__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) const+void btAlignedObjectArray_btQuantizedBvhNode__init(void *c); //method: init void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +void* btAlignedObjectArray_btQuantizedBvhNode__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) +void btAlignedObjectArray_btQuantizedBvhNode__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +void btAlignedObjectArray_btQuantizedBvhNode__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +void btAlignedObjectArray_btQuantizedBvhNode__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int,int ) +void btAlignedObjectArray_btQuantizedBvhNode__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( void *,int,int ) +void* btAlignedObjectArray_btQuantizedBvhNode__expandNonInitializing(void *c); //method: expandNonInitializing ::btQuantizedBvhNode & ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +void btAlignedObjectArray_btQuantizedBvhNode__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int,::btQuantizedBvhNode const & ) +void btAlignedObjectArray_btQuantizedBvhNode__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int,int ) +void btAlignedObjectArray_btQuantizedBvhNode__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int,int,::btQuantizedBvhNode * ) const+void* btAlignedObjectArray_btQuantizedBvhNode__expand(void *c,void* p0); //method: expand ::btQuantizedBvhNode & ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( ::btQuantizedBvhNode const & ) +void btAlignedObjectArray_btQuantizedBvhNode__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )(  ) +int btAlignedObjectArray_btQuantizedBvhNode__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) +void btAlignedObjectArray_btQuantizedBvhNode__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btQuantizedBvhNode>::* )( int ) +void btAlignedObjectArray_btQuantizedBvhNode__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btQuantizedBvhNode, 16u> btAlignedObjectArray_btQuantizedBvhNode_->m_allocator+void* btAlignedObjectArray_btQuantizedBvhNode__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btQuantizedBvhNode, 16u> btAlignedObjectArray_btQuantizedBvhNode_->m_allocator+void btAlignedObjectArray_btQuantizedBvhNode__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btQuantizedBvhNode_->m_size+int btAlignedObjectArray_btQuantizedBvhNode__m_size_get(void *c); //attribute: int btAlignedObjectArray_btQuantizedBvhNode_->m_size+void btAlignedObjectArray_btQuantizedBvhNode__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btQuantizedBvhNode_->m_capacity+int btAlignedObjectArray_btQuantizedBvhNode__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btQuantizedBvhNode_->m_capacity+void btAlignedObjectArray_btQuantizedBvhNode__m_data_set(void *c,void* a); //attribute: ::btQuantizedBvhNode * btAlignedObjectArray_btQuantizedBvhNode_->m_data+void* btAlignedObjectArray_btQuantizedBvhNode__m_data_get(void *c); //attribute: ::btQuantizedBvhNode * btAlignedObjectArray_btQuantizedBvhNode_->m_data+void btAlignedObjectArray_btQuantizedBvhNode__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btQuantizedBvhNode_->m_ownsMemory+int btAlignedObjectArray_btQuantizedBvhNode__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btQuantizedBvhNode_->m_ownsMemory+void* btAlignedObjectArray_btRigidBody_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +void btAlignedObjectArray_btRigidBody_ptr__free(void *c); +void btAlignedObjectArray_btRigidBody_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btRigidBody*>::* )( ::btRigidBody * const & ) +void* btAlignedObjectArray_btRigidBody_ptr__at(void *c,int p0); //method: at ::btRigidBody * const & ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) const+void* btAlignedObjectArray_btRigidBody_ptr__at0(void *c,int p0); //method: at ::btRigidBody * const & ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) const+void* btAlignedObjectArray_btRigidBody_ptr__at1(void *c,int p0); //method: at ::btRigidBody * & ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) +int btAlignedObjectArray_btRigidBody_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) const+int btAlignedObjectArray_btRigidBody_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) const+void btAlignedObjectArray_btRigidBody_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +void* btAlignedObjectArray_btRigidBody_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) +void btAlignedObjectArray_btRigidBody_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +void btAlignedObjectArray_btRigidBody_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +void btAlignedObjectArray_btRigidBody_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btRigidBody*>::* )( int,int ) +void btAlignedObjectArray_btRigidBody_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btRigidBody*>::* )( void *,int,int ) +void* btAlignedObjectArray_btRigidBody_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btRigidBody * & ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +void btAlignedObjectArray_btRigidBody_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btRigidBody*>::* )( int,::btRigidBody * const & ) +void btAlignedObjectArray_btRigidBody_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btRigidBody*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btRigidBody*>::* )( int,int,::btRigidBody * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btRigidBody_ptr__expand(void *c,void* p0); //method: expand ::btRigidBody * & ( ::btAlignedObjectArray<btRigidBody*>::* )( ::btRigidBody * const & ) +void btAlignedObjectArray_btRigidBody_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btRigidBody*>::* )(  ) +int btAlignedObjectArray_btRigidBody_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) +void btAlignedObjectArray_btRigidBody_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btRigidBody*>::* )( int ) +void btAlignedObjectArray_btRigidBody_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btRigidBody*, 16u> btAlignedObjectArray_btRigidBody_ptr_->m_allocator+void* btAlignedObjectArray_btRigidBody_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btRigidBody*, 16u> btAlignedObjectArray_btRigidBody_ptr_->m_allocator+void btAlignedObjectArray_btRigidBody_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btRigidBody_ptr_->m_size+int btAlignedObjectArray_btRigidBody_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btRigidBody_ptr_->m_size+void btAlignedObjectArray_btRigidBody_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btRigidBody_ptr_->m_capacity+int btAlignedObjectArray_btRigidBody_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btRigidBody_ptr_->m_capacity+// attribute not supported: //attribute: ::btRigidBody * * btAlignedObjectArray_btRigidBody_ptr_->m_data+void btAlignedObjectArray_btRigidBody_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btRigidBody_ptr_->m_ownsMemory+int btAlignedObjectArray_btRigidBody_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btRigidBody_ptr_->m_ownsMemory+void* btAlignedObjectArray_btSoftBody_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +void btAlignedObjectArray_btSoftBody_ptr__free(void *c); +void btAlignedObjectArray_btSoftBody_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody*>::* )( ::btSoftBody * const & ) +void* btAlignedObjectArray_btSoftBody_ptr__at(void *c,int p0); //method: at ::btSoftBody * const & ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_ptr__at0(void *c,int p0); //method: at ::btSoftBody * const & ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_ptr__at1(void *c,int p0); //method: at ::btSoftBody * & ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) +int btAlignedObjectArray_btSoftBody_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) const+int btAlignedObjectArray_btSoftBody_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) const+void btAlignedObjectArray_btSoftBody_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +void btAlignedObjectArray_btSoftBody_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody*>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +void btAlignedObjectArray_btSoftBody_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +void* btAlignedObjectArray_btSoftBody_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) +void btAlignedObjectArray_btSoftBody_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody*>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody * & ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +void btAlignedObjectArray_btSoftBody_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody*>::* )( int,int,::btSoftBody * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody*>::* )( int,::btSoftBody * const & ) +void btAlignedObjectArray_btSoftBody_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody*>::* )(  ) +int btAlignedObjectArray_btSoftBody_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) +void* btAlignedObjectArray_btSoftBody_ptr__expand(void *c,void* p0); //method: expand ::btSoftBody * & ( ::btAlignedObjectArray<btSoftBody*>::* )( ::btSoftBody * const & ) +void btAlignedObjectArray_btSoftBody_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody*>::* )( int ) +void btAlignedObjectArray_btSoftBody_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody*, 16u> btAlignedObjectArray_btSoftBody_ptr_->m_allocator+void* btAlignedObjectArray_btSoftBody_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody*, 16u> btAlignedObjectArray_btSoftBody_ptr_->m_allocator+void btAlignedObjectArray_btSoftBody_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_ptr_->m_capacity+int btAlignedObjectArray_btSoftBody_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_ptr_->m_capacity+// attribute not supported: //attribute: ::btSoftBody * * btAlignedObjectArray_btSoftBody_ptr_->m_data+void btAlignedObjectArray_btSoftBody_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_ptr_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_ptr_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_ptr_->m_size+int btAlignedObjectArray_btSoftBody_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_ptr_->m_size+void* btAlignedObjectArray_btSoftBody_Anchor__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +void btAlignedObjectArray_btSoftBody_Anchor__free(void *c); +void btAlignedObjectArray_btSoftBody_Anchor__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( ::btSoftBody::Anchor const & ) +void* btAlignedObjectArray_btSoftBody_Anchor__at(void *c,int p0); //method: at ::btSoftBody::Anchor const & ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Anchor__at0(void *c,int p0); //method: at ::btSoftBody::Anchor const & ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Anchor__at1(void *c,int p0); //method: at ::btSoftBody::Anchor & ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) +int btAlignedObjectArray_btSoftBody_Anchor__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Anchor__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Anchor__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +void btAlignedObjectArray_btSoftBody_Anchor__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Anchor__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +void btAlignedObjectArray_btSoftBody_Anchor__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Anchor__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) +void btAlignedObjectArray_btSoftBody_Anchor__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Anchor__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Anchor & ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +void btAlignedObjectArray_btSoftBody_Anchor__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Anchor__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int,int,::btSoftBody::Anchor * ) const+void btAlignedObjectArray_btSoftBody_Anchor__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int,::btSoftBody::Anchor const & ) +void btAlignedObjectArray_btSoftBody_Anchor__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )(  ) +int btAlignedObjectArray_btSoftBody_Anchor__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Anchor__expand(void *c,void* p0); //method: expand ::btSoftBody::Anchor & ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( ::btSoftBody::Anchor const & ) +void btAlignedObjectArray_btSoftBody_Anchor__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Anchor>::* )( int ) +void btAlignedObjectArray_btSoftBody_Anchor__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Anchor, 16u> btAlignedObjectArray_btSoftBody_Anchor_->m_allocator+void* btAlignedObjectArray_btSoftBody_Anchor__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Anchor, 16u> btAlignedObjectArray_btSoftBody_Anchor_->m_allocator+void btAlignedObjectArray_btSoftBody_Anchor__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Anchor_->m_capacity+int btAlignedObjectArray_btSoftBody_Anchor__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Anchor_->m_capacity+void btAlignedObjectArray_btSoftBody_Anchor__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Anchor * btAlignedObjectArray_btSoftBody_Anchor_->m_data+void* btAlignedObjectArray_btSoftBody_Anchor__m_data_get(void *c); //attribute: ::btSoftBody::Anchor * btAlignedObjectArray_btSoftBody_Anchor_->m_data+void btAlignedObjectArray_btSoftBody_Anchor__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Anchor_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Anchor__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Anchor_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Anchor__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Anchor_->m_size+int btAlignedObjectArray_btSoftBody_Anchor__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Anchor_->m_size+void* btAlignedObjectArray_btSoftBody_Cluster_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__free(void *c); +void btAlignedObjectArray_btSoftBody_Cluster_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( ::btSoftBody::Cluster * const & ) +void* btAlignedObjectArray_btSoftBody_Cluster_ptr__at(void *c,int p0); //method: at ::btSoftBody::Cluster * const & ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Cluster_ptr__at0(void *c,int p0); //method: at ::btSoftBody::Cluster * const & ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Cluster_ptr__at1(void *c,int p0); //method: at ::btSoftBody::Cluster * & ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) +int btAlignedObjectArray_btSoftBody_Cluster_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Cluster_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Cluster_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Cluster_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Cluster_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Cluster * & ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int,int,::btSoftBody::Cluster * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_Cluster_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int,::btSoftBody::Cluster * const & ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )(  ) +int btAlignedObjectArray_btSoftBody_Cluster_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Cluster_ptr__expand(void *c,void* p0); //method: expand ::btSoftBody::Cluster * & ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( ::btSoftBody::Cluster * const & ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Cluster*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Cluster_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Cluster*, 16u> btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_allocator+void* btAlignedObjectArray_btSoftBody_Cluster_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Cluster*, 16u> btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_allocator+void btAlignedObjectArray_btSoftBody_Cluster_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_capacity+int btAlignedObjectArray_btSoftBody_Cluster_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_capacity+// attribute not supported: //attribute: ::btSoftBody::Cluster * * btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_data+void btAlignedObjectArray_btSoftBody_Cluster_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Cluster_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Cluster_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_size+int btAlignedObjectArray_btSoftBody_Cluster_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Cluster_ptr_->m_size+void* btAlignedObjectArray_btSoftBody_Face__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +void btAlignedObjectArray_btSoftBody_Face__free(void *c); +void btAlignedObjectArray_btSoftBody_Face__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( ::btSoftBody::Face const & ) +void* btAlignedObjectArray_btSoftBody_Face__at(void *c,int p0); //method: at ::btSoftBody::Face const & ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Face__at0(void *c,int p0); //method: at ::btSoftBody::Face const & ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Face__at1(void *c,int p0); //method: at ::btSoftBody::Face & ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) +int btAlignedObjectArray_btSoftBody_Face__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Face__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Face__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +void btAlignedObjectArray_btSoftBody_Face__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Face__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +void btAlignedObjectArray_btSoftBody_Face__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Face__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) +void btAlignedObjectArray_btSoftBody_Face__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Face__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Face & ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +void btAlignedObjectArray_btSoftBody_Face__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Face__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int,int,::btSoftBody::Face * ) const+void btAlignedObjectArray_btSoftBody_Face__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int,::btSoftBody::Face const & ) +void btAlignedObjectArray_btSoftBody_Face__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Face>::* )(  ) +int btAlignedObjectArray_btSoftBody_Face__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Face__expand(void *c,void* p0); //method: expand ::btSoftBody::Face & ( ::btAlignedObjectArray<btSoftBody::Face>::* )( ::btSoftBody::Face const & ) +void btAlignedObjectArray_btSoftBody_Face__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Face>::* )( int ) +void btAlignedObjectArray_btSoftBody_Face__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Face, 16u> btAlignedObjectArray_btSoftBody_Face_->m_allocator+void* btAlignedObjectArray_btSoftBody_Face__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Face, 16u> btAlignedObjectArray_btSoftBody_Face_->m_allocator+void btAlignedObjectArray_btSoftBody_Face__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Face_->m_capacity+int btAlignedObjectArray_btSoftBody_Face__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Face_->m_capacity+void btAlignedObjectArray_btSoftBody_Face__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Face * btAlignedObjectArray_btSoftBody_Face_->m_data+void* btAlignedObjectArray_btSoftBody_Face__m_data_get(void *c); //attribute: ::btSoftBody::Face * btAlignedObjectArray_btSoftBody_Face_->m_data+void btAlignedObjectArray_btSoftBody_Face__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Face_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Face__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Face_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Face__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Face_->m_size+int btAlignedObjectArray_btSoftBody_Face__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Face_->m_size+void* btAlignedObjectArray_btSoftBody_Joint_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__free(void *c); +void btAlignedObjectArray_btSoftBody_Joint_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( ::btSoftBody::Joint * const & ) +void* btAlignedObjectArray_btSoftBody_Joint_ptr__at(void *c,int p0); //method: at ::btSoftBody::Joint * const & ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Joint_ptr__at0(void *c,int p0); //method: at ::btSoftBody::Joint * const & ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Joint_ptr__at1(void *c,int p0); //method: at ::btSoftBody::Joint * & ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) +int btAlignedObjectArray_btSoftBody_Joint_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Joint_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Joint_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Joint_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Joint_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Joint * & ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int,int,::btSoftBody::Joint * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_Joint_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int,::btSoftBody::Joint * const & ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )(  ) +int btAlignedObjectArray_btSoftBody_Joint_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Joint_ptr__expand(void *c,void* p0); //method: expand ::btSoftBody::Joint * & ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( ::btSoftBody::Joint * const & ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Joint*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Joint_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Joint*, 16u> btAlignedObjectArray_btSoftBody_Joint_ptr_->m_allocator+void* btAlignedObjectArray_btSoftBody_Joint_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Joint*, 16u> btAlignedObjectArray_btSoftBody_Joint_ptr_->m_allocator+void btAlignedObjectArray_btSoftBody_Joint_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Joint_ptr_->m_capacity+int btAlignedObjectArray_btSoftBody_Joint_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Joint_ptr_->m_capacity+// attribute not supported: //attribute: ::btSoftBody::Joint * * btAlignedObjectArray_btSoftBody_Joint_ptr_->m_data+void btAlignedObjectArray_btSoftBody_Joint_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Joint_ptr_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Joint_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Joint_ptr_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Joint_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Joint_ptr_->m_size+int btAlignedObjectArray_btSoftBody_Joint_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Joint_ptr_->m_size+void* btAlignedObjectArray_btSoftBody_Link__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +void btAlignedObjectArray_btSoftBody_Link__free(void *c); +void btAlignedObjectArray_btSoftBody_Link__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( ::btSoftBody::Link const & ) +void* btAlignedObjectArray_btSoftBody_Link__at(void *c,int p0); //method: at ::btSoftBody::Link const & ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Link__at0(void *c,int p0); //method: at ::btSoftBody::Link const & ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Link__at1(void *c,int p0); //method: at ::btSoftBody::Link & ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) +int btAlignedObjectArray_btSoftBody_Link__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Link__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Link__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +void btAlignedObjectArray_btSoftBody_Link__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Link__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +void btAlignedObjectArray_btSoftBody_Link__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Link__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) +void btAlignedObjectArray_btSoftBody_Link__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Link__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Link & ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +void btAlignedObjectArray_btSoftBody_Link__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Link__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int,int,::btSoftBody::Link * ) const+void btAlignedObjectArray_btSoftBody_Link__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int,::btSoftBody::Link const & ) +void btAlignedObjectArray_btSoftBody_Link__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Link>::* )(  ) +int btAlignedObjectArray_btSoftBody_Link__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Link__expand(void *c,void* p0); //method: expand ::btSoftBody::Link & ( ::btAlignedObjectArray<btSoftBody::Link>::* )( ::btSoftBody::Link const & ) +void btAlignedObjectArray_btSoftBody_Link__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Link>::* )( int ) +void btAlignedObjectArray_btSoftBody_Link__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Link, 16u> btAlignedObjectArray_btSoftBody_Link_->m_allocator+void* btAlignedObjectArray_btSoftBody_Link__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Link, 16u> btAlignedObjectArray_btSoftBody_Link_->m_allocator+void btAlignedObjectArray_btSoftBody_Link__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Link_->m_capacity+int btAlignedObjectArray_btSoftBody_Link__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Link_->m_capacity+void btAlignedObjectArray_btSoftBody_Link__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Link * btAlignedObjectArray_btSoftBody_Link_->m_data+void* btAlignedObjectArray_btSoftBody_Link__m_data_get(void *c); //attribute: ::btSoftBody::Link * btAlignedObjectArray_btSoftBody_Link_->m_data+void btAlignedObjectArray_btSoftBody_Link__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Link_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Link__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Link_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Link__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Link_->m_size+int btAlignedObjectArray_btSoftBody_Link__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Link_->m_size+void* btAlignedObjectArray_btSoftBody_Material_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Material_ptr__free(void *c); +void btAlignedObjectArray_btSoftBody_Material_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( ::btSoftBody::Material * const & ) +void* btAlignedObjectArray_btSoftBody_Material_ptr__at(void *c,int p0); //method: at ::btSoftBody::Material * const & ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Material_ptr__at0(void *c,int p0); //method: at ::btSoftBody::Material * const & ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Material_ptr__at1(void *c,int p0); //method: at ::btSoftBody::Material * & ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) +int btAlignedObjectArray_btSoftBody_Material_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Material_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Material_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Material_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Material_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Material_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Material_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Material_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Material_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Material * & ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Material_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int,int,::btSoftBody::Material * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_Material_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int,::btSoftBody::Material * const & ) +void btAlignedObjectArray_btSoftBody_Material_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )(  ) +int btAlignedObjectArray_btSoftBody_Material_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Material_ptr__expand(void *c,void* p0); //method: expand ::btSoftBody::Material * & ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( ::btSoftBody::Material * const & ) +void btAlignedObjectArray_btSoftBody_Material_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Material*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Material_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Material*, 16u> btAlignedObjectArray_btSoftBody_Material_ptr_->m_allocator+void* btAlignedObjectArray_btSoftBody_Material_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Material*, 16u> btAlignedObjectArray_btSoftBody_Material_ptr_->m_allocator+void btAlignedObjectArray_btSoftBody_Material_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Material_ptr_->m_capacity+int btAlignedObjectArray_btSoftBody_Material_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Material_ptr_->m_capacity+// attribute not supported: //attribute: ::btSoftBody::Material * * btAlignedObjectArray_btSoftBody_Material_ptr_->m_data+void btAlignedObjectArray_btSoftBody_Material_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Material_ptr_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Material_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Material_ptr_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Material_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Material_ptr_->m_size+int btAlignedObjectArray_btSoftBody_Material_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Material_ptr_->m_size+void* btAlignedObjectArray_btSoftBody_Node_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node_ptr__free(void *c); +void btAlignedObjectArray_btSoftBody_Node_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( ::btSoftBody::Node * const & ) +void* btAlignedObjectArray_btSoftBody_Node_ptr__at(void *c,int p0); //method: at ::btSoftBody::Node * const & ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Node_ptr__at0(void *c,int p0); //method: at ::btSoftBody::Node * const & ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Node_ptr__at1(void *c,int p0); //method: at ::btSoftBody::Node * & ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) +int btAlignedObjectArray_btSoftBody_Node_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Node_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Node_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Node_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Node_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Node_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Node_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Node * & ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int,int,::btSoftBody::Node * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_Node_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int,::btSoftBody::Node * const & ) +void btAlignedObjectArray_btSoftBody_Node_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )(  ) +int btAlignedObjectArray_btSoftBody_Node_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Node_ptr__expand(void *c,void* p0); //method: expand ::btSoftBody::Node * & ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( ::btSoftBody::Node * const & ) +void btAlignedObjectArray_btSoftBody_Node_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Node*>::* )( int ) +void btAlignedObjectArray_btSoftBody_Node_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Node*, 16u> btAlignedObjectArray_btSoftBody_Node_ptr_->m_allocator+void* btAlignedObjectArray_btSoftBody_Node_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Node*, 16u> btAlignedObjectArray_btSoftBody_Node_ptr_->m_allocator+void btAlignedObjectArray_btSoftBody_Node_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Node_ptr_->m_capacity+int btAlignedObjectArray_btSoftBody_Node_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Node_ptr_->m_capacity+// attribute not supported: //attribute: ::btSoftBody::Node * * btAlignedObjectArray_btSoftBody_Node_ptr_->m_data+void btAlignedObjectArray_btSoftBody_Node_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Node_ptr_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Node_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Node_ptr_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Node_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Node_ptr_->m_size+int btAlignedObjectArray_btSoftBody_Node_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Node_ptr_->m_size+void* btAlignedObjectArray_btSoftBody_Node__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node__free(void *c); +void btAlignedObjectArray_btSoftBody_Node__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( ::btSoftBody::Node const & ) +void* btAlignedObjectArray_btSoftBody_Node__at(void *c,int p0); //method: at ::btSoftBody::Node const & ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Node__at0(void *c,int p0); //method: at ::btSoftBody::Node const & ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Node__at1(void *c,int p0); //method: at ::btSoftBody::Node & ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) +int btAlignedObjectArray_btSoftBody_Node__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Node__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Node__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Node__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Node__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) +void btAlignedObjectArray_btSoftBody_Node__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Node__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Node & ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +void btAlignedObjectArray_btSoftBody_Node__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Node__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int,int,::btSoftBody::Node * ) const+void btAlignedObjectArray_btSoftBody_Node__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int,::btSoftBody::Node const & ) +void btAlignedObjectArray_btSoftBody_Node__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Node>::* )(  ) +int btAlignedObjectArray_btSoftBody_Node__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Node__expand(void *c,void* p0); //method: expand ::btSoftBody::Node & ( ::btAlignedObjectArray<btSoftBody::Node>::* )( ::btSoftBody::Node const & ) +void btAlignedObjectArray_btSoftBody_Node__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Node>::* )( int ) +void btAlignedObjectArray_btSoftBody_Node__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Node, 16u> btAlignedObjectArray_btSoftBody_Node_->m_allocator+void* btAlignedObjectArray_btSoftBody_Node__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Node, 16u> btAlignedObjectArray_btSoftBody_Node_->m_allocator+void btAlignedObjectArray_btSoftBody_Node__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Node_->m_capacity+int btAlignedObjectArray_btSoftBody_Node__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Node_->m_capacity+void btAlignedObjectArray_btSoftBody_Node__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Node * btAlignedObjectArray_btSoftBody_Node_->m_data+void* btAlignedObjectArray_btSoftBody_Node__m_data_get(void *c); //attribute: ::btSoftBody::Node * btAlignedObjectArray_btSoftBody_Node_->m_data+void btAlignedObjectArray_btSoftBody_Node__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Node_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Node__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Node_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Node__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Node_->m_size+int btAlignedObjectArray_btSoftBody_Node__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Node_->m_size+void* btAlignedObjectArray_btSoftBody_Note__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +void btAlignedObjectArray_btSoftBody_Note__free(void *c); +void btAlignedObjectArray_btSoftBody_Note__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( ::btSoftBody::Note const & ) +void* btAlignedObjectArray_btSoftBody_Note__at(void *c,int p0); //method: at ::btSoftBody::Note const & ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Note__at0(void *c,int p0); //method: at ::btSoftBody::Note const & ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Note__at1(void *c,int p0); //method: at ::btSoftBody::Note & ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) +int btAlignedObjectArray_btSoftBody_Note__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Note__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Note__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +void btAlignedObjectArray_btSoftBody_Note__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Note__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +void btAlignedObjectArray_btSoftBody_Note__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Note__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) +void btAlignedObjectArray_btSoftBody_Note__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Note__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Note & ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +void btAlignedObjectArray_btSoftBody_Note__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Note__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int,int,::btSoftBody::Note * ) const+void btAlignedObjectArray_btSoftBody_Note__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int,::btSoftBody::Note const & ) +void btAlignedObjectArray_btSoftBody_Note__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Note>::* )(  ) +int btAlignedObjectArray_btSoftBody_Note__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Note__expand(void *c,void* p0); //method: expand ::btSoftBody::Note & ( ::btAlignedObjectArray<btSoftBody::Note>::* )( ::btSoftBody::Note const & ) +void btAlignedObjectArray_btSoftBody_Note__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Note>::* )( int ) +void btAlignedObjectArray_btSoftBody_Note__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Note, 16u> btAlignedObjectArray_btSoftBody_Note_->m_allocator+void* btAlignedObjectArray_btSoftBody_Note__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Note, 16u> btAlignedObjectArray_btSoftBody_Note_->m_allocator+void btAlignedObjectArray_btSoftBody_Note__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Note_->m_capacity+int btAlignedObjectArray_btSoftBody_Note__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Note_->m_capacity+void btAlignedObjectArray_btSoftBody_Note__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Note * btAlignedObjectArray_btSoftBody_Note_->m_data+void* btAlignedObjectArray_btSoftBody_Note__m_data_get(void *c); //attribute: ::btSoftBody::Note * btAlignedObjectArray_btSoftBody_Note_->m_data+void btAlignedObjectArray_btSoftBody_Note__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Note_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Note__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Note_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Note__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Note_->m_size+int btAlignedObjectArray_btSoftBody_Note__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Note_->m_size+void* btAlignedObjectArray_btSoftBody_RContact__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_RContact__free(void *c); +void btAlignedObjectArray_btSoftBody_RContact__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( ::btSoftBody::RContact const & ) +void* btAlignedObjectArray_btSoftBody_RContact__at(void *c,int p0); //method: at ::btSoftBody::RContact const & ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_RContact__at0(void *c,int p0); //method: at ::btSoftBody::RContact const & ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_RContact__at1(void *c,int p0); //method: at ::btSoftBody::RContact & ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) +int btAlignedObjectArray_btSoftBody_RContact__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) const+int btAlignedObjectArray_btSoftBody_RContact__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) const+void btAlignedObjectArray_btSoftBody_RContact__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_RContact__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_RContact__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_RContact__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +void* btAlignedObjectArray_btSoftBody_RContact__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) +void btAlignedObjectArray_btSoftBody_RContact__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_RContact__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::RContact & ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_RContact__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_RContact__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int,int,::btSoftBody::RContact * ) const+void btAlignedObjectArray_btSoftBody_RContact__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int,::btSoftBody::RContact const & ) +void btAlignedObjectArray_btSoftBody_RContact__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )(  ) +int btAlignedObjectArray_btSoftBody_RContact__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) +void* btAlignedObjectArray_btSoftBody_RContact__expand(void *c,void* p0); //method: expand ::btSoftBody::RContact & ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( ::btSoftBody::RContact const & ) +void btAlignedObjectArray_btSoftBody_RContact__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::RContact>::* )( int ) +void btAlignedObjectArray_btSoftBody_RContact__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::RContact, 16u> btAlignedObjectArray_btSoftBody_RContact_->m_allocator+void* btAlignedObjectArray_btSoftBody_RContact__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::RContact, 16u> btAlignedObjectArray_btSoftBody_RContact_->m_allocator+void btAlignedObjectArray_btSoftBody_RContact__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_RContact_->m_capacity+int btAlignedObjectArray_btSoftBody_RContact__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_RContact_->m_capacity+void btAlignedObjectArray_btSoftBody_RContact__m_data_set(void *c,void* a); //attribute: ::btSoftBody::RContact * btAlignedObjectArray_btSoftBody_RContact_->m_data+void* btAlignedObjectArray_btSoftBody_RContact__m_data_get(void *c); //attribute: ::btSoftBody::RContact * btAlignedObjectArray_btSoftBody_RContact_->m_data+void btAlignedObjectArray_btSoftBody_RContact__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_RContact_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_RContact__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_RContact_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_RContact__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_RContact_->m_size+int btAlignedObjectArray_btSoftBody_RContact__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_RContact_->m_size+void* btAlignedObjectArray_btSoftBody_SContact__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_SContact__free(void *c); +void btAlignedObjectArray_btSoftBody_SContact__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( ::btSoftBody::SContact const & ) +void* btAlignedObjectArray_btSoftBody_SContact__at(void *c,int p0); //method: at ::btSoftBody::SContact const & ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_SContact__at0(void *c,int p0); //method: at ::btSoftBody::SContact const & ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_SContact__at1(void *c,int p0); //method: at ::btSoftBody::SContact & ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) +int btAlignedObjectArray_btSoftBody_SContact__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) const+int btAlignedObjectArray_btSoftBody_SContact__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) const+void btAlignedObjectArray_btSoftBody_SContact__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_SContact__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_SContact__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_SContact__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +void* btAlignedObjectArray_btSoftBody_SContact__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) +void btAlignedObjectArray_btSoftBody_SContact__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_SContact__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::SContact & ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +void btAlignedObjectArray_btSoftBody_SContact__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_SContact__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int,int,::btSoftBody::SContact * ) const+void btAlignedObjectArray_btSoftBody_SContact__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int,::btSoftBody::SContact const & ) +void btAlignedObjectArray_btSoftBody_SContact__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )(  ) +int btAlignedObjectArray_btSoftBody_SContact__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) +void* btAlignedObjectArray_btSoftBody_SContact__expand(void *c,void* p0); //method: expand ::btSoftBody::SContact & ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( ::btSoftBody::SContact const & ) +void btAlignedObjectArray_btSoftBody_SContact__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::SContact>::* )( int ) +void btAlignedObjectArray_btSoftBody_SContact__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::SContact, 16u> btAlignedObjectArray_btSoftBody_SContact_->m_allocator+void* btAlignedObjectArray_btSoftBody_SContact__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::SContact, 16u> btAlignedObjectArray_btSoftBody_SContact_->m_allocator+void btAlignedObjectArray_btSoftBody_SContact__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_SContact_->m_capacity+int btAlignedObjectArray_btSoftBody_SContact__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_SContact_->m_capacity+void btAlignedObjectArray_btSoftBody_SContact__m_data_set(void *c,void* a); //attribute: ::btSoftBody::SContact * btAlignedObjectArray_btSoftBody_SContact_->m_data+void* btAlignedObjectArray_btSoftBody_SContact__m_data_get(void *c); //attribute: ::btSoftBody::SContact * btAlignedObjectArray_btSoftBody_SContact_->m_data+void btAlignedObjectArray_btSoftBody_SContact__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_SContact_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_SContact__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_SContact_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_SContact__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_SContact_->m_size+int btAlignedObjectArray_btSoftBody_SContact__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_SContact_->m_size+void* btAlignedObjectArray_btSoftBody_Tetra__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +void btAlignedObjectArray_btSoftBody_Tetra__free(void *c); +void btAlignedObjectArray_btSoftBody_Tetra__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( ::btSoftBody::Tetra const & ) +void* btAlignedObjectArray_btSoftBody_Tetra__at(void *c,int p0); //method: at ::btSoftBody::Tetra const & ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Tetra__at0(void *c,int p0); //method: at ::btSoftBody::Tetra const & ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) const+void* btAlignedObjectArray_btSoftBody_Tetra__at1(void *c,int p0); //method: at ::btSoftBody::Tetra & ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) +int btAlignedObjectArray_btSoftBody_Tetra__size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) const+int btAlignedObjectArray_btSoftBody_Tetra__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) const+void btAlignedObjectArray_btSoftBody_Tetra__init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +void btAlignedObjectArray_btSoftBody_Tetra__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Tetra__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +void btAlignedObjectArray_btSoftBody_Tetra__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +void* btAlignedObjectArray_btSoftBody_Tetra__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) +void btAlignedObjectArray_btSoftBody_Tetra__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( void *,int,int ) +void* btAlignedObjectArray_btSoftBody_Tetra__expandNonInitializing(void *c); //method: expandNonInitializing ::btSoftBody::Tetra & ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +void btAlignedObjectArray_btSoftBody_Tetra__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_Tetra__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int,int,::btSoftBody::Tetra * ) const+void btAlignedObjectArray_btSoftBody_Tetra__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int,::btSoftBody::Tetra const & ) +void btAlignedObjectArray_btSoftBody_Tetra__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )(  ) +int btAlignedObjectArray_btSoftBody_Tetra__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) +void* btAlignedObjectArray_btSoftBody_Tetra__expand(void *c,void* p0); //method: expand ::btSoftBody::Tetra & ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( ::btSoftBody::Tetra const & ) +void btAlignedObjectArray_btSoftBody_Tetra__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::Tetra>::* )( int ) +void btAlignedObjectArray_btSoftBody_Tetra__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::Tetra, 16u> btAlignedObjectArray_btSoftBody_Tetra_->m_allocator+void* btAlignedObjectArray_btSoftBody_Tetra__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::Tetra, 16u> btAlignedObjectArray_btSoftBody_Tetra_->m_allocator+void btAlignedObjectArray_btSoftBody_Tetra__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Tetra_->m_capacity+int btAlignedObjectArray_btSoftBody_Tetra__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Tetra_->m_capacity+void btAlignedObjectArray_btSoftBody_Tetra__m_data_set(void *c,void* a); //attribute: ::btSoftBody::Tetra * btAlignedObjectArray_btSoftBody_Tetra_->m_data+void* btAlignedObjectArray_btSoftBody_Tetra__m_data_get(void *c); //attribute: ::btSoftBody::Tetra * btAlignedObjectArray_btSoftBody_Tetra_->m_data+void btAlignedObjectArray_btSoftBody_Tetra__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_Tetra_->m_ownsMemory+int btAlignedObjectArray_btSoftBody_Tetra__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_Tetra_->m_ownsMemory+void btAlignedObjectArray_btSoftBody_Tetra__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_Tetra_->m_size+int btAlignedObjectArray_btSoftBody_Tetra__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_Tetra_->m_size+void* btAlignedObjectArray_btSoftBody_ePSolver____new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_ePSolver____free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( ::btSoftBody::ePSolver::_ const & ) +// error:  - unsupported, void - ok++//not supported method: at ::btSoftBody::ePSolver::_ const & ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSoftBody::ePSolver::_ const & ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSoftBody::ePSolver::_ & ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_btSoftBody_ePSolver____size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) const+int btAlignedObjectArray_btSoftBody_ePSolver____capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) const+void btAlignedObjectArray_btSoftBody_ePSolver____init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_ePSolver____swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_ePSolver____pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_ePSolver____deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +void* btAlignedObjectArray_btSoftBody_ePSolver____allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) +void btAlignedObjectArray_btSoftBody_ePSolver____initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( void *,int,int ) +//not supported method: expandNonInitializing ::btSoftBody::ePSolver::_ & ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_btSoftBody_ePSolver____destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int,int,::btSoftBody::ePSolver::_ * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int,::btSoftBody::ePSolver::_ const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_ePSolver____clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )(  ) +int btAlignedObjectArray_btSoftBody_ePSolver____allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) +//not supported method: expand ::btSoftBody::ePSolver::_ & ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( ::btSoftBody::ePSolver::_ const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_btSoftBody_ePSolver____reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::ePSolver::_>::* )( int ) +void btAlignedObjectArray_btSoftBody_ePSolver____m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u> btAlignedObjectArray_btSoftBody_ePSolver___->m_allocator+void* btAlignedObjectArray_btSoftBody_ePSolver____m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::ePSolver::_, 16u> btAlignedObjectArray_btSoftBody_ePSolver___->m_allocator+void btAlignedObjectArray_btSoftBody_ePSolver____m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_ePSolver___->m_capacity+int btAlignedObjectArray_btSoftBody_ePSolver____m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_ePSolver___->m_capacity+// attribute not supported: //attribute: ::btSoftBody::ePSolver::_ * btAlignedObjectArray_btSoftBody_ePSolver___->m_data+void btAlignedObjectArray_btSoftBody_ePSolver____m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_ePSolver___->m_ownsMemory+int btAlignedObjectArray_btSoftBody_ePSolver____m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_ePSolver___->m_ownsMemory+void btAlignedObjectArray_btSoftBody_ePSolver____m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_ePSolver___->m_size+int btAlignedObjectArray_btSoftBody_ePSolver____m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_ePSolver___->m_size+void* btAlignedObjectArray_btSoftBody_eVSolver____new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_eVSolver____free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( ::btSoftBody::eVSolver::_ const & ) +// error:  - unsupported, void - ok++//not supported method: at ::btSoftBody::eVSolver::_ const & ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSoftBody::eVSolver::_ const & ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSoftBody::eVSolver::_ & ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_btSoftBody_eVSolver____size(void *c); //method: size int ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) const+int btAlignedObjectArray_btSoftBody_eVSolver____capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) const+void btAlignedObjectArray_btSoftBody_eVSolver____init(void *c); //method: init void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_eVSolver____swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int,int ) +void btAlignedObjectArray_btSoftBody_eVSolver____pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +void btAlignedObjectArray_btSoftBody_eVSolver____deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +void* btAlignedObjectArray_btSoftBody_eVSolver____allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) +void btAlignedObjectArray_btSoftBody_eVSolver____initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( void *,int,int ) +//not supported method: expandNonInitializing ::btSoftBody::eVSolver::_ & ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_btSoftBody_eVSolver____destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int,int,::btSoftBody::eVSolver::_ * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int,::btSoftBody::eVSolver::_ const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSoftBody_eVSolver____clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )(  ) +int btAlignedObjectArray_btSoftBody_eVSolver____allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) +//not supported method: expand ::btSoftBody::eVSolver::_ & ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( ::btSoftBody::eVSolver::_ const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_btSoftBody_eVSolver____reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSoftBody::eVSolver::_>::* )( int ) +void btAlignedObjectArray_btSoftBody_eVSolver____m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u> btAlignedObjectArray_btSoftBody_eVSolver___->m_allocator+void* btAlignedObjectArray_btSoftBody_eVSolver____m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSoftBody::eVSolver::_, 16u> btAlignedObjectArray_btSoftBody_eVSolver___->m_allocator+void btAlignedObjectArray_btSoftBody_eVSolver____m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_eVSolver___->m_capacity+int btAlignedObjectArray_btSoftBody_eVSolver____m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_eVSolver___->m_capacity+// attribute not supported: //attribute: ::btSoftBody::eVSolver::_ * btAlignedObjectArray_btSoftBody_eVSolver___->m_data+void btAlignedObjectArray_btSoftBody_eVSolver____m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSoftBody_eVSolver___->m_ownsMemory+int btAlignedObjectArray_btSoftBody_eVSolver____m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSoftBody_eVSolver___->m_ownsMemory+void btAlignedObjectArray_btSoftBody_eVSolver____m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSoftBody_eVSolver___->m_size+int btAlignedObjectArray_btSoftBody_eVSolver____m_size_get(void *c); //attribute: int btAlignedObjectArray_btSoftBody_eVSolver___->m_size+void* btAlignedObjectArray_btSolverConstraint__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +void btAlignedObjectArray_btSolverConstraint__free(void *c); +void btAlignedObjectArray_btSolverConstraint__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btSolverConstraint>::* )( ::btSolverConstraint const & ) +void* btAlignedObjectArray_btSolverConstraint__at(void *c,int p0); //method: at ::btSolverConstraint const & ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) const+void* btAlignedObjectArray_btSolverConstraint__at0(void *c,int p0); //method: at ::btSolverConstraint const & ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) const+void* btAlignedObjectArray_btSolverConstraint__at1(void *c,int p0); //method: at ::btSolverConstraint & ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) +int btAlignedObjectArray_btSolverConstraint__size(void *c); //method: size int ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) const+int btAlignedObjectArray_btSolverConstraint__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) const+void btAlignedObjectArray_btSolverConstraint__init(void *c); //method: init void ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +void* btAlignedObjectArray_btSolverConstraint__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) +void btAlignedObjectArray_btSolverConstraint__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +void btAlignedObjectArray_btSolverConstraint__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +void btAlignedObjectArray_btSolverConstraint__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSolverConstraint>::* )( int,int ) +void btAlignedObjectArray_btSolverConstraint__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSolverConstraint>::* )( void *,int,int ) +void* btAlignedObjectArray_btSolverConstraint__expandNonInitializing(void *c); //method: expandNonInitializing ::btSolverConstraint & ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +void btAlignedObjectArray_btSolverConstraint__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btSolverConstraint>::* )( int,::btSolverConstraint const & ) +void btAlignedObjectArray_btSolverConstraint__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSolverConstraint>::* )( int,int ) +void btAlignedObjectArray_btSolverConstraint__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btSolverConstraint>::* )( int,int,::btSolverConstraint * ) const+void* btAlignedObjectArray_btSolverConstraint__expand(void *c,void* p0); //method: expand ::btSolverConstraint & ( ::btAlignedObjectArray<btSolverConstraint>::* )( ::btSolverConstraint const & ) +void btAlignedObjectArray_btSolverConstraint__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSolverConstraint>::* )(  ) +int btAlignedObjectArray_btSolverConstraint__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) +void btAlignedObjectArray_btSolverConstraint__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSolverConstraint>::* )( int ) +void btAlignedObjectArray_btSolverConstraint__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSolverConstraint, 16u> btAlignedObjectArray_btSolverConstraint_->m_allocator+void* btAlignedObjectArray_btSolverConstraint__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSolverConstraint, 16u> btAlignedObjectArray_btSolverConstraint_->m_allocator+void btAlignedObjectArray_btSolverConstraint__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSolverConstraint_->m_size+int btAlignedObjectArray_btSolverConstraint__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSolverConstraint_->m_size+void btAlignedObjectArray_btSolverConstraint__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSolverConstraint_->m_capacity+int btAlignedObjectArray_btSolverConstraint__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSolverConstraint_->m_capacity+void btAlignedObjectArray_btSolverConstraint__m_data_set(void *c,void* a); //attribute: ::btSolverConstraint * btAlignedObjectArray_btSolverConstraint_->m_data+void* btAlignedObjectArray_btSolverConstraint__m_data_get(void *c); //attribute: ::btSolverConstraint * btAlignedObjectArray_btSolverConstraint_->m_data+void btAlignedObjectArray_btSolverConstraint__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSolverConstraint_->m_ownsMemory+int btAlignedObjectArray_btSolverConstraint__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSolverConstraint_->m_ownsMemory+void* btAlignedObjectArray_btSparseSdf_3__Cell_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( ::btSparseSdf<3>::Cell * const & ) +// error:  - unsupported, void - ok++//not supported method: at ::btSparseSdf<3>::Cell * const & ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSparseSdf<3>::Cell * const & ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at ::btSparseSdf<3>::Cell * & ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) const+int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) const+void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int,int ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +void* btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( void *,int,int ) +//not supported method: expandNonInitializing ::btSparseSdf<3>::Cell * & ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int,int,::btSparseSdf<3>::Cell * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int,::btSparseSdf<3>::Cell * const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )(  ) +int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) +//not supported method: expand ::btSparseSdf<3>::Cell * & ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( ::btSparseSdf<3>::Cell * const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btSparseSdf<3>::Cell*>::* )( int ) +void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u> btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_allocator+void* btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btSparseSdf<3>::Cell*, 16u> btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_allocator+void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_capacity+int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_capacity+// attribute not supported: //attribute: ::btSparseSdf<3>::Cell * * btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_data+void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_ownsMemory+int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_ownsMemory+void btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_size+int btAlignedObjectArray_btSparseSdf_3__Cell_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btSparseSdf_3__Cell_ptr_->m_size+void* btAlignedObjectArray_btTransform__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btTransform>::* )(  ) +void btAlignedObjectArray_btTransform__free(void *c); +void btAlignedObjectArray_btTransform__push_back(void *c,float* p0); //method: push_back void ( ::btAlignedObjectArray<btTransform>::* )( ::btTransform const & ) +void btAlignedObjectArray_btTransform__at(void *c,int p0,float* ret); //method: at ::btTransform const & ( ::btAlignedObjectArray<btTransform>::* )( int ) const+void btAlignedObjectArray_btTransform__at0(void *c,int p0,float* ret); //method: at ::btTransform const & ( ::btAlignedObjectArray<btTransform>::* )( int ) const+void btAlignedObjectArray_btTransform__at1(void *c,int p0,float* ret); //method: at ::btTransform & ( ::btAlignedObjectArray<btTransform>::* )( int ) +int btAlignedObjectArray_btTransform__size(void *c); //method: size int ( ::btAlignedObjectArray<btTransform>::* )(  ) const+int btAlignedObjectArray_btTransform__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btTransform>::* )(  ) const+void btAlignedObjectArray_btTransform__init(void *c); //method: init void ( ::btAlignedObjectArray<btTransform>::* )(  ) +void* btAlignedObjectArray_btTransform__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btTransform>::* )( int ) +void btAlignedObjectArray_btTransform__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btTransform>::* )(  ) +void btAlignedObjectArray_btTransform__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btTransform>::* )(  ) +void btAlignedObjectArray_btTransform__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btTransform>::* )( int,int ) +void btAlignedObjectArray_btTransform__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btTransform>::* )( void *,int,int ) +void btAlignedObjectArray_btTransform__expandNonInitializing(void *c,float* ret); //method: expandNonInitializing ::btTransform & ( ::btAlignedObjectArray<btTransform>::* )(  ) +void btAlignedObjectArray_btTransform__resize(void *c,int p0,float* p1); //method: resize void ( ::btAlignedObjectArray<btTransform>::* )( int,::btTransform const & ) +void btAlignedObjectArray_btTransform__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btTransform>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btTransform>::* )( int,int,::btTransform * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btTransform__expand(void *c,float* p0,float* ret); //method: expand ::btTransform & ( ::btAlignedObjectArray<btTransform>::* )( ::btTransform const & ) +void btAlignedObjectArray_btTransform__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btTransform>::* )(  ) +int btAlignedObjectArray_btTransform__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btTransform>::* )( int ) +void btAlignedObjectArray_btTransform__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btTransform>::* )( int ) +void btAlignedObjectArray_btTransform__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btTransform, 16u> btAlignedObjectArray_btTransform_->m_allocator+void* btAlignedObjectArray_btTransform__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btTransform, 16u> btAlignedObjectArray_btTransform_->m_allocator+void btAlignedObjectArray_btTransform__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btTransform_->m_size+int btAlignedObjectArray_btTransform__m_size_get(void *c); //attribute: int btAlignedObjectArray_btTransform_->m_size+void btAlignedObjectArray_btTransform__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btTransform_->m_capacity+int btAlignedObjectArray_btTransform__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btTransform_->m_capacity+// attribute not supported: //attribute: ::btTransform * btAlignedObjectArray_btTransform_->m_data+void btAlignedObjectArray_btTransform__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btTransform_->m_ownsMemory+int btAlignedObjectArray_btTransform__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btTransform_->m_ownsMemory+void* btAlignedObjectArray_btTriangleInfo__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +void btAlignedObjectArray_btTriangleInfo__free(void *c); +void btAlignedObjectArray_btTriangleInfo__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btTriangleInfo>::* )( ::btTriangleInfo const & ) +void* btAlignedObjectArray_btTriangleInfo__at(void *c,int p0); //method: at ::btTriangleInfo const & ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) const+void* btAlignedObjectArray_btTriangleInfo__at0(void *c,int p0); //method: at ::btTriangleInfo const & ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) const+void* btAlignedObjectArray_btTriangleInfo__at1(void *c,int p0); //method: at ::btTriangleInfo & ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) +int btAlignedObjectArray_btTriangleInfo__size(void *c); //method: size int ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) const+int btAlignedObjectArray_btTriangleInfo__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) const+void btAlignedObjectArray_btTriangleInfo__init(void *c); //method: init void ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +void* btAlignedObjectArray_btTriangleInfo__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) +void btAlignedObjectArray_btTriangleInfo__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +void btAlignedObjectArray_btTriangleInfo__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +void btAlignedObjectArray_btTriangleInfo__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btTriangleInfo>::* )( int,int ) +void btAlignedObjectArray_btTriangleInfo__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btTriangleInfo>::* )( void *,int,int ) +void* btAlignedObjectArray_btTriangleInfo__expandNonInitializing(void *c); //method: expandNonInitializing ::btTriangleInfo & ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +void btAlignedObjectArray_btTriangleInfo__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btTriangleInfo>::* )( int,::btTriangleInfo const & ) +void btAlignedObjectArray_btTriangleInfo__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btTriangleInfo>::* )( int,int ) +void btAlignedObjectArray_btTriangleInfo__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btTriangleInfo>::* )( int,int,::btTriangleInfo * ) const+void* btAlignedObjectArray_btTriangleInfo__expand(void *c,void* p0); //method: expand ::btTriangleInfo & ( ::btAlignedObjectArray<btTriangleInfo>::* )( ::btTriangleInfo const & ) +void btAlignedObjectArray_btTriangleInfo__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btTriangleInfo>::* )(  ) +int btAlignedObjectArray_btTriangleInfo__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) +void btAlignedObjectArray_btTriangleInfo__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btTriangleInfo>::* )( int ) +void btAlignedObjectArray_btTriangleInfo__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btTriangleInfo, 16u> btAlignedObjectArray_btTriangleInfo_->m_allocator+void* btAlignedObjectArray_btTriangleInfo__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btTriangleInfo, 16u> btAlignedObjectArray_btTriangleInfo_->m_allocator+void btAlignedObjectArray_btTriangleInfo__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btTriangleInfo_->m_size+int btAlignedObjectArray_btTriangleInfo__m_size_get(void *c); //attribute: int btAlignedObjectArray_btTriangleInfo_->m_size+void btAlignedObjectArray_btTriangleInfo__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btTriangleInfo_->m_capacity+int btAlignedObjectArray_btTriangleInfo__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btTriangleInfo_->m_capacity+void btAlignedObjectArray_btTriangleInfo__m_data_set(void *c,void* a); //attribute: ::btTriangleInfo * btAlignedObjectArray_btTriangleInfo_->m_data+void* btAlignedObjectArray_btTriangleInfo__m_data_get(void *c); //attribute: ::btTriangleInfo * btAlignedObjectArray_btTriangleInfo_->m_data+void btAlignedObjectArray_btTriangleInfo__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btTriangleInfo_->m_ownsMemory+int btAlignedObjectArray_btTriangleInfo__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btTriangleInfo_->m_ownsMemory+void* btAlignedObjectArray_btTypedConstraint_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_ptr__free(void *c); +void btAlignedObjectArray_btTypedConstraint_ptr__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( ::btTypedConstraint * const & ) +void* btAlignedObjectArray_btTypedConstraint_ptr__at(void *c,int p0); //method: at ::btTypedConstraint * const & ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) const+void* btAlignedObjectArray_btTypedConstraint_ptr__at0(void *c,int p0); //method: at ::btTypedConstraint * const & ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) const+void* btAlignedObjectArray_btTypedConstraint_ptr__at1(void *c,int p0); //method: at ::btTypedConstraint * & ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) +int btAlignedObjectArray_btTypedConstraint_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) const+int btAlignedObjectArray_btTypedConstraint_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) const+void btAlignedObjectArray_btTypedConstraint_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +void* btAlignedObjectArray_btTypedConstraint_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int,int ) +void btAlignedObjectArray_btTypedConstraint_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( void *,int,int ) +void* btAlignedObjectArray_btTypedConstraint_ptr__expandNonInitializing(void *c); //method: expandNonInitializing ::btTypedConstraint * & ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_ptr__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int,::btTypedConstraint * const & ) +void btAlignedObjectArray_btTypedConstraint_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int,int,::btTypedConstraint * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void* btAlignedObjectArray_btTypedConstraint_ptr__expand(void *c,void* p0); //method: expand ::btTypedConstraint * & ( ::btAlignedObjectArray<btTypedConstraint*>::* )( ::btTypedConstraint * const & ) +void btAlignedObjectArray_btTypedConstraint_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btTypedConstraint*>::* )(  ) +int btAlignedObjectArray_btTypedConstraint_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btTypedConstraint*>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btTypedConstraint*, 16u> btAlignedObjectArray_btTypedConstraint_ptr_->m_allocator+void* btAlignedObjectArray_btTypedConstraint_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btTypedConstraint*, 16u> btAlignedObjectArray_btTypedConstraint_ptr_->m_allocator+void btAlignedObjectArray_btTypedConstraint_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btTypedConstraint_ptr_->m_size+int btAlignedObjectArray_btTypedConstraint_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_btTypedConstraint_ptr_->m_size+void btAlignedObjectArray_btTypedConstraint_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btTypedConstraint_ptr_->m_capacity+int btAlignedObjectArray_btTypedConstraint_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btTypedConstraint_ptr_->m_capacity+// attribute not supported: //attribute: ::btTypedConstraint * * btAlignedObjectArray_btTypedConstraint_ptr_->m_data+void btAlignedObjectArray_btTypedConstraint_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btTypedConstraint_ptr_->m_ownsMemory+int btAlignedObjectArray_btTypedConstraint_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btTypedConstraint_ptr_->m_ownsMemory+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__free(void *c); +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( ::btTypedConstraint::btConstraintInfo1 const & ) +void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at(void *c,int p0); //method: at ::btTypedConstraint::btConstraintInfo1 const & ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) const+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at0(void *c,int p0); //method: at ::btTypedConstraint::btConstraintInfo1 const & ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) const+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__at1(void *c,int p0); //method: at ::btTypedConstraint::btConstraintInfo1 & ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) +int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__size(void *c); //method: size int ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) const+int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) const+void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__init(void *c); //method: init void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int,int ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( void *,int,int ) +void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expandNonInitializing(void *c); //method: expandNonInitializing ::btTypedConstraint::btConstraintInfo1 & ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int,::btTypedConstraint::btConstraintInfo1 const & ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int,int ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int,int,::btTypedConstraint::btConstraintInfo1 * ) const+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__expand(void *c,void* p0); //method: expand ::btTypedConstraint::btConstraintInfo1 & ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( ::btTypedConstraint::btConstraintInfo1 const & ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )(  ) +int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>::* )( int ) +void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u> btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_allocator+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btTypedConstraint::btConstraintInfo1, 16u> btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_allocator+void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_size+int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_size_get(void *c); //attribute: int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_size+void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_capacity+int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_capacity+void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_data_set(void *c,void* a); //attribute: ::btTypedConstraint::btConstraintInfo1 * btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_data+void* btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_data_get(void *c); //attribute: ::btTypedConstraint::btConstraintInfo1 * btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_data+void btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_ownsMemory+int btAlignedObjectArray_btTypedConstraint_btConstraintInfo1__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btTypedConstraint_btConstraintInfo1_->m_ownsMemory+void* btAlignedObjectArray_btVector3__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btVector3>::* )(  ) +void btAlignedObjectArray_btVector3__free(void *c); +void btAlignedObjectArray_btVector3__push_back(void *c,float* p0); //method: push_back void ( ::btAlignedObjectArray<btVector3>::* )( ::btVector3 const & ) +void btAlignedObjectArray_btVector3__at(void *c,int p0,float* ret); //method: at ::btVector3 const & ( ::btAlignedObjectArray<btVector3>::* )( int ) const+void btAlignedObjectArray_btVector3__at0(void *c,int p0,float* ret); //method: at ::btVector3 const & ( ::btAlignedObjectArray<btVector3>::* )( int ) const+void btAlignedObjectArray_btVector3__at1(void *c,int p0,float* ret); //method: at ::btVector3 & ( ::btAlignedObjectArray<btVector3>::* )( int ) +int btAlignedObjectArray_btVector3__size(void *c); //method: size int ( ::btAlignedObjectArray<btVector3>::* )(  ) const+int btAlignedObjectArray_btVector3__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btVector3>::* )(  ) const+void btAlignedObjectArray_btVector3__init(void *c); //method: init void ( ::btAlignedObjectArray<btVector3>::* )(  ) +void btAlignedObjectArray_btVector3__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btVector3>::* )( int,int ) +void btAlignedObjectArray_btVector3__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btVector3>::* )(  ) +void btAlignedObjectArray_btVector3__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btVector3>::* )(  ) +void* btAlignedObjectArray_btVector3__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btVector3>::* )( int ) +void btAlignedObjectArray_btVector3__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btVector3>::* )( void *,int,int ) +void btAlignedObjectArray_btVector3__expandNonInitializing(void *c,float* ret); //method: expandNonInitializing ::btVector3 & ( ::btAlignedObjectArray<btVector3>::* )(  ) +void btAlignedObjectArray_btVector3__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btVector3>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<btVector3>::* )( int,int,::btVector3 * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++void btAlignedObjectArray_btVector3__resize(void *c,int p0,float* p1); //method: resize void ( ::btAlignedObjectArray<btVector3>::* )( int,::btVector3 const & ) +void btAlignedObjectArray_btVector3__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btVector3>::* )(  ) +int btAlignedObjectArray_btVector3__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btVector3>::* )( int ) +void btAlignedObjectArray_btVector3__expand(void *c,float* p0,float* ret); //method: expand ::btVector3 & ( ::btAlignedObjectArray<btVector3>::* )( ::btVector3 const & ) +void btAlignedObjectArray_btVector3__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btVector3>::* )( int ) +void btAlignedObjectArray_btVector3__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btVector3, 16u> btAlignedObjectArray_btVector3_->m_allocator+void* btAlignedObjectArray_btVector3__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btVector3, 16u> btAlignedObjectArray_btVector3_->m_allocator+void btAlignedObjectArray_btVector3__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btVector3_->m_capacity+int btAlignedObjectArray_btVector3__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btVector3_->m_capacity+// attribute not supported: //attribute: ::btVector3 * btAlignedObjectArray_btVector3_->m_data+void btAlignedObjectArray_btVector3__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btVector3_->m_ownsMemory+int btAlignedObjectArray_btVector3__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btVector3_->m_ownsMemory+void btAlignedObjectArray_btVector3__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btVector3_->m_size+int btAlignedObjectArray_btVector3__m_size_get(void *c); //attribute: int btAlignedObjectArray_btVector3_->m_size+void* btAlignedObjectArray_btWheelInfo__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +void btAlignedObjectArray_btWheelInfo__free(void *c); +void btAlignedObjectArray_btWheelInfo__push_back(void *c,void* p0); //method: push_back void ( ::btAlignedObjectArray<btWheelInfo>::* )( ::btWheelInfo const & ) +void* btAlignedObjectArray_btWheelInfo__at(void *c,int p0); //method: at ::btWheelInfo const & ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) const+void* btAlignedObjectArray_btWheelInfo__at0(void *c,int p0); //method: at ::btWheelInfo const & ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) const+void* btAlignedObjectArray_btWheelInfo__at1(void *c,int p0); //method: at ::btWheelInfo & ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) +int btAlignedObjectArray_btWheelInfo__size(void *c); //method: size int ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) const+int btAlignedObjectArray_btWheelInfo__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) const+void btAlignedObjectArray_btWheelInfo__init(void *c); //method: init void ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +void* btAlignedObjectArray_btWheelInfo__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) +void btAlignedObjectArray_btWheelInfo__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +void btAlignedObjectArray_btWheelInfo__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +void btAlignedObjectArray_btWheelInfo__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<btWheelInfo>::* )( int,int ) +void btAlignedObjectArray_btWheelInfo__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<btWheelInfo>::* )( void *,int,int ) +void* btAlignedObjectArray_btWheelInfo__expandNonInitializing(void *c); //method: expandNonInitializing ::btWheelInfo & ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +void btAlignedObjectArray_btWheelInfo__resize(void *c,int p0,void* p1); //method: resize void ( ::btAlignedObjectArray<btWheelInfo>::* )( int,::btWheelInfo const & ) +void btAlignedObjectArray_btWheelInfo__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<btWheelInfo>::* )( int,int ) +void btAlignedObjectArray_btWheelInfo__copy(void *c,int p0,int p1,void* p2); //method: copy void ( ::btAlignedObjectArray<btWheelInfo>::* )( int,int,::btWheelInfo * ) const+void* btAlignedObjectArray_btWheelInfo__expand(void *c,void* p0); //method: expand ::btWheelInfo & ( ::btAlignedObjectArray<btWheelInfo>::* )( ::btWheelInfo const & ) +void btAlignedObjectArray_btWheelInfo__clear(void *c); //method: clear void ( ::btAlignedObjectArray<btWheelInfo>::* )(  ) +int btAlignedObjectArray_btWheelInfo__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) +void btAlignedObjectArray_btWheelInfo__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<btWheelInfo>::* )( int ) +void btAlignedObjectArray_btWheelInfo__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<btWheelInfo, 16u> btAlignedObjectArray_btWheelInfo_->m_allocator+void* btAlignedObjectArray_btWheelInfo__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<btWheelInfo, 16u> btAlignedObjectArray_btWheelInfo_->m_allocator+void btAlignedObjectArray_btWheelInfo__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_btWheelInfo_->m_size+int btAlignedObjectArray_btWheelInfo__m_size_get(void *c); //attribute: int btAlignedObjectArray_btWheelInfo_->m_size+void btAlignedObjectArray_btWheelInfo__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_btWheelInfo_->m_capacity+int btAlignedObjectArray_btWheelInfo__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_btWheelInfo_->m_capacity+void btAlignedObjectArray_btWheelInfo__m_data_set(void *c,void* a); //attribute: ::btWheelInfo * btAlignedObjectArray_btWheelInfo_->m_data+void* btAlignedObjectArray_btWheelInfo__m_data_get(void *c); //attribute: ::btWheelInfo * btAlignedObjectArray_btWheelInfo_->m_data+void btAlignedObjectArray_btWheelInfo__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_btWheelInfo_->m_ownsMemory+int btAlignedObjectArray_btWheelInfo__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_btWheelInfo_->m_ownsMemory+void* btAlignedObjectArray_charconst_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<char const*>::* )(  ) +void btAlignedObjectArray_charconst_ptr__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<char const*>::* )( char const * const & ) +// error:  - unsupported, void - ok++//not supported method: at char const * const & ( ::btAlignedObjectArray<char const*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at char const * const & ( ::btAlignedObjectArray<char const*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at char const * & ( ::btAlignedObjectArray<char const*>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_charconst_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<char const*>::* )(  ) const+int btAlignedObjectArray_charconst_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<char const*>::* )(  ) const+void btAlignedObjectArray_charconst_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<char const*>::* )(  ) +void* btAlignedObjectArray_charconst_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<char const*>::* )( int ) +void btAlignedObjectArray_charconst_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<char const*>::* )(  ) +void btAlignedObjectArray_charconst_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<char const*>::* )(  ) +void btAlignedObjectArray_charconst_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<char const*>::* )( int,int ) +void btAlignedObjectArray_charconst_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<char const*>::* )( void *,int,int ) +//not supported method: expandNonInitializing char const * & ( ::btAlignedObjectArray<char const*>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<char const*>::* )( int,char const * const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_charconst_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<char const*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<char const*>::* )( int,int,char const * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand char const * & ( ::btAlignedObjectArray<char const*>::* )( char const * const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_charconst_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<char const*>::* )(  ) +int btAlignedObjectArray_charconst_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<char const*>::* )( int ) +void btAlignedObjectArray_charconst_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<char const*>::* )( int ) +void btAlignedObjectArray_charconst_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<char const*, 16u> btAlignedObjectArray_charconst_ptr_->m_allocator+void* btAlignedObjectArray_charconst_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<char const*, 16u> btAlignedObjectArray_charconst_ptr_->m_allocator+void btAlignedObjectArray_charconst_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_charconst_ptr_->m_size+int btAlignedObjectArray_charconst_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_charconst_ptr_->m_size+void btAlignedObjectArray_charconst_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_charconst_ptr_->m_capacity+int btAlignedObjectArray_charconst_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_charconst_ptr_->m_capacity+// attribute not supported: //attribute: char const * * btAlignedObjectArray_charconst_ptr_->m_data+void btAlignedObjectArray_charconst_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_charconst_ptr_->m_ownsMemory+int btAlignedObjectArray_charconst_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_charconst_ptr_->m_ownsMemory+void* btAlignedObjectArray_char_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<char*>::* )(  ) +void btAlignedObjectArray_char_ptr__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<char*>::* )( char * const & ) +// error:  - unsupported, void - ok++//not supported method: at char * const & ( ::btAlignedObjectArray<char*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at char * const & ( ::btAlignedObjectArray<char*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at char * & ( ::btAlignedObjectArray<char*>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_char_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<char*>::* )(  ) const+int btAlignedObjectArray_char_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<char*>::* )(  ) const+void btAlignedObjectArray_char_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<char*>::* )(  ) +void* btAlignedObjectArray_char_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<char*>::* )( int ) +void btAlignedObjectArray_char_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<char*>::* )(  ) +void btAlignedObjectArray_char_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<char*>::* )(  ) +void btAlignedObjectArray_char_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<char*>::* )( int,int ) +void btAlignedObjectArray_char_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<char*>::* )( void *,int,int ) +//not supported method: expandNonInitializing char * & ( ::btAlignedObjectArray<char*>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<char*>::* )( int,char * const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_char_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<char*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<char*>::* )( int,int,char * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand char * & ( ::btAlignedObjectArray<char*>::* )( char * const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_char_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<char*>::* )(  ) +int btAlignedObjectArray_char_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<char*>::* )( int ) +void btAlignedObjectArray_char_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<char*>::* )( int ) +void btAlignedObjectArray_char_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<char*, 16u> btAlignedObjectArray_char_ptr_->m_allocator+void* btAlignedObjectArray_char_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<char*, 16u> btAlignedObjectArray_char_ptr_->m_allocator+void btAlignedObjectArray_char_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_char_ptr_->m_size+int btAlignedObjectArray_char_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_char_ptr_->m_size+void btAlignedObjectArray_char_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_char_ptr_->m_capacity+int btAlignedObjectArray_char_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_char_ptr_->m_capacity+// attribute not supported: //attribute: char * * btAlignedObjectArray_char_ptr_->m_data+void btAlignedObjectArray_char_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_char_ptr_->m_ownsMemory+int btAlignedObjectArray_char_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_char_ptr_->m_ownsMemory+void* btAlignedObjectArray_float__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<float>::* )(  ) +void btAlignedObjectArray_float__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<float>::* )( float const & ) +// error:  - unsupported, void - ok++//not supported method: at float const & ( ::btAlignedObjectArray<float>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at float const & ( ::btAlignedObjectArray<float>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at float & ( ::btAlignedObjectArray<float>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_float__size(void *c); //method: size int ( ::btAlignedObjectArray<float>::* )(  ) const+int btAlignedObjectArray_float__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<float>::* )(  ) const+void btAlignedObjectArray_float__init(void *c); //method: init void ( ::btAlignedObjectArray<float>::* )(  ) +void btAlignedObjectArray_float__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<float>::* )( int,int ) +void btAlignedObjectArray_float__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<float>::* )(  ) +void btAlignedObjectArray_float__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<float>::* )(  ) +void* btAlignedObjectArray_float__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<float>::* )( int ) +void btAlignedObjectArray_float__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<float>::* )( void *,int,int ) +//not supported method: expandNonInitializing float & ( ::btAlignedObjectArray<float>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_float__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<float>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<float>::* )( int,int,float * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<float>::* )( int,float const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_float__clear(void *c); //method: clear void ( ::btAlignedObjectArray<float>::* )(  ) +int btAlignedObjectArray_float__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<float>::* )( int ) +//not supported method: expand float & ( ::btAlignedObjectArray<float>::* )( float const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_float__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<float>::* )( int ) +void btAlignedObjectArray_float__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<float, 16u> btAlignedObjectArray_float_->m_allocator+void* btAlignedObjectArray_float__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<float, 16u> btAlignedObjectArray_float_->m_allocator+void btAlignedObjectArray_float__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_float_->m_capacity+int btAlignedObjectArray_float__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_float_->m_capacity+// attribute not supported: //attribute: float * btAlignedObjectArray_float_->m_data+void btAlignedObjectArray_float__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_float_->m_ownsMemory+int btAlignedObjectArray_float__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_float_->m_ownsMemory+void btAlignedObjectArray_float__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_float_->m_size+int btAlignedObjectArray_float__m_size_get(void *c); //attribute: int btAlignedObjectArray_float_->m_size+void* btAlignedObjectArray_int__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<int>::* )(  ) +void btAlignedObjectArray_int__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<int>::* )( int const & ) +// error:  - unsupported, void - ok++//not supported method: at int const & ( ::btAlignedObjectArray<int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at int const & ( ::btAlignedObjectArray<int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at int & ( ::btAlignedObjectArray<int>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_int__size(void *c); //method: size int ( ::btAlignedObjectArray<int>::* )(  ) const+int btAlignedObjectArray_int__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<int>::* )(  ) const+void btAlignedObjectArray_int__init(void *c); //method: init void ( ::btAlignedObjectArray<int>::* )(  ) +void btAlignedObjectArray_int__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<int>::* )( int,int ) +void btAlignedObjectArray_int__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<int>::* )(  ) +void btAlignedObjectArray_int__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<int>::* )(  ) +void* btAlignedObjectArray_int__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<int>::* )( int ) +void btAlignedObjectArray_int__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<int>::* )( void *,int,int ) +//not supported method: expandNonInitializing int & ( ::btAlignedObjectArray<int>::* )(  ) +// error:  - unsupported++void btAlignedObjectArray_int__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<int>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<int>::* )( int,int,int * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: resize void ( ::btAlignedObjectArray<int>::* )( int,int const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_int__clear(void *c); //method: clear void ( ::btAlignedObjectArray<int>::* )(  ) +int btAlignedObjectArray_int__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<int>::* )( int ) +//not supported method: expand int & ( ::btAlignedObjectArray<int>::* )( int const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_int__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<int>::* )( int ) +void btAlignedObjectArray_int__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<int, 16u> btAlignedObjectArray_int_->m_allocator+void* btAlignedObjectArray_int__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<int, 16u> btAlignedObjectArray_int_->m_allocator+void btAlignedObjectArray_int__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_int_->m_capacity+int btAlignedObjectArray_int__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_int_->m_capacity+// attribute not supported: //attribute: int * btAlignedObjectArray_int_->m_data+void btAlignedObjectArray_int__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_int_->m_ownsMemory+int btAlignedObjectArray_int__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_int_->m_ownsMemory+void btAlignedObjectArray_int__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_int_->m_size+int btAlignedObjectArray_int__m_size_get(void *c); //attribute: int btAlignedObjectArray_int_->m_size+void* btAlignedObjectArray_short_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<short*>::* )(  ) +void btAlignedObjectArray_short_ptr__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<short*>::* )( short int * const & ) +// error:  - unsupported, void - ok++//not supported method: at short int * const & ( ::btAlignedObjectArray<short*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short int * const & ( ::btAlignedObjectArray<short*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short int * & ( ::btAlignedObjectArray<short*>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_short_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<short*>::* )(  ) const+int btAlignedObjectArray_short_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<short*>::* )(  ) const+void btAlignedObjectArray_short_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<short*>::* )(  ) +void* btAlignedObjectArray_short_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<short*>::* )( int ) +void btAlignedObjectArray_short_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<short*>::* )(  ) +void btAlignedObjectArray_short_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<short*>::* )(  ) +void btAlignedObjectArray_short_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<short*>::* )( int,int ) +void btAlignedObjectArray_short_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<short*>::* )( void *,int,int ) +//not supported method: expandNonInitializing short int * & ( ::btAlignedObjectArray<short*>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<short*>::* )( int,short int * const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_short_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<short*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<short*>::* )( int,int,short int * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand short int * & ( ::btAlignedObjectArray<short*>::* )( short int * const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_short_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<short*>::* )(  ) +int btAlignedObjectArray_short_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<short*>::* )( int ) +void btAlignedObjectArray_short_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<short*>::* )( int ) +void btAlignedObjectArray_short_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<short*, 16u> btAlignedObjectArray_short_ptr_->m_allocator+void* btAlignedObjectArray_short_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<short*, 16u> btAlignedObjectArray_short_ptr_->m_allocator+void btAlignedObjectArray_short_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_short_ptr_->m_size+int btAlignedObjectArray_short_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_short_ptr_->m_size+void btAlignedObjectArray_short_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_short_ptr_->m_capacity+int btAlignedObjectArray_short_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_short_ptr_->m_capacity+// attribute not supported: //attribute: short int * * btAlignedObjectArray_short_ptr_->m_data+void btAlignedObjectArray_short_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_short_ptr_->m_ownsMemory+int btAlignedObjectArray_short_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_short_ptr_->m_ownsMemory+void* btAlignedObjectArray_short__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<short>::* )(  ) +void btAlignedObjectArray_short__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<short>::* )( short int const & ) +// error:  - unsupported, void - ok++//not supported method: at short int const & ( ::btAlignedObjectArray<short>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short int const & ( ::btAlignedObjectArray<short>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short int & ( ::btAlignedObjectArray<short>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_short__size(void *c); //method: size int ( ::btAlignedObjectArray<short>::* )(  ) const+int btAlignedObjectArray_short__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<short>::* )(  ) const+void btAlignedObjectArray_short__init(void *c); //method: init void ( ::btAlignedObjectArray<short>::* )(  ) +void* btAlignedObjectArray_short__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<short>::* )( int ) +void btAlignedObjectArray_short__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<short>::* )(  ) +void btAlignedObjectArray_short__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<short>::* )(  ) +void btAlignedObjectArray_short__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<short>::* )( int,int ) +void btAlignedObjectArray_short__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<short>::* )( void *,int,int ) +//not supported method: expandNonInitializing short int & ( ::btAlignedObjectArray<short>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<short>::* )( int,short int const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_short__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<short>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<short>::* )( int,int,short int * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand short int & ( ::btAlignedObjectArray<short>::* )( short int const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_short__clear(void *c); //method: clear void ( ::btAlignedObjectArray<short>::* )(  ) +int btAlignedObjectArray_short__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<short>::* )( int ) +void btAlignedObjectArray_short__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<short>::* )( int ) +void btAlignedObjectArray_short__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<short, 16u> btAlignedObjectArray_short_->m_allocator+void* btAlignedObjectArray_short__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<short, 16u> btAlignedObjectArray_short_->m_allocator+void btAlignedObjectArray_short__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_short_->m_size+int btAlignedObjectArray_short__m_size_get(void *c); //attribute: int btAlignedObjectArray_short_->m_size+void btAlignedObjectArray_short__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_short_->m_capacity+int btAlignedObjectArray_short__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_short_->m_capacity+// attribute not supported: //attribute: short int * btAlignedObjectArray_short_->m_data+void btAlignedObjectArray_short__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_short_->m_ownsMemory+int btAlignedObjectArray_short__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_short_->m_ownsMemory+void* btAlignedObjectArray_unsignedint__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<unsigned int>::* )(  ) +void btAlignedObjectArray_unsignedint__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<unsigned int>::* )( unsigned int const & ) +// error:  - unsupported, void - ok++//not supported method: at unsigned int const & ( ::btAlignedObjectArray<unsigned int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at unsigned int const & ( ::btAlignedObjectArray<unsigned int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at unsigned int & ( ::btAlignedObjectArray<unsigned int>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_unsignedint__size(void *c); //method: size int ( ::btAlignedObjectArray<unsigned int>::* )(  ) const+int btAlignedObjectArray_unsignedint__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<unsigned int>::* )(  ) const+void btAlignedObjectArray_unsignedint__init(void *c); //method: init void ( ::btAlignedObjectArray<unsigned int>::* )(  ) +void* btAlignedObjectArray_unsignedint__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<unsigned int>::* )( int ) +void btAlignedObjectArray_unsignedint__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<unsigned int>::* )(  ) +void btAlignedObjectArray_unsignedint__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<unsigned int>::* )(  ) +void btAlignedObjectArray_unsignedint__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<unsigned int>::* )( int,int ) +void btAlignedObjectArray_unsignedint__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<unsigned int>::* )( void *,int,int ) +//not supported method: expandNonInitializing unsigned int & ( ::btAlignedObjectArray<unsigned int>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<unsigned int>::* )( int,unsigned int const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_unsignedint__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<unsigned int>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<unsigned int>::* )( int,int,unsigned int * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand unsigned int & ( ::btAlignedObjectArray<unsigned int>::* )( unsigned int const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_unsignedint__clear(void *c); //method: clear void ( ::btAlignedObjectArray<unsigned int>::* )(  ) +int btAlignedObjectArray_unsignedint__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<unsigned int>::* )( int ) +void btAlignedObjectArray_unsignedint__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<unsigned int>::* )( int ) +void btAlignedObjectArray_unsignedint__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<unsigned int, 16u> btAlignedObjectArray_unsignedint_->m_allocator+void* btAlignedObjectArray_unsignedint__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<unsigned int, 16u> btAlignedObjectArray_unsignedint_->m_allocator+void btAlignedObjectArray_unsignedint__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_unsignedint_->m_size+int btAlignedObjectArray_unsignedint__m_size_get(void *c); //attribute: int btAlignedObjectArray_unsignedint_->m_size+void btAlignedObjectArray_unsignedint__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_unsignedint_->m_capacity+int btAlignedObjectArray_unsignedint__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_unsignedint_->m_capacity+// attribute not supported: //attribute: unsigned int * btAlignedObjectArray_unsignedint_->m_data+void btAlignedObjectArray_unsignedint__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_unsignedint_->m_ownsMemory+int btAlignedObjectArray_unsignedint__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_unsignedint_->m_ownsMemory+void* btAlignedObjectArray_unsignedshort__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<unsigned short>::* )(  ) +void btAlignedObjectArray_unsignedshort__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<unsigned short>::* )( short unsigned int const & ) +// error:  - unsupported, void - ok++//not supported method: at short unsigned int const & ( ::btAlignedObjectArray<unsigned short>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short unsigned int const & ( ::btAlignedObjectArray<unsigned short>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at short unsigned int & ( ::btAlignedObjectArray<unsigned short>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_unsignedshort__size(void *c); //method: size int ( ::btAlignedObjectArray<unsigned short>::* )(  ) const+int btAlignedObjectArray_unsignedshort__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<unsigned short>::* )(  ) const+void btAlignedObjectArray_unsignedshort__init(void *c); //method: init void ( ::btAlignedObjectArray<unsigned short>::* )(  ) +void* btAlignedObjectArray_unsignedshort__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<unsigned short>::* )( int ) +void btAlignedObjectArray_unsignedshort__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<unsigned short>::* )(  ) +void btAlignedObjectArray_unsignedshort__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<unsigned short>::* )(  ) +void btAlignedObjectArray_unsignedshort__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<unsigned short>::* )( int,int ) +void btAlignedObjectArray_unsignedshort__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<unsigned short>::* )( void *,int,int ) +//not supported method: expandNonInitializing short unsigned int & ( ::btAlignedObjectArray<unsigned short>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<unsigned short>::* )( int,short unsigned int const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_unsignedshort__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<unsigned short>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<unsigned short>::* )( int,int,short unsigned int * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand short unsigned int & ( ::btAlignedObjectArray<unsigned short>::* )( short unsigned int const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_unsignedshort__clear(void *c); //method: clear void ( ::btAlignedObjectArray<unsigned short>::* )(  ) +int btAlignedObjectArray_unsignedshort__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<unsigned short>::* )( int ) +void btAlignedObjectArray_unsignedshort__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<unsigned short>::* )( int ) +void btAlignedObjectArray_unsignedshort__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<unsigned short, 16u> btAlignedObjectArray_unsignedshort_->m_allocator+void* btAlignedObjectArray_unsignedshort__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<unsigned short, 16u> btAlignedObjectArray_unsignedshort_->m_allocator+void btAlignedObjectArray_unsignedshort__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_unsignedshort_->m_size+int btAlignedObjectArray_unsignedshort__m_size_get(void *c); //attribute: int btAlignedObjectArray_unsignedshort_->m_size+void btAlignedObjectArray_unsignedshort__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_unsignedshort_->m_capacity+int btAlignedObjectArray_unsignedshort__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_unsignedshort_->m_capacity+// attribute not supported: //attribute: short unsigned int * btAlignedObjectArray_unsignedshort_->m_data+void btAlignedObjectArray_unsignedshort__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_unsignedshort_->m_ownsMemory+int btAlignedObjectArray_unsignedshort__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_unsignedshort_->m_ownsMemory+void* btAlignedObjectArray_void_ptr__new(); //constructor: btAlignedObjectArray  ( ::btAlignedObjectArray<void*>::* )(  ) +void btAlignedObjectArray_void_ptr__free(void *c); +//not supported method: push_back void ( ::btAlignedObjectArray<void*>::* )( void * const & ) +// error:  - unsupported, void - ok++//not supported method: at void * const & ( ::btAlignedObjectArray<void*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at void * const & ( ::btAlignedObjectArray<void*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: at void * & ( ::btAlignedObjectArray<void*>::* )( int ) +// error: int - ok,  - unsupported++int btAlignedObjectArray_void_ptr__size(void *c); //method: size int ( ::btAlignedObjectArray<void*>::* )(  ) const+int btAlignedObjectArray_void_ptr__capacity(void *c); //method: capacity int ( ::btAlignedObjectArray<void*>::* )(  ) const+void btAlignedObjectArray_void_ptr__init(void *c); //method: init void ( ::btAlignedObjectArray<void*>::* )(  ) +void* btAlignedObjectArray_void_ptr__allocate(void *c,int p0); //method: allocate void * ( ::btAlignedObjectArray<void*>::* )( int ) +void btAlignedObjectArray_void_ptr__pop_back(void *c); //method: pop_back void ( ::btAlignedObjectArray<void*>::* )(  ) +void btAlignedObjectArray_void_ptr__deallocate(void *c); //method: deallocate void ( ::btAlignedObjectArray<void*>::* )(  ) +void btAlignedObjectArray_void_ptr__swap(void *c,int p0,int p1); //method: swap void ( ::btAlignedObjectArray<void*>::* )( int,int ) +void btAlignedObjectArray_void_ptr__initializeFromBuffer(void *c,void* p0,int p1,int p2); //method: initializeFromBuffer void ( ::btAlignedObjectArray<void*>::* )( void *,int,int ) +//not supported method: expandNonInitializing void * & ( ::btAlignedObjectArray<void*>::* )(  ) +// error:  - unsupported++//not supported method: resize void ( ::btAlignedObjectArray<void*>::* )( int,void * const & ) +// error: int - ok,  - unsupported, void - ok++void btAlignedObjectArray_void_ptr__destroy(void *c,int p0,int p1); //method: destroy void ( ::btAlignedObjectArray<void*>::* )( int,int ) +//not supported method: copy void ( ::btAlignedObjectArray<void*>::* )( int,int,void * * ) const+// error: int - ok, int - ok,  - unsupported, void - ok++//not supported method: expand void * & ( ::btAlignedObjectArray<void*>::* )( void * const & ) +// error:  - unsupported,  - unsupported++void btAlignedObjectArray_void_ptr__clear(void *c); //method: clear void ( ::btAlignedObjectArray<void*>::* )(  ) +int btAlignedObjectArray_void_ptr__allocSize(void *c,int p0); //method: allocSize int ( ::btAlignedObjectArray<void*>::* )( int ) +void btAlignedObjectArray_void_ptr__reserve(void *c,int p0); //method: reserve void ( ::btAlignedObjectArray<void*>::* )( int ) +void btAlignedObjectArray_void_ptr__m_allocator_set(void *c,void* a); //attribute: ::btAlignedAllocator<void*, 16u> btAlignedObjectArray_void_ptr_->m_allocator+void* btAlignedObjectArray_void_ptr__m_allocator_get(void *c); //attribute: ::btAlignedAllocator<void*, 16u> btAlignedObjectArray_void_ptr_->m_allocator+void btAlignedObjectArray_void_ptr__m_size_set(void *c,int a); //attribute: int btAlignedObjectArray_void_ptr_->m_size+int btAlignedObjectArray_void_ptr__m_size_get(void *c); //attribute: int btAlignedObjectArray_void_ptr_->m_size+void btAlignedObjectArray_void_ptr__m_capacity_set(void *c,int a); //attribute: int btAlignedObjectArray_void_ptr_->m_capacity+int btAlignedObjectArray_void_ptr__m_capacity_get(void *c); //attribute: int btAlignedObjectArray_void_ptr_->m_capacity+// attribute not supported: //attribute: void * * btAlignedObjectArray_void_ptr_->m_data+void btAlignedObjectArray_void_ptr__m_ownsMemory_set(void *c,int a); //attribute: bool btAlignedObjectArray_void_ptr_->m_ownsMemory+int btAlignedObjectArray_void_ptr__m_ownsMemory_get(void *c); //attribute: bool btAlignedObjectArray_void_ptr_->m_ownsMemory+void* btBlock_new(); //constructor: btBlock  ( ::btBlock::* )(  ) +void btBlock_free(void *c); +void btBlock_previous_set(void *c,void* a); //attribute: ::btBlock * btBlock->previous+void* btBlock_previous_get(void *c); //attribute: ::btBlock * btBlock->previous+// attribute not supported: //attribute: unsigned char * btBlock->address+void* btChunk_new(); //constructor: btChunk  ( ::btChunk::* )(  ) +void btChunk_free(void *c); +void btChunk_m_chunkCode_set(void *c,int a); //attribute: int btChunk->m_chunkCode+int btChunk_m_chunkCode_get(void *c); //attribute: int btChunk->m_chunkCode+void btChunk_m_dna_nr_set(void *c,int a); //attribute: int btChunk->m_dna_nr+int btChunk_m_dna_nr_get(void *c); //attribute: int btChunk->m_dna_nr+void btChunk_m_length_set(void *c,int a); //attribute: int btChunk->m_length+int btChunk_m_length_get(void *c); //attribute: int btChunk->m_length+void btChunk_m_number_set(void *c,int a); //attribute: int btChunk->m_number+int btChunk_m_number_get(void *c); //attribute: int btChunk->m_number+void btChunk_m_oldPtr_set(void *c,void* a); //attribute: void * btChunk->m_oldPtr+void* btChunk_m_oldPtr_get(void *c); //attribute: void * btChunk->m_oldPtr+void* btClock_new(); //constructor: btClock  ( ::btClock::* )(  ) +void btClock_free(void *c); +void btClock_reset(void *c); //method: reset void ( ::btClock::* )(  ) +long unsigned int btClock_getTimeMilliseconds(void *c); //method: getTimeMilliseconds long unsigned int ( ::btClock::* )(  ) +long unsigned int btClock_getTimeMicroseconds(void *c); //method: getTimeMicroseconds long unsigned int ( ::btClock::* )(  ) +// attribute not supported: //attribute: ::btClockData * btClock->m_data+void* btConvexSeparatingDistanceUtil_new(float p0,float p1); //constructor: btConvexSeparatingDistanceUtil  ( ::btConvexSeparatingDistanceUtil::* )( ::btScalar,::btScalar ) +void btConvexSeparatingDistanceUtil_free(void *c); +void btConvexSeparatingDistanceUtil_updateSeparatingDistance(void *c,float* p0,float* p1); //method: updateSeparatingDistance void ( ::btConvexSeparatingDistanceUtil::* )( ::btTransform const &,::btTransform const & ) +float btConvexSeparatingDistanceUtil_getConservativeSeparatingDistance(void *c); //method: getConservativeSeparatingDistance ::btScalar ( ::btConvexSeparatingDistanceUtil::* )(  ) +void btConvexSeparatingDistanceUtil_initSeparatingDistance(void *c,float* p0,float p1,float* p2,float* p3); //method: initSeparatingDistance void ( ::btConvexSeparatingDistanceUtil::* )( ::btVector3 const &,::btScalar,::btTransform const &,::btTransform const & ) +void btConvexSeparatingDistanceUtil_m_ornA_set(void *c,float* a); //attribute: ::btQuaternion btConvexSeparatingDistanceUtil->m_ornA+void btConvexSeparatingDistanceUtil_m_ornA_get(void *c,float* a);+void btConvexSeparatingDistanceUtil_m_ornB_set(void *c,float* a); //attribute: ::btQuaternion btConvexSeparatingDistanceUtil->m_ornB+void btConvexSeparatingDistanceUtil_m_ornB_get(void *c,float* a);+void btConvexSeparatingDistanceUtil_m_posA_set(void *c,float* a); //attribute: ::btVector3 btConvexSeparatingDistanceUtil->m_posA+void btConvexSeparatingDistanceUtil_m_posA_get(void *c,float* a);+void btConvexSeparatingDistanceUtil_m_posB_set(void *c,float* a); //attribute: ::btVector3 btConvexSeparatingDistanceUtil->m_posB+void btConvexSeparatingDistanceUtil_m_posB_get(void *c,float* a);+void btConvexSeparatingDistanceUtil_m_separatingNormal_set(void *c,float* a); //attribute: ::btVector3 btConvexSeparatingDistanceUtil->m_separatingNormal+void btConvexSeparatingDistanceUtil_m_separatingNormal_get(void *c,float* a);+void btConvexSeparatingDistanceUtil_m_boundingRadiusA_set(void *c,float a); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_boundingRadiusA+float btConvexSeparatingDistanceUtil_m_boundingRadiusA_get(void *c); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_boundingRadiusA+void btConvexSeparatingDistanceUtil_m_boundingRadiusB_set(void *c,float a); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_boundingRadiusB+float btConvexSeparatingDistanceUtil_m_boundingRadiusB_get(void *c); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_boundingRadiusB+void btConvexSeparatingDistanceUtil_m_separatingDistance_set(void *c,float a); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_separatingDistance+float btConvexSeparatingDistanceUtil_m_separatingDistance_get(void *c); //attribute: ::btScalar btConvexSeparatingDistanceUtil->m_separatingDistance+void* btDefaultMotionState_new(float* p0,float* p1); //constructor: btDefaultMotionState  ( ::btDefaultMotionState::* )( ::btTransform const &,::btTransform const & ) +void btDefaultMotionState_free(void *c); +void btDefaultMotionState_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btDefaultMotionState::* )( ::btTransform const & ) +void btDefaultMotionState_getWorldTransform(void *c,float* p0); //method: getWorldTransform void ( ::btDefaultMotionState::* )( ::btTransform & ) const+void btDefaultMotionState_m_graphicsWorldTrans_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_graphicsWorldTrans+void btDefaultMotionState_m_graphicsWorldTrans_get(void *c,float* a);+void btDefaultMotionState_m_centerOfMassOffset_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_centerOfMassOffset+void btDefaultMotionState_m_centerOfMassOffset_get(void *c,float* a);+void btDefaultMotionState_m_startWorldTrans_set(void *c,float* a); //attribute: ::btTransform btDefaultMotionState->m_startWorldTrans+void btDefaultMotionState_m_startWorldTrans_get(void *c,float* a);+void btDefaultMotionState_m_userPointer_set(void *c,void* a); //attribute: void * btDefaultMotionState->m_userPointer+void* btDefaultMotionState_m_userPointer_get(void *c); //attribute: void * btDefaultMotionState->m_userPointer+void* btDefaultSerializer_new(int p0); //constructor: btDefaultSerializer  ( ::btDefaultSerializer::* )( int ) +void btDefaultSerializer_free(void *c); +void btDefaultSerializer_finishSerialization(void *c); //method: finishSerialization void ( ::btDefaultSerializer::* )(  ) +//not supported method: internalAlloc unsigned char * ( ::btDefaultSerializer::* )( ::size_t ) +// error:  - unsupported,  - unsupported++//not supported method: findNameForPointer char const * ( ::btDefaultSerializer::* )( void const * ) const+// error:  - unsupported, char const * - ok++//not supported method: writeHeader void ( ::btDefaultSerializer::* )( unsigned char * ) const+// error:  - unsupported, void - ok++void btDefaultSerializer_startSerialization(void *c); //method: startSerialization void ( ::btDefaultSerializer::* )(  ) +int btDefaultSerializer_getSerializationFlags(void *c); //method: getSerializationFlags int ( ::btDefaultSerializer::* )(  ) const+void btDefaultSerializer_setSerializationFlags(void *c,int p0); //method: setSerializationFlags void ( ::btDefaultSerializer::* )( int ) +int btDefaultSerializer_getReverseType(void *c,char const * p0); //method: getReverseType int ( ::btDefaultSerializer::* )( char const * ) const+void btDefaultSerializer_finalizeChunk(void *c,void* p0,char const * p1,int p2,void* p3); //method: finalizeChunk void ( ::btDefaultSerializer::* )( ::btChunk *,char const *,int,void * ) +void btDefaultSerializer_initDNA(void *c,char const * p0,int p1); //method: initDNA void ( ::btDefaultSerializer::* )( char const *,int ) +void btDefaultSerializer_writeDNA(void *c); //method: writeDNA void ( ::btDefaultSerializer::* )(  ) +//not supported method: getBufferPointer unsigned char const * ( ::btDefaultSerializer::* )(  ) const+// error:  - unsupported++int btDefaultSerializer_getCurrentBufferSize(void *c); //method: getCurrentBufferSize int ( ::btDefaultSerializer::* )(  ) const+void* btDefaultSerializer_getUniquePointer(void *c,void* p0); //method: getUniquePointer void * ( ::btDefaultSerializer::* )( void * ) +void btDefaultSerializer_serializeName(void *c,char const * p0); //method: serializeName void ( ::btDefaultSerializer::* )( char const * ) +void* btDefaultSerializer_findPointer(void *c,void* p0); //method: findPointer void * ( ::btDefaultSerializer::* )( void * ) +//not supported method: registerNameForPointer void ( ::btDefaultSerializer::* )( void const *,char const * ) +// error:  - unsupported, char const * - ok, void - ok++//not supported method: allocate ::btChunk * ( ::btDefaultSerializer::* )( ::size_t,int ) +// error:  - unsupported, int - ok, ::btChunk * - ok++void btDefaultSerializer_mTypes_set(void *c,void* a); //attribute: ::btAlignedObjectArray<char*> btDefaultSerializer->mTypes+void* btDefaultSerializer_mTypes_get(void *c); //attribute: ::btAlignedObjectArray<char*> btDefaultSerializer->mTypes+void btDefaultSerializer_mStructs_set(void *c,void* a); //attribute: ::btAlignedObjectArray<short*> btDefaultSerializer->mStructs+void* btDefaultSerializer_mStructs_get(void *c); //attribute: ::btAlignedObjectArray<short*> btDefaultSerializer->mStructs+void btDefaultSerializer_mTlens_set(void *c,void* a); //attribute: ::btAlignedObjectArray<short> btDefaultSerializer->mTlens+void* btDefaultSerializer_mTlens_get(void *c); //attribute: ::btAlignedObjectArray<short> btDefaultSerializer->mTlens+void btDefaultSerializer_mStructReverse_set(void *c,void* a); //attribute: ::btHashMap<btHashInt, int> btDefaultSerializer->mStructReverse+void* btDefaultSerializer_mStructReverse_get(void *c); //attribute: ::btHashMap<btHashInt, int> btDefaultSerializer->mStructReverse+void btDefaultSerializer_mTypeLookup_set(void *c,void* a); //attribute: ::btHashMap<btHashString, int> btDefaultSerializer->mTypeLookup+void* btDefaultSerializer_mTypeLookup_get(void *c); //attribute: ::btHashMap<btHashString, int> btDefaultSerializer->mTypeLookup+void btDefaultSerializer_m_chunkP_set(void *c,void* a); //attribute: ::btHashMap<btHashPtr, void*> btDefaultSerializer->m_chunkP+void* btDefaultSerializer_m_chunkP_get(void *c); //attribute: ::btHashMap<btHashPtr, void*> btDefaultSerializer->m_chunkP+void btDefaultSerializer_m_nameMap_set(void *c,void* a); //attribute: ::btHashMap<btHashPtr, char const*> btDefaultSerializer->m_nameMap+void* btDefaultSerializer_m_nameMap_get(void *c); //attribute: ::btHashMap<btHashPtr, char const*> btDefaultSerializer->m_nameMap+void btDefaultSerializer_m_uniquePointers_set(void *c,void* a); //attribute: ::btHashMap<btHashPtr, btPointerUid> btDefaultSerializer->m_uniquePointers+void* btDefaultSerializer_m_uniquePointers_get(void *c); //attribute: ::btHashMap<btHashPtr, btPointerUid> btDefaultSerializer->m_uniquePointers+void btDefaultSerializer_m_uniqueIdGenerator_set(void *c,int a); //attribute: int btDefaultSerializer->m_uniqueIdGenerator+int btDefaultSerializer_m_uniqueIdGenerator_get(void *c); //attribute: int btDefaultSerializer->m_uniqueIdGenerator+void btDefaultSerializer_m_totalSize_set(void *c,int a); //attribute: int btDefaultSerializer->m_totalSize+int btDefaultSerializer_m_totalSize_get(void *c); //attribute: int btDefaultSerializer->m_totalSize+// attribute not supported: //attribute: unsigned char * btDefaultSerializer->m_buffer+void btDefaultSerializer_m_currentSize_set(void *c,int a); //attribute: int btDefaultSerializer->m_currentSize+int btDefaultSerializer_m_currentSize_get(void *c); //attribute: int btDefaultSerializer->m_currentSize+void btDefaultSerializer_m_dna_set(void *c,void* a); //attribute: void * btDefaultSerializer->m_dna+void* btDefaultSerializer_m_dna_get(void *c); //attribute: void * btDefaultSerializer->m_dna+void btDefaultSerializer_m_dnaLength_set(void *c,int a); //attribute: int btDefaultSerializer->m_dnaLength+int btDefaultSerializer_m_dnaLength_get(void *c); //attribute: int btDefaultSerializer->m_dnaLength+void btDefaultSerializer_m_serializationFlags_set(void *c,int a); //attribute: int btDefaultSerializer->m_serializationFlags+int btDefaultSerializer_m_serializationFlags_get(void *c); //attribute: int btDefaultSerializer->m_serializationFlags+void btDefaultSerializer_m_chunkPtrs_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btChunk*> btDefaultSerializer->m_chunkPtrs+void* btDefaultSerializer_m_chunkPtrs_get(void *c); //attribute: ::btAlignedObjectArray<btChunk*> btDefaultSerializer->m_chunkPtrs+void* btGeometryUtil_new(); //constructor: btGeometryUtil  ( ::btGeometryUtil::* )(  ) +void btGeometryUtil_free(void *c); +int btGeometryUtil_isPointInsidePlanes(void* p0,float* p1,float p2); //method: isPointInsidePlanes bool (*)( ::btAlignedObjectArray<btVector3> const &,::btVector3 const &,::btScalar )+void btGeometryUtil_getVerticesFromPlaneEquations(void* p0,void* p1); //method: getVerticesFromPlaneEquations void (*)( ::btAlignedObjectArray<btVector3> const &,::btAlignedObjectArray<btVector3> & )+int btGeometryUtil_areVerticesBehindPlane(float* p0,void* p1,float p2); //method: areVerticesBehindPlane bool (*)( ::btVector3 const &,::btAlignedObjectArray<btVector3> const &,::btScalar )+void btGeometryUtil_getPlaneEquationsFromVertices(void* p0,void* p1); //method: getPlaneEquationsFromVertices void (*)( ::btAlignedObjectArray<btVector3> &,::btAlignedObjectArray<btVector3> & )+void* btHashInt_new(int p0); //constructor: btHashInt  ( ::btHashInt::* )( int ) +void btHashInt_free(void *c); +int btHashInt_getUid1(void *c); //method: getUid1 int ( ::btHashInt::* )(  ) const+unsigned int btHashInt_getHash(void *c); //method: getHash unsigned int ( ::btHashInt::* )(  ) const+void btHashInt_setUid1(void *c,int p0); //method: setUid1 void ( ::btHashInt::* )( int ) +int btHashInt_equals(void *c,void* p0); //method: equals bool ( ::btHashInt::* )( ::btHashInt const & ) const+void btHashInt_m_uid_set(void *c,int a); //attribute: int btHashInt->m_uid+int btHashInt_m_uid_get(void *c); //attribute: int btHashInt->m_uid+void* btHashMap_btHashInt_btTriangleInfo__new(); //constructor: btHashMap  ( ::btHashMap<btHashInt, btTriangleInfo>::* )(  ) +void btHashMap_btHashInt_btTriangleInfo__free(void *c); +void btHashMap_btHashInt_btTriangleInfo__insert(void *c,void* p0,void* p1); //method: insert void ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const &,::btTriangleInfo const & ) +int btHashMap_btHashInt_btTriangleInfo__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const & ) const+void btHashMap_btHashInt_btTriangleInfo__clear(void *c); //method: clear void ( ::btHashMap<btHashInt, btTriangleInfo>::* )(  ) +void* btHashMap_btHashInt_btTriangleInfo__getAtIndex(void *c,int p0); //method: getAtIndex ::btTriangleInfo const * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( int ) const+void* btHashMap_btHashInt_btTriangleInfo__getAtIndex0(void *c,int p0); //method: getAtIndex ::btTriangleInfo const * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( int ) const+void* btHashMap_btHashInt_btTriangleInfo__getAtIndex1(void *c,int p0); //method: getAtIndex ::btTriangleInfo * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( int ) +void btHashMap_btHashInt_btTriangleInfo__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const & ) +void* btHashMap_btHashInt_btTriangleInfo__find(void *c,void* p0); //method: find ::btTriangleInfo const * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const & ) const+void* btHashMap_btHashInt_btTriangleInfo__find0(void *c,void* p0); //method: find ::btTriangleInfo const * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const & ) const+void* btHashMap_btHashInt_btTriangleInfo__find1(void *c,void* p0); //method: find ::btTriangleInfo * ( ::btHashMap<btHashInt, btTriangleInfo>::* )( ::btHashInt const & ) +int btHashMap_btHashInt_btTriangleInfo__size(void *c); //method: size int ( ::btHashMap<btHashInt, btTriangleInfo>::* )(  ) const+void btHashMap_btHashInt_btTriangleInfo__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_btTriangleInfo_->m_hashTable+void* btHashMap_btHashInt_btTriangleInfo__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_btTriangleInfo_->m_hashTable+void btHashMap_btHashInt_btTriangleInfo__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_btTriangleInfo_->m_next+void* btHashMap_btHashInt_btTriangleInfo__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_btTriangleInfo_->m_next+void btHashMap_btHashInt_btTriangleInfo__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btTriangleInfo> btHashMap_btHashInt_btTriangleInfo_->m_valueArray+void* btHashMap_btHashInt_btTriangleInfo__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<btTriangleInfo> btHashMap_btHashInt_btTriangleInfo_->m_valueArray+void btHashMap_btHashInt_btTriangleInfo__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashInt> btHashMap_btHashInt_btTriangleInfo_->m_keyArray+void* btHashMap_btHashInt_btTriangleInfo__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashInt> btHashMap_btHashInt_btTriangleInfo_->m_keyArray+void* btHashMap_btHashInt_int__new(); //constructor: btHashMap  ( ::btHashMap<btHashInt, int>::* )(  ) +void btHashMap_btHashInt_int__free(void *c); +//not supported method: insert void ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const &,int const & ) +// error: ::btHashInt const & - ok,  - unsupported, void - ok++int btHashMap_btHashInt_int__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const & ) const+void btHashMap_btHashInt_int__clear(void *c); //method: clear void ( ::btHashMap<btHashInt, int>::* )(  ) +//not supported method: getAtIndex int const * ( ::btHashMap<btHashInt, int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex int const * ( ::btHashMap<btHashInt, int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex int * ( ::btHashMap<btHashInt, int>::* )( int ) +// error: int - ok,  - unsupported++void btHashMap_btHashInt_int__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const & ) +//not supported method: find int const * ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const & ) const+// error: ::btHashInt const & - ok,  - unsupported++//not supported method: find int const * ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const & ) const+// error: ::btHashInt const & - ok,  - unsupported++//not supported method: find int * ( ::btHashMap<btHashInt, int>::* )( ::btHashInt const & ) +// error: ::btHashInt const & - ok,  - unsupported++int btHashMap_btHashInt_int__size(void *c); //method: size int ( ::btHashMap<btHashInt, int>::* )(  ) const+void btHashMap_btHashInt_int__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_hashTable+void* btHashMap_btHashInt_int__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_hashTable+void btHashMap_btHashInt_int__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashInt> btHashMap_btHashInt_int_->m_keyArray+void* btHashMap_btHashInt_int__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashInt> btHashMap_btHashInt_int_->m_keyArray+void btHashMap_btHashInt_int__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_next+void* btHashMap_btHashInt_int__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_next+void btHashMap_btHashInt_int__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_valueArray+void* btHashMap_btHashInt_int__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashInt_int_->m_valueArray+void* btHashMap_btHashPtr_btPointerUid__new(); //constructor: btHashMap  ( ::btHashMap<btHashPtr, btPointerUid>::* )(  ) +void btHashMap_btHashPtr_btPointerUid__free(void *c); +void btHashMap_btHashPtr_btPointerUid__insert(void *c,void* p0,void* p1); //method: insert void ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const &,::btPointerUid const & ) +int btHashMap_btHashPtr_btPointerUid__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const & ) const+void btHashMap_btHashPtr_btPointerUid__clear(void *c); //method: clear void ( ::btHashMap<btHashPtr, btPointerUid>::* )(  ) +void* btHashMap_btHashPtr_btPointerUid__getAtIndex(void *c,int p0); //method: getAtIndex ::btPointerUid const * ( ::btHashMap<btHashPtr, btPointerUid>::* )( int ) const+void* btHashMap_btHashPtr_btPointerUid__getAtIndex0(void *c,int p0); //method: getAtIndex ::btPointerUid const * ( ::btHashMap<btHashPtr, btPointerUid>::* )( int ) const+void* btHashMap_btHashPtr_btPointerUid__getAtIndex1(void *c,int p0); //method: getAtIndex ::btPointerUid * ( ::btHashMap<btHashPtr, btPointerUid>::* )( int ) +void btHashMap_btHashPtr_btPointerUid__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const & ) +void* btHashMap_btHashPtr_btPointerUid__find(void *c,void* p0); //method: find ::btPointerUid const * ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const & ) const+void* btHashMap_btHashPtr_btPointerUid__find0(void *c,void* p0); //method: find ::btPointerUid const * ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const & ) const+void* btHashMap_btHashPtr_btPointerUid__find1(void *c,void* p0); //method: find ::btPointerUid * ( ::btHashMap<btHashPtr, btPointerUid>::* )( ::btHashPtr const & ) +int btHashMap_btHashPtr_btPointerUid__size(void *c); //method: size int ( ::btHashMap<btHashPtr, btPointerUid>::* )(  ) const+void btHashMap_btHashPtr_btPointerUid__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_btPointerUid_->m_hashTable+void* btHashMap_btHashPtr_btPointerUid__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_btPointerUid_->m_hashTable+void btHashMap_btHashPtr_btPointerUid__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_btPointerUid_->m_keyArray+void* btHashMap_btHashPtr_btPointerUid__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_btPointerUid_->m_keyArray+void btHashMap_btHashPtr_btPointerUid__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_btPointerUid_->m_next+void* btHashMap_btHashPtr_btPointerUid__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_btPointerUid_->m_next+void btHashMap_btHashPtr_btPointerUid__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btPointerUid> btHashMap_btHashPtr_btPointerUid_->m_valueArray+void* btHashMap_btHashPtr_btPointerUid__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<btPointerUid> btHashMap_btHashPtr_btPointerUid_->m_valueArray+void* btHashMap_btHashPtr_charconst_ptr__new(); //constructor: btHashMap  ( ::btHashMap<btHashPtr, char const*>::* )(  ) +void btHashMap_btHashPtr_charconst_ptr__free(void *c); +//not supported method: insert void ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const &,char const * const & ) +// error: ::btHashPtr const & - ok,  - unsupported, void - ok++int btHashMap_btHashPtr_charconst_ptr__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const & ) const+void btHashMap_btHashPtr_charconst_ptr__clear(void *c); //method: clear void ( ::btHashMap<btHashPtr, char const*>::* )(  ) +//not supported method: getAtIndex char const * const * ( ::btHashMap<btHashPtr, char const*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex char const * const * ( ::btHashMap<btHashPtr, char const*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex char const * * ( ::btHashMap<btHashPtr, char const*>::* )( int ) +// error: int - ok,  - unsupported++void btHashMap_btHashPtr_charconst_ptr__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const & ) +//not supported method: find char const * const * ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const & ) const+// error: ::btHashPtr const & - ok,  - unsupported++//not supported method: find char const * const * ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const & ) const+// error: ::btHashPtr const & - ok,  - unsupported++//not supported method: find char const * * ( ::btHashMap<btHashPtr, char const*>::* )( ::btHashPtr const & ) +// error: ::btHashPtr const & - ok,  - unsupported++int btHashMap_btHashPtr_charconst_ptr__size(void *c); //method: size int ( ::btHashMap<btHashPtr, char const*>::* )(  ) const+void btHashMap_btHashPtr_charconst_ptr__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_charconst_ptr_->m_hashTable+void* btHashMap_btHashPtr_charconst_ptr__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_charconst_ptr_->m_hashTable+void btHashMap_btHashPtr_charconst_ptr__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_charconst_ptr_->m_keyArray+void* btHashMap_btHashPtr_charconst_ptr__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_charconst_ptr_->m_keyArray+void btHashMap_btHashPtr_charconst_ptr__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_charconst_ptr_->m_next+void* btHashMap_btHashPtr_charconst_ptr__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_charconst_ptr_->m_next+void btHashMap_btHashPtr_charconst_ptr__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<char const*> btHashMap_btHashPtr_charconst_ptr_->m_valueArray+void* btHashMap_btHashPtr_charconst_ptr__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<char const*> btHashMap_btHashPtr_charconst_ptr_->m_valueArray+void* btHashMap_btHashPtr_void_ptr__new(); //constructor: btHashMap  ( ::btHashMap<btHashPtr, void*>::* )(  ) +void btHashMap_btHashPtr_void_ptr__free(void *c); +//not supported method: insert void ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const &,void * const & ) +// error: ::btHashPtr const & - ok,  - unsupported, void - ok++int btHashMap_btHashPtr_void_ptr__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const & ) const+void btHashMap_btHashPtr_void_ptr__clear(void *c); //method: clear void ( ::btHashMap<btHashPtr, void*>::* )(  ) +//not supported method: getAtIndex void * const * ( ::btHashMap<btHashPtr, void*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex void * const * ( ::btHashMap<btHashPtr, void*>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex void * * ( ::btHashMap<btHashPtr, void*>::* )( int ) +// error: int - ok,  - unsupported++void btHashMap_btHashPtr_void_ptr__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const & ) +//not supported method: find void * const * ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const & ) const+// error: ::btHashPtr const & - ok,  - unsupported++//not supported method: find void * const * ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const & ) const+// error: ::btHashPtr const & - ok,  - unsupported++//not supported method: find void * * ( ::btHashMap<btHashPtr, void*>::* )( ::btHashPtr const & ) +// error: ::btHashPtr const & - ok,  - unsupported++int btHashMap_btHashPtr_void_ptr__size(void *c); //method: size int ( ::btHashMap<btHashPtr, void*>::* )(  ) const+void btHashMap_btHashPtr_void_ptr__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_void_ptr_->m_hashTable+void* btHashMap_btHashPtr_void_ptr__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_void_ptr_->m_hashTable+void btHashMap_btHashPtr_void_ptr__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_void_ptr_->m_keyArray+void* btHashMap_btHashPtr_void_ptr__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashPtr> btHashMap_btHashPtr_void_ptr_->m_keyArray+void btHashMap_btHashPtr_void_ptr__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_void_ptr_->m_next+void* btHashMap_btHashPtr_void_ptr__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashPtr_void_ptr_->m_next+void btHashMap_btHashPtr_void_ptr__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<void*> btHashMap_btHashPtr_void_ptr_->m_valueArray+void* btHashMap_btHashPtr_void_ptr__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<void*> btHashMap_btHashPtr_void_ptr_->m_valueArray+void* btHashMap_btHashString_int__new(); //constructor: btHashMap  ( ::btHashMap<btHashString, int>::* )(  ) +void btHashMap_btHashString_int__free(void *c); +//not supported method: insert void ( ::btHashMap<btHashString, int>::* )( ::btHashString const &,int const & ) +// error: ::btHashString const & - ok,  - unsupported, void - ok++int btHashMap_btHashString_int__findIndex(void *c,void* p0); //method: findIndex int ( ::btHashMap<btHashString, int>::* )( ::btHashString const & ) const+void btHashMap_btHashString_int__clear(void *c); //method: clear void ( ::btHashMap<btHashString, int>::* )(  ) +//not supported method: getAtIndex int const * ( ::btHashMap<btHashString, int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex int const * ( ::btHashMap<btHashString, int>::* )( int ) const+// error: int - ok,  - unsupported++//not supported method: getAtIndex int * ( ::btHashMap<btHashString, int>::* )( int ) +// error: int - ok,  - unsupported++void btHashMap_btHashString_int__growTables(void *c,void* p0); //method: growTables void ( ::btHashMap<btHashString, int>::* )( ::btHashString const & ) +//not supported method: find int const * ( ::btHashMap<btHashString, int>::* )( ::btHashString const & ) const+// error: ::btHashString const & - ok,  - unsupported++//not supported method: find int const * ( ::btHashMap<btHashString, int>::* )( ::btHashString const & ) const+// error: ::btHashString const & - ok,  - unsupported++//not supported method: find int * ( ::btHashMap<btHashString, int>::* )( ::btHashString const & ) +// error: ::btHashString const & - ok,  - unsupported++int btHashMap_btHashString_int__size(void *c); //method: size int ( ::btHashMap<btHashString, int>::* )(  ) const+void btHashMap_btHashString_int__m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_hashTable+void* btHashMap_btHashString_int__m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_hashTable+void btHashMap_btHashString_int__m_keyArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btHashString> btHashMap_btHashString_int_->m_keyArray+void* btHashMap_btHashString_int__m_keyArray_get(void *c); //attribute: ::btAlignedObjectArray<btHashString> btHashMap_btHashString_int_->m_keyArray+void btHashMap_btHashString_int__m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_next+void* btHashMap_btHashString_int__m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_next+void btHashMap_btHashString_int__m_valueArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_valueArray+void* btHashMap_btHashString_int__m_valueArray_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashMap_btHashString_int_->m_valueArray+//not supported constructor: btHashPtr  ( ::btHashPtr::* )( void const * ) +// error:  - unsupported++void btHashPtr_free(void *c); +unsigned int btHashPtr_getHash(void *c); //method: getHash unsigned int ( ::btHashPtr::* )(  ) const+int btHashPtr_equals(void *c,void* p0); //method: equals bool ( ::btHashPtr::* )( ::btHashPtr const & ) const+//not supported method: getPointer void const * ( ::btHashPtr::* )(  ) const+// error:  - unsupported++// attribute not supported: //attribute: ::btHashPtr btHashPtr->+void* btHashString_new(char const * p0); //constructor: btHashString  ( ::btHashString::* )( char const * ) +void btHashString_free(void *c); +unsigned int btHashString_getHash(void *c); //method: getHash unsigned int ( ::btHashString::* )(  ) const+int btHashString_equals(void *c,void* p0); //method: equals bool ( ::btHashString::* )( ::btHashString const & ) const+int btHashString_portableStringCompare(void *c,char const * p0,char const * p1); //method: portableStringCompare int ( ::btHashString::* )( char const *,char const * ) const+void btHashString_m_hash_set(void *c,unsigned int a); //attribute: unsigned int btHashString->m_hash+unsigned int btHashString_m_hash_get(void *c); //attribute: unsigned int btHashString->m_hash+void btHashString_m_string_set(void *c,char const * a); //attribute: char const * btHashString->m_string+char const * btHashString_m_string_get(void *c); //attribute: char const * btHashString->m_string+void btIDebugDraw_draw3dText(void *c,float* p0,char const * p1); //method: draw3dText void ( ::btIDebugDraw::* )( ::btVector3 const &,char const * ) +void btIDebugDraw_drawBox(void *c,float* p0,float* p1,float* p2); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawBox0(void *c,float* p0,float* p1,float* p2); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawBox1(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawBox void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawCone(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCone void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawCapsule(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCapsule void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawArc(void *c,float* p0,float* p1,float* p2,float p3,float p4,float p5,float p6,float* p7,int p8,float p9); //method: drawArc void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btScalar,::btScalar,::btVector3 const &,bool,::btScalar ) +void btIDebugDraw_drawCylinder(void *c,float p0,float p1,int p2,float* p3,float* p4); //method: drawCylinder void ( ::btIDebugDraw::* )( ::btScalar,::btScalar,int,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_reportErrorWarning(void *c,char const * p0); //method: reportErrorWarning void ( ::btIDebugDraw::* )( char const * ) +void btIDebugDraw_drawTriangle(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,float p7); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btIDebugDraw_drawTriangle0(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,float p7); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btIDebugDraw_drawTriangle1(void *c,float* p0,float* p1,float* p2,float* p3,float p4); //method: drawTriangle void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +int btIDebugDraw_getDebugMode(void *c); //method: getDebugMode int ( ::btIDebugDraw::* )(  ) const+void btIDebugDraw_drawLine(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawLine0(void *c,float* p0,float* p1,float* p2); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawLine1(void *c,float* p0,float* p1,float* p2,float* p3); //method: drawLine void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawTransform(void *c,float* p0,float p1); //method: drawTransform void ( ::btIDebugDraw::* )( ::btTransform const &,::btScalar ) +void btIDebugDraw_drawAabb(void *c,float* p0,float* p1,float* p2); //method: drawAabb void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btIDebugDraw_drawPlane(void *c,float* p0,float p1,float* p2,float* p3); //method: drawPlane void ( ::btIDebugDraw::* )( ::btVector3 const &,::btScalar,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawContactPoint(void *c,float* p0,float* p1,float p2,int p3,float* p4); //method: drawContactPoint void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btScalar,int,::btVector3 const & ) +void btIDebugDraw_setDebugMode(void *c,int p0); //method: setDebugMode void ( ::btIDebugDraw::* )( int ) +void btIDebugDraw_drawSpherePatch(void *c,float* p0,float* p1,float* p2,float p3,float p4,float p5,float p6,float p7,float* p8,float p9); //method: drawSpherePatch void ( ::btIDebugDraw::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btScalar,::btScalar,::btScalar,::btVector3 const &,::btScalar ) +void btIDebugDraw_drawSphere(void *c,float p0,float* p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btScalar,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawSphere0(void *c,float p0,float* p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btScalar,::btTransform const &,::btVector3 const & ) +void btIDebugDraw_drawSphere1(void *c,float* p0,float p1,float* p2); //method: drawSphere void ( ::btIDebugDraw::* )( ::btVector3 const &,::btScalar,::btVector3 const & ) +void* btMatrix3x3DoubleData_new(); //constructor: btMatrix3x3DoubleData  ( ::btMatrix3x3DoubleData::* )(  ) +void btMatrix3x3DoubleData_free(void *c); +// attribute not supported: //attribute: ::btVector3DoubleData[3] btMatrix3x3DoubleData->m_el+void* btMatrix3x3FloatData_new(); //constructor: btMatrix3x3FloatData  ( ::btMatrix3x3FloatData::* )(  ) +void btMatrix3x3FloatData_free(void *c); +// attribute not supported: //attribute: ::btVector3FloatData[3] btMatrix3x3FloatData->m_el+void btMotionState_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btMotionState::* )( ::btTransform const & ) +void btMotionState_getWorldTransform(void *c,float* p0); //method: getWorldTransform void ( ::btMotionState::* )( ::btTransform & ) const+void* btPointerUid_new(); //constructor: btPointerUid  ( ::btPointerUid::* )(  ) +void btPointerUid_free(void *c); +// attribute not supported: //attribute: ::btPointerUid btPointerUid->+void* btQuadWord_new0(); //constructor: btQuadWord  ( ::btQuadWord::* )(  ) +void* btQuadWord_new1(float p0,float p1,float p2); //constructor: btQuadWord  ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) +void* btQuadWord_new2(float p0,float p1,float p2,float p3); //constructor: btQuadWord  ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const &,::btScalar const & ) +void btQuadWord_free(void *c); +void btQuadWord_setMin(void *c,void* p0); //method: setMin void ( ::btQuadWord::* )( ::btQuadWord const & ) +void btQuadWord_setValue(void *c,float p0,float p1,float p2); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) +void btQuadWord_setValue0(void *c,float p0,float p1,float p2); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const & ) +void btQuadWord_setValue1(void *c,float p0,float p1,float p2,float p3); //method: setValue void ( ::btQuadWord::* )( ::btScalar const &,::btScalar const &,::btScalar const &,::btScalar const & ) +void btQuadWord_setMax(void *c,void* p0); //method: setMax void ( ::btQuadWord::* )( ::btQuadWord const & ) +float btQuadWord_getX(void *c); //method: getX ::btScalar const & ( ::btQuadWord::* )(  ) const+float btQuadWord_getY(void *c); //method: getY ::btScalar const & ( ::btQuadWord::* )(  ) const+float btQuadWord_getZ(void *c); //method: getZ ::btScalar const & ( ::btQuadWord::* )(  ) const+void btQuadWord_setW(void *c,float p0); //method: setW void ( ::btQuadWord::* )( ::btScalar ) +float btQuadWord_w(void *c); //method: w ::btScalar const & ( ::btQuadWord::* )(  ) const+float btQuadWord_y(void *c); //method: y ::btScalar const & ( ::btQuadWord::* )(  ) const+float btQuadWord_x(void *c); //method: x ::btScalar const & ( ::btQuadWord::* )(  ) const+float btQuadWord_z(void *c); //method: z ::btScalar const & ( ::btQuadWord::* )(  ) const+void btQuadWord_setX(void *c,float p0); //method: setX void ( ::btQuadWord::* )( ::btScalar ) +void btQuadWord_setY(void *c,float p0); //method: setY void ( ::btQuadWord::* )( ::btScalar ) +void btQuadWord_setZ(void *c,float p0); //method: setZ void ( ::btQuadWord::* )( ::btScalar ) +// attribute not supported: //attribute: ::btScalar[4] btQuadWord->m_floats+void btSerializer_setSerializationFlags(void *c,int p0); //method: setSerializationFlags void ( ::btSerializer::* )( int ) +int btSerializer_getCurrentBufferSize(void *c); //method: getCurrentBufferSize int ( ::btSerializer::* )(  ) const+void btSerializer_startSerialization(void *c); //method: startSerialization void ( ::btSerializer::* )(  ) +int btSerializer_getSerializationFlags(void *c); //method: getSerializationFlags int ( ::btSerializer::* )(  ) const+void btSerializer_finishSerialization(void *c); //method: finishSerialization void ( ::btSerializer::* )(  ) +void* btSerializer_getUniquePointer(void *c,void* p0); //method: getUniquePointer void * ( ::btSerializer::* )( void * ) +//not supported method: allocate ::btChunk * ( ::btSerializer::* )( ::size_t,int ) +// error:  - unsupported, int - ok, ::btChunk * - ok++//not supported method: findNameForPointer char const * ( ::btSerializer::* )( void const * ) const+// error:  - unsupported, char const * - ok++void btSerializer_finalizeChunk(void *c,void* p0,char const * p1,int p2,void* p3); //method: finalizeChunk void ( ::btSerializer::* )( ::btChunk *,char const *,int,void * ) +void btSerializer_serializeName(void *c,char const * p0); //method: serializeName void ( ::btSerializer::* )( char const * ) +void* btSerializer_findPointer(void *c,void* p0); //method: findPointer void * ( ::btSerializer::* )( void * ) +//not supported method: registerNameForPointer void ( ::btSerializer::* )( void const *,char const * ) +// error:  - unsupported, char const * - ok, void - ok++//not supported method: getBufferPointer unsigned char const * ( ::btSerializer::* )(  ) const+// error:  - unsupported++void* btStackAlloc_new(unsigned int p0); //constructor: btStackAlloc  ( ::btStackAlloc::* )( unsigned int ) +void btStackAlloc_free(void *c); +void btStackAlloc_create(void *c,unsigned int p0); //method: create void ( ::btStackAlloc::* )( unsigned int ) +void btStackAlloc_ctor(void *c); //method: ctor void ( ::btStackAlloc::* )(  ) +//not supported method: allocate unsigned char * ( ::btStackAlloc::* )( unsigned int ) +// error: unsigned int - ok,  - unsupported++void btStackAlloc_destroy(void *c); //method: destroy void ( ::btStackAlloc::* )(  ) +void* btStackAlloc_beginBlock(void *c); //method: beginBlock ::btBlock * ( ::btStackAlloc::* )(  ) +int btStackAlloc_getAvailableMemory(void *c); //method: getAvailableMemory int ( ::btStackAlloc::* )(  ) const+void btStackAlloc_endBlock(void *c,void* p0); //method: endBlock void ( ::btStackAlloc::* )( ::btBlock * ) +// attribute not supported: //attribute: unsigned char * btStackAlloc->data+void btStackAlloc_totalsize_set(void *c,unsigned int a); //attribute: unsigned int btStackAlloc->totalsize+unsigned int btStackAlloc_totalsize_get(void *c); //attribute: unsigned int btStackAlloc->totalsize+void btStackAlloc_usedsize_set(void *c,unsigned int a); //attribute: unsigned int btStackAlloc->usedsize+unsigned int btStackAlloc_usedsize_get(void *c); //attribute: unsigned int btStackAlloc->usedsize+void btStackAlloc_current_set(void *c,void* a); //attribute: ::btBlock * btStackAlloc->current+void* btStackAlloc_current_get(void *c); //attribute: ::btBlock * btStackAlloc->current+void btStackAlloc_ischild_set(void *c,int a); //attribute: bool btStackAlloc->ischild+int btStackAlloc_ischild_get(void *c); //attribute: bool btStackAlloc->ischild+void* btTransformDoubleData_new(); //constructor: btTransformDoubleData  ( ::btTransformDoubleData::* )(  ) +void btTransformDoubleData_free(void *c); +void btTransformDoubleData_m_basis_set(void *c,void* a); //attribute: ::btMatrix3x3DoubleData btTransformDoubleData->m_basis+void* btTransformDoubleData_m_basis_get(void *c); //attribute: ::btMatrix3x3DoubleData btTransformDoubleData->m_basis+void btTransformDoubleData_m_origin_set(void *c,void* a); //attribute: ::btVector3DoubleData btTransformDoubleData->m_origin+void* btTransformDoubleData_m_origin_get(void *c); //attribute: ::btVector3DoubleData btTransformDoubleData->m_origin+void* btTransformFloatData_new(); //constructor: btTransformFloatData  ( ::btTransformFloatData::* )(  ) +void btTransformFloatData_free(void *c); +void btTransformFloatData_m_basis_set(void *c,void* a); //attribute: ::btMatrix3x3FloatData btTransformFloatData->m_basis+void* btTransformFloatData_m_basis_get(void *c); //attribute: ::btMatrix3x3FloatData btTransformFloatData->m_basis+void btTransformFloatData_m_origin_set(void *c,void* a); //attribute: ::btVector3FloatData btTransformFloatData->m_origin+void* btTransformFloatData_m_origin_get(void *c); //attribute: ::btVector3FloatData btTransformFloatData->m_origin+void* btTransformUtil_new(); //constructor: btTransformUtil  ( ::btTransformUtil::* )(  ) +void btTransformUtil_free(void *c); +//not supported method: calculateDiffAxisAngle void (*)( ::btTransform const &,::btTransform const &,::btVector3 &,::btScalar & )+// error: ::btTransform const & - ok, ::btTransform const & - ok, ::btVector3 & - ok,  - unsupported, void - ok++void btTransformUtil_calculateVelocity(float* p0,float* p1,float p2,float* p3,float* p4); //method: calculateVelocity void (*)( ::btTransform const &,::btTransform const &,::btScalar,::btVector3 &,::btVector3 & )+void btTransformUtil_integrateTransform(float* p0,float* p1,float* p2,float p3,float* p4); //method: integrateTransform void (*)( ::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btTransform & )+void btTransformUtil_calculateVelocityQuaternion(float* p0,float* p1,float* p2,float* p3,float p4,float* p5,float* p6); //method: calculateVelocityQuaternion void (*)( ::btVector3 const &,::btVector3 const &,::btQuaternion const &,::btQuaternion const &,::btScalar,::btVector3 &,::btVector3 & )+//not supported method: calculateDiffAxisAngleQuaternion void (*)( ::btQuaternion const &,::btQuaternion const &,::btVector3 &,::btScalar & )+// error: ::btQuaternion const & - ok, ::btQuaternion const & - ok, ::btVector3 & - ok,  - unsupported, void - ok++void* btTypedObject_new(int p0); //constructor: btTypedObject  ( ::btTypedObject::* )( int ) +void btTypedObject_free(void *c); +int btTypedObject_getObjectType(void *c); //method: getObjectType int ( ::btTypedObject::* )(  ) const+void btTypedObject_m_objectType_set(void *c,int a); //attribute: int btTypedObject->m_objectType+int btTypedObject_m_objectType_get(void *c); //attribute: int btTypedObject->m_objectType+void* btVector3DoubleData_new(); //constructor: btVector3DoubleData  ( ::btVector3DoubleData::* )(  ) +void btVector3DoubleData_free(void *c); +// attribute not supported: //attribute: double[4] btVector3DoubleData->m_floats+void* btVector3FloatData_new(); //constructor: btVector3FloatData  ( ::btVector3FloatData::* )(  ) +void btVector3FloatData_free(void *c); +// attribute not supported: //attribute: float[4] btVector3FloatData->m_floats+void* btAngularLimit_new(); //constructor: btAngularLimit  ( ::btAngularLimit::* )(  ) +void btAngularLimit_free(void *c); +float btAngularLimit_getCorrection(void *c); //method: getCorrection ::btScalar ( ::btAngularLimit::* )(  ) const+void btAngularLimit_set(void *c,float p0,float p1,float p2,float p3,float p4); //method: set void ( ::btAngularLimit::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) +float btAngularLimit_getError(void *c); //method: getError ::btScalar ( ::btAngularLimit::* )(  ) const+//not supported method: fit void ( ::btAngularLimit::* )( ::btScalar & ) const+// error:  - unsupported, void - ok++int btAngularLimit_isLimit(void *c); //method: isLimit bool ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getSign(void *c); //method: getSign ::btScalar ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getBiasFactor(void *c); //method: getBiasFactor ::btScalar ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getSoftness(void *c); //method: getSoftness ::btScalar ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getHigh(void *c); //method: getHigh ::btScalar ( ::btAngularLimit::* )(  ) const+//not supported method: test void ( ::btAngularLimit::* )( ::btScalar const ) +// error:  - unsupported, void - ok++float btAngularLimit_getHalfRange(void *c); //method: getHalfRange ::btScalar ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getLow(void *c); //method: getLow ::btScalar ( ::btAngularLimit::* )(  ) const+float btAngularLimit_getRelaxationFactor(void *c); //method: getRelaxationFactor ::btScalar ( ::btAngularLimit::* )(  ) const+void btAngularLimit_m_center_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_center+float btAngularLimit_m_center_get(void *c); //attribute: ::btScalar btAngularLimit->m_center+void btAngularLimit_m_halfRange_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_halfRange+float btAngularLimit_m_halfRange_get(void *c); //attribute: ::btScalar btAngularLimit->m_halfRange+void btAngularLimit_m_softness_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_softness+float btAngularLimit_m_softness_get(void *c); //attribute: ::btScalar btAngularLimit->m_softness+void btAngularLimit_m_biasFactor_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_biasFactor+float btAngularLimit_m_biasFactor_get(void *c); //attribute: ::btScalar btAngularLimit->m_biasFactor+void btAngularLimit_m_relaxationFactor_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_relaxationFactor+float btAngularLimit_m_relaxationFactor_get(void *c); //attribute: ::btScalar btAngularLimit->m_relaxationFactor+void btAngularLimit_m_correction_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_correction+float btAngularLimit_m_correction_get(void *c); //attribute: ::btScalar btAngularLimit->m_correction+void btAngularLimit_m_sign_set(void *c,float a); //attribute: ::btScalar btAngularLimit->m_sign+float btAngularLimit_m_sign_get(void *c); //attribute: ::btScalar btAngularLimit->m_sign+void btAngularLimit_m_solveLimit_set(void *c,int a); //attribute: bool btAngularLimit->m_solveLimit+int btAngularLimit_m_solveLimit_get(void *c); //attribute: bool btAngularLimit->m_solveLimit+void* btConeTwistConstraint_new0(void* p0,void* p1,float* p2,float* p3); //constructor: btConeTwistConstraint  ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const & ) +void* btConeTwistConstraint_new1(void* p0,float* p1); //constructor: btConeTwistConstraint  ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btTransform const & ) +void btConeTwistConstraint_free(void *c); +void* btConeTwistConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btConeTwistConstraint::* )(  ) const+void btConeTwistConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btConeTwistConstraint::* )(  ) +void* btConeTwistConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btConeTwistConstraint::* )(  ) const+void btConeTwistConstraint_adjustSwingAxisToUseEllipseNormal(void *c,float* p0); //method: adjustSwingAxisToUseEllipseNormal void ( ::btConeTwistConstraint::* )( ::btVector3 & ) const+int btConeTwistConstraint_isPastSwingLimit(void *c); //method: isPastSwingLimit bool ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btConeTwistConstraint::* )(  ) const+void btConeTwistConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btConeTwistConstraint::* )(  ) const+void btConeTwistConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2NonVirtual void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btMatrix3x3 const &,::btMatrix3x3 const & ) +float btConeTwistConstraint_getSwingSpan1(void *c); //method: getSwingSpan1 ::btScalar ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_calcAngleInfo2(void *c,float* p0,float* p1,float* p2,float* p3); //method: calcAngleInfo2 void ( ::btConeTwistConstraint::* )( ::btTransform const &,::btTransform const &,::btMatrix3x3 const &,::btMatrix3x3 const & ) +//not supported method: computeConeLimitInfo void ( ::btConeTwistConstraint::* )( ::btQuaternion const &,::btScalar &,::btVector3 &,::btScalar & ) +// error: ::btQuaternion const & - ok,  - unsupported, ::btVector3 & - ok,  - unsupported, void - ok++float btConeTwistConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btConeTwistConstraint::* )( int,int ) const+void btConeTwistConstraint_setDamping(void *c,float p0); //method: setDamping void ( ::btConeTwistConstraint::* )( ::btScalar ) +void btConeTwistConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btConeTwistConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btConeTwistConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btConeTwistConstraint::* )( int,::btScalar,int ) +int btConeTwistConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConeTwistConstraint::* )(  ) const+//not supported method: computeTwistLimitInfo void ( ::btConeTwistConstraint::* )( ::btQuaternion const &,::btScalar &,::btVector3 & ) +// error: ::btQuaternion const & - ok,  - unsupported, ::btVector3 & - ok, void - ok++void btConeTwistConstraint_init(void *c); //method: init void ( ::btConeTwistConstraint::* )(  ) +float btConeTwistConstraint_getTwistAngle(void *c); //method: getTwistAngle ::btScalar ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_setMaxMotorImpulseNormalized(void *c,float p0); //method: setMaxMotorImpulseNormalized void ( ::btConeTwistConstraint::* )( ::btScalar ) +int btConeTwistConstraint_getSolveTwistLimit(void *c); //method: getSolveTwistLimit int ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_enableMotor(void *c,int p0); //method: enableMotor void ( ::btConeTwistConstraint::* )( bool ) +void btConeTwistConstraint_getBFrame(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btConeTwistConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +char const * btConeTwistConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btConeTwistConstraint::* )( void *,::btSerializer * ) const+float btConeTwistConstraint_getFixThresh(void *c); //method: getFixThresh ::btScalar ( ::btConeTwistConstraint::* )(  ) +int btConeTwistConstraint_getSolveSwingLimit(void *c); //method: getSolveSwingLimit int ( ::btConeTwistConstraint::* )(  ) +float btConeTwistConstraint_getSwingSpan2(void *c); //method: getSwingSpan2 ::btScalar ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_setAngularOnly(void *c,int p0); //method: setAngularOnly void ( ::btConeTwistConstraint::* )( bool ) +void btConeTwistConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btConeTwistConstraint::* )( ::btTransform const &,::btTransform const & ) +void btConeTwistConstraint_setLimit(void *c,int p0,float p1); //method: setLimit void ( ::btConeTwistConstraint::* )( int,::btScalar ) +void btConeTwistConstraint_setLimit0(void *c,int p0,float p1); //method: setLimit void ( ::btConeTwistConstraint::* )( int,::btScalar ) +void btConeTwistConstraint_setLimit1(void *c,float p0,float p1,float p2,float p3,float p4,float p5); //method: setLimit void ( ::btConeTwistConstraint::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) +float btConeTwistConstraint_getTwistLimitSign(void *c); //method: getTwistLimitSign ::btScalar ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_setMaxMotorImpulse(void *c,float p0); //method: setMaxMotorImpulse void ( ::btConeTwistConstraint::* )( ::btScalar ) +void btConeTwistConstraint_calcAngleInfo(void *c); //method: calcAngleInfo void ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_setMotorTarget(void *c,float* p0); //method: setMotorTarget void ( ::btConeTwistConstraint::* )( ::btQuaternion const & ) +void btConeTwistConstraint_setFixThresh(void *c,float p0); //method: setFixThresh void ( ::btConeTwistConstraint::* )( ::btScalar ) +void btConeTwistConstraint_setMotorTargetInConstraintSpace(void *c,float* p0); //method: setMotorTargetInConstraintSpace void ( ::btConeTwistConstraint::* )( ::btQuaternion const & ) +void btConeTwistConstraint_solveConstraintObsolete(void *c,void* p0,void* p1,float p2); //method: solveConstraintObsolete void ( ::btConeTwistConstraint::* )( ::btRigidBody &,::btRigidBody &,::btScalar ) +void btConeTwistConstraint_GetPointForAngle(void *c,float p0,float p1,float* ret); //method: GetPointForAngle ::btVector3 ( ::btConeTwistConstraint::* )( ::btScalar,::btScalar ) const+void btConeTwistConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btConeTwistConstraint::* )( ::btScalar ) +float btConeTwistConstraint_getTwistSpan(void *c); //method: getTwistSpan ::btScalar ( ::btConeTwistConstraint::* )(  ) +void btConeTwistConstraint_getAFrame(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btConeTwistConstraint::* )(  ) +// attribute not supported: //attribute: ::btJacobianEntry[3] btConeTwistConstraint->m_jac+void btConeTwistConstraint_m_rbAFrame_set(void *c,float* a); //attribute: ::btTransform btConeTwistConstraint->m_rbAFrame+void btConeTwistConstraint_m_rbAFrame_get(void *c,float* a);+void btConeTwistConstraint_m_rbBFrame_set(void *c,float* a); //attribute: ::btTransform btConeTwistConstraint->m_rbBFrame+void btConeTwistConstraint_m_rbBFrame_get(void *c,float* a);+void btConeTwistConstraint_m_limitSoftness_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_limitSoftness+float btConeTwistConstraint_m_limitSoftness_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_limitSoftness+void btConeTwistConstraint_m_biasFactor_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_biasFactor+float btConeTwistConstraint_m_biasFactor_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_biasFactor+void btConeTwistConstraint_m_relaxationFactor_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_relaxationFactor+float btConeTwistConstraint_m_relaxationFactor_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_relaxationFactor+void btConeTwistConstraint_m_damping_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_damping+float btConeTwistConstraint_m_damping_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_damping+void btConeTwistConstraint_m_swingSpan1_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_swingSpan1+float btConeTwistConstraint_m_swingSpan1_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_swingSpan1+void btConeTwistConstraint_m_swingSpan2_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_swingSpan2+float btConeTwistConstraint_m_swingSpan2_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_swingSpan2+void btConeTwistConstraint_m_twistSpan_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_twistSpan+float btConeTwistConstraint_m_twistSpan_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_twistSpan+void btConeTwistConstraint_m_fixThresh_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_fixThresh+float btConeTwistConstraint_m_fixThresh_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_fixThresh+void btConeTwistConstraint_m_swingAxis_set(void *c,float* a); //attribute: ::btVector3 btConeTwistConstraint->m_swingAxis+void btConeTwistConstraint_m_swingAxis_get(void *c,float* a);+void btConeTwistConstraint_m_twistAxis_set(void *c,float* a); //attribute: ::btVector3 btConeTwistConstraint->m_twistAxis+void btConeTwistConstraint_m_twistAxis_get(void *c,float* a);+void btConeTwistConstraint_m_kSwing_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_kSwing+float btConeTwistConstraint_m_kSwing_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_kSwing+void btConeTwistConstraint_m_kTwist_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_kTwist+float btConeTwistConstraint_m_kTwist_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_kTwist+void btConeTwistConstraint_m_twistLimitSign_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_twistLimitSign+float btConeTwistConstraint_m_twistLimitSign_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_twistLimitSign+void btConeTwistConstraint_m_swingCorrection_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_swingCorrection+float btConeTwistConstraint_m_swingCorrection_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_swingCorrection+void btConeTwistConstraint_m_twistCorrection_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_twistCorrection+float btConeTwistConstraint_m_twistCorrection_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_twistCorrection+void btConeTwistConstraint_m_twistAngle_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_twistAngle+float btConeTwistConstraint_m_twistAngle_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_twistAngle+void btConeTwistConstraint_m_accSwingLimitImpulse_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_accSwingLimitImpulse+float btConeTwistConstraint_m_accSwingLimitImpulse_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_accSwingLimitImpulse+void btConeTwistConstraint_m_accTwistLimitImpulse_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_accTwistLimitImpulse+float btConeTwistConstraint_m_accTwistLimitImpulse_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_accTwistLimitImpulse+void btConeTwistConstraint_m_angularOnly_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_angularOnly+int btConeTwistConstraint_m_angularOnly_get(void *c); //attribute: bool btConeTwistConstraint->m_angularOnly+void btConeTwistConstraint_m_solveTwistLimit_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_solveTwistLimit+int btConeTwistConstraint_m_solveTwistLimit_get(void *c); //attribute: bool btConeTwistConstraint->m_solveTwistLimit+void btConeTwistConstraint_m_solveSwingLimit_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_solveSwingLimit+int btConeTwistConstraint_m_solveSwingLimit_get(void *c); //attribute: bool btConeTwistConstraint->m_solveSwingLimit+void btConeTwistConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_useSolveConstraintObsolete+int btConeTwistConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btConeTwistConstraint->m_useSolveConstraintObsolete+void btConeTwistConstraint_m_swingLimitRatio_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_swingLimitRatio+float btConeTwistConstraint_m_swingLimitRatio_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_swingLimitRatio+void btConeTwistConstraint_m_twistLimitRatio_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_twistLimitRatio+float btConeTwistConstraint_m_twistLimitRatio_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_twistLimitRatio+void btConeTwistConstraint_m_twistAxisA_set(void *c,float* a); //attribute: ::btVector3 btConeTwistConstraint->m_twistAxisA+void btConeTwistConstraint_m_twistAxisA_get(void *c,float* a);+void btConeTwistConstraint_m_bMotorEnabled_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_bMotorEnabled+int btConeTwistConstraint_m_bMotorEnabled_get(void *c); //attribute: bool btConeTwistConstraint->m_bMotorEnabled+void btConeTwistConstraint_m_bNormalizedMotorStrength_set(void *c,int a); //attribute: bool btConeTwistConstraint->m_bNormalizedMotorStrength+int btConeTwistConstraint_m_bNormalizedMotorStrength_get(void *c); //attribute: bool btConeTwistConstraint->m_bNormalizedMotorStrength+void btConeTwistConstraint_m_qTarget_set(void *c,float* a); //attribute: ::btQuaternion btConeTwistConstraint->m_qTarget+void btConeTwistConstraint_m_qTarget_get(void *c,float* a);+void btConeTwistConstraint_m_maxMotorImpulse_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_maxMotorImpulse+float btConeTwistConstraint_m_maxMotorImpulse_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_maxMotorImpulse+void btConeTwistConstraint_m_accMotorImpulse_set(void *c,float* a); //attribute: ::btVector3 btConeTwistConstraint->m_accMotorImpulse+void btConeTwistConstraint_m_accMotorImpulse_get(void *c,float* a);+void btConeTwistConstraint_m_flags_set(void *c,int a); //attribute: int btConeTwistConstraint->m_flags+int btConeTwistConstraint_m_flags_get(void *c); //attribute: int btConeTwistConstraint->m_flags+void btConeTwistConstraint_m_linCFM_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_linCFM+float btConeTwistConstraint_m_linCFM_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_linCFM+void btConeTwistConstraint_m_linERP_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_linERP+float btConeTwistConstraint_m_linERP_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_linERP+void btConeTwistConstraint_m_angCFM_set(void *c,float a); //attribute: ::btScalar btConeTwistConstraint->m_angCFM+float btConeTwistConstraint_m_angCFM_get(void *c); //attribute: ::btScalar btConeTwistConstraint->m_angCFM+void* btConeTwistConstraintData_new(); //constructor: btConeTwistConstraintData  ( ::btConeTwistConstraintData::* )(  ) +void btConeTwistConstraintData_free(void *c); +void btConeTwistConstraintData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btConeTwistConstraintData->m_typeConstraintData+void* btConeTwistConstraintData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btConeTwistConstraintData->m_typeConstraintData+void btConeTwistConstraintData_m_rbAFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbAFrame+void* btConeTwistConstraintData_m_rbAFrame_get(void *c); //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbAFrame+void btConeTwistConstraintData_m_rbBFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbBFrame+void* btConeTwistConstraintData_m_rbBFrame_get(void *c); //attribute: ::btTransformFloatData btConeTwistConstraintData->m_rbBFrame+void btConeTwistConstraintData_m_swingSpan1_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_swingSpan1+float btConeTwistConstraintData_m_swingSpan1_get(void *c); //attribute: float btConeTwistConstraintData->m_swingSpan1+void btConeTwistConstraintData_m_swingSpan2_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_swingSpan2+float btConeTwistConstraintData_m_swingSpan2_get(void *c); //attribute: float btConeTwistConstraintData->m_swingSpan2+void btConeTwistConstraintData_m_twistSpan_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_twistSpan+float btConeTwistConstraintData_m_twistSpan_get(void *c); //attribute: float btConeTwistConstraintData->m_twistSpan+void btConeTwistConstraintData_m_limitSoftness_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_limitSoftness+float btConeTwistConstraintData_m_limitSoftness_get(void *c); //attribute: float btConeTwistConstraintData->m_limitSoftness+void btConeTwistConstraintData_m_biasFactor_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_biasFactor+float btConeTwistConstraintData_m_biasFactor_get(void *c); //attribute: float btConeTwistConstraintData->m_biasFactor+void btConeTwistConstraintData_m_relaxationFactor_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_relaxationFactor+float btConeTwistConstraintData_m_relaxationFactor_get(void *c); //attribute: float btConeTwistConstraintData->m_relaxationFactor+void btConeTwistConstraintData_m_damping_set(void *c,float a); //attribute: float btConeTwistConstraintData->m_damping+float btConeTwistConstraintData_m_damping_get(void *c); //attribute: float btConeTwistConstraintData->m_damping+// attribute not supported: //attribute: char[4] btConeTwistConstraintData->m_pad+void* btTypedConstraint_btConstraintInfo1_new(); //constructor: btConstraintInfo1  ( ::btTypedConstraint::btConstraintInfo1::* )(  ) +void btTypedConstraint_btConstraintInfo1_free(void *c); +void btTypedConstraint_btConstraintInfo1_m_numConstraintRows_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo1->m_numConstraintRows+int btTypedConstraint_btConstraintInfo1_m_numConstraintRows_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo1->m_numConstraintRows+void btTypedConstraint_btConstraintInfo1_nub_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo1->nub+int btTypedConstraint_btConstraintInfo1_nub_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo1->nub+void* btTypedConstraint_btConstraintInfo2_new(); //constructor: btConstraintInfo2  ( ::btTypedConstraint::btConstraintInfo2::* )(  ) +void btTypedConstraint_btConstraintInfo2_free(void *c); +// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->cfm+void btTypedConstraint_btConstraintInfo2_erp_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->erp+float btTypedConstraint_btConstraintInfo2_erp_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->erp+// attribute not supported: //attribute: int * btTypedConstraint_btConstraintInfo2->findex+void btTypedConstraint_btConstraintInfo2_fps_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->fps+float btTypedConstraint_btConstraintInfo2_fps_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->fps+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J1angularAxis+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J1linearAxis+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J2angularAxis+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_J2linearAxis+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_constraintError+void btTypedConstraint_btConstraintInfo2_m_damping_set(void *c,float a); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->m_damping+float btTypedConstraint_btConstraintInfo2_m_damping_get(void *c); //attribute: ::btScalar btTypedConstraint_btConstraintInfo2->m_damping+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_lowerLimit+void btTypedConstraint_btConstraintInfo2_m_numIterations_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo2->m_numIterations+int btTypedConstraint_btConstraintInfo2_m_numIterations_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo2->m_numIterations+// attribute not supported: //attribute: ::btScalar * btTypedConstraint_btConstraintInfo2->m_upperLimit+void btTypedConstraint_btConstraintInfo2_rowskip_set(void *c,int a); //attribute: int btTypedConstraint_btConstraintInfo2->rowskip+int btTypedConstraint_btConstraintInfo2_rowskip_get(void *c); //attribute: int btTypedConstraint_btConstraintInfo2->rowskip+void* btConstraintSetting_new(); //constructor: btConstraintSetting  ( ::btConstraintSetting::* )(  ) +void btConstraintSetting_free(void *c); +void btConstraintSetting_m_tau_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_tau+float btConstraintSetting_m_tau_get(void *c); //attribute: ::btScalar btConstraintSetting->m_tau+void btConstraintSetting_m_damping_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_damping+float btConstraintSetting_m_damping_get(void *c); //attribute: ::btScalar btConstraintSetting->m_damping+void btConstraintSetting_m_impulseClamp_set(void *c,float a); //attribute: ::btScalar btConstraintSetting->m_impulseClamp+float btConstraintSetting_m_impulseClamp_get(void *c); //attribute: ::btScalar btConstraintSetting->m_impulseClamp+void btConstraintSolver_reset(void *c); //method: reset void ( ::btConstraintSolver::* )(  ) +void btConstraintSolver_allSolved(void *c,void* p0,void* p1,void* p2); //method: allSolved void ( ::btConstraintSolver::* )( ::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +//not supported method: solveGroup ::btScalar ( ::btConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc *,::btDispatcher * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btDispatcher * - ok, ::btScalar - ok++void btConstraintSolver_prepareSolve(void *c,int p0,int p1); //method: prepareSolve void ( ::btConstraintSolver::* )( int,int ) +void btContactConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btContactConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btContactConstraint_setContactManifold(void *c,void* p0); //method: setContactManifold void ( ::btContactConstraint::* )( ::btPersistentManifold * ) +void btContactConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btContactConstraint::* )(  ) +void btContactConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btContactConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void* btContactConstraint_getContactManifold(void *c); //method: getContactManifold ::btPersistentManifold * ( ::btContactConstraint::* )(  ) +void* btContactConstraint_getContactManifold0(void *c); //method: getContactManifold ::btPersistentManifold * ( ::btContactConstraint::* )(  ) +void* btContactConstraint_getContactManifold1(void *c); //method: getContactManifold ::btPersistentManifold const * ( ::btContactConstraint::* )(  ) const+void btContactConstraint_m_contactManifold_set(void *c,void* a); //attribute: ::btPersistentManifold btContactConstraint->m_contactManifold+void* btContactConstraint_m_contactManifold_get(void *c); //attribute: ::btPersistentManifold btContactConstraint->m_contactManifold+void* btContactSolverInfo_new(); //constructor: btContactSolverInfo  ( ::btContactSolverInfo::* )(  ) +void btContactSolverInfo_free(void *c); +void* btContactSolverInfoData_new(); //constructor: btContactSolverInfoData  ( ::btContactSolverInfoData::* )(  ) +void btContactSolverInfoData_free(void *c); +void btContactSolverInfoData_m_tau_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_tau+float btContactSolverInfoData_m_tau_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_tau+void btContactSolverInfoData_m_damping_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_damping+float btContactSolverInfoData_m_damping_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_damping+void btContactSolverInfoData_m_friction_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_friction+float btContactSolverInfoData_m_friction_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_friction+void btContactSolverInfoData_m_timeStep_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_timeStep+float btContactSolverInfoData_m_timeStep_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_timeStep+void btContactSolverInfoData_m_restitution_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_restitution+float btContactSolverInfoData_m_restitution_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_restitution+void btContactSolverInfoData_m_numIterations_set(void *c,int a); //attribute: int btContactSolverInfoData->m_numIterations+int btContactSolverInfoData_m_numIterations_get(void *c); //attribute: int btContactSolverInfoData->m_numIterations+void btContactSolverInfoData_m_maxErrorReduction_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_maxErrorReduction+float btContactSolverInfoData_m_maxErrorReduction_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_maxErrorReduction+void btContactSolverInfoData_m_sor_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_sor+float btContactSolverInfoData_m_sor_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_sor+void btContactSolverInfoData_m_erp_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_erp+float btContactSolverInfoData_m_erp_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_erp+void btContactSolverInfoData_m_erp2_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_erp2+float btContactSolverInfoData_m_erp2_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_erp2+void btContactSolverInfoData_m_globalCfm_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_globalCfm+float btContactSolverInfoData_m_globalCfm_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_globalCfm+void btContactSolverInfoData_m_splitImpulse_set(void *c,int a); //attribute: int btContactSolverInfoData->m_splitImpulse+int btContactSolverInfoData_m_splitImpulse_get(void *c); //attribute: int btContactSolverInfoData->m_splitImpulse+void btContactSolverInfoData_m_splitImpulsePenetrationThreshold_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_splitImpulsePenetrationThreshold+float btContactSolverInfoData_m_splitImpulsePenetrationThreshold_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_splitImpulsePenetrationThreshold+void btContactSolverInfoData_m_linearSlop_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_linearSlop+float btContactSolverInfoData_m_linearSlop_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_linearSlop+void btContactSolverInfoData_m_warmstartingFactor_set(void *c,float a); //attribute: ::btScalar btContactSolverInfoData->m_warmstartingFactor+float btContactSolverInfoData_m_warmstartingFactor_get(void *c); //attribute: ::btScalar btContactSolverInfoData->m_warmstartingFactor+void btContactSolverInfoData_m_solverMode_set(void *c,int a); //attribute: int btContactSolverInfoData->m_solverMode+int btContactSolverInfoData_m_solverMode_get(void *c); //attribute: int btContactSolverInfoData->m_solverMode+void btContactSolverInfoData_m_restingContactRestitutionThreshold_set(void *c,int a); //attribute: int btContactSolverInfoData->m_restingContactRestitutionThreshold+int btContactSolverInfoData_m_restingContactRestitutionThreshold_get(void *c); //attribute: int btContactSolverInfoData->m_restingContactRestitutionThreshold+void btContactSolverInfoData_m_minimumSolverBatchSize_set(void *c,int a); //attribute: int btContactSolverInfoData->m_minimumSolverBatchSize+int btContactSolverInfoData_m_minimumSolverBatchSize_get(void *c); //attribute: int btContactSolverInfoData->m_minimumSolverBatchSize+void* btGeneric6DofConstraint_new0(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btGeneric6DofConstraint  ( ::btGeneric6DofConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) +void* btGeneric6DofConstraint_new1(void* p0,float* p1,int p2); //constructor: btGeneric6DofConstraint  ( ::btGeneric6DofConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) +void btGeneric6DofConstraint_free(void *c); +void btGeneric6DofConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btGeneric6DofConstraint::* )( int,::btScalar,int ) +void btGeneric6DofConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btGeneric6DofConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_getFrameOffsetA0(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_getFrameOffsetA1(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btGeneric6DofConstraint::* )(  ) +float btGeneric6DofConstraint_getRelativePivotPosition(void *c,int p0); //method: getRelativePivotPosition ::btScalar ( ::btGeneric6DofConstraint::* )( int ) const+void btGeneric6DofConstraint_calculateAngleInfo(void *c); //method: calculateAngleInfo void ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6); //method: getInfo2NonVirtual void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +int btGeneric6DofConstraint_setAngularLimits(void *c,void* p0,int p1,float* p2,float* p3,float* p4,float* p5,float* p6,float* p7); //method: setAngularLimits int ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,int,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +float btGeneric6DofConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btGeneric6DofConstraint::* )( int,int ) const+void btGeneric6DofConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btGeneric6DofConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btGeneric6DofConstraint_calcAnchorPos(void *c); //method: calcAnchorPos void ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_getAngularLowerLimit(void *c,float* p0); //method: getAngularLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) +int btGeneric6DofConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_getAxis(void *c,int p0,float* ret); //method: getAxis ::btVector3 ( ::btGeneric6DofConstraint::* )( int ) const+void btGeneric6DofConstraint_getLinearUpperLimit(void *c,float* p0); //method: getLinearUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) +void btGeneric6DofConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btGeneric6DofConstraint::* )( bool ) +int btGeneric6DofConstraint_isLimited(void *c,int p0); //method: isLimited bool ( ::btGeneric6DofConstraint::* )( int ) +void* btGeneric6DofConstraint_getRotationalLimitMotor(void *c,int p0); //method: getRotationalLimitMotor ::btRotationalLimitMotor * ( ::btGeneric6DofConstraint::* )( int ) +void btGeneric6DofConstraint_buildAngularJacobian(void *c,void* p0,float* p1); //method: buildAngularJacobian void ( ::btGeneric6DofConstraint::* )( ::btJacobianEntry &,::btVector3 const & ) +void btGeneric6DofConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_getFrameOffsetB0(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_getFrameOffsetB1(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_setLinearLowerLimit(void *c,float* p0); //method: setLinearLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) +void btGeneric6DofConstraint_getLinearLowerLimit(void *c,float* p0); //method: getLinearLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) +void btGeneric6DofConstraint_buildLinearJacobian(void *c,void* p0,float* p1,float* p2,float* p3); //method: buildLinearJacobian void ( ::btGeneric6DofConstraint::* )( ::btJacobianEntry &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +int btGeneric6DofConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_getCalculatedTransformB(void *c,float* ret); //method: getCalculatedTransformB ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+void btGeneric6DofConstraint_calculateTransforms(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) +void btGeneric6DofConstraint_calculateTransforms0(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) +void btGeneric6DofConstraint_calculateTransforms1(void *c); //method: calculateTransforms void ( ::btGeneric6DofConstraint::* )(  ) +int btGeneric6DofConstraint_get_limit_motor_info2(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float* p5,float* p6,void* p7,int p8,float* p9,int p10,int p11); //method: get_limit_motor_info2 int ( ::btGeneric6DofConstraint::* )( ::btRotationalLimitMotor *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btTypedConstraint::btConstraintInfo2 *,int,::btVector3 &,int,int ) +void btGeneric6DofConstraint_getCalculatedTransformA(void *c,float* ret); //method: getCalculatedTransformA ::btTransform const & ( ::btGeneric6DofConstraint::* )(  ) const+char const * btGeneric6DofConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btGeneric6DofConstraint::* )( void *,::btSerializer * ) const+void btGeneric6DofConstraint_setLimit(void *c,int p0,float p1,float p2); //method: setLimit void ( ::btGeneric6DofConstraint::* )( int,::btScalar,::btScalar ) +void* btGeneric6DofConstraint_getTranslationalLimitMotor(void *c); //method: getTranslationalLimitMotor ::btTranslationalLimitMotor * ( ::btGeneric6DofConstraint::* )(  ) +int btGeneric6DofConstraint_setLinearLimits(void *c,void* p0,int p1,float* p2,float* p3,float* p4,float* p5,float* p6,float* p7); //method: setLinearLimits int ( ::btGeneric6DofConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,int,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +float btGeneric6DofConstraint_getAngle(void *c,int p0); //method: getAngle ::btScalar ( ::btGeneric6DofConstraint::* )( int ) const+void btGeneric6DofConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btGeneric6DofConstraint::* )( ::btScalar ) +void btGeneric6DofConstraint_getAngularUpperLimit(void *c,float* p0); //method: getAngularUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 & ) +void btGeneric6DofConstraint_setAngularLowerLimit(void *c,float* p0); //method: setAngularLowerLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) +void btGeneric6DofConstraint_calculateLinearInfo(void *c); //method: calculateLinearInfo void ( ::btGeneric6DofConstraint::* )(  ) +void btGeneric6DofConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btGeneric6DofConstraint::* )( ::btTransform const &,::btTransform const & ) +void btGeneric6DofConstraint_setLinearUpperLimit(void *c,float* p0); //method: setLinearUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) +void btGeneric6DofConstraint_setAngularUpperLimit(void *c,float* p0); //method: setAngularUpperLimit void ( ::btGeneric6DofConstraint::* )( ::btVector3 const & ) +void btGeneric6DofConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btGeneric6DofConstraint::* )( ::btVector3 const &,::btVector3 const & ) +int btGeneric6DofConstraint_testAngularLimitMotor(void *c,int p0); //method: testAngularLimitMotor bool ( ::btGeneric6DofConstraint::* )( int ) +void btGeneric6DofConstraint_m_frameInA_set(void *c,float* a); //attribute: ::btTransform btGeneric6DofConstraint->m_frameInA+void btGeneric6DofConstraint_m_frameInA_get(void *c,float* a);+void btGeneric6DofConstraint_m_frameInB_set(void *c,float* a); //attribute: ::btTransform btGeneric6DofConstraint->m_frameInB+void btGeneric6DofConstraint_m_frameInB_get(void *c,float* a);+// attribute not supported: //attribute: ::btJacobianEntry[3] btGeneric6DofConstraint->m_jacLinear+// attribute not supported: //attribute: ::btJacobianEntry[3] btGeneric6DofConstraint->m_jacAng+void btGeneric6DofConstraint_m_linearLimits_set(void *c,void* a); //attribute: ::btTranslationalLimitMotor btGeneric6DofConstraint->m_linearLimits+void* btGeneric6DofConstraint_m_linearLimits_get(void *c); //attribute: ::btTranslationalLimitMotor btGeneric6DofConstraint->m_linearLimits+// attribute not supported: //attribute: ::btRotationalLimitMotor[3] btGeneric6DofConstraint->m_angularLimits+void btGeneric6DofConstraint_m_timeStep_set(void *c,float a); //attribute: ::btScalar btGeneric6DofConstraint->m_timeStep+float btGeneric6DofConstraint_m_timeStep_get(void *c); //attribute: ::btScalar btGeneric6DofConstraint->m_timeStep+void btGeneric6DofConstraint_m_calculatedTransformA_set(void *c,float* a); //attribute: ::btTransform btGeneric6DofConstraint->m_calculatedTransformA+void btGeneric6DofConstraint_m_calculatedTransformA_get(void *c,float* a);+void btGeneric6DofConstraint_m_calculatedTransformB_set(void *c,float* a); //attribute: ::btTransform btGeneric6DofConstraint->m_calculatedTransformB+void btGeneric6DofConstraint_m_calculatedTransformB_get(void *c,float* a);+void btGeneric6DofConstraint_m_calculatedAxisAngleDiff_set(void *c,float* a); //attribute: ::btVector3 btGeneric6DofConstraint->m_calculatedAxisAngleDiff+void btGeneric6DofConstraint_m_calculatedAxisAngleDiff_get(void *c,float* a);+// attribute not supported: //attribute: ::btVector3[3] btGeneric6DofConstraint->m_calculatedAxis+void btGeneric6DofConstraint_m_calculatedLinearDiff_set(void *c,float* a); //attribute: ::btVector3 btGeneric6DofConstraint->m_calculatedLinearDiff+void btGeneric6DofConstraint_m_calculatedLinearDiff_get(void *c,float* a);+void btGeneric6DofConstraint_m_factA_set(void *c,float a); //attribute: ::btScalar btGeneric6DofConstraint->m_factA+float btGeneric6DofConstraint_m_factA_get(void *c); //attribute: ::btScalar btGeneric6DofConstraint->m_factA+void btGeneric6DofConstraint_m_factB_set(void *c,float a); //attribute: ::btScalar btGeneric6DofConstraint->m_factB+float btGeneric6DofConstraint_m_factB_get(void *c); //attribute: ::btScalar btGeneric6DofConstraint->m_factB+void btGeneric6DofConstraint_m_hasStaticBody_set(void *c,int a); //attribute: bool btGeneric6DofConstraint->m_hasStaticBody+int btGeneric6DofConstraint_m_hasStaticBody_get(void *c); //attribute: bool btGeneric6DofConstraint->m_hasStaticBody+void btGeneric6DofConstraint_m_AnchorPos_set(void *c,float* a); //attribute: ::btVector3 btGeneric6DofConstraint->m_AnchorPos+void btGeneric6DofConstraint_m_AnchorPos_get(void *c,float* a);+void btGeneric6DofConstraint_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: bool btGeneric6DofConstraint->m_useLinearReferenceFrameA+int btGeneric6DofConstraint_m_useLinearReferenceFrameA_get(void *c); //attribute: bool btGeneric6DofConstraint->m_useLinearReferenceFrameA+void btGeneric6DofConstraint_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: bool btGeneric6DofConstraint->m_useOffsetForConstraintFrame+int btGeneric6DofConstraint_m_useOffsetForConstraintFrame_get(void *c); //attribute: bool btGeneric6DofConstraint->m_useOffsetForConstraintFrame+void btGeneric6DofConstraint_m_flags_set(void *c,int a); //attribute: int btGeneric6DofConstraint->m_flags+int btGeneric6DofConstraint_m_flags_get(void *c); //attribute: int btGeneric6DofConstraint->m_flags+void btGeneric6DofConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btGeneric6DofConstraint->m_useSolveConstraintObsolete+int btGeneric6DofConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btGeneric6DofConstraint->m_useSolveConstraintObsolete+void* btGeneric6DofConstraintData_new(); //constructor: btGeneric6DofConstraintData  ( ::btGeneric6DofConstraintData::* )(  ) +void btGeneric6DofConstraintData_free(void *c); +void btGeneric6DofConstraintData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btGeneric6DofConstraintData->m_typeConstraintData+void* btGeneric6DofConstraintData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btGeneric6DofConstraintData->m_typeConstraintData+void btGeneric6DofConstraintData_m_rbAFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbAFrame+void* btGeneric6DofConstraintData_m_rbAFrame_get(void *c); //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbAFrame+void btGeneric6DofConstraintData_m_rbBFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbBFrame+void* btGeneric6DofConstraintData_m_rbBFrame_get(void *c); //attribute: ::btTransformFloatData btGeneric6DofConstraintData->m_rbBFrame+void btGeneric6DofConstraintData_m_linearUpperLimit_set(void *c,void* a); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearUpperLimit+void* btGeneric6DofConstraintData_m_linearUpperLimit_get(void *c); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearUpperLimit+void btGeneric6DofConstraintData_m_linearLowerLimit_set(void *c,void* a); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearLowerLimit+void* btGeneric6DofConstraintData_m_linearLowerLimit_get(void *c); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_linearLowerLimit+void btGeneric6DofConstraintData_m_angularUpperLimit_set(void *c,void* a); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularUpperLimit+void* btGeneric6DofConstraintData_m_angularUpperLimit_get(void *c); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularUpperLimit+void btGeneric6DofConstraintData_m_angularLowerLimit_set(void *c,void* a); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularLowerLimit+void* btGeneric6DofConstraintData_m_angularLowerLimit_get(void *c); //attribute: ::btVector3FloatData btGeneric6DofConstraintData->m_angularLowerLimit+void btGeneric6DofConstraintData_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: int btGeneric6DofConstraintData->m_useLinearReferenceFrameA+int btGeneric6DofConstraintData_m_useLinearReferenceFrameA_get(void *c); //attribute: int btGeneric6DofConstraintData->m_useLinearReferenceFrameA+void btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: int btGeneric6DofConstraintData->m_useOffsetForConstraintFrame+int btGeneric6DofConstraintData_m_useOffsetForConstraintFrame_get(void *c); //attribute: int btGeneric6DofConstraintData->m_useOffsetForConstraintFrame+void* btGeneric6DofSpringConstraint_new(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btGeneric6DofSpringConstraint  ( ::btGeneric6DofSpringConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) +void btGeneric6DofSpringConstraint_free(void *c); +int btGeneric6DofSpringConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGeneric6DofSpringConstraint::* )(  ) const+void btGeneric6DofSpringConstraint_setEquilibriumPoint(void *c); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )(  ) +void btGeneric6DofSpringConstraint_setEquilibriumPoint0(void *c); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )(  ) +void btGeneric6DofSpringConstraint_setEquilibriumPoint1(void *c,int p0); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )( int ) +void btGeneric6DofSpringConstraint_setEquilibriumPoint2(void *c,int p0,float p1); //method: setEquilibriumPoint void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) +char const * btGeneric6DofSpringConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btGeneric6DofSpringConstraint::* )( void *,::btSerializer * ) const+void btGeneric6DofSpringConstraint_enableSpring(void *c,int p0,int p1); //method: enableSpring void ( ::btGeneric6DofSpringConstraint::* )( int,bool ) +void btGeneric6DofSpringConstraint_setStiffness(void *c,int p0,float p1); //method: setStiffness void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) +void btGeneric6DofSpringConstraint_setDamping(void *c,int p0,float p1); //method: setDamping void ( ::btGeneric6DofSpringConstraint::* )( int,::btScalar ) +void btGeneric6DofSpringConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btGeneric6DofSpringConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btGeneric6DofSpringConstraint_internalUpdateSprings(void *c,void* p0); //method: internalUpdateSprings void ( ::btGeneric6DofSpringConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btGeneric6DofSpringConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btGeneric6DofSpringConstraint::* )( ::btVector3 const &,::btVector3 const & ) +// attribute not supported: //attribute: bool[6] btGeneric6DofSpringConstraint->m_springEnabled+// attribute not supported: //attribute: ::btScalar[6] btGeneric6DofSpringConstraint->m_equilibriumPoint+// attribute not supported: //attribute: ::btScalar[6] btGeneric6DofSpringConstraint->m_springStiffness+// attribute not supported: //attribute: ::btScalar[6] btGeneric6DofSpringConstraint->m_springDamping+void* btGeneric6DofSpringConstraintData_new(); //constructor: btGeneric6DofSpringConstraintData  ( ::btGeneric6DofSpringConstraintData::* )(  ) +void btGeneric6DofSpringConstraintData_free(void *c); +void btGeneric6DofSpringConstraintData_m_6dofData_set(void *c,void* a); //attribute: ::btGeneric6DofConstraintData btGeneric6DofSpringConstraintData->m_6dofData+void* btGeneric6DofSpringConstraintData_m_6dofData_get(void *c); //attribute: ::btGeneric6DofConstraintData btGeneric6DofSpringConstraintData->m_6dofData+// attribute not supported: //attribute: int[6] btGeneric6DofSpringConstraintData->m_springEnabled+// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_equilibriumPoint+// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_springStiffness+// attribute not supported: //attribute: float[6] btGeneric6DofSpringConstraintData->m_springDamping+void* btHinge2Constraint_new(void* p0,void* p1,float* p2,float* p3,float* p4); //constructor: btHinge2Constraint  ( ::btHinge2Constraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 &,::btVector3 &,::btVector3 & ) +void btHinge2Constraint_free(void *c); +void btHinge2Constraint_setLowerLimit(void *c,float p0); //method: setLowerLimit void ( ::btHinge2Constraint::* )( ::btScalar ) +void btHinge2Constraint_getAnchor2(void *c,float* ret); //method: getAnchor2 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) +void btHinge2Constraint_getAxis1(void *c,float* ret); //method: getAxis1 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) +void btHinge2Constraint_getAnchor(void *c,float* ret); //method: getAnchor ::btVector3 const & ( ::btHinge2Constraint::* )(  ) +void btHinge2Constraint_getAxis2(void *c,float* ret); //method: getAxis2 ::btVector3 const & ( ::btHinge2Constraint::* )(  ) +void btHinge2Constraint_setUpperLimit(void *c,float p0); //method: setUpperLimit void ( ::btHinge2Constraint::* )( ::btScalar ) +float btHinge2Constraint_getAngle2(void *c); //method: getAngle2 ::btScalar ( ::btHinge2Constraint::* )(  ) +float btHinge2Constraint_getAngle1(void *c); //method: getAngle1 ::btScalar ( ::btHinge2Constraint::* )(  ) +void btHinge2Constraint_m_anchor_set(void *c,float* a); //attribute: ::btVector3 btHinge2Constraint->m_anchor+void btHinge2Constraint_m_anchor_get(void *c,float* a);+void btHinge2Constraint_m_axis1_set(void *c,float* a); //attribute: ::btVector3 btHinge2Constraint->m_axis1+void btHinge2Constraint_m_axis1_get(void *c,float* a);+void btHinge2Constraint_m_axis2_set(void *c,float* a); //attribute: ::btVector3 btHinge2Constraint->m_axis2+void btHinge2Constraint_m_axis2_get(void *c,float* a);+void* btHingeConstraint_new0(void* p0,void* p1,float* p2,float* p3,float* p4,float* p5,int p6); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,bool ) +void* btHingeConstraint_new1(void* p0,float* p1,float* p2,int p3); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btVector3 const &,::btVector3 const &,bool ) +void* btHingeConstraint_new2(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) +void* btHingeConstraint_new3(void* p0,float* p1,int p2); //constructor: btHingeConstraint  ( ::btHingeConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) +void btHingeConstraint_free(void *c); +void* btHingeConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const+void* btHingeConstraint_getRigidBodyB0(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const+void* btHingeConstraint_getRigidBodyB1(void *c); //method: getRigidBodyB ::btRigidBody & ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2NonVirtual void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) +void* btHingeConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const+void* btHingeConstraint_getRigidBodyA0(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btHingeConstraint::* )(  ) const+void* btHingeConstraint_getRigidBodyA1(void *c); //method: getRigidBodyA ::btRigidBody & ( ::btHingeConstraint::* )(  ) +float btHingeConstraint_getMotorTargetVelosity(void *c); //method: getMotorTargetVelosity ::btScalar ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_setMaxMotorImpulse(void *c,float p0); //method: setMaxMotorImpulse void ( ::btHingeConstraint::* )( ::btScalar ) +float btHingeConstraint_getHingeAngle(void *c); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )(  ) +float btHingeConstraint_getHingeAngle0(void *c); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )(  ) +float btHingeConstraint_getHingeAngle1(void *c,float* p0,float* p1); //method: getHingeAngle ::btScalar ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) +void btHingeConstraint_testLimit(void *c,float* p0,float* p1); //method: testLimit void ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) +void btHingeConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btHingeConstraint_getInfo2Internal(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2Internal void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) +void btHingeConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +float btHingeConstraint_getUpperLimit(void *c); //method: getUpperLimit ::btScalar ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_enableAngularMotor(void *c,int p0,float p1,float p2); //method: enableAngularMotor void ( ::btHingeConstraint::* )( bool,::btScalar,::btScalar ) +float btHingeConstraint_getLimitSign(void *c); //method: getLimitSign ::btScalar ( ::btHingeConstraint::* )(  ) +int btHingeConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btHingeConstraint::* )(  ) const+float btHingeConstraint_getMaxMotorImpulse(void *c); //method: getMaxMotorImpulse ::btScalar ( ::btHingeConstraint::* )(  ) +float btHingeConstraint_getLowerLimit(void *c); //method: getLowerLimit ::btScalar ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btHingeConstraint::* )( int,::btScalar,int ) +void btHingeConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btHingeConstraint::* )( bool ) +int btHingeConstraint_getEnableAngularMotor(void *c); //method: getEnableAngularMotor bool ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_enableMotor(void *c,int p0); //method: enableMotor void ( ::btHingeConstraint::* )( bool ) +void btHingeConstraint_getBFrame(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_getBFrame0(void *c,float* ret); //method: getBFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_getBFrame1(void *c,float* ret); //method: getBFrame ::btTransform & ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btHingeConstraint_getInfo2InternalUsingFrameOffset(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: getInfo2InternalUsingFrameOffset void ( ::btHingeConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const & ) +char const * btHingeConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btHingeConstraint::* )( void *,::btSerializer * ) const+int btHingeConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_setAngularOnly(void *c,int p0); //method: setAngularOnly void ( ::btHingeConstraint::* )( bool ) +float btHingeConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btHingeConstraint::* )( int,int ) const+void btHingeConstraint_setLimit(void *c,float p0,float p1,float p2,float p3,float p4); //method: setLimit void ( ::btHingeConstraint::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) +int btHingeConstraint_getSolveLimit(void *c); //method: getSolveLimit int ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btHingeConstraint::* )( ::btScalar ) +void btHingeConstraint_setMotorTarget(void *c,float* p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btQuaternion const &,::btScalar ) +void btHingeConstraint_setMotorTarget0(void *c,float* p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btQuaternion const &,::btScalar ) +void btHingeConstraint_setMotorTarget1(void *c,float p0,float p1); //method: setMotorTarget void ( ::btHingeConstraint::* )( ::btScalar,::btScalar ) +int btHingeConstraint_getAngularOnly(void *c); //method: getAngularOnly bool ( ::btHingeConstraint::* )(  ) +void btHingeConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btHingeConstraint::* )( ::btTransform const &,::btTransform const & ) +void btHingeConstraint_setAxis(void *c,float* p0); //method: setAxis void ( ::btHingeConstraint::* )( ::btVector3 & ) +void btHingeConstraint_getAFrame(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_getAFrame0(void *c,float* ret); //method: getAFrame ::btTransform const & ( ::btHingeConstraint::* )(  ) const+void btHingeConstraint_getAFrame1(void *c,float* ret); //method: getAFrame ::btTransform & ( ::btHingeConstraint::* )(  ) +// attribute not supported: //attribute: ::btJacobianEntry[3] btHingeConstraint->m_jac+// attribute not supported: //attribute: ::btJacobianEntry[3] btHingeConstraint->m_jacAng+void btHingeConstraint_m_rbAFrame_set(void *c,float* a); //attribute: ::btTransform btHingeConstraint->m_rbAFrame+void btHingeConstraint_m_rbAFrame_get(void *c,float* a);+void btHingeConstraint_m_rbBFrame_set(void *c,float* a); //attribute: ::btTransform btHingeConstraint->m_rbBFrame+void btHingeConstraint_m_rbBFrame_get(void *c,float* a);+void btHingeConstraint_m_motorTargetVelocity_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_motorTargetVelocity+float btHingeConstraint_m_motorTargetVelocity_get(void *c); //attribute: ::btScalar btHingeConstraint->m_motorTargetVelocity+void btHingeConstraint_m_maxMotorImpulse_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_maxMotorImpulse+float btHingeConstraint_m_maxMotorImpulse_get(void *c); //attribute: ::btScalar btHingeConstraint->m_maxMotorImpulse+void btHingeConstraint_m_limit_set(void *c,void* a); //attribute: ::btAngularLimit btHingeConstraint->m_limit+void* btHingeConstraint_m_limit_get(void *c); //attribute: ::btAngularLimit btHingeConstraint->m_limit+void btHingeConstraint_m_kHinge_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_kHinge+float btHingeConstraint_m_kHinge_get(void *c); //attribute: ::btScalar btHingeConstraint->m_kHinge+void btHingeConstraint_m_accLimitImpulse_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_accLimitImpulse+float btHingeConstraint_m_accLimitImpulse_get(void *c); //attribute: ::btScalar btHingeConstraint->m_accLimitImpulse+void btHingeConstraint_m_hingeAngle_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_hingeAngle+float btHingeConstraint_m_hingeAngle_get(void *c); //attribute: ::btScalar btHingeConstraint->m_hingeAngle+void btHingeConstraint_m_referenceSign_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_referenceSign+float btHingeConstraint_m_referenceSign_get(void *c); //attribute: ::btScalar btHingeConstraint->m_referenceSign+void btHingeConstraint_m_angularOnly_set(void *c,int a); //attribute: bool btHingeConstraint->m_angularOnly+int btHingeConstraint_m_angularOnly_get(void *c); //attribute: bool btHingeConstraint->m_angularOnly+void btHingeConstraint_m_enableAngularMotor_set(void *c,int a); //attribute: bool btHingeConstraint->m_enableAngularMotor+int btHingeConstraint_m_enableAngularMotor_get(void *c); //attribute: bool btHingeConstraint->m_enableAngularMotor+void btHingeConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btHingeConstraint->m_useSolveConstraintObsolete+int btHingeConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btHingeConstraint->m_useSolveConstraintObsolete+void btHingeConstraint_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: bool btHingeConstraint->m_useOffsetForConstraintFrame+int btHingeConstraint_m_useOffsetForConstraintFrame_get(void *c); //attribute: bool btHingeConstraint->m_useOffsetForConstraintFrame+void btHingeConstraint_m_useReferenceFrameA_set(void *c,int a); //attribute: bool btHingeConstraint->m_useReferenceFrameA+int btHingeConstraint_m_useReferenceFrameA_get(void *c); //attribute: bool btHingeConstraint->m_useReferenceFrameA+void btHingeConstraint_m_accMotorImpulse_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_accMotorImpulse+float btHingeConstraint_m_accMotorImpulse_get(void *c); //attribute: ::btScalar btHingeConstraint->m_accMotorImpulse+void btHingeConstraint_m_flags_set(void *c,int a); //attribute: int btHingeConstraint->m_flags+int btHingeConstraint_m_flags_get(void *c); //attribute: int btHingeConstraint->m_flags+void btHingeConstraint_m_normalCFM_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_normalCFM+float btHingeConstraint_m_normalCFM_get(void *c); //attribute: ::btScalar btHingeConstraint->m_normalCFM+void btHingeConstraint_m_stopCFM_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_stopCFM+float btHingeConstraint_m_stopCFM_get(void *c); //attribute: ::btScalar btHingeConstraint->m_stopCFM+void btHingeConstraint_m_stopERP_set(void *c,float a); //attribute: ::btScalar btHingeConstraint->m_stopERP+float btHingeConstraint_m_stopERP_get(void *c); //attribute: ::btScalar btHingeConstraint->m_stopERP+void* btHingeConstraintDoubleData_new(); //constructor: btHingeConstraintDoubleData  ( ::btHingeConstraintDoubleData::* )(  ) +void btHingeConstraintDoubleData_free(void *c); +void btHingeConstraintDoubleData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btHingeConstraintDoubleData->m_typeConstraintData+void* btHingeConstraintDoubleData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btHingeConstraintDoubleData->m_typeConstraintData+void btHingeConstraintDoubleData_m_rbAFrame_set(void *c,void* a); //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbAFrame+void* btHingeConstraintDoubleData_m_rbAFrame_get(void *c); //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbAFrame+void btHingeConstraintDoubleData_m_rbBFrame_set(void *c,void* a); //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbBFrame+void* btHingeConstraintDoubleData_m_rbBFrame_get(void *c); //attribute: ::btTransformDoubleData btHingeConstraintDoubleData->m_rbBFrame+void btHingeConstraintDoubleData_m_useReferenceFrameA_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_useReferenceFrameA+int btHingeConstraintDoubleData_m_useReferenceFrameA_get(void *c); //attribute: int btHingeConstraintDoubleData->m_useReferenceFrameA+void btHingeConstraintDoubleData_m_angularOnly_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_angularOnly+int btHingeConstraintDoubleData_m_angularOnly_get(void *c); //attribute: int btHingeConstraintDoubleData->m_angularOnly+void btHingeConstraintDoubleData_m_enableAngularMotor_set(void *c,int a); //attribute: int btHingeConstraintDoubleData->m_enableAngularMotor+int btHingeConstraintDoubleData_m_enableAngularMotor_get(void *c); //attribute: int btHingeConstraintDoubleData->m_enableAngularMotor+void btHingeConstraintDoubleData_m_motorTargetVelocity_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_motorTargetVelocity+float btHingeConstraintDoubleData_m_motorTargetVelocity_get(void *c); //attribute: float btHingeConstraintDoubleData->m_motorTargetVelocity+void btHingeConstraintDoubleData_m_maxMotorImpulse_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_maxMotorImpulse+float btHingeConstraintDoubleData_m_maxMotorImpulse_get(void *c); //attribute: float btHingeConstraintDoubleData->m_maxMotorImpulse+void btHingeConstraintDoubleData_m_lowerLimit_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_lowerLimit+float btHingeConstraintDoubleData_m_lowerLimit_get(void *c); //attribute: float btHingeConstraintDoubleData->m_lowerLimit+void btHingeConstraintDoubleData_m_upperLimit_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_upperLimit+float btHingeConstraintDoubleData_m_upperLimit_get(void *c); //attribute: float btHingeConstraintDoubleData->m_upperLimit+void btHingeConstraintDoubleData_m_limitSoftness_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_limitSoftness+float btHingeConstraintDoubleData_m_limitSoftness_get(void *c); //attribute: float btHingeConstraintDoubleData->m_limitSoftness+void btHingeConstraintDoubleData_m_biasFactor_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_biasFactor+float btHingeConstraintDoubleData_m_biasFactor_get(void *c); //attribute: float btHingeConstraintDoubleData->m_biasFactor+void btHingeConstraintDoubleData_m_relaxationFactor_set(void *c,float a); //attribute: float btHingeConstraintDoubleData->m_relaxationFactor+float btHingeConstraintDoubleData_m_relaxationFactor_get(void *c); //attribute: float btHingeConstraintDoubleData->m_relaxationFactor+void* btHingeConstraintFloatData_new(); //constructor: btHingeConstraintFloatData  ( ::btHingeConstraintFloatData::* )(  ) +void btHingeConstraintFloatData_free(void *c); +void btHingeConstraintFloatData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btHingeConstraintFloatData->m_typeConstraintData+void* btHingeConstraintFloatData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btHingeConstraintFloatData->m_typeConstraintData+void btHingeConstraintFloatData_m_rbAFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbAFrame+void* btHingeConstraintFloatData_m_rbAFrame_get(void *c); //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbAFrame+void btHingeConstraintFloatData_m_rbBFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbBFrame+void* btHingeConstraintFloatData_m_rbBFrame_get(void *c); //attribute: ::btTransformFloatData btHingeConstraintFloatData->m_rbBFrame+void btHingeConstraintFloatData_m_useReferenceFrameA_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_useReferenceFrameA+int btHingeConstraintFloatData_m_useReferenceFrameA_get(void *c); //attribute: int btHingeConstraintFloatData->m_useReferenceFrameA+void btHingeConstraintFloatData_m_angularOnly_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_angularOnly+int btHingeConstraintFloatData_m_angularOnly_get(void *c); //attribute: int btHingeConstraintFloatData->m_angularOnly+void btHingeConstraintFloatData_m_enableAngularMotor_set(void *c,int a); //attribute: int btHingeConstraintFloatData->m_enableAngularMotor+int btHingeConstraintFloatData_m_enableAngularMotor_get(void *c); //attribute: int btHingeConstraintFloatData->m_enableAngularMotor+void btHingeConstraintFloatData_m_motorTargetVelocity_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_motorTargetVelocity+float btHingeConstraintFloatData_m_motorTargetVelocity_get(void *c); //attribute: float btHingeConstraintFloatData->m_motorTargetVelocity+void btHingeConstraintFloatData_m_maxMotorImpulse_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_maxMotorImpulse+float btHingeConstraintFloatData_m_maxMotorImpulse_get(void *c); //attribute: float btHingeConstraintFloatData->m_maxMotorImpulse+void btHingeConstraintFloatData_m_lowerLimit_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_lowerLimit+float btHingeConstraintFloatData_m_lowerLimit_get(void *c); //attribute: float btHingeConstraintFloatData->m_lowerLimit+void btHingeConstraintFloatData_m_upperLimit_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_upperLimit+float btHingeConstraintFloatData_m_upperLimit_get(void *c); //attribute: float btHingeConstraintFloatData->m_upperLimit+void btHingeConstraintFloatData_m_limitSoftness_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_limitSoftness+float btHingeConstraintFloatData_m_limitSoftness_get(void *c); //attribute: float btHingeConstraintFloatData->m_limitSoftness+void btHingeConstraintFloatData_m_biasFactor_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_biasFactor+float btHingeConstraintFloatData_m_biasFactor_get(void *c); //attribute: float btHingeConstraintFloatData->m_biasFactor+void btHingeConstraintFloatData_m_relaxationFactor_set(void *c,float a); //attribute: float btHingeConstraintFloatData->m_relaxationFactor+float btHingeConstraintFloatData_m_relaxationFactor_get(void *c); //attribute: float btHingeConstraintFloatData->m_relaxationFactor+void* btJacobianEntry_new0(); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )(  ) +//not supported constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btMatrix3x3 const &,::btMatrix3x3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar const,::btVector3 const &,::btScalar const ) +// error: ::btMatrix3x3 const & - ok, ::btMatrix3x3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported, ::btVector3 const & - ok,  - unsupported++void* btJacobianEntry_new2(float* p0,float* p1,float* p2,float* p3,float* p4); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btVector3 const &,::btMatrix3x3 const &,::btMatrix3x3 const &,::btVector3 const &,::btVector3 const & ) +void* btJacobianEntry_new3(float* p0,float* p1,float* p2,float* p3); //constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +//not supported constructor: btJacobianEntry  ( ::btJacobianEntry::* )( ::btMatrix3x3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar const ) +// error: ::btMatrix3x3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported++void btJacobianEntry_free(void *c); +float btJacobianEntry_getDiagonal(void *c); //method: getDiagonal ::btScalar ( ::btJacobianEntry::* )(  ) const+float btJacobianEntry_getRelativeVelocity(void *c,float* p0,float* p1,float* p2,float* p3); //method: getRelativeVelocity ::btScalar ( ::btJacobianEntry::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const ) const+// error: ::btJacobianEntry const & - ok,  - unsupported, ::btScalar - ok++//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const ) const+// error: ::btJacobianEntry const & - ok,  - unsupported, ::btScalar - ok++//not supported method: getNonDiagonal ::btScalar ( ::btJacobianEntry::* )( ::btJacobianEntry const &,::btScalar const,::btScalar const ) const+// error: ::btJacobianEntry const & - ok,  - unsupported,  - unsupported, ::btScalar - ok++void btJacobianEntry_m_0MinvJt_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_0MinvJt+void btJacobianEntry_m_0MinvJt_get(void *c,float* a);+void btJacobianEntry_m_1MinvJt_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_1MinvJt+void btJacobianEntry_m_1MinvJt_get(void *c,float* a);+void btJacobianEntry_m_Adiag_set(void *c,float a); //attribute: ::btScalar btJacobianEntry->m_Adiag+float btJacobianEntry_m_Adiag_get(void *c); //attribute: ::btScalar btJacobianEntry->m_Adiag+void btJacobianEntry_m_aJ_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_aJ+void btJacobianEntry_m_aJ_get(void *c,float* a);+void btJacobianEntry_m_bJ_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_bJ+void btJacobianEntry_m_bJ_get(void *c,float* a);+void btJacobianEntry_m_linearJointAxis_set(void *c,float* a); //attribute: ::btVector3 btJacobianEntry->m_linearJointAxis+void btJacobianEntry_m_linearJointAxis_get(void *c,float* a);+void* btPoint2PointConstraint_new0(void* p0,void* p1,float* p2,float* p3); //constructor: btPoint2PointConstraint  ( ::btPoint2PointConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 const &,::btVector3 const & ) +void* btPoint2PointConstraint_new1(void* p0,float* p1); //constructor: btPoint2PointConstraint  ( ::btPoint2PointConstraint::* )( ::btRigidBody &,::btVector3 const & ) +void btPoint2PointConstraint_free(void *c); +void btPoint2PointConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btPoint2PointConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2); //method: getInfo2NonVirtual void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const & ) +void btPoint2PointConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btPoint2PointConstraint::* )( int,::btScalar,int ) +void btPoint2PointConstraint_getPivotInA(void *c,float* ret); //method: getPivotInA ::btVector3 const & ( ::btPoint2PointConstraint::* )(  ) const+void btPoint2PointConstraint_getPivotInB(void *c,float* ret); //method: getPivotInB ::btVector3 const & ( ::btPoint2PointConstraint::* )(  ) const+void btPoint2PointConstraint_updateRHS(void *c,float p0); //method: updateRHS void ( ::btPoint2PointConstraint::* )( ::btScalar ) +char const * btPoint2PointConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btPoint2PointConstraint::* )( void *,::btSerializer * ) const+void btPoint2PointConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btPoint2PointConstraint::* )(  ) +int btPoint2PointConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btPoint2PointConstraint::* )(  ) const+float btPoint2PointConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btPoint2PointConstraint::* )( int,int ) const+void btPoint2PointConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btPoint2PointConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btPoint2PointConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btPoint2PointConstraint_setPivotA(void *c,float* p0); //method: setPivotA void ( ::btPoint2PointConstraint::* )( ::btVector3 const & ) +void btPoint2PointConstraint_setPivotB(void *c,float* p0); //method: setPivotB void ( ::btPoint2PointConstraint::* )( ::btVector3 const & ) +// attribute not supported: //attribute: ::btJacobianEntry[3] btPoint2PointConstraint->m_jac+void btPoint2PointConstraint_m_pivotInA_set(void *c,float* a); //attribute: ::btVector3 btPoint2PointConstraint->m_pivotInA+void btPoint2PointConstraint_m_pivotInA_get(void *c,float* a);+void btPoint2PointConstraint_m_pivotInB_set(void *c,float* a); //attribute: ::btVector3 btPoint2PointConstraint->m_pivotInB+void btPoint2PointConstraint_m_pivotInB_get(void *c,float* a);+void btPoint2PointConstraint_m_flags_set(void *c,int a); //attribute: int btPoint2PointConstraint->m_flags+int btPoint2PointConstraint_m_flags_get(void *c); //attribute: int btPoint2PointConstraint->m_flags+void btPoint2PointConstraint_m_erp_set(void *c,float a); //attribute: ::btScalar btPoint2PointConstraint->m_erp+float btPoint2PointConstraint_m_erp_get(void *c); //attribute: ::btScalar btPoint2PointConstraint->m_erp+void btPoint2PointConstraint_m_cfm_set(void *c,float a); //attribute: ::btScalar btPoint2PointConstraint->m_cfm+float btPoint2PointConstraint_m_cfm_get(void *c); //attribute: ::btScalar btPoint2PointConstraint->m_cfm+void btPoint2PointConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btPoint2PointConstraint->m_useSolveConstraintObsolete+int btPoint2PointConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btPoint2PointConstraint->m_useSolveConstraintObsolete+void btPoint2PointConstraint_m_setting_set(void *c,void* a); //attribute: ::btConstraintSetting btPoint2PointConstraint->m_setting+void* btPoint2PointConstraint_m_setting_get(void *c); //attribute: ::btConstraintSetting btPoint2PointConstraint->m_setting+void* btPoint2PointConstraintDoubleData_new(); //constructor: btPoint2PointConstraintDoubleData  ( ::btPoint2PointConstraintDoubleData::* )(  ) +void btPoint2PointConstraintDoubleData_free(void *c); +void btPoint2PointConstraintDoubleData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btPoint2PointConstraintDoubleData->m_typeConstraintData+void* btPoint2PointConstraintDoubleData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btPoint2PointConstraintDoubleData->m_typeConstraintData+void btPoint2PointConstraintDoubleData_m_pivotInA_set(void *c,void* a); //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInA+void* btPoint2PointConstraintDoubleData_m_pivotInA_get(void *c); //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInA+void btPoint2PointConstraintDoubleData_m_pivotInB_set(void *c,void* a); //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInB+void* btPoint2PointConstraintDoubleData_m_pivotInB_get(void *c); //attribute: ::btVector3DoubleData btPoint2PointConstraintDoubleData->m_pivotInB+void* btPoint2PointConstraintFloatData_new(); //constructor: btPoint2PointConstraintFloatData  ( ::btPoint2PointConstraintFloatData::* )(  ) +void btPoint2PointConstraintFloatData_free(void *c); +void btPoint2PointConstraintFloatData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btPoint2PointConstraintFloatData->m_typeConstraintData+void* btPoint2PointConstraintFloatData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btPoint2PointConstraintFloatData->m_typeConstraintData+void btPoint2PointConstraintFloatData_m_pivotInA_set(void *c,void* a); //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInA+void* btPoint2PointConstraintFloatData_m_pivotInA_get(void *c); //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInA+void btPoint2PointConstraintFloatData_m_pivotInB_set(void *c,void* a); //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInB+void* btPoint2PointConstraintFloatData_m_pivotInB_get(void *c); //attribute: ::btVector3FloatData btPoint2PointConstraintFloatData->m_pivotInB+void* btRotationalLimitMotor_new(); //constructor: btRotationalLimitMotor  ( ::btRotationalLimitMotor::* )(  ) +void btRotationalLimitMotor_free(void *c); +int btRotationalLimitMotor_testLimitValue(void *c,float p0); //method: testLimitValue int ( ::btRotationalLimitMotor::* )( ::btScalar ) +float btRotationalLimitMotor_solveAngularLimits(void *c,float p0,float* p1,float p2,void* p3,void* p4); //method: solveAngularLimits ::btScalar ( ::btRotationalLimitMotor::* )( ::btScalar,::btVector3 &,::btScalar,::btRigidBody *,::btRigidBody * ) +int btRotationalLimitMotor_needApplyTorques(void *c); //method: needApplyTorques bool ( ::btRotationalLimitMotor::* )(  ) +int btRotationalLimitMotor_isLimited(void *c); //method: isLimited bool ( ::btRotationalLimitMotor::* )(  ) +void btRotationalLimitMotor_m_accumulatedImpulse_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_accumulatedImpulse+float btRotationalLimitMotor_m_accumulatedImpulse_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_accumulatedImpulse+void btRotationalLimitMotor_m_bounce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_bounce+float btRotationalLimitMotor_m_bounce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_bounce+void btRotationalLimitMotor_m_currentLimit_set(void *c,int a); //attribute: int btRotationalLimitMotor->m_currentLimit+int btRotationalLimitMotor_m_currentLimit_get(void *c); //attribute: int btRotationalLimitMotor->m_currentLimit+void btRotationalLimitMotor_m_currentLimitError_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_currentLimitError+float btRotationalLimitMotor_m_currentLimitError_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_currentLimitError+void btRotationalLimitMotor_m_currentPosition_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_currentPosition+float btRotationalLimitMotor_m_currentPosition_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_currentPosition+void btRotationalLimitMotor_m_damping_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_damping+float btRotationalLimitMotor_m_damping_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_damping+void btRotationalLimitMotor_m_enableMotor_set(void *c,int a); //attribute: bool btRotationalLimitMotor->m_enableMotor+int btRotationalLimitMotor_m_enableMotor_get(void *c); //attribute: bool btRotationalLimitMotor->m_enableMotor+void btRotationalLimitMotor_m_hiLimit_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_hiLimit+float btRotationalLimitMotor_m_hiLimit_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_hiLimit+void btRotationalLimitMotor_m_limitSoftness_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_limitSoftness+float btRotationalLimitMotor_m_limitSoftness_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_limitSoftness+void btRotationalLimitMotor_m_loLimit_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_loLimit+float btRotationalLimitMotor_m_loLimit_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_loLimit+void btRotationalLimitMotor_m_maxLimitForce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_maxLimitForce+float btRotationalLimitMotor_m_maxLimitForce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_maxLimitForce+void btRotationalLimitMotor_m_maxMotorForce_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_maxMotorForce+float btRotationalLimitMotor_m_maxMotorForce_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_maxMotorForce+void btRotationalLimitMotor_m_normalCFM_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_normalCFM+float btRotationalLimitMotor_m_normalCFM_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_normalCFM+void btRotationalLimitMotor_m_stopCFM_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_stopCFM+float btRotationalLimitMotor_m_stopCFM_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_stopCFM+void btRotationalLimitMotor_m_stopERP_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_stopERP+float btRotationalLimitMotor_m_stopERP_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_stopERP+void btRotationalLimitMotor_m_targetVelocity_set(void *c,float a); //attribute: ::btScalar btRotationalLimitMotor->m_targetVelocity+float btRotationalLimitMotor_m_targetVelocity_get(void *c); //attribute: ::btScalar btRotationalLimitMotor->m_targetVelocity+void* btSequentialImpulseConstraintSolver_new(); //constructor: btSequentialImpulseConstraintSolver  ( ::btSequentialImpulseConstraintSolver::* )(  ) +void btSequentialImpulseConstraintSolver_free(void *c); +void btSequentialImpulseConstraintSolver_convertContact(void *c,void* p0,void* p1); //method: convertContact void ( ::btSequentialImpulseConstraintSolver::* )( ::btPersistentManifold *,::btContactSolverInfo const & ) +void btSequentialImpulseConstraintSolver_setRandSeed(void *c,long unsigned int p0); //method: setRandSeed void ( ::btSequentialImpulseConstraintSolver::* )( long unsigned int ) +//not supported method: solveGroupCacheFriendlyIterations ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btScalar - ok++//not supported method: solveSingleIteration ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( int,::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +// error: int - ok,  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btScalar - ok++//not supported method: solveGroupCacheFriendlyFinish ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btScalar - ok++void* btSequentialImpulseConstraintSolver_getFixedBody(); //method: getFixedBody ::btRigidBody & (*)(  )+void btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimitSIMD(void *c,void* p0,void* p1,void* p2); //method: resolveSingleConstraintRowLowerLimitSIMD void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +//not supported method: solveGroupCacheFriendlySplitImpulseIterations void ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, void - ok++//not supported method: solveGroupCacheFriendlySetup ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btScalar - ok++//not supported method: setupContactConstraint void ( ::btSequentialImpulseConstraintSolver::* )( ::btSolverConstraint &,::btCollisionObject *,::btCollisionObject *,::btManifoldPoint &,::btContactSolverInfo const &,::btVector3 &,::btScalar &,::btScalar &,::btVector3 &,::btVector3 & ) +// error: ::btSolverConstraint & - ok, ::btCollisionObject * - ok, ::btCollisionObject * - ok, ::btManifoldPoint & - ok, ::btContactSolverInfo const & - ok, ::btVector3 & - ok,  - unsupported,  - unsupported, ::btVector3 & - ok, ::btVector3 & - ok, void - ok++long unsigned int btSequentialImpulseConstraintSolver_btRand2(void *c); //method: btRand2 long unsigned int ( ::btSequentialImpulseConstraintSolver::* )(  ) +void btSequentialImpulseConstraintSolver_setFrictionConstraintImpulse(void *c,void* p0,void* p1,void* p2,void* p3,void* p4); //method: setFrictionConstraintImpulse void ( ::btSequentialImpulseConstraintSolver::* )( ::btSolverConstraint &,::btRigidBody *,::btRigidBody *,::btManifoldPoint &,::btContactSolverInfo const & ) +int btSequentialImpulseConstraintSolver_getOrInitSolverBody(void *c,void* p0); //method: getOrInitSolverBody int ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject & ) +void btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGenericSIMD(void *c,void* p0,void* p1,void* p2); //method: resolveSingleConstraintRowGenericSIMD void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +int btSequentialImpulseConstraintSolver_btRandInt2(void *c,int p0); //method: btRandInt2 int ( ::btSequentialImpulseConstraintSolver::* )( int ) +void btSequentialImpulseConstraintSolver_resolveSingleConstraintRowLowerLimit(void *c,void* p0,void* p1,void* p2); //method: resolveSingleConstraintRowLowerLimit void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +void btSequentialImpulseConstraintSolver_reset(void *c); //method: reset void ( ::btSequentialImpulseConstraintSolver::* )(  ) +void btSequentialImpulseConstraintSolver_resolveSplitPenetrationImpulseCacheFriendly(void *c,void* p0,void* p1,void* p2); //method: resolveSplitPenetrationImpulseCacheFriendly void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +void btSequentialImpulseConstraintSolver_setupFrictionConstraint(void *c,void* p0,float* p1,void* p2,void* p3,void* p4,float* p5,float* p6,void* p7,void* p8,float p9,float p10,float p11); //method: setupFrictionConstraint void ( ::btSequentialImpulseConstraintSolver::* )( ::btSolverConstraint &,::btVector3 const &,::btRigidBody *,::btRigidBody *,::btManifoldPoint &,::btVector3 const &,::btVector3 const &,::btCollisionObject *,::btCollisionObject *,::btScalar,::btScalar,::btScalar ) +long unsigned int btSequentialImpulseConstraintSolver_getRandSeed(void *c); //method: getRandSeed long unsigned int ( ::btSequentialImpulseConstraintSolver::* )(  ) const+void* btSequentialImpulseConstraintSolver_addFrictionConstraint(void *c,float* p0,void* p1,void* p2,int p3,void* p4,float* p5,float* p6,void* p7,void* p8,float p9,float p10,float p11); //method: addFrictionConstraint ::btSolverConstraint & ( ::btSequentialImpulseConstraintSolver::* )( ::btVector3 const &,::btRigidBody *,::btRigidBody *,int,::btManifoldPoint &,::btVector3 const &,::btVector3 const &,::btCollisionObject *,::btCollisionObject *,::btScalar,::btScalar,::btScalar ) +float btSequentialImpulseConstraintSolver_restitutionCurve(void *c,float p0,float p1); //method: restitutionCurve ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btScalar,::btScalar ) +//not supported method: solveGroup ::btScalar ( ::btSequentialImpulseConstraintSolver::* )( ::btCollisionObject * *,int,::btPersistentManifold * *,int,::btTypedConstraint * *,int,::btContactSolverInfo const &,::btIDebugDraw *,::btStackAlloc *,::btDispatcher * ) +// error:  - unsupported, int - ok,  - unsupported, int - ok,  - unsupported, int - ok, ::btContactSolverInfo const & - ok, ::btIDebugDraw * - ok, ::btStackAlloc * - ok, ::btDispatcher * - ok, ::btScalar - ok++void btSequentialImpulseConstraintSolver_resolveSingleConstraintRowGeneric(void *c,void* p0,void* p1,void* p2); //method: resolveSingleConstraintRowGeneric void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +void btSequentialImpulseConstraintSolver_resolveSplitPenetrationSIMD(void *c,void* p0,void* p1,void* p2); //method: resolveSplitPenetrationSIMD void ( ::btSequentialImpulseConstraintSolver::* )( ::btRigidBody &,::btRigidBody &,::btSolverConstraint const & ) +void btSequentialImpulseConstraintSolver_m_tmpSolverContactConstraintPool_set(void *c,void* a); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverContactConstraintPool+void* btSequentialImpulseConstraintSolver_m_tmpSolverContactConstraintPool_get(void *c); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverContactConstraintPool+void btSequentialImpulseConstraintSolver_m_tmpSolverNonContactConstraintPool_set(void *c,void* a); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverNonContactConstraintPool+void* btSequentialImpulseConstraintSolver_m_tmpSolverNonContactConstraintPool_get(void *c); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverNonContactConstraintPool+void btSequentialImpulseConstraintSolver_m_tmpSolverContactFrictionConstraintPool_set(void *c,void* a); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverContactFrictionConstraintPool+void* btSequentialImpulseConstraintSolver_m_tmpSolverContactFrictionConstraintPool_get(void *c); //attribute: ::btConstraintArray btSequentialImpulseConstraintSolver->m_tmpSolverContactFrictionConstraintPool+void btSequentialImpulseConstraintSolver_m_orderTmpConstraintPool_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btSequentialImpulseConstraintSolver->m_orderTmpConstraintPool+void* btSequentialImpulseConstraintSolver_m_orderTmpConstraintPool_get(void *c); //attribute: ::btAlignedObjectArray<int> btSequentialImpulseConstraintSolver->m_orderTmpConstraintPool+void btSequentialImpulseConstraintSolver_m_orderFrictionConstraintPool_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btSequentialImpulseConstraintSolver->m_orderFrictionConstraintPool+void* btSequentialImpulseConstraintSolver_m_orderFrictionConstraintPool_get(void *c); //attribute: ::btAlignedObjectArray<int> btSequentialImpulseConstraintSolver->m_orderFrictionConstraintPool+void btSequentialImpulseConstraintSolver_m_tmpConstraintSizesPool_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> btSequentialImpulseConstraintSolver->m_tmpConstraintSizesPool+void* btSequentialImpulseConstraintSolver_m_tmpConstraintSizesPool_get(void *c); //attribute: ::btAlignedObjectArray<btTypedConstraint::btConstraintInfo1> btSequentialImpulseConstraintSolver->m_tmpConstraintSizesPool+void btSequentialImpulseConstraintSolver_m_btSeed2_set(void *c,long unsigned int a); //attribute: long unsigned int btSequentialImpulseConstraintSolver->m_btSeed2+long unsigned int btSequentialImpulseConstraintSolver_m_btSeed2_get(void *c); //attribute: long unsigned int btSequentialImpulseConstraintSolver->m_btSeed2+void* btSliderConstraint_new0(void* p0,void* p1,float* p2,float* p3,int p4); //constructor: btSliderConstraint  ( ::btSliderConstraint::* )( ::btRigidBody &,::btRigidBody &,::btTransform const &,::btTransform const &,bool ) +void* btSliderConstraint_new1(void* p0,float* p1,int p2); //constructor: btSliderConstraint  ( ::btSliderConstraint::* )( ::btRigidBody &,::btTransform const &,bool ) +void btSliderConstraint_free(void *c); +void* btSliderConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btSliderConstraint::* )(  ) const+void* btSliderConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btSliderConstraint::* )(  ) const+float btSliderConstraint_getAngDepth(void *c); //method: getAngDepth ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getTargetAngMotorVelocity(void *c); //method: getTargetAngMotorVelocity ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getAngularPos(void *c); //method: getAngularPos ::btScalar ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_setRestitutionLimAng(void *c,float p0); //method: setRestitutionLimAng void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btSliderConstraint::* )( int,int ) const+void btSliderConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btSliderConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +int btSliderConstraint_getPoweredLinMotor(void *c); //method: getPoweredLinMotor bool ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setUseFrameOffset(void *c,int p0); //method: setUseFrameOffset void ( ::btSliderConstraint::* )( bool ) +void btSliderConstraint_setSoftnessLimLin(void *c,float p0); //method: setSoftnessLimLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_getAncorInA(void *c,float* ret); //method: getAncorInA ::btVector3 ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_getAncorInB(void *c,float* ret); //method: getAncorInB ::btVector3 ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setDampingDirAng(void *c,float p0); //method: setDampingDirAng void ( ::btSliderConstraint::* )( ::btScalar ) +int btSliderConstraint_getSolveLinLimit(void *c); //method: getSolveLinLimit bool ( ::btSliderConstraint::* )(  ) +int btSliderConstraint_getUseFrameOffset(void *c); //method: getUseFrameOffset bool ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getMaxAngMotorForce(void *c); //method: getMaxAngMotorForce ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setRestitutionDirAng(void *c,float p0); //method: setRestitutionDirAng void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getMaxLinMotorForce(void *c); //method: getMaxLinMotorForce ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setDampingOrthoLin(void *c,float p0); //method: setDampingOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) +int btSliderConstraint_getSolveAngLimit(void *c); //method: getSolveAngLimit bool ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setPoweredAngMotor(void *c,int p0); //method: setPoweredAngMotor void ( ::btSliderConstraint::* )( bool ) +float btSliderConstraint_getLinearPos(void *c); //method: getLinearPos ::btScalar ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getCalculatedTransformB(void *c,float* ret); //method: getCalculatedTransformB ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getCalculatedTransformA(void *c,float* ret); //method: getCalculatedTransformA ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_testAngLimits(void *c); //method: testAngLimits void ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setDampingDirLin(void *c,float p0); //method: setDampingDirLin void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getUpperAngLimit(void *c); //method: getUpperAngLimit ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setUpperAngLimit(void *c,float p0); //method: setUpperAngLimit void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getRestitutionLimAng(void *c); //method: getRestitutionLimAng ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getSoftnessOrthoLin(void *c); //method: getSoftnessOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setLowerLinLimit(void *c,float p0); //method: setLowerLinLimit void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getRestitutionDirLin(void *c); //method: getRestitutionDirLin ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_getInfo1NonVirtual(void *c,void* p0); //method: getInfo1NonVirtual void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btSliderConstraint_setRestitutionLimLin(void *c,float p0); //method: setRestitutionLimLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setTargetLinMotorVelocity(void *c,float p0); //method: setTargetLinMotorVelocity void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getUpperLinLimit(void *c); //method: getUpperLinLimit ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setMaxLinMotorForce(void *c,float p0); //method: setMaxLinMotorForce void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getLowerAngLimit(void *c); //method: getLowerAngLimit ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setSoftnessDirLin(void *c,float p0); //method: setSoftnessDirLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_initParams(void *c); //method: initParams void ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_getInfo2NonVirtual(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,float p5,float p6); //method: getInfo2NonVirtual void ( ::btSliderConstraint::* )( ::btTypedConstraint::btConstraintInfo2 *,::btTransform const &,::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar ) +void btSliderConstraint_getFrameOffsetA(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getFrameOffsetA0(void *c,float* ret); //method: getFrameOffsetA ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getFrameOffsetA1(void *c,float* ret); //method: getFrameOffsetA ::btTransform & ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_getFrameOffsetB(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getFrameOffsetB0(void *c,float* ret); //method: getFrameOffsetB ::btTransform const & ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_getFrameOffsetB1(void *c,float* ret); //method: getFrameOffsetB ::btTransform & ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getDampingDirAng(void *c); //method: getDampingDirAng ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getRestitutionLimLin(void *c); //method: getRestitutionLimLin ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getSoftnessOrthoAng(void *c); //method: getSoftnessOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setSoftnessOrthoLin(void *c,float p0); //method: setSoftnessOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setSoftnessLimAng(void *c,float p0); //method: setSoftnessLimAng void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getDampingDirLin(void *c); //method: getDampingDirLin ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getSoftnessLimLin(void *c); //method: getSoftnessLimLin ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setPoweredLinMotor(void *c,int p0); //method: setPoweredLinMotor void ( ::btSliderConstraint::* )( bool ) +void btSliderConstraint_calculateTransforms(void *c,float* p0,float* p1); //method: calculateTransforms void ( ::btSliderConstraint::* )( ::btTransform const &,::btTransform const & ) +float btSliderConstraint_getLinDepth(void *c); //method: getLinDepth ::btScalar ( ::btSliderConstraint::* )(  ) +char const * btSliderConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btSliderConstraint::* )( void *,::btSerializer * ) const+float btSliderConstraint_getDampingLimLin(void *c); //method: getDampingLimLin ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getRestitutionDirAng(void *c); //method: getRestitutionDirAng ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btSliderConstraint::* )( int,::btScalar,int ) +float btSliderConstraint_getDampingLimAng(void *c); //method: getDampingLimAng ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setRestitutionOrthoLin(void *c,float p0); //method: setRestitutionOrthoLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setRestitutionDirLin(void *c,float p0); //method: setRestitutionDirLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setDampingLimAng(void *c,float p0); //method: setDampingLimAng void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setSoftnessDirAng(void *c,float p0); //method: setSoftnessDirAng void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setUpperLinLimit(void *c,float p0); //method: setUpperLinLimit void ( ::btSliderConstraint::* )( ::btScalar ) +int btSliderConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btSliderConstraint::* )(  ) const+void btSliderConstraint_setTargetAngMotorVelocity(void *c,float p0); //method: setTargetAngMotorVelocity void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getSoftnessDirAng(void *c); //method: getSoftnessDirAng ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setMaxAngMotorForce(void *c,float p0); //method: setMaxAngMotorForce void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setLowerAngLimit(void *c,float p0); //method: setLowerAngLimit void ( ::btSliderConstraint::* )( ::btScalar ) +int btSliderConstraint_getPoweredAngMotor(void *c); //method: getPoweredAngMotor bool ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getDampingOrthoAng(void *c); //method: getDampingOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getRestitutionOrthoLin(void *c); //method: getRestitutionOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getTargetLinMotorVelocity(void *c); //method: getTargetLinMotorVelocity ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_testLinLimits(void *c); //method: testLinLimits void ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getLowerLinLimit(void *c); //method: getLowerLinLimit ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setDampingOrthoAng(void *c,float p0); //method: setDampingOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setRestitutionOrthoAng(void *c,float p0); //method: setRestitutionOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) +float btSliderConstraint_getRestitutionOrthoAng(void *c); //method: getRestitutionOrthoAng ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getDampingOrthoLin(void *c); //method: getDampingOrthoLin ::btScalar ( ::btSliderConstraint::* )(  ) +float btSliderConstraint_getSoftnessLimAng(void *c); //method: getSoftnessLimAng ::btScalar ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_setSoftnessOrthoAng(void *c,float p0); //method: setSoftnessOrthoAng void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setDampingLimLin(void *c,float p0); //method: setDampingLimLin void ( ::btSliderConstraint::* )( ::btScalar ) +void btSliderConstraint_setFrames(void *c,float* p0,float* p1); //method: setFrames void ( ::btSliderConstraint::* )( ::btTransform const &,::btTransform const & ) +float btSliderConstraint_getSoftnessDirLin(void *c); //method: getSoftnessDirLin ::btScalar ( ::btSliderConstraint::* )(  ) +int btSliderConstraint_getUseLinearReferenceFrameA(void *c); //method: getUseLinearReferenceFrameA bool ( ::btSliderConstraint::* )(  ) +void btSliderConstraint_m_useSolveConstraintObsolete_set(void *c,int a); //attribute: bool btSliderConstraint->m_useSolveConstraintObsolete+int btSliderConstraint_m_useSolveConstraintObsolete_get(void *c); //attribute: bool btSliderConstraint->m_useSolveConstraintObsolete+void btSliderConstraint_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: bool btSliderConstraint->m_useOffsetForConstraintFrame+int btSliderConstraint_m_useOffsetForConstraintFrame_get(void *c); //attribute: bool btSliderConstraint->m_useOffsetForConstraintFrame+void btSliderConstraint_m_frameInA_set(void *c,float* a); //attribute: ::btTransform btSliderConstraint->m_frameInA+void btSliderConstraint_m_frameInA_get(void *c,float* a);+void btSliderConstraint_m_frameInB_set(void *c,float* a); //attribute: ::btTransform btSliderConstraint->m_frameInB+void btSliderConstraint_m_frameInB_get(void *c,float* a);+void btSliderConstraint_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: bool btSliderConstraint->m_useLinearReferenceFrameA+int btSliderConstraint_m_useLinearReferenceFrameA_get(void *c); //attribute: bool btSliderConstraint->m_useLinearReferenceFrameA+void btSliderConstraint_m_lowerLinLimit_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_lowerLinLimit+float btSliderConstraint_m_lowerLinLimit_get(void *c); //attribute: ::btScalar btSliderConstraint->m_lowerLinLimit+void btSliderConstraint_m_upperLinLimit_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_upperLinLimit+float btSliderConstraint_m_upperLinLimit_get(void *c); //attribute: ::btScalar btSliderConstraint->m_upperLinLimit+void btSliderConstraint_m_lowerAngLimit_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_lowerAngLimit+float btSliderConstraint_m_lowerAngLimit_get(void *c); //attribute: ::btScalar btSliderConstraint->m_lowerAngLimit+void btSliderConstraint_m_upperAngLimit_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_upperAngLimit+float btSliderConstraint_m_upperAngLimit_get(void *c); //attribute: ::btScalar btSliderConstraint->m_upperAngLimit+void btSliderConstraint_m_softnessDirLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessDirLin+float btSliderConstraint_m_softnessDirLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessDirLin+void btSliderConstraint_m_restitutionDirLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionDirLin+float btSliderConstraint_m_restitutionDirLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionDirLin+void btSliderConstraint_m_dampingDirLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingDirLin+float btSliderConstraint_m_dampingDirLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingDirLin+void btSliderConstraint_m_cfmDirLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmDirLin+float btSliderConstraint_m_cfmDirLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmDirLin+void btSliderConstraint_m_softnessDirAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessDirAng+float btSliderConstraint_m_softnessDirAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessDirAng+void btSliderConstraint_m_restitutionDirAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionDirAng+float btSliderConstraint_m_restitutionDirAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionDirAng+void btSliderConstraint_m_dampingDirAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingDirAng+float btSliderConstraint_m_dampingDirAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingDirAng+void btSliderConstraint_m_cfmDirAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmDirAng+float btSliderConstraint_m_cfmDirAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmDirAng+void btSliderConstraint_m_softnessLimLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessLimLin+float btSliderConstraint_m_softnessLimLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessLimLin+void btSliderConstraint_m_restitutionLimLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionLimLin+float btSliderConstraint_m_restitutionLimLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionLimLin+void btSliderConstraint_m_dampingLimLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingLimLin+float btSliderConstraint_m_dampingLimLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingLimLin+void btSliderConstraint_m_cfmLimLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmLimLin+float btSliderConstraint_m_cfmLimLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmLimLin+void btSliderConstraint_m_softnessLimAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessLimAng+float btSliderConstraint_m_softnessLimAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessLimAng+void btSliderConstraint_m_restitutionLimAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionLimAng+float btSliderConstraint_m_restitutionLimAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionLimAng+void btSliderConstraint_m_dampingLimAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingLimAng+float btSliderConstraint_m_dampingLimAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingLimAng+void btSliderConstraint_m_cfmLimAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmLimAng+float btSliderConstraint_m_cfmLimAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmLimAng+void btSliderConstraint_m_softnessOrthoLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessOrthoLin+float btSliderConstraint_m_softnessOrthoLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessOrthoLin+void btSliderConstraint_m_restitutionOrthoLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionOrthoLin+float btSliderConstraint_m_restitutionOrthoLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionOrthoLin+void btSliderConstraint_m_dampingOrthoLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingOrthoLin+float btSliderConstraint_m_dampingOrthoLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingOrthoLin+void btSliderConstraint_m_cfmOrthoLin_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmOrthoLin+float btSliderConstraint_m_cfmOrthoLin_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmOrthoLin+void btSliderConstraint_m_softnessOrthoAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_softnessOrthoAng+float btSliderConstraint_m_softnessOrthoAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_softnessOrthoAng+void btSliderConstraint_m_restitutionOrthoAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_restitutionOrthoAng+float btSliderConstraint_m_restitutionOrthoAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_restitutionOrthoAng+void btSliderConstraint_m_dampingOrthoAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_dampingOrthoAng+float btSliderConstraint_m_dampingOrthoAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_dampingOrthoAng+void btSliderConstraint_m_cfmOrthoAng_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_cfmOrthoAng+float btSliderConstraint_m_cfmOrthoAng_get(void *c); //attribute: ::btScalar btSliderConstraint->m_cfmOrthoAng+void btSliderConstraint_m_solveLinLim_set(void *c,int a); //attribute: bool btSliderConstraint->m_solveLinLim+int btSliderConstraint_m_solveLinLim_get(void *c); //attribute: bool btSliderConstraint->m_solveLinLim+void btSliderConstraint_m_solveAngLim_set(void *c,int a); //attribute: bool btSliderConstraint->m_solveAngLim+int btSliderConstraint_m_solveAngLim_get(void *c); //attribute: bool btSliderConstraint->m_solveAngLim+void btSliderConstraint_m_flags_set(void *c,int a); //attribute: int btSliderConstraint->m_flags+int btSliderConstraint_m_flags_get(void *c); //attribute: int btSliderConstraint->m_flags+// attribute not supported: //attribute: ::btJacobianEntry[3] btSliderConstraint->m_jacLin+// attribute not supported: //attribute: ::btScalar[3] btSliderConstraint->m_jacLinDiagABInv+// attribute not supported: //attribute: ::btJacobianEntry[3] btSliderConstraint->m_jacAng+void btSliderConstraint_m_timeStep_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_timeStep+float btSliderConstraint_m_timeStep_get(void *c); //attribute: ::btScalar btSliderConstraint->m_timeStep+void btSliderConstraint_m_calculatedTransformA_set(void *c,float* a); //attribute: ::btTransform btSliderConstraint->m_calculatedTransformA+void btSliderConstraint_m_calculatedTransformA_get(void *c,float* a);+void btSliderConstraint_m_calculatedTransformB_set(void *c,float* a); //attribute: ::btTransform btSliderConstraint->m_calculatedTransformB+void btSliderConstraint_m_calculatedTransformB_get(void *c,float* a);+void btSliderConstraint_m_sliderAxis_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_sliderAxis+void btSliderConstraint_m_sliderAxis_get(void *c,float* a);+void btSliderConstraint_m_realPivotAInW_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_realPivotAInW+void btSliderConstraint_m_realPivotAInW_get(void *c,float* a);+void btSliderConstraint_m_realPivotBInW_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_realPivotBInW+void btSliderConstraint_m_realPivotBInW_get(void *c,float* a);+void btSliderConstraint_m_projPivotInW_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_projPivotInW+void btSliderConstraint_m_projPivotInW_get(void *c,float* a);+void btSliderConstraint_m_delta_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_delta+void btSliderConstraint_m_delta_get(void *c,float* a);+void btSliderConstraint_m_depth_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_depth+void btSliderConstraint_m_depth_get(void *c,float* a);+void btSliderConstraint_m_relPosA_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_relPosA+void btSliderConstraint_m_relPosA_get(void *c,float* a);+void btSliderConstraint_m_relPosB_set(void *c,float* a); //attribute: ::btVector3 btSliderConstraint->m_relPosB+void btSliderConstraint_m_relPosB_get(void *c,float* a);+void btSliderConstraint_m_linPos_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_linPos+float btSliderConstraint_m_linPos_get(void *c); //attribute: ::btScalar btSliderConstraint->m_linPos+void btSliderConstraint_m_angPos_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_angPos+float btSliderConstraint_m_angPos_get(void *c); //attribute: ::btScalar btSliderConstraint->m_angPos+void btSliderConstraint_m_angDepth_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_angDepth+float btSliderConstraint_m_angDepth_get(void *c); //attribute: ::btScalar btSliderConstraint->m_angDepth+void btSliderConstraint_m_kAngle_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_kAngle+float btSliderConstraint_m_kAngle_get(void *c); //attribute: ::btScalar btSliderConstraint->m_kAngle+void btSliderConstraint_m_poweredLinMotor_set(void *c,int a); //attribute: bool btSliderConstraint->m_poweredLinMotor+int btSliderConstraint_m_poweredLinMotor_get(void *c); //attribute: bool btSliderConstraint->m_poweredLinMotor+void btSliderConstraint_m_targetLinMotorVelocity_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_targetLinMotorVelocity+float btSliderConstraint_m_targetLinMotorVelocity_get(void *c); //attribute: ::btScalar btSliderConstraint->m_targetLinMotorVelocity+void btSliderConstraint_m_maxLinMotorForce_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_maxLinMotorForce+float btSliderConstraint_m_maxLinMotorForce_get(void *c); //attribute: ::btScalar btSliderConstraint->m_maxLinMotorForce+void btSliderConstraint_m_accumulatedLinMotorImpulse_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_accumulatedLinMotorImpulse+float btSliderConstraint_m_accumulatedLinMotorImpulse_get(void *c); //attribute: ::btScalar btSliderConstraint->m_accumulatedLinMotorImpulse+void btSliderConstraint_m_poweredAngMotor_set(void *c,int a); //attribute: bool btSliderConstraint->m_poweredAngMotor+int btSliderConstraint_m_poweredAngMotor_get(void *c); //attribute: bool btSliderConstraint->m_poweredAngMotor+void btSliderConstraint_m_targetAngMotorVelocity_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_targetAngMotorVelocity+float btSliderConstraint_m_targetAngMotorVelocity_get(void *c); //attribute: ::btScalar btSliderConstraint->m_targetAngMotorVelocity+void btSliderConstraint_m_maxAngMotorForce_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_maxAngMotorForce+float btSliderConstraint_m_maxAngMotorForce_get(void *c); //attribute: ::btScalar btSliderConstraint->m_maxAngMotorForce+void btSliderConstraint_m_accumulatedAngMotorImpulse_set(void *c,float a); //attribute: ::btScalar btSliderConstraint->m_accumulatedAngMotorImpulse+float btSliderConstraint_m_accumulatedAngMotorImpulse_get(void *c); //attribute: ::btScalar btSliderConstraint->m_accumulatedAngMotorImpulse+void* btSliderConstraintData_new(); //constructor: btSliderConstraintData  ( ::btSliderConstraintData::* )(  ) +void btSliderConstraintData_free(void *c); +void btSliderConstraintData_m_typeConstraintData_set(void *c,void* a); //attribute: ::btTypedConstraintData btSliderConstraintData->m_typeConstraintData+void* btSliderConstraintData_m_typeConstraintData_get(void *c); //attribute: ::btTypedConstraintData btSliderConstraintData->m_typeConstraintData+void btSliderConstraintData_m_rbAFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btSliderConstraintData->m_rbAFrame+void* btSliderConstraintData_m_rbAFrame_get(void *c); //attribute: ::btTransformFloatData btSliderConstraintData->m_rbAFrame+void btSliderConstraintData_m_rbBFrame_set(void *c,void* a); //attribute: ::btTransformFloatData btSliderConstraintData->m_rbBFrame+void* btSliderConstraintData_m_rbBFrame_get(void *c); //attribute: ::btTransformFloatData btSliderConstraintData->m_rbBFrame+void btSliderConstraintData_m_linearUpperLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_linearUpperLimit+float btSliderConstraintData_m_linearUpperLimit_get(void *c); //attribute: float btSliderConstraintData->m_linearUpperLimit+void btSliderConstraintData_m_linearLowerLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_linearLowerLimit+float btSliderConstraintData_m_linearLowerLimit_get(void *c); //attribute: float btSliderConstraintData->m_linearLowerLimit+void btSliderConstraintData_m_angularUpperLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_angularUpperLimit+float btSliderConstraintData_m_angularUpperLimit_get(void *c); //attribute: float btSliderConstraintData->m_angularUpperLimit+void btSliderConstraintData_m_angularLowerLimit_set(void *c,float a); //attribute: float btSliderConstraintData->m_angularLowerLimit+float btSliderConstraintData_m_angularLowerLimit_get(void *c); //attribute: float btSliderConstraintData->m_angularLowerLimit+void btSliderConstraintData_m_useLinearReferenceFrameA_set(void *c,int a); //attribute: int btSliderConstraintData->m_useLinearReferenceFrameA+int btSliderConstraintData_m_useLinearReferenceFrameA_get(void *c); //attribute: int btSliderConstraintData->m_useLinearReferenceFrameA+void btSliderConstraintData_m_useOffsetForConstraintFrame_set(void *c,int a); //attribute: int btSliderConstraintData->m_useOffsetForConstraintFrame+int btSliderConstraintData_m_useOffsetForConstraintFrame_get(void *c); //attribute: int btSliderConstraintData->m_useOffsetForConstraintFrame+void* btSolverBodyObsolete_new(); //constructor: btSolverBodyObsolete  ( ::btSolverBodyObsolete::* )(  ) +void btSolverBodyObsolete_free(void *c); +//not supported method: applyImpulse void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 const &,::btScalar const ) +// error: ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported, void - ok++void btSolverBodyObsolete_getAngularVelocity(void *c,float* p0); //method: getAngularVelocity void ( ::btSolverBodyObsolete::* )( ::btVector3 & ) const+void btSolverBodyObsolete_writebackVelocity(void *c); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )(  ) +void btSolverBodyObsolete_writebackVelocity0(void *c); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )(  ) +void btSolverBodyObsolete_writebackVelocity1(void *c,float p0); //method: writebackVelocity void ( ::btSolverBodyObsolete::* )( ::btScalar ) +void btSolverBodyObsolete_internalApplyPushImpulse(void *c,float* p0,float* p1,float p2); //method: internalApplyPushImpulse void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void btSolverBodyObsolete_getVelocityInLocalPointObsolete(void *c,float* p0,float* p1); //method: getVelocityInLocalPointObsolete void ( ::btSolverBodyObsolete::* )( ::btVector3 const &,::btVector3 & ) const+void btSolverBodyObsolete_m_deltaLinearVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_deltaLinearVelocity+void btSolverBodyObsolete_m_deltaLinearVelocity_get(void *c,float* a);+void btSolverBodyObsolete_m_deltaAngularVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_deltaAngularVelocity+void btSolverBodyObsolete_m_deltaAngularVelocity_get(void *c,float* a);+void btSolverBodyObsolete_m_angularFactor_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_angularFactor+void btSolverBodyObsolete_m_angularFactor_get(void *c,float* a);+void btSolverBodyObsolete_m_invMass_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_invMass+void btSolverBodyObsolete_m_invMass_get(void *c,float* a);+void btSolverBodyObsolete_m_originalBody_set(void *c,void* a); //attribute: ::btRigidBody * btSolverBodyObsolete->m_originalBody+void* btSolverBodyObsolete_m_originalBody_get(void *c); //attribute: ::btRigidBody * btSolverBodyObsolete->m_originalBody+void btSolverBodyObsolete_m_pushVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_pushVelocity+void btSolverBodyObsolete_m_pushVelocity_get(void *c,float* a);+void btSolverBodyObsolete_m_turnVelocity_set(void *c,float* a); //attribute: ::btVector3 btSolverBodyObsolete->m_turnVelocity+void btSolverBodyObsolete_m_turnVelocity_get(void *c,float* a);+void* btSolverConstraint_new(); //constructor: btSolverConstraint  ( ::btSolverConstraint::* )(  ) +void btSolverConstraint_free(void *c); +// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->+// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->+// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->+// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->+// attribute not supported: //attribute: ::btSolverConstraint btSolverConstraint->+void btSolverConstraint_m_angularComponentA_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_angularComponentA+void btSolverConstraint_m_angularComponentA_get(void *c,float* a);+void btSolverConstraint_m_angularComponentB_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_angularComponentB+void btSolverConstraint_m_angularComponentB_get(void *c,float* a);+void btSolverConstraint_m_appliedImpulse_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_appliedImpulse+float btSolverConstraint_m_appliedImpulse_get(void *c); //attribute: ::btScalar btSolverConstraint->m_appliedImpulse+void btSolverConstraint_m_appliedPushImpulse_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_appliedPushImpulse+float btSolverConstraint_m_appliedPushImpulse_get(void *c); //attribute: ::btScalar btSolverConstraint->m_appliedPushImpulse+void btSolverConstraint_m_cfm_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_cfm+float btSolverConstraint_m_cfm_get(void *c); //attribute: ::btScalar btSolverConstraint->m_cfm+void btSolverConstraint_m_contactNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_contactNormal+void btSolverConstraint_m_contactNormal_get(void *c,float* a);+void btSolverConstraint_m_friction_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_friction+float btSolverConstraint_m_friction_get(void *c); //attribute: ::btScalar btSolverConstraint->m_friction+void btSolverConstraint_m_jacDiagABInv_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_jacDiagABInv+float btSolverConstraint_m_jacDiagABInv_get(void *c); //attribute: ::btScalar btSolverConstraint->m_jacDiagABInv+void btSolverConstraint_m_lowerLimit_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_lowerLimit+float btSolverConstraint_m_lowerLimit_get(void *c); //attribute: ::btScalar btSolverConstraint->m_lowerLimit+void btSolverConstraint_m_relpos1CrossNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_relpos1CrossNormal+void btSolverConstraint_m_relpos1CrossNormal_get(void *c,float* a);+void btSolverConstraint_m_relpos2CrossNormal_set(void *c,float* a); //attribute: ::btVector3 btSolverConstraint->m_relpos2CrossNormal+void btSolverConstraint_m_relpos2CrossNormal_get(void *c,float* a);+void btSolverConstraint_m_rhs_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_rhs+float btSolverConstraint_m_rhs_get(void *c); //attribute: ::btScalar btSolverConstraint->m_rhs+void btSolverConstraint_m_rhsPenetration_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_rhsPenetration+float btSolverConstraint_m_rhsPenetration_get(void *c); //attribute: ::btScalar btSolverConstraint->m_rhsPenetration+void btSolverConstraint_m_upperLimit_set(void *c,float a); //attribute: ::btScalar btSolverConstraint->m_upperLimit+float btSolverConstraint_m_upperLimit_get(void *c); //attribute: ::btScalar btSolverConstraint->m_upperLimit+void* btTranslationalLimitMotor_new(); //constructor: btTranslationalLimitMotor  ( ::btTranslationalLimitMotor::* )(  ) +void btTranslationalLimitMotor_free(void *c); +int btTranslationalLimitMotor_testLimitValue(void *c,int p0,float p1); //method: testLimitValue int ( ::btTranslationalLimitMotor::* )( int,::btScalar ) +int btTranslationalLimitMotor_needApplyForce(void *c,int p0); //method: needApplyForce bool ( ::btTranslationalLimitMotor::* )( int ) +float btTranslationalLimitMotor_solveLinearAxis(void *c,float p0,float p1,void* p2,float* p3,void* p4,float* p5,int p6,float* p7,float* p8); //method: solveLinearAxis ::btScalar ( ::btTranslationalLimitMotor::* )( ::btScalar,::btScalar,::btRigidBody &,::btVector3 const &,::btRigidBody &,::btVector3 const &,int,::btVector3 const &,::btVector3 const & ) +int btTranslationalLimitMotor_isLimited(void *c,int p0); //method: isLimited bool ( ::btTranslationalLimitMotor::* )( int ) +void btTranslationalLimitMotor_m_accumulatedImpulse_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_accumulatedImpulse+void btTranslationalLimitMotor_m_accumulatedImpulse_get(void *c,float* a);+// attribute not supported: //attribute: int[3] btTranslationalLimitMotor->m_currentLimit+void btTranslationalLimitMotor_m_currentLimitError_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_currentLimitError+void btTranslationalLimitMotor_m_currentLimitError_get(void *c,float* a);+void btTranslationalLimitMotor_m_currentLinearDiff_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_currentLinearDiff+void btTranslationalLimitMotor_m_currentLinearDiff_get(void *c,float* a);+void btTranslationalLimitMotor_m_damping_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_damping+float btTranslationalLimitMotor_m_damping_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_damping+// attribute not supported: //attribute: bool[3] btTranslationalLimitMotor->m_enableMotor+void btTranslationalLimitMotor_m_limitSoftness_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_limitSoftness+float btTranslationalLimitMotor_m_limitSoftness_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_limitSoftness+void btTranslationalLimitMotor_m_lowerLimit_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_lowerLimit+void btTranslationalLimitMotor_m_lowerLimit_get(void *c,float* a);+void btTranslationalLimitMotor_m_maxMotorForce_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_maxMotorForce+void btTranslationalLimitMotor_m_maxMotorForce_get(void *c,float* a);+void btTranslationalLimitMotor_m_normalCFM_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_normalCFM+void btTranslationalLimitMotor_m_normalCFM_get(void *c,float* a);+void btTranslationalLimitMotor_m_restitution_set(void *c,float a); //attribute: ::btScalar btTranslationalLimitMotor->m_restitution+float btTranslationalLimitMotor_m_restitution_get(void *c); //attribute: ::btScalar btTranslationalLimitMotor->m_restitution+void btTranslationalLimitMotor_m_stopCFM_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_stopCFM+void btTranslationalLimitMotor_m_stopCFM_get(void *c,float* a);+void btTranslationalLimitMotor_m_stopERP_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_stopERP+void btTranslationalLimitMotor_m_stopERP_get(void *c,float* a);+void btTranslationalLimitMotor_m_targetVelocity_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_targetVelocity+void btTranslationalLimitMotor_m_targetVelocity_get(void *c,float* a);+void btTranslationalLimitMotor_m_upperLimit_set(void *c,float* a); //attribute: ::btVector3 btTranslationalLimitMotor->m_upperLimit+void btTranslationalLimitMotor_m_upperLimit_get(void *c,float* a);+void* btTypedConstraint_getRigidBodyB(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const+void* btTypedConstraint_getRigidBodyB0(void *c); //method: getRigidBodyB ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const+void* btTypedConstraint_getRigidBodyB1(void *c); //method: getRigidBodyB ::btRigidBody & ( ::btTypedConstraint::* )(  ) +void btTypedConstraint_buildJacobian(void *c); //method: buildJacobian void ( ::btTypedConstraint::* )(  ) +void* btTypedConstraint_getRigidBodyA(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const+void* btTypedConstraint_getRigidBodyA0(void *c); //method: getRigidBodyA ::btRigidBody const & ( ::btTypedConstraint::* )(  ) const+void* btTypedConstraint_getRigidBodyA1(void *c); //method: getRigidBodyA ::btRigidBody & ( ::btTypedConstraint::* )(  ) +char const * btTypedConstraint_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btTypedConstraint::* )( void *,::btSerializer * ) const+void btTypedConstraint_enableFeedback(void *c,int p0); //method: enableFeedback void ( ::btTypedConstraint::* )( bool ) +int btTypedConstraint_getUserConstraintId(void *c); //method: getUserConstraintId int ( ::btTypedConstraint::* )(  ) const+void btTypedConstraint_setParam(void *c,int p0,float p1,int p2); //method: setParam void ( ::btTypedConstraint::* )( int,::btScalar,int ) +float btTypedConstraint_getParam(void *c,int p0,int p1); //method: getParam ::btScalar ( ::btTypedConstraint::* )( int,int ) const+void btTypedConstraint_getInfo1(void *c,void* p0); //method: getInfo1 void ( ::btTypedConstraint::* )( ::btTypedConstraint::btConstraintInfo1 * ) +void btTypedConstraint_getInfo2(void *c,void* p0); //method: getInfo2 void ( ::btTypedConstraint::* )( ::btTypedConstraint::btConstraintInfo2 * ) +void btTypedConstraint_setBreakingImpulseThreshold(void *c,float p0); //method: setBreakingImpulseThreshold void ( ::btTypedConstraint::* )( ::btScalar ) +void* btTypedConstraint_getFixedBody(); //method: getFixedBody ::btRigidBody & (*)(  )+int btTypedConstraint_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btTypedConstraint::* )(  ) const+int btTypedConstraint_isEnabled(void *c); //method: isEnabled bool ( ::btTypedConstraint::* )(  ) const+void btTypedConstraint_setUserConstraintId(void *c,int p0); //method: setUserConstraintId void ( ::btTypedConstraint::* )( int ) +//not supported method: getConstraintType ::btTypedConstraintType ( ::btTypedConstraint::* )(  ) const+// error:  - unsupported++float btTypedConstraint_getMotorFactor(void *c,float p0,float p1,float p2,float p3,float p4); //method: getMotorFactor ::btScalar ( ::btTypedConstraint::* )( ::btScalar,::btScalar,::btScalar,::btScalar,::btScalar ) +float btTypedConstraint_getDbgDrawSize(void *c); //method: getDbgDrawSize ::btScalar ( ::btTypedConstraint::* )(  ) +void btTypedConstraint_internalSetAppliedImpulse(void *c,float p0); //method: internalSetAppliedImpulse void ( ::btTypedConstraint::* )( ::btScalar ) +int btTypedConstraint_needsFeedback(void *c); //method: needsFeedback bool ( ::btTypedConstraint::* )(  ) const+void* btTypedConstraint_getUserConstraintPtr(void *c); //method: getUserConstraintPtr void * ( ::btTypedConstraint::* )(  ) +void btTypedConstraint_setEnabled(void *c,int p0); //method: setEnabled void ( ::btTypedConstraint::* )( bool ) +int btTypedConstraint_getUid(void *c); //method: getUid int ( ::btTypedConstraint::* )(  ) const+void btTypedConstraint_setDbgDrawSize(void *c,float p0); //method: setDbgDrawSize void ( ::btTypedConstraint::* )( ::btScalar ) +void btTypedConstraint_setUserConstraintType(void *c,int p0); //method: setUserConstraintType void ( ::btTypedConstraint::* )( int ) +float btTypedConstraint_internalGetAppliedImpulse(void *c); //method: internalGetAppliedImpulse ::btScalar ( ::btTypedConstraint::* )(  ) +void btTypedConstraint_setupSolverConstraint(void *c,void* p0,int p1,int p2,float p3); //method: setupSolverConstraint void ( ::btTypedConstraint::* )( ::btConstraintArray &,int,int,::btScalar ) +float btTypedConstraint_getBreakingImpulseThreshold(void *c); //method: getBreakingImpulseThreshold ::btScalar ( ::btTypedConstraint::* )(  ) const+int btTypedConstraint_getUserConstraintType(void *c); //method: getUserConstraintType int ( ::btTypedConstraint::* )(  ) const+void btTypedConstraint_solveConstraintObsolete(void *c,void* p0,void* p1,float p2); //method: solveConstraintObsolete void ( ::btTypedConstraint::* )( ::btRigidBody &,::btRigidBody &,::btScalar ) +float btTypedConstraint_getAppliedImpulse(void *c); //method: getAppliedImpulse ::btScalar ( ::btTypedConstraint::* )(  ) const+void btTypedConstraint_setUserConstraintPtr(void *c,void* p0); //method: setUserConstraintPtr void ( ::btTypedConstraint::* )( void * ) +// attribute not supported: //attribute: ::btTypedConstraint btTypedConstraint->+void btTypedConstraint_m_appliedImpulse_set(void *c,float a); //attribute: ::btScalar btTypedConstraint->m_appliedImpulse+float btTypedConstraint_m_appliedImpulse_get(void *c); //attribute: ::btScalar btTypedConstraint->m_appliedImpulse+void btTypedConstraint_m_breakingImpulseThreshold_set(void *c,float a); //attribute: ::btScalar btTypedConstraint->m_breakingImpulseThreshold+float btTypedConstraint_m_breakingImpulseThreshold_get(void *c); //attribute: ::btScalar btTypedConstraint->m_breakingImpulseThreshold+void btTypedConstraint_m_dbgDrawSize_set(void *c,float a); //attribute: ::btScalar btTypedConstraint->m_dbgDrawSize+float btTypedConstraint_m_dbgDrawSize_get(void *c); //attribute: ::btScalar btTypedConstraint->m_dbgDrawSize+void btTypedConstraint_m_isEnabled_set(void *c,int a); //attribute: bool btTypedConstraint->m_isEnabled+int btTypedConstraint_m_isEnabled_get(void *c); //attribute: bool btTypedConstraint->m_isEnabled+void btTypedConstraint_m_needsFeedback_set(void *c,int a); //attribute: bool btTypedConstraint->m_needsFeedback+int btTypedConstraint_m_needsFeedback_get(void *c); //attribute: bool btTypedConstraint->m_needsFeedback+void btTypedConstraint_m_rbA_set(void *c,void* a); //attribute: ::btRigidBody & btTypedConstraint->m_rbA+void* btTypedConstraint_m_rbA_get(void *c); //attribute: ::btRigidBody & btTypedConstraint->m_rbA+void btTypedConstraint_m_rbB_set(void *c,void* a); //attribute: ::btRigidBody & btTypedConstraint->m_rbB+void* btTypedConstraint_m_rbB_get(void *c); //attribute: ::btRigidBody & btTypedConstraint->m_rbB+void btTypedConstraint_m_userConstraintType_set(void *c,int a); //attribute: int btTypedConstraint->m_userConstraintType+int btTypedConstraint_m_userConstraintType_get(void *c); //attribute: int btTypedConstraint->m_userConstraintType+void* btTypedConstraintData_new(); //constructor: btTypedConstraintData  ( ::btTypedConstraintData::* )(  ) +void btTypedConstraintData_free(void *c); +void btTypedConstraintData_m_appliedImpulse_set(void *c,float a); //attribute: float btTypedConstraintData->m_appliedImpulse+float btTypedConstraintData_m_appliedImpulse_get(void *c); //attribute: float btTypedConstraintData->m_appliedImpulse+void btTypedConstraintData_m_dbgDrawSize_set(void *c,float a); //attribute: float btTypedConstraintData->m_dbgDrawSize+float btTypedConstraintData_m_dbgDrawSize_get(void *c); //attribute: float btTypedConstraintData->m_dbgDrawSize+void btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_set(void *c,int a); //attribute: int btTypedConstraintData->m_disableCollisionsBetweenLinkedBodies+int btTypedConstraintData_m_disableCollisionsBetweenLinkedBodies_get(void *c); //attribute: int btTypedConstraintData->m_disableCollisionsBetweenLinkedBodies+void btTypedConstraintData_m_name_set(void *c,char * a); //attribute: char * btTypedConstraintData->m_name+char * btTypedConstraintData_m_name_get(void *c); //attribute: char * btTypedConstraintData->m_name+void btTypedConstraintData_m_needsFeedback_set(void *c,int a); //attribute: int btTypedConstraintData->m_needsFeedback+int btTypedConstraintData_m_needsFeedback_get(void *c); //attribute: int btTypedConstraintData->m_needsFeedback+void btTypedConstraintData_m_objectType_set(void *c,int a); //attribute: int btTypedConstraintData->m_objectType+int btTypedConstraintData_m_objectType_get(void *c); //attribute: int btTypedConstraintData->m_objectType+// attribute not supported: //attribute: char[4] btTypedConstraintData->m_pad4+void btTypedConstraintData_m_rbA_set(void *c,void* a); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbA+void* btTypedConstraintData_m_rbA_get(void *c); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbA+void btTypedConstraintData_m_rbB_set(void *c,void* a); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbB+void* btTypedConstraintData_m_rbB_get(void *c); //attribute: ::btRigidBodyFloatData * btTypedConstraintData->m_rbB+void btTypedConstraintData_m_userConstraintId_set(void *c,int a); //attribute: int btTypedConstraintData->m_userConstraintId+int btTypedConstraintData_m_userConstraintId_get(void *c); //attribute: int btTypedConstraintData->m_userConstraintId+void btTypedConstraintData_m_userConstraintType_set(void *c,int a); //attribute: int btTypedConstraintData->m_userConstraintType+int btTypedConstraintData_m_userConstraintType_get(void *c); //attribute: int btTypedConstraintData->m_userConstraintType+void* btUniversalConstraint_new(void* p0,void* p1,float* p2,float* p3,float* p4); //constructor: btUniversalConstraint  ( ::btUniversalConstraint::* )( ::btRigidBody &,::btRigidBody &,::btVector3 &,::btVector3 &,::btVector3 & ) +void btUniversalConstraint_free(void *c); +void btUniversalConstraint_setLowerLimit(void *c,float p0,float p1); //method: setLowerLimit void ( ::btUniversalConstraint::* )( ::btScalar,::btScalar ) +void btUniversalConstraint_getAnchor2(void *c,float* ret); //method: getAnchor2 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) +void btUniversalConstraint_setAxis(void *c,float* p0,float* p1); //method: setAxis void ( ::btUniversalConstraint::* )( ::btVector3 const &,::btVector3 const & ) +void btUniversalConstraint_getAxis1(void *c,float* ret); //method: getAxis1 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) +void btUniversalConstraint_getAnchor(void *c,float* ret); //method: getAnchor ::btVector3 const & ( ::btUniversalConstraint::* )(  ) +void btUniversalConstraint_getAxis2(void *c,float* ret); //method: getAxis2 ::btVector3 const & ( ::btUniversalConstraint::* )(  ) +void btUniversalConstraint_setUpperLimit(void *c,float p0,float p1); //method: setUpperLimit void ( ::btUniversalConstraint::* )( ::btScalar,::btScalar ) +float btUniversalConstraint_getAngle2(void *c); //method: getAngle2 ::btScalar ( ::btUniversalConstraint::* )(  ) +float btUniversalConstraint_getAngle1(void *c); //method: getAngle1 ::btScalar ( ::btUniversalConstraint::* )(  ) +void btUniversalConstraint_m_anchor_set(void *c,float* a); //attribute: ::btVector3 btUniversalConstraint->m_anchor+void btUniversalConstraint_m_anchor_get(void *c,float* a);+void btUniversalConstraint_m_axis1_set(void *c,float* a); //attribute: ::btVector3 btUniversalConstraint->m_axis1+void btUniversalConstraint_m_axis1_get(void *c,float* a);+void btUniversalConstraint_m_axis2_set(void *c,float* a); //attribute: ::btVector3 btUniversalConstraint->m_axis2+void btUniversalConstraint_m_axis2_get(void *c,float* a);+void* btActionInterface_getFixedBody(); //method: getFixedBody ::btRigidBody & (*)(  )+void btActionInterface_updateAction(void *c,void* p0,float p1); //method: updateAction void ( ::btActionInterface::* )( ::btCollisionWorld *,::btScalar ) +void btActionInterface_debugDraw(void *c,void* p0); //method: debugDraw void ( ::btActionInterface::* )( ::btIDebugDraw * ) +void* btDiscreteDynamicsWorld_new(void* p0,void* p1,void* p2,void* p3); //constructor: btDiscreteDynamicsWorld  ( ::btDiscreteDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration * ) +void btDiscreteDynamicsWorld_free(void *c); +void btDiscreteDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btDiscreteDynamicsWorld::* )( ::btVector3 const & ) +void btDiscreteDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_applyGravity(void *c); //method: applyGravity void ( ::btDiscreteDynamicsWorld::* )(  ) +void btDiscreteDynamicsWorld_serialize(void *c,void* p0); //method: serialize void ( ::btDiscreteDynamicsWorld::* )( ::btSerializer * ) +void* btDiscreteDynamicsWorld_getCollisionWorld(void *c); //method: getCollisionWorld ::btCollisionWorld * ( ::btDiscreteDynamicsWorld::* )(  ) +void btDiscreteDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) +void btDiscreteDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) +void btDiscreteDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody *,short int,short int ) +void btDiscreteDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btDiscreteDynamicsWorld::* )(  ) +void btDiscreteDynamicsWorld_removeVehicle(void *c,void* p0); //method: removeVehicle void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_serializeRigidBodies(void *c,void* p0); //method: serializeRigidBodies void ( ::btDiscreteDynamicsWorld::* )( ::btSerializer * ) +void btDiscreteDynamicsWorld_internalSingleStepSimulation(void *c,float p0); //method: internalSingleStepSimulation void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +int btDiscreteDynamicsWorld_getSynchronizeAllMotionStates(void *c); //method: getSynchronizeAllMotionStates bool ( ::btDiscreteDynamicsWorld::* )(  ) const+void btDiscreteDynamicsWorld_setNumTasks(void *c,int p0); //method: setNumTasks void ( ::btDiscreteDynamicsWorld::* )( int ) +void btDiscreteDynamicsWorld_setSynchronizeAllMotionStates(void *c,int p0); //method: setSynchronizeAllMotionStates void ( ::btDiscreteDynamicsWorld::* )( bool ) +void btDiscreteDynamicsWorld_predictUnconstraintMotion(void *c,float p0); //method: predictUnconstraintMotion void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_removeConstraint(void *c,void* p0); //method: removeConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint * ) +int btDiscreteDynamicsWorld_getNumConstraints(void *c); //method: getNumConstraints int ( ::btDiscreteDynamicsWorld::* )(  ) const+void btDiscreteDynamicsWorld_addCollisionObject(void *c,void* p0,short int p1,short int p2); //method: addCollisionObject void ( ::btDiscreteDynamicsWorld::* )( ::btCollisionObject *,short int,short int ) +void btDiscreteDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) +void btDiscreteDynamicsWorld_integrateTransforms(void *c,float p0); //method: integrateTransforms void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_debugDrawConstraint(void *c,void* p0); //method: debugDrawConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint * ) +void btDiscreteDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btDiscreteDynamicsWorld::* )(  ) +void btDiscreteDynamicsWorld_calculateSimulationIslands(void *c); //method: calculateSimulationIslands void ( ::btDiscreteDynamicsWorld::* )(  ) +void btDiscreteDynamicsWorld_addConstraint(void *c,void* p0,int p1); //method: addConstraint void ( ::btDiscreteDynamicsWorld::* )( ::btTypedConstraint *,bool ) +void btDiscreteDynamicsWorld_startProfiling(void *c,float p0); //method: startProfiling void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_updateActivationState(void *c,float p0); //method: updateActivationState void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btDiscreteDynamicsWorld::* )(  ) const+void btDiscreteDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_removeCharacter(void *c,void* p0); //method: removeCharacter void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_saveKinematicState(void *c,float p0); //method: saveKinematicState void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void* btDiscreteDynamicsWorld_getConstraint(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDiscreteDynamicsWorld::* )( int ) +void* btDiscreteDynamicsWorld_getConstraint0(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDiscreteDynamicsWorld::* )( int ) +void* btDiscreteDynamicsWorld_getConstraint1(void *c,int p0); //method: getConstraint ::btTypedConstraint const * ( ::btDiscreteDynamicsWorld::* )( int ) const+void* btDiscreteDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btDiscreteDynamicsWorld::* )(  ) +//not supported method: getSimulationIslandManager ::btSimulationIslandManager * ( ::btDiscreteDynamicsWorld::* )(  ) +// error:  - unsupported++//not supported method: getSimulationIslandManager ::btSimulationIslandManager * ( ::btDiscreteDynamicsWorld::* )(  ) +// error:  - unsupported++//not supported method: getSimulationIslandManager ::btSimulationIslandManager const * ( ::btDiscreteDynamicsWorld::* )(  ) const+// error:  - unsupported++void btDiscreteDynamicsWorld_addCharacter(void *c,void* p0); //method: addCharacter void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_solveConstraints(void *c,void* p0); //method: solveConstraints void ( ::btDiscreteDynamicsWorld::* )( ::btContactSolverInfo & ) +//not supported method: getWorldType ::btDynamicsWorldType ( ::btDiscreteDynamicsWorld::* )(  ) const+// error:  - unsupported++void btDiscreteDynamicsWorld_updateActions(void *c,float p0); //method: updateActions void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_updateVehicles(void *c,float p0); //method: updateVehicles void ( ::btDiscreteDynamicsWorld::* )( ::btScalar ) +void btDiscreteDynamicsWorld_synchronizeSingleMotionState(void *c,void* p0); //method: synchronizeSingleMotionState void ( ::btDiscreteDynamicsWorld::* )( ::btRigidBody * ) +void btDiscreteDynamicsWorld_addVehicle(void *c,void* p0); //method: addVehicle void ( ::btDiscreteDynamicsWorld::* )( ::btActionInterface * ) +void btDiscreteDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btDiscreteDynamicsWorld::* )(  ) +int btDiscreteDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btDiscreteDynamicsWorld::* )( ::btScalar,int,::btScalar ) +void btDiscreteDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btDiscreteDynamicsWorld::* )( ::btCollisionObject * ) +void btDiscreteDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btDiscreteDynamicsWorld::* )( ::btConstraintSolver * ) +void btDiscreteDynamicsWorld_m_constraintSolver_set(void *c,void* a); //attribute: ::btConstraintSolver * btDiscreteDynamicsWorld->m_constraintSolver+void* btDiscreteDynamicsWorld_m_constraintSolver_get(void *c); //attribute: ::btConstraintSolver * btDiscreteDynamicsWorld->m_constraintSolver+// attribute not supported: //attribute: ::btSimulationIslandManager * btDiscreteDynamicsWorld->m_islandManager+void btDiscreteDynamicsWorld_m_constraints_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btTypedConstraint*> btDiscreteDynamicsWorld->m_constraints+void* btDiscreteDynamicsWorld_m_constraints_get(void *c); //attribute: ::btAlignedObjectArray<btTypedConstraint*> btDiscreteDynamicsWorld->m_constraints+void btDiscreteDynamicsWorld_m_nonStaticRigidBodies_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btRigidBody*> btDiscreteDynamicsWorld->m_nonStaticRigidBodies+void* btDiscreteDynamicsWorld_m_nonStaticRigidBodies_get(void *c); //attribute: ::btAlignedObjectArray<btRigidBody*> btDiscreteDynamicsWorld->m_nonStaticRigidBodies+void btDiscreteDynamicsWorld_m_gravity_set(void *c,float* a); //attribute: ::btVector3 btDiscreteDynamicsWorld->m_gravity+void btDiscreteDynamicsWorld_m_gravity_get(void *c,float* a);+void btDiscreteDynamicsWorld_m_localTime_set(void *c,float a); //attribute: ::btScalar btDiscreteDynamicsWorld->m_localTime+float btDiscreteDynamicsWorld_m_localTime_get(void *c); //attribute: ::btScalar btDiscreteDynamicsWorld->m_localTime+void btDiscreteDynamicsWorld_m_ownsIslandManager_set(void *c,int a); //attribute: bool btDiscreteDynamicsWorld->m_ownsIslandManager+int btDiscreteDynamicsWorld_m_ownsIslandManager_get(void *c); //attribute: bool btDiscreteDynamicsWorld->m_ownsIslandManager+void btDiscreteDynamicsWorld_m_ownsConstraintSolver_set(void *c,int a); //attribute: bool btDiscreteDynamicsWorld->m_ownsConstraintSolver+int btDiscreteDynamicsWorld_m_ownsConstraintSolver_get(void *c); //attribute: bool btDiscreteDynamicsWorld->m_ownsConstraintSolver+void btDiscreteDynamicsWorld_m_synchronizeAllMotionStates_set(void *c,int a); //attribute: bool btDiscreteDynamicsWorld->m_synchronizeAllMotionStates+int btDiscreteDynamicsWorld_m_synchronizeAllMotionStates_get(void *c); //attribute: bool btDiscreteDynamicsWorld->m_synchronizeAllMotionStates+void btDiscreteDynamicsWorld_m_actions_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btActionInterface*> btDiscreteDynamicsWorld->m_actions+void* btDiscreteDynamicsWorld_m_actions_get(void *c); //attribute: ::btAlignedObjectArray<btActionInterface*> btDiscreteDynamicsWorld->m_actions+void btDiscreteDynamicsWorld_m_profileTimings_set(void *c,int a); //attribute: int btDiscreteDynamicsWorld->m_profileTimings+int btDiscreteDynamicsWorld_m_profileTimings_get(void *c); //attribute: int btDiscreteDynamicsWorld->m_profileTimings+void btDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btDynamicsWorld::* )( ::btVector3 const & ) +void btDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +void* btDynamicsWorld_getSolverInfo(void *c); //method: getSolverInfo ::btContactSolverInfo & ( ::btDynamicsWorld::* )(  ) +void btDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) +void btDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) +void btDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody *,short int,short int ) +void btDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btDynamicsWorld::* )(  ) +void btDynamicsWorld_removeVehicle(void *c,void* p0); //method: removeVehicle void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +void btDynamicsWorld_removeConstraint(void *c,void* p0); //method: removeConstraint void ( ::btDynamicsWorld::* )( ::btTypedConstraint * ) +int btDynamicsWorld_getNumConstraints(void *c); //method: getNumConstraints int ( ::btDynamicsWorld::* )(  ) const+void btDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btDynamicsWorld::* )( ::btRigidBody * ) +//not supported method: setInternalTickCallback void ( ::btDynamicsWorld::* )( ::btInternalTickCallback,void *,bool ) +// error:  - unsupported, void * - ok, bool - ok, void - ok++void btDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btDynamicsWorld::* )(  ) +void btDynamicsWorld_addConstraint(void *c,void* p0,int p1); //method: addConstraint void ( ::btDynamicsWorld::* )( ::btTypedConstraint *,bool ) +void btDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btDynamicsWorld::* )(  ) const+void btDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btDynamicsWorld::* )(  ) +void btDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +void btDynamicsWorld_setWorldUserInfo(void *c,void* p0); //method: setWorldUserInfo void ( ::btDynamicsWorld::* )( void * ) +void btDynamicsWorld_removeCharacter(void *c,void* p0); //method: removeCharacter void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +void* btDynamicsWorld_getConstraint(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDynamicsWorld::* )( int ) +void* btDynamicsWorld_getConstraint0(void *c,int p0); //method: getConstraint ::btTypedConstraint * ( ::btDynamicsWorld::* )( int ) +void* btDynamicsWorld_getConstraint1(void *c,int p0); //method: getConstraint ::btTypedConstraint const * ( ::btDynamicsWorld::* )( int ) const+void* btDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btDynamicsWorld::* )(  ) +int btDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btDynamicsWorld::* )( ::btScalar,int,::btScalar ) +void btDynamicsWorld_addCharacter(void *c,void* p0); //method: addCharacter void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +//not supported method: getWorldType ::btDynamicsWorldType ( ::btDynamicsWorld::* )(  ) const+// error:  - unsupported++void btDynamicsWorld_addVehicle(void *c,void* p0); //method: addVehicle void ( ::btDynamicsWorld::* )( ::btActionInterface * ) +void* btDynamicsWorld_getWorldUserInfo(void *c); //method: getWorldUserInfo void * ( ::btDynamicsWorld::* )(  ) const+void btDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btDynamicsWorld::* )( ::btConstraintSolver * ) +// attribute not supported: //attribute: ::btInternalTickCallback btDynamicsWorld->m_internalTickCallback+// attribute not supported: //attribute: ::btInternalTickCallback btDynamicsWorld->m_internalPreTickCallback+void btDynamicsWorld_m_worldUserInfo_set(void *c,void* a); //attribute: void * btDynamicsWorld->m_worldUserInfo+void* btDynamicsWorld_m_worldUserInfo_get(void *c); //attribute: void * btDynamicsWorld->m_worldUserInfo+void btDynamicsWorld_m_solverInfo_set(void *c,void* a); //attribute: ::btContactSolverInfo btDynamicsWorld->m_solverInfo+void* btDynamicsWorld_m_solverInfo_get(void *c); //attribute: ::btContactSolverInfo btDynamicsWorld->m_solverInfo+void* btRigidBody_new0(void* p0); //constructor: btRigidBody  ( ::btRigidBody::* )( ::btRigidBody::btRigidBodyConstructionInfo const & ) +void* btRigidBody_new1(float p0,void* p1,void* p2,float* p3); //constructor: btRigidBody  ( ::btRigidBody::* )( ::btScalar,::btMotionState *,::btCollisionShape *,::btVector3 const & ) +void btRigidBody_free(void *c); +void btRigidBody_setGravity(void *c,float* p0); //method: setGravity void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_updateDeactivation(void *c,float p0); //method: updateDeactivation void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_setAngularFactor(void *c,float* p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_setAngularFactor0(void *c,float* p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_setAngularFactor1(void *c,float p0); //method: setAngularFactor void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_internalWritebackVelocity(void *c); //method: internalWritebackVelocity void ( ::btRigidBody::* )(  ) +void btRigidBody_internalWritebackVelocity0(void *c); //method: internalWritebackVelocity void ( ::btRigidBody::* )(  ) +void btRigidBody_internalWritebackVelocity1(void *c,float p0); //method: internalWritebackVelocity void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_getPushVelocity(void *c,float* ret); //method: getPushVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_internalGetDeltaAngularVelocity(void *c,float* ret); //method: internalGetDeltaAngularVelocity ::btVector3 & ( ::btRigidBody::* )(  ) +void btRigidBody_applyGravity(void *c); //method: applyGravity void ( ::btRigidBody::* )(  ) +char const * btRigidBody_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btRigidBody::* )( void *,::btSerializer * ) const+void btRigidBody_getOrientation(void *c,float* ret); //method: getOrientation ::btQuaternion ( ::btRigidBody::* )(  ) const+void btRigidBody_applyCentralForce(void *c,float* p0); //method: applyCentralForce void ( ::btRigidBody::* )( ::btVector3 const & ) +//not supported method: internalApplyImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar const ) +// error: ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported, void - ok++void btRigidBody_setMotionState(void *c,void* p0); //method: setMotionState void ( ::btRigidBody::* )( ::btMotionState * ) +void btRigidBody_clearForces(void *c); //method: clearForces void ( ::btRigidBody::* )(  ) +void* btRigidBody_getMotionState(void *c); //method: getMotionState ::btMotionState * ( ::btRigidBody::* )(  ) +void* btRigidBody_getMotionState0(void *c); //method: getMotionState ::btMotionState * ( ::btRigidBody::* )(  ) +void* btRigidBody_getMotionState1(void *c); //method: getMotionState ::btMotionState const * ( ::btRigidBody::* )(  ) const+void btRigidBody_setDamping(void *c,float p0,float p1); //method: setDamping void ( ::btRigidBody::* )( ::btScalar,::btScalar ) +void btRigidBody_applyImpulse(void *c,float* p0,float* p1); //method: applyImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) +void btRigidBody_applyTorque(void *c,float* p0); //method: applyTorque void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_internalApplyPushImpulse(void *c,float* p0,float* p1,float p2); //method: internalApplyPushImpulse void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +int btRigidBody_wantsSleeping(void *c); //method: wantsSleeping bool ( ::btRigidBody::* )(  ) +void btRigidBody_setNewBroadphaseProxy(void *c,void* p0); //method: setNewBroadphaseProxy void ( ::btRigidBody::* )( ::btBroadphaseProxy * ) +void btRigidBody_getVelocityInLocalPoint(void *c,float* p0,float* ret); //method: getVelocityInLocalPoint ::btVector3 ( ::btRigidBody::* )( ::btVector3 const & ) const+int btRigidBody_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btRigidBody::* )(  ) const+void btRigidBody_setAngularVelocity(void *c,float* p0); //method: setAngularVelocity void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_getLinearFactor(void *c,float* ret); //method: getLinearFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_predictIntegratedTransform(void *c,float p0,float* p1); //method: predictIntegratedTransform void ( ::btRigidBody::* )( ::btScalar,::btTransform & ) +void btRigidBody_internalGetAngularFactor(void *c,float* ret); //method: internalGetAngularFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const+float btRigidBody_getAngularSleepingThreshold(void *c); //method: getAngularSleepingThreshold ::btScalar ( ::btRigidBody::* )(  ) const+void btRigidBody_applyDamping(void *c,float p0); //method: applyDamping void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_saveKinematicState(void *c,float p0); //method: saveKinematicState void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_setSleepingThresholds(void *c,float p0,float p1); //method: setSleepingThresholds void ( ::btRigidBody::* )( ::btScalar,::btScalar ) +void btRigidBody_getAngularVelocity(void *c,float* ret); //method: getAngularVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+float btRigidBody_getLinearSleepingThreshold(void *c); //method: getLinearSleepingThreshold ::btScalar ( ::btRigidBody::* )(  ) const+void btRigidBody_internalGetInvMass(void *c,float* ret); //method: internalGetInvMass ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_applyTorqueImpulse(void *c,float* p0); //method: applyTorqueImpulse void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_internalGetPushVelocity(void *c,float* ret); //method: internalGetPushVelocity ::btVector3 & ( ::btRigidBody::* )(  ) +void btRigidBody_setLinearFactor(void *c,float* p0); //method: setLinearFactor void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_serializeSingleObject(void *c,void* p0); //method: serializeSingleObject void ( ::btRigidBody::* )( ::btSerializer * ) const+float btRigidBody_getInvMass(void *c); //method: getInvMass ::btScalar ( ::btRigidBody::* )(  ) const+void btRigidBody_getTotalForce(void *c,float* ret); //method: getTotalForce ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getCenterOfMassPosition(void *c,float* ret); //method: getCenterOfMassPosition ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getAabb(void *c,float* p0,float* p1); //method: getAabb void ( ::btRigidBody::* )( ::btVector3 &,::btVector3 & ) const+void* btRigidBody_getBroadphaseProxy(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy const * ( ::btRigidBody::* )(  ) const+void* btRigidBody_getBroadphaseProxy0(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy const * ( ::btRigidBody::* )(  ) const+void* btRigidBody_getBroadphaseProxy1(void *c); //method: getBroadphaseProxy ::btBroadphaseProxy * ( ::btRigidBody::* )(  ) +void* btRigidBody_getCollisionShape(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btRigidBody::* )(  ) const+void* btRigidBody_getCollisionShape0(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btRigidBody::* )(  ) const+void* btRigidBody_getCollisionShape1(void *c); //method: getCollisionShape ::btCollisionShape * ( ::btRigidBody::* )(  ) +void* btRigidBody_upcast(void* p0); //method: upcast ::btRigidBody const * (*)( ::btCollisionObject const * )+void* btRigidBody_upcast0(void* p0); //method: upcast ::btRigidBody const * (*)( ::btCollisionObject const * )+void* btRigidBody_upcast1(void* p0); //method: upcast ::btRigidBody * (*)( ::btCollisionObject * )+int btRigidBody_checkCollideWithOverride(void *c,void* p0); //method: checkCollideWithOverride bool ( ::btRigidBody::* )( ::btCollisionObject * ) +void btRigidBody_translate(void *c,float* p0); //method: translate void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_updateInertiaTensor(void *c); //method: updateInertiaTensor void ( ::btRigidBody::* )(  ) +void btRigidBody_applyForce(void *c,float* p0,float* p1); //method: applyForce void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) +void btRigidBody_internalGetAngularVelocity(void *c,float* p0); //method: internalGetAngularVelocity void ( ::btRigidBody::* )( ::btVector3 & ) const+void btRigidBody_setupRigidBody(void *c,void* p0); //method: setupRigidBody void ( ::btRigidBody::* )( ::btRigidBody::btRigidBodyConstructionInfo const & ) +void btRigidBody_applyCentralImpulse(void *c,float* p0); //method: applyCentralImpulse void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_getTurnVelocity(void *c,float* ret); //method: getTurnVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getDeltaLinearVelocity(void *c,float* ret); //method: getDeltaLinearVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_integrateVelocities(void *c,float p0); //method: integrateVelocities void ( ::btRigidBody::* )( ::btScalar ) +void btRigidBody_getGravity(void *c,float* ret); //method: getGravity ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_setMassProps(void *c,float p0,float* p1); //method: setMassProps void ( ::btRigidBody::* )( ::btScalar,::btVector3 const & ) +void btRigidBody_setCenterOfMassTransform(void *c,float* p0); //method: setCenterOfMassTransform void ( ::btRigidBody::* )( ::btTransform const & ) +void btRigidBody_setFlags(void *c,int p0); //method: setFlags void ( ::btRigidBody::* )( int ) +void btRigidBody_addConstraintRef(void *c,void* p0); //method: addConstraintRef void ( ::btRigidBody::* )( ::btTypedConstraint * ) +void btRigidBody_setLinearVelocity(void *c,float* p0); //method: setLinearVelocity void ( ::btRigidBody::* )( ::btVector3 const & ) +int btRigidBody_isInWorld(void *c); //method: isInWorld bool ( ::btRigidBody::* )(  ) const+void btRigidBody_getTotalTorque(void *c,float* ret); //method: getTotalTorque ::btVector3 const & ( ::btRigidBody::* )(  ) const+int btRigidBody_getNumConstraintRefs(void *c); //method: getNumConstraintRefs int ( ::btRigidBody::* )(  ) const+float btRigidBody_computeAngularImpulseDenominator(void *c,float* p0); //method: computeAngularImpulseDenominator ::btScalar ( ::btRigidBody::* )( ::btVector3 const & ) const+void btRigidBody_getInvInertiaTensorWorld(void *c,float* ret); //method: getInvInertiaTensorWorld ::btMatrix3x3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getDeltaAngularVelocity(void *c,float* ret); //method: getDeltaAngularVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_internalGetDeltaLinearVelocity(void *c,float* ret); //method: internalGetDeltaLinearVelocity ::btVector3 & ( ::btRigidBody::* )(  ) +float btRigidBody_computeImpulseDenominator(void *c,float* p0,float* p1); //method: computeImpulseDenominator ::btScalar ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 const & ) const+void* btRigidBody_getConstraintRef(void *c,int p0); //method: getConstraintRef ::btTypedConstraint * ( ::btRigidBody::* )( int ) +float btRigidBody_getAngularDamping(void *c); //method: getAngularDamping ::btScalar ( ::btRigidBody::* )(  ) const+void btRigidBody_internalGetTurnVelocity(void *c,float* ret); //method: internalGetTurnVelocity ::btVector3 & ( ::btRigidBody::* )(  ) +void btRigidBody_proceedToTransform(void *c,float* p0); //method: proceedToTransform void ( ::btRigidBody::* )( ::btTransform const & ) +void btRigidBody_setInvInertiaDiagLocal(void *c,float* p0); //method: setInvInertiaDiagLocal void ( ::btRigidBody::* )( ::btVector3 const & ) +void btRigidBody_getInvInertiaDiagLocal(void *c,float* ret); //method: getInvInertiaDiagLocal ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getCenterOfMassTransform(void *c,float* ret); //method: getCenterOfMassTransform ::btTransform const & ( ::btRigidBody::* )(  ) const+void btRigidBody_removeConstraintRef(void *c,void* p0); //method: removeConstraintRef void ( ::btRigidBody::* )( ::btTypedConstraint * ) +void btRigidBody_getAngularFactor(void *c,float* ret); //method: getAngularFactor ::btVector3 const & ( ::btRigidBody::* )(  ) const+void btRigidBody_getLinearVelocity(void *c,float* ret); //method: getLinearVelocity ::btVector3 const & ( ::btRigidBody::* )(  ) const+int btRigidBody_getFlags(void *c); //method: getFlags int ( ::btRigidBody::* )(  ) const+void btRigidBody_internalGetVelocityInLocalPointObsolete(void *c,float* p0,float* p1); //method: internalGetVelocityInLocalPointObsolete void ( ::btRigidBody::* )( ::btVector3 const &,::btVector3 & ) const+float btRigidBody_getLinearDamping(void *c); //method: getLinearDamping ::btScalar ( ::btRigidBody::* )(  ) const+void btRigidBody_m_additionalAngularDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_additionalAngularDampingFactor+float btRigidBody_m_additionalAngularDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody->m_additionalAngularDampingFactor+void btRigidBody_m_additionalAngularDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_additionalAngularDampingThresholdSqr+float btRigidBody_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody->m_additionalAngularDampingThresholdSqr+void btRigidBody_m_additionalDamping_set(void *c,int a); //attribute: bool btRigidBody->m_additionalDamping+int btRigidBody_m_additionalDamping_get(void *c); //attribute: bool btRigidBody->m_additionalDamping+void btRigidBody_m_additionalDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_additionalDampingFactor+float btRigidBody_m_additionalDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody->m_additionalDampingFactor+void btRigidBody_m_additionalLinearDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_additionalLinearDampingThresholdSqr+float btRigidBody_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody->m_additionalLinearDampingThresholdSqr+void btRigidBody_m_angularDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_angularDamping+float btRigidBody_m_angularDamping_get(void *c); //attribute: ::btScalar btRigidBody->m_angularDamping+void btRigidBody_m_angularFactor_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_angularFactor+void btRigidBody_m_angularFactor_get(void *c,float* a);+void btRigidBody_m_angularSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_angularSleepingThreshold+float btRigidBody_m_angularSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody->m_angularSleepingThreshold+void btRigidBody_m_angularVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_angularVelocity+void btRigidBody_m_angularVelocity_get(void *c,float* a);+void btRigidBody_m_constraintRefs_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btTypedConstraint*> btRigidBody->m_constraintRefs+void* btRigidBody_m_constraintRefs_get(void *c); //attribute: ::btAlignedObjectArray<btTypedConstraint*> btRigidBody->m_constraintRefs+void btRigidBody_m_contactSolverType_set(void *c,int a); //attribute: int btRigidBody->m_contactSolverType+int btRigidBody_m_contactSolverType_get(void *c); //attribute: int btRigidBody->m_contactSolverType+void btRigidBody_m_debugBodyId_set(void *c,int a); //attribute: int btRigidBody->m_debugBodyId+int btRigidBody_m_debugBodyId_get(void *c); //attribute: int btRigidBody->m_debugBodyId+void btRigidBody_m_deltaAngularVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_deltaAngularVelocity+void btRigidBody_m_deltaAngularVelocity_get(void *c,float* a);+void btRigidBody_m_deltaLinearVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_deltaLinearVelocity+void btRigidBody_m_deltaLinearVelocity_get(void *c,float* a);+void btRigidBody_m_frictionSolverType_set(void *c,int a); //attribute: int btRigidBody->m_frictionSolverType+int btRigidBody_m_frictionSolverType_get(void *c); //attribute: int btRigidBody->m_frictionSolverType+void btRigidBody_m_gravity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_gravity+void btRigidBody_m_gravity_get(void *c,float* a);+void btRigidBody_m_gravity_acceleration_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_gravity_acceleration+void btRigidBody_m_gravity_acceleration_get(void *c,float* a);+void btRigidBody_m_invInertiaLocal_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_invInertiaLocal+void btRigidBody_m_invInertiaLocal_get(void *c,float* a);+void btRigidBody_m_invInertiaTensorWorld_set(void *c,float* a); //attribute: ::btMatrix3x3 btRigidBody->m_invInertiaTensorWorld+void btRigidBody_m_invInertiaTensorWorld_get(void *c,float* a);+void btRigidBody_m_invMass_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_invMass+void btRigidBody_m_invMass_get(void *c,float* a);+void btRigidBody_m_inverseMass_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_inverseMass+float btRigidBody_m_inverseMass_get(void *c); //attribute: ::btScalar btRigidBody->m_inverseMass+void btRigidBody_m_linearDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_linearDamping+float btRigidBody_m_linearDamping_get(void *c); //attribute: ::btScalar btRigidBody->m_linearDamping+void btRigidBody_m_linearFactor_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_linearFactor+void btRigidBody_m_linearFactor_get(void *c,float* a);+void btRigidBody_m_linearSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody->m_linearSleepingThreshold+float btRigidBody_m_linearSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody->m_linearSleepingThreshold+void btRigidBody_m_linearVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_linearVelocity+void btRigidBody_m_linearVelocity_get(void *c,float* a);+void btRigidBody_m_optionalMotionState_set(void *c,void* a); //attribute: ::btMotionState * btRigidBody->m_optionalMotionState+void* btRigidBody_m_optionalMotionState_get(void *c); //attribute: ::btMotionState * btRigidBody->m_optionalMotionState+void btRigidBody_m_pushVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_pushVelocity+void btRigidBody_m_pushVelocity_get(void *c,float* a);+void btRigidBody_m_rigidbodyFlags_set(void *c,int a); //attribute: int btRigidBody->m_rigidbodyFlags+int btRigidBody_m_rigidbodyFlags_get(void *c); //attribute: int btRigidBody->m_rigidbodyFlags+void btRigidBody_m_totalForce_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_totalForce+void btRigidBody_m_totalForce_get(void *c,float* a);+void btRigidBody_m_totalTorque_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_totalTorque+void btRigidBody_m_totalTorque_get(void *c,float* a);+void btRigidBody_m_turnVelocity_set(void *c,float* a); //attribute: ::btVector3 btRigidBody->m_turnVelocity+void btRigidBody_m_turnVelocity_get(void *c,float* a);+void* btRigidBody_btRigidBodyConstructionInfo_new(float p0,void* p1,void* p2,float* p3); //constructor: btRigidBodyConstructionInfo  ( ::btRigidBody::btRigidBodyConstructionInfo::* )( ::btScalar,::btMotionState *,::btCollisionShape *,::btVector3 const & ) +void btRigidBody_btRigidBodyConstructionInfo_free(void *c); +void btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingFactor+float btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingFactor+void btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingThresholdSqr+float btRigidBody_btRigidBodyConstructionInfo_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalAngularDampingThresholdSqr+void btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_set(void *c,int a); //attribute: bool btRigidBody_btRigidBodyConstructionInfo->m_additionalDamping+int btRigidBody_btRigidBodyConstructionInfo_m_additionalDamping_get(void *c); //attribute: bool btRigidBody_btRigidBodyConstructionInfo->m_additionalDamping+void btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalDampingFactor+float btRigidBody_btRigidBodyConstructionInfo_m_additionalDampingFactor_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalDampingFactor+void btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalLinearDampingThresholdSqr+float btRigidBody_btRigidBodyConstructionInfo_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_additionalLinearDampingThresholdSqr+void btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularDamping+float btRigidBody_btRigidBodyConstructionInfo_m_angularDamping_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularDamping+void btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularSleepingThreshold+float btRigidBody_btRigidBodyConstructionInfo_m_angularSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_angularSleepingThreshold+void btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_set(void *c,void* a); //attribute: ::btCollisionShape * btRigidBody_btRigidBodyConstructionInfo->m_collisionShape+void* btRigidBody_btRigidBodyConstructionInfo_m_collisionShape_get(void *c); //attribute: ::btCollisionShape * btRigidBody_btRigidBodyConstructionInfo->m_collisionShape+void btRigidBody_btRigidBodyConstructionInfo_m_friction_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_friction+float btRigidBody_btRigidBodyConstructionInfo_m_friction_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_friction+void btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearDamping+float btRigidBody_btRigidBodyConstructionInfo_m_linearDamping_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearDamping+void btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearSleepingThreshold+float btRigidBody_btRigidBodyConstructionInfo_m_linearSleepingThreshold_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_linearSleepingThreshold+void btRigidBody_btRigidBodyConstructionInfo_m_localInertia_set(void *c,float* a); //attribute: ::btVector3 btRigidBody_btRigidBodyConstructionInfo->m_localInertia+void btRigidBody_btRigidBodyConstructionInfo_m_localInertia_get(void *c,float* a);+void btRigidBody_btRigidBodyConstructionInfo_m_mass_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_mass+float btRigidBody_btRigidBodyConstructionInfo_m_mass_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_mass+void btRigidBody_btRigidBodyConstructionInfo_m_motionState_set(void *c,void* a); //attribute: ::btMotionState * btRigidBody_btRigidBodyConstructionInfo->m_motionState+void* btRigidBody_btRigidBodyConstructionInfo_m_motionState_get(void *c); //attribute: ::btMotionState * btRigidBody_btRigidBodyConstructionInfo->m_motionState+void btRigidBody_btRigidBodyConstructionInfo_m_restitution_set(void *c,float a); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_restitution+float btRigidBody_btRigidBodyConstructionInfo_m_restitution_get(void *c); //attribute: ::btScalar btRigidBody_btRigidBodyConstructionInfo->m_restitution+void btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_set(void *c,float* a); //attribute: ::btTransform btRigidBody_btRigidBodyConstructionInfo->m_startWorldTransform+void btRigidBody_btRigidBodyConstructionInfo_m_startWorldTransform_get(void *c,float* a);+void* btRigidBodyDoubleData_new(); //constructor: btRigidBodyDoubleData  ( ::btRigidBodyDoubleData::* )(  ) +void btRigidBodyDoubleData_free(void *c); +void btRigidBodyDoubleData_m_collisionObjectData_set(void *c,void* a); //attribute: ::btCollisionObjectDoubleData btRigidBodyDoubleData->m_collisionObjectData+void* btRigidBodyDoubleData_m_collisionObjectData_get(void *c); //attribute: ::btCollisionObjectDoubleData btRigidBodyDoubleData->m_collisionObjectData+void btRigidBodyDoubleData_m_invInertiaTensorWorld_set(void *c,void* a); //attribute: ::btMatrix3x3DoubleData btRigidBodyDoubleData->m_invInertiaTensorWorld+void* btRigidBodyDoubleData_m_invInertiaTensorWorld_get(void *c); //attribute: ::btMatrix3x3DoubleData btRigidBodyDoubleData->m_invInertiaTensorWorld+void btRigidBodyDoubleData_m_linearVelocity_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearVelocity+void* btRigidBodyDoubleData_m_linearVelocity_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearVelocity+void btRigidBodyDoubleData_m_angularVelocity_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularVelocity+void* btRigidBodyDoubleData_m_angularVelocity_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularVelocity+void btRigidBodyDoubleData_m_angularFactor_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularFactor+void* btRigidBodyDoubleData_m_angularFactor_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_angularFactor+void btRigidBodyDoubleData_m_linearFactor_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearFactor+void* btRigidBodyDoubleData_m_linearFactor_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_linearFactor+void btRigidBodyDoubleData_m_gravity_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity+void* btRigidBodyDoubleData_m_gravity_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity+void btRigidBodyDoubleData_m_gravity_acceleration_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity_acceleration+void* btRigidBodyDoubleData_m_gravity_acceleration_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_gravity_acceleration+void btRigidBodyDoubleData_m_invInertiaLocal_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_invInertiaLocal+void* btRigidBodyDoubleData_m_invInertiaLocal_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_invInertiaLocal+void btRigidBodyDoubleData_m_totalForce_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalForce+void* btRigidBodyDoubleData_m_totalForce_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalForce+void btRigidBodyDoubleData_m_totalTorque_set(void *c,void* a); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalTorque+void* btRigidBodyDoubleData_m_totalTorque_get(void *c); //attribute: ::btVector3DoubleData btRigidBodyDoubleData->m_totalTorque+void btRigidBodyDoubleData_m_inverseMass_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_inverseMass+double btRigidBodyDoubleData_m_inverseMass_get(void *c); //attribute: double btRigidBodyDoubleData->m_inverseMass+void btRigidBodyDoubleData_m_linearDamping_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_linearDamping+double btRigidBodyDoubleData_m_linearDamping_get(void *c); //attribute: double btRigidBodyDoubleData->m_linearDamping+void btRigidBodyDoubleData_m_angularDamping_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_angularDamping+double btRigidBodyDoubleData_m_angularDamping_get(void *c); //attribute: double btRigidBodyDoubleData->m_angularDamping+void btRigidBodyDoubleData_m_additionalDampingFactor_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalDampingFactor+double btRigidBodyDoubleData_m_additionalDampingFactor_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalDampingFactor+void btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalLinearDampingThresholdSqr+double btRigidBodyDoubleData_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalLinearDampingThresholdSqr+void btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingThresholdSqr+double btRigidBodyDoubleData_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingThresholdSqr+void btRigidBodyDoubleData_m_additionalAngularDampingFactor_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingFactor+double btRigidBodyDoubleData_m_additionalAngularDampingFactor_get(void *c); //attribute: double btRigidBodyDoubleData->m_additionalAngularDampingFactor+void btRigidBodyDoubleData_m_linearSleepingThreshold_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_linearSleepingThreshold+double btRigidBodyDoubleData_m_linearSleepingThreshold_get(void *c); //attribute: double btRigidBodyDoubleData->m_linearSleepingThreshold+void btRigidBodyDoubleData_m_angularSleepingThreshold_set(void *c,double a); //attribute: double btRigidBodyDoubleData->m_angularSleepingThreshold+double btRigidBodyDoubleData_m_angularSleepingThreshold_get(void *c); //attribute: double btRigidBodyDoubleData->m_angularSleepingThreshold+void btRigidBodyDoubleData_m_additionalDamping_set(void *c,int a); //attribute: int btRigidBodyDoubleData->m_additionalDamping+int btRigidBodyDoubleData_m_additionalDamping_get(void *c); //attribute: int btRigidBodyDoubleData->m_additionalDamping+// attribute not supported: //attribute: char[4] btRigidBodyDoubleData->m_padding+void* btRigidBodyFloatData_new(); //constructor: btRigidBodyFloatData  ( ::btRigidBodyFloatData::* )(  ) +void btRigidBodyFloatData_free(void *c); +void btRigidBodyFloatData_m_additionalAngularDampingFactor_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingFactor+float btRigidBodyFloatData_m_additionalAngularDampingFactor_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingFactor+void btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingThresholdSqr+float btRigidBodyFloatData_m_additionalAngularDampingThresholdSqr_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalAngularDampingThresholdSqr+void btRigidBodyFloatData_m_additionalDamping_set(void *c,int a); //attribute: int btRigidBodyFloatData->m_additionalDamping+int btRigidBodyFloatData_m_additionalDamping_get(void *c); //attribute: int btRigidBodyFloatData->m_additionalDamping+void btRigidBodyFloatData_m_additionalDampingFactor_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalDampingFactor+float btRigidBodyFloatData_m_additionalDampingFactor_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalDampingFactor+void btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_additionalLinearDampingThresholdSqr+float btRigidBodyFloatData_m_additionalLinearDampingThresholdSqr_get(void *c); //attribute: float btRigidBodyFloatData->m_additionalLinearDampingThresholdSqr+void btRigidBodyFloatData_m_angularDamping_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_angularDamping+float btRigidBodyFloatData_m_angularDamping_get(void *c); //attribute: float btRigidBodyFloatData->m_angularDamping+void btRigidBodyFloatData_m_angularFactor_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularFactor+void* btRigidBodyFloatData_m_angularFactor_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularFactor+void btRigidBodyFloatData_m_angularSleepingThreshold_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_angularSleepingThreshold+float btRigidBodyFloatData_m_angularSleepingThreshold_get(void *c); //attribute: float btRigidBodyFloatData->m_angularSleepingThreshold+void btRigidBodyFloatData_m_angularVelocity_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularVelocity+void* btRigidBodyFloatData_m_angularVelocity_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_angularVelocity+void btRigidBodyFloatData_m_collisionObjectData_set(void *c,void* a); //attribute: ::btCollisionObjectFloatData btRigidBodyFloatData->m_collisionObjectData+void* btRigidBodyFloatData_m_collisionObjectData_get(void *c); //attribute: ::btCollisionObjectFloatData btRigidBodyFloatData->m_collisionObjectData+void btRigidBodyFloatData_m_gravity_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity+void* btRigidBodyFloatData_m_gravity_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity+void btRigidBodyFloatData_m_gravity_acceleration_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity_acceleration+void* btRigidBodyFloatData_m_gravity_acceleration_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_gravity_acceleration+void btRigidBodyFloatData_m_invInertiaLocal_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_invInertiaLocal+void* btRigidBodyFloatData_m_invInertiaLocal_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_invInertiaLocal+void btRigidBodyFloatData_m_invInertiaTensorWorld_set(void *c,void* a); //attribute: ::btMatrix3x3FloatData btRigidBodyFloatData->m_invInertiaTensorWorld+void* btRigidBodyFloatData_m_invInertiaTensorWorld_get(void *c); //attribute: ::btMatrix3x3FloatData btRigidBodyFloatData->m_invInertiaTensorWorld+void btRigidBodyFloatData_m_inverseMass_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_inverseMass+float btRigidBodyFloatData_m_inverseMass_get(void *c); //attribute: float btRigidBodyFloatData->m_inverseMass+void btRigidBodyFloatData_m_linearDamping_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_linearDamping+float btRigidBodyFloatData_m_linearDamping_get(void *c); //attribute: float btRigidBodyFloatData->m_linearDamping+void btRigidBodyFloatData_m_linearFactor_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearFactor+void* btRigidBodyFloatData_m_linearFactor_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearFactor+void btRigidBodyFloatData_m_linearSleepingThreshold_set(void *c,float a); //attribute: float btRigidBodyFloatData->m_linearSleepingThreshold+float btRigidBodyFloatData_m_linearSleepingThreshold_get(void *c); //attribute: float btRigidBodyFloatData->m_linearSleepingThreshold+void btRigidBodyFloatData_m_linearVelocity_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearVelocity+void* btRigidBodyFloatData_m_linearVelocity_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_linearVelocity+void btRigidBodyFloatData_m_totalForce_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalForce+void* btRigidBodyFloatData_m_totalForce_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalForce+void btRigidBodyFloatData_m_totalTorque_set(void *c,void* a); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalTorque+void* btRigidBodyFloatData_m_totalTorque_get(void *c); //attribute: ::btVector3FloatData btRigidBodyFloatData->m_totalTorque+void* btSimpleDynamicsWorld_new(void* p0,void* p1,void* p2,void* p3); //constructor: btSimpleDynamicsWorld  ( ::btSimpleDynamicsWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btConstraintSolver *,::btCollisionConfiguration * ) +void btSimpleDynamicsWorld_free(void *c); +void btSimpleDynamicsWorld_predictUnconstraintMotion(void *c,float p0); //method: predictUnconstraintMotion void ( ::btSimpleDynamicsWorld::* )( ::btScalar ) +void btSimpleDynamicsWorld_setGravity(void *c,float* p0); //method: setGravity void ( ::btSimpleDynamicsWorld::* )( ::btVector3 const & ) +void btSimpleDynamicsWorld_addAction(void *c,void* p0); //method: addAction void ( ::btSimpleDynamicsWorld::* )( ::btActionInterface * ) +void btSimpleDynamicsWorld_synchronizeMotionStates(void *c); //method: synchronizeMotionStates void ( ::btSimpleDynamicsWorld::* )(  ) +void btSimpleDynamicsWorld_setConstraintSolver(void *c,void* p0); //method: setConstraintSolver void ( ::btSimpleDynamicsWorld::* )( ::btConstraintSolver * ) +int btSimpleDynamicsWorld_stepSimulation(void *c,float p0,int p1,float p2); //method: stepSimulation int ( ::btSimpleDynamicsWorld::* )( ::btScalar,int,::btScalar ) +void* btSimpleDynamicsWorld_getConstraintSolver(void *c); //method: getConstraintSolver ::btConstraintSolver * ( ::btSimpleDynamicsWorld::* )(  ) +//not supported method: getWorldType ::btDynamicsWorldType ( ::btSimpleDynamicsWorld::* )(  ) const+// error:  - unsupported++void btSimpleDynamicsWorld_removeRigidBody(void *c,void* p0); //method: removeRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) +void btSimpleDynamicsWorld_addRigidBody(void *c,void* p0); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) +void btSimpleDynamicsWorld_addRigidBody0(void *c,void* p0); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody * ) +void btSimpleDynamicsWorld_addRigidBody1(void *c,void* p0,short int p1,short int p2); //method: addRigidBody void ( ::btSimpleDynamicsWorld::* )( ::btRigidBody *,short int,short int ) +void btSimpleDynamicsWorld_getGravity(void *c,float* ret); //method: getGravity ::btVector3 ( ::btSimpleDynamicsWorld::* )(  ) const+void btSimpleDynamicsWorld_integrateTransforms(void *c,float p0); //method: integrateTransforms void ( ::btSimpleDynamicsWorld::* )( ::btScalar ) +void btSimpleDynamicsWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btSimpleDynamicsWorld::* )( ::btCollisionObject * ) +void btSimpleDynamicsWorld_clearForces(void *c); //method: clearForces void ( ::btSimpleDynamicsWorld::* )(  ) +void btSimpleDynamicsWorld_removeAction(void *c,void* p0); //method: removeAction void ( ::btSimpleDynamicsWorld::* )( ::btActionInterface * ) +void btSimpleDynamicsWorld_updateAabbs(void *c); //method: updateAabbs void ( ::btSimpleDynamicsWorld::* )(  ) +void btSimpleDynamicsWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btSimpleDynamicsWorld::* )(  ) +void btSimpleDynamicsWorld_m_constraintSolver_set(void *c,void* a); //attribute: ::btConstraintSolver * btSimpleDynamicsWorld->m_constraintSolver+void* btSimpleDynamicsWorld_m_constraintSolver_get(void *c); //attribute: ::btConstraintSolver * btSimpleDynamicsWorld->m_constraintSolver+void btSimpleDynamicsWorld_m_ownsConstraintSolver_set(void *c,int a); //attribute: bool btSimpleDynamicsWorld->m_ownsConstraintSolver+int btSimpleDynamicsWorld_m_ownsConstraintSolver_get(void *c); //attribute: bool btSimpleDynamicsWorld->m_ownsConstraintSolver+void btSimpleDynamicsWorld_m_gravity_set(void *c,float* a); //attribute: ::btVector3 btSimpleDynamicsWorld->m_gravity+void btSimpleDynamicsWorld_m_gravity_get(void *c,float* a);+void* btWheelInfo_RaycastInfo_new(); //constructor: RaycastInfo  ( ::btWheelInfo::RaycastInfo::* )(  ) +void btWheelInfo_RaycastInfo_free(void *c); +void btWheelInfo_RaycastInfo_m_contactNormalWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_contactNormalWS+void btWheelInfo_RaycastInfo_m_contactNormalWS_get(void *c,float* a);+void btWheelInfo_RaycastInfo_m_contactPointWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_contactPointWS+void btWheelInfo_RaycastInfo_m_contactPointWS_get(void *c,float* a);+void btWheelInfo_RaycastInfo_m_suspensionLength_set(void *c,float a); //attribute: ::btScalar btWheelInfo_RaycastInfo->m_suspensionLength+float btWheelInfo_RaycastInfo_m_suspensionLength_get(void *c); //attribute: ::btScalar btWheelInfo_RaycastInfo->m_suspensionLength+void btWheelInfo_RaycastInfo_m_hardPointWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_hardPointWS+void btWheelInfo_RaycastInfo_m_hardPointWS_get(void *c,float* a);+void btWheelInfo_RaycastInfo_m_wheelDirectionWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_wheelDirectionWS+void btWheelInfo_RaycastInfo_m_wheelDirectionWS_get(void *c,float* a);+void btWheelInfo_RaycastInfo_m_wheelAxleWS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo_RaycastInfo->m_wheelAxleWS+void btWheelInfo_RaycastInfo_m_wheelAxleWS_get(void *c,float* a);+void btWheelInfo_RaycastInfo_m_isInContact_set(void *c,int a); //attribute: bool btWheelInfo_RaycastInfo->m_isInContact+int btWheelInfo_RaycastInfo_m_isInContact_get(void *c); //attribute: bool btWheelInfo_RaycastInfo->m_isInContact+void btWheelInfo_RaycastInfo_m_groundObject_set(void *c,void* a); //attribute: void * btWheelInfo_RaycastInfo->m_groundObject+void* btWheelInfo_RaycastInfo_m_groundObject_get(void *c); //attribute: void * btWheelInfo_RaycastInfo->m_groundObject+void* btDefaultVehicleRaycaster_new(void* p0); //constructor: btDefaultVehicleRaycaster  ( ::btDefaultVehicleRaycaster::* )( ::btDynamicsWorld * ) +void btDefaultVehicleRaycaster_free(void *c); +void* btDefaultVehicleRaycaster_castRay(void *c,float* p0,float* p1,void* p2); //method: castRay void * ( ::btDefaultVehicleRaycaster::* )( ::btVector3 const &,::btVector3 const &,::btVehicleRaycaster::btVehicleRaycasterResult & ) +void btDefaultVehicleRaycaster_m_dynamicsWorld_set(void *c,void* a); //attribute: ::btDynamicsWorld * btDefaultVehicleRaycaster->m_dynamicsWorld+void* btDefaultVehicleRaycaster_m_dynamicsWorld_get(void *c); //attribute: ::btDynamicsWorld * btDefaultVehicleRaycaster->m_dynamicsWorld+void* btRaycastVehicle_new(void* p0,void* p1,void* p2); //constructor: btRaycastVehicle  ( ::btRaycastVehicle::* )( ::btRaycastVehicle::btVehicleTuning const &,::btRigidBody *,::btVehicleRaycaster * ) +void btRaycastVehicle_free(void *c); +void btRaycastVehicle_updateSuspension(void *c,float p0); //method: updateSuspension void ( ::btRaycastVehicle::* )( ::btScalar ) +void* btRaycastVehicle_getRigidBody(void *c); //method: getRigidBody ::btRigidBody * ( ::btRaycastVehicle::* )(  ) +void* btRaycastVehicle_getRigidBody0(void *c); //method: getRigidBody ::btRigidBody * ( ::btRaycastVehicle::* )(  ) +void* btRaycastVehicle_getRigidBody1(void *c); //method: getRigidBody ::btRigidBody const * ( ::btRaycastVehicle::* )(  ) const+int btRaycastVehicle_getUserConstraintId(void *c); //method: getUserConstraintId int ( ::btRaycastVehicle::* )(  ) const+void btRaycastVehicle_defaultInit(void *c,void* p0); //method: defaultInit void ( ::btRaycastVehicle::* )( ::btRaycastVehicle::btVehicleTuning const & ) +void btRaycastVehicle_getWheelTransformWS(void *c,int p0,float* ret); //method: getWheelTransformWS ::btTransform const & ( ::btRaycastVehicle::* )( int ) const+void* btRaycastVehicle_addWheel(void *c,float* p0,float* p1,float* p2,float p3,float p4,void* p5,int p6); //method: addWheel ::btWheelInfo & ( ::btRaycastVehicle::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar,::btScalar,::btRaycastVehicle::btVehicleTuning const &,bool ) +void btRaycastVehicle_updateWheelTransform(void *c,int p0,int p1); //method: updateWheelTransform void ( ::btRaycastVehicle::* )( int,bool ) +void btRaycastVehicle_setUserConstraintId(void *c,int p0); //method: setUserConstraintId void ( ::btRaycastVehicle::* )( int ) +int btRaycastVehicle_getNumWheels(void *c); //method: getNumWheels int ( ::btRaycastVehicle::* )(  ) const+float btRaycastVehicle_rayCast(void *c,void* p0); //method: rayCast ::btScalar ( ::btRaycastVehicle::* )( ::btWheelInfo & ) +int btRaycastVehicle_getRightAxis(void *c); //method: getRightAxis int ( ::btRaycastVehicle::* )(  ) const+void btRaycastVehicle_applyEngineForce(void *c,float p0,int p1); //method: applyEngineForce void ( ::btRaycastVehicle::* )( ::btScalar,int ) +void btRaycastVehicle_getForwardVector(void *c,float* ret); //method: getForwardVector ::btVector3 ( ::btRaycastVehicle::* )(  ) const+void* btRaycastVehicle_getWheelInfo(void *c,int p0); //method: getWheelInfo ::btWheelInfo const & ( ::btRaycastVehicle::* )( int ) const+void* btRaycastVehicle_getWheelInfo0(void *c,int p0); //method: getWheelInfo ::btWheelInfo const & ( ::btRaycastVehicle::* )( int ) const+void* btRaycastVehicle_getWheelInfo1(void *c,int p0); //method: getWheelInfo ::btWheelInfo & ( ::btRaycastVehicle::* )( int ) +void btRaycastVehicle_getChassisWorldTransform(void *c,float* ret); //method: getChassisWorldTransform ::btTransform const & ( ::btRaycastVehicle::* )(  ) const+void btRaycastVehicle_updateWheelTransformsWS(void *c,void* p0,int p1); //method: updateWheelTransformsWS void ( ::btRaycastVehicle::* )( ::btWheelInfo &,bool ) +void btRaycastVehicle_resetSuspension(void *c); //method: resetSuspension void ( ::btRaycastVehicle::* )(  ) +void btRaycastVehicle_setCoordinateSystem(void *c,int p0,int p1,int p2); //method: setCoordinateSystem void ( ::btRaycastVehicle::* )( int,int,int ) +void btRaycastVehicle_setUserConstraintType(void *c,int p0); //method: setUserConstraintType void ( ::btRaycastVehicle::* )( int ) +void btRaycastVehicle_debugDraw(void *c,void* p0); //method: debugDraw void ( ::btRaycastVehicle::* )( ::btIDebugDraw * ) +void btRaycastVehicle_updateFriction(void *c,float p0); //method: updateFriction void ( ::btRaycastVehicle::* )( ::btScalar ) +int btRaycastVehicle_getForwardAxis(void *c); //method: getForwardAxis int ( ::btRaycastVehicle::* )(  ) const+float btRaycastVehicle_getSteeringValue(void *c,int p0); //method: getSteeringValue ::btScalar ( ::btRaycastVehicle::* )( int ) const+int btRaycastVehicle_getUserConstraintType(void *c); //method: getUserConstraintType int ( ::btRaycastVehicle::* )(  ) const+int btRaycastVehicle_getUpAxis(void *c); //method: getUpAxis int ( ::btRaycastVehicle::* )(  ) const+void btRaycastVehicle_setPitchControl(void *c,float p0); //method: setPitchControl void ( ::btRaycastVehicle::* )( ::btScalar ) +float btRaycastVehicle_getCurrentSpeedKmHour(void *c); //method: getCurrentSpeedKmHour ::btScalar ( ::btRaycastVehicle::* )(  ) const+void btRaycastVehicle_setBrake(void *c,float p0,int p1); //method: setBrake void ( ::btRaycastVehicle::* )( ::btScalar,int ) +void btRaycastVehicle_setSteeringValue(void *c,float p0,int p1); //method: setSteeringValue void ( ::btRaycastVehicle::* )( ::btScalar,int ) +void btRaycastVehicle_updateVehicle(void *c,float p0); //method: updateVehicle void ( ::btRaycastVehicle::* )( ::btScalar ) +void btRaycastVehicle_updateAction(void *c,void* p0,float p1); //method: updateAction void ( ::btRaycastVehicle::* )( ::btCollisionWorld *,::btScalar ) +void btRaycastVehicle_m_forwardWS_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btRaycastVehicle->m_forwardWS+void* btRaycastVehicle_m_forwardWS_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btRaycastVehicle->m_forwardWS+void btRaycastVehicle_m_axle_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btRaycastVehicle->m_axle+void* btRaycastVehicle_m_axle_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btRaycastVehicle->m_axle+void btRaycastVehicle_m_forwardImpulse_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btRaycastVehicle->m_forwardImpulse+void* btRaycastVehicle_m_forwardImpulse_get(void *c); //attribute: ::btAlignedObjectArray<float> btRaycastVehicle->m_forwardImpulse+void btRaycastVehicle_m_sideImpulse_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btRaycastVehicle->m_sideImpulse+void* btRaycastVehicle_m_sideImpulse_get(void *c); //attribute: ::btAlignedObjectArray<float> btRaycastVehicle->m_sideImpulse+void btRaycastVehicle_m_userConstraintType_set(void *c,int a); //attribute: int btRaycastVehicle->m_userConstraintType+int btRaycastVehicle_m_userConstraintType_get(void *c); //attribute: int btRaycastVehicle->m_userConstraintType+void btRaycastVehicle_m_userConstraintId_set(void *c,int a); //attribute: int btRaycastVehicle->m_userConstraintId+int btRaycastVehicle_m_userConstraintId_get(void *c); //attribute: int btRaycastVehicle->m_userConstraintId+void btRaycastVehicle_m_tau_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle->m_tau+float btRaycastVehicle_m_tau_get(void *c); //attribute: ::btScalar btRaycastVehicle->m_tau+void btRaycastVehicle_m_damping_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle->m_damping+float btRaycastVehicle_m_damping_get(void *c); //attribute: ::btScalar btRaycastVehicle->m_damping+void btRaycastVehicle_m_vehicleRaycaster_set(void *c,void* a); //attribute: ::btVehicleRaycaster * btRaycastVehicle->m_vehicleRaycaster+void* btRaycastVehicle_m_vehicleRaycaster_get(void *c); //attribute: ::btVehicleRaycaster * btRaycastVehicle->m_vehicleRaycaster+void btRaycastVehicle_m_pitchControl_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle->m_pitchControl+float btRaycastVehicle_m_pitchControl_get(void *c); //attribute: ::btScalar btRaycastVehicle->m_pitchControl+void btRaycastVehicle_m_steeringValue_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle->m_steeringValue+float btRaycastVehicle_m_steeringValue_get(void *c); //attribute: ::btScalar btRaycastVehicle->m_steeringValue+void btRaycastVehicle_m_currentVehicleSpeedKmHour_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle->m_currentVehicleSpeedKmHour+float btRaycastVehicle_m_currentVehicleSpeedKmHour_get(void *c); //attribute: ::btScalar btRaycastVehicle->m_currentVehicleSpeedKmHour+void btRaycastVehicle_m_chassisBody_set(void *c,void* a); //attribute: ::btRigidBody * btRaycastVehicle->m_chassisBody+void* btRaycastVehicle_m_chassisBody_get(void *c); //attribute: ::btRigidBody * btRaycastVehicle->m_chassisBody+void btRaycastVehicle_m_indexRightAxis_set(void *c,int a); //attribute: int btRaycastVehicle->m_indexRightAxis+int btRaycastVehicle_m_indexRightAxis_get(void *c); //attribute: int btRaycastVehicle->m_indexRightAxis+void btRaycastVehicle_m_indexUpAxis_set(void *c,int a); //attribute: int btRaycastVehicle->m_indexUpAxis+int btRaycastVehicle_m_indexUpAxis_get(void *c); //attribute: int btRaycastVehicle->m_indexUpAxis+void btRaycastVehicle_m_indexForwardAxis_set(void *c,int a); //attribute: int btRaycastVehicle->m_indexForwardAxis+int btRaycastVehicle_m_indexForwardAxis_get(void *c); //attribute: int btRaycastVehicle->m_indexForwardAxis+void btRaycastVehicle_m_wheelInfo_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btWheelInfo> btRaycastVehicle->m_wheelInfo+void* btRaycastVehicle_m_wheelInfo_get(void *c); //attribute: ::btAlignedObjectArray<btWheelInfo> btRaycastVehicle->m_wheelInfo+void* btVehicleRaycaster_castRay(void *c,float* p0,float* p1,void* p2); //method: castRay void * ( ::btVehicleRaycaster::* )( ::btVector3 const &,::btVector3 const &,::btVehicleRaycaster::btVehicleRaycasterResult & ) +void* btVehicleRaycaster_btVehicleRaycasterResult_new(); //constructor: btVehicleRaycasterResult  ( ::btVehicleRaycaster::btVehicleRaycasterResult::* )(  ) +void btVehicleRaycaster_btVehicleRaycasterResult_free(void *c); +void btVehicleRaycaster_btVehicleRaycasterResult_m_distFraction_set(void *c,float a); //attribute: ::btScalar btVehicleRaycaster_btVehicleRaycasterResult->m_distFraction+float btVehicleRaycaster_btVehicleRaycasterResult_m_distFraction_get(void *c); //attribute: ::btScalar btVehicleRaycaster_btVehicleRaycasterResult->m_distFraction+void btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_set(void *c,float* a); //attribute: ::btVector3 btVehicleRaycaster_btVehicleRaycasterResult->m_hitNormalInWorld+void btVehicleRaycaster_btVehicleRaycasterResult_m_hitNormalInWorld_get(void *c,float* a);+void btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_set(void *c,float* a); //attribute: ::btVector3 btVehicleRaycaster_btVehicleRaycasterResult->m_hitPointInWorld+void btVehicleRaycaster_btVehicleRaycasterResult_m_hitPointInWorld_get(void *c,float* a);+void* btRaycastVehicle_btVehicleTuning_new(); //constructor: btVehicleTuning  ( ::btRaycastVehicle::btVehicleTuning::* )(  ) +void btRaycastVehicle_btVehicleTuning_free(void *c); +void btRaycastVehicle_btVehicleTuning_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_frictionSlip+float btRaycastVehicle_btVehicleTuning_m_frictionSlip_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_frictionSlip+void btRaycastVehicle_btVehicleTuning_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionForce+float btRaycastVehicle_btVehicleTuning_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionForce+void btRaycastVehicle_btVehicleTuning_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionTravelCm+float btRaycastVehicle_btVehicleTuning_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_maxSuspensionTravelCm+void btRaycastVehicle_btVehicleTuning_m_suspensionCompression_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionCompression+float btRaycastVehicle_btVehicleTuning_m_suspensionCompression_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionCompression+void btRaycastVehicle_btVehicleTuning_m_suspensionDamping_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionDamping+float btRaycastVehicle_btVehicleTuning_m_suspensionDamping_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionDamping+void btRaycastVehicle_btVehicleTuning_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionStiffness+float btRaycastVehicle_btVehicleTuning_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btRaycastVehicle_btVehicleTuning->m_suspensionStiffness+void* btWheelInfo_new(void* p0); //constructor: btWheelInfo  ( ::btWheelInfo::* )( ::btWheelInfoConstructionInfo & ) +void btWheelInfo_free(void *c); +float btWheelInfo_getSuspensionRestLength(void *c); //method: getSuspensionRestLength ::btScalar ( ::btWheelInfo::* )(  ) const+void btWheelInfo_updateWheel(void *c,void* p0,void* p1); //method: updateWheel void ( ::btWheelInfo::* )( ::btRigidBody const &,::btWheelInfo::RaycastInfo & ) +void btWheelInfo_m_bIsFrontWheel_set(void *c,int a); //attribute: bool btWheelInfo->m_bIsFrontWheel+int btWheelInfo_m_bIsFrontWheel_get(void *c); //attribute: bool btWheelInfo->m_bIsFrontWheel+void btWheelInfo_m_brake_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_brake+float btWheelInfo_m_brake_get(void *c); //attribute: ::btScalar btWheelInfo->m_brake+void btWheelInfo_m_chassisConnectionPointCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_chassisConnectionPointCS+void btWheelInfo_m_chassisConnectionPointCS_get(void *c,float* a);+void btWheelInfo_m_clientInfo_set(void *c,void* a); //attribute: void * btWheelInfo->m_clientInfo+void* btWheelInfo_m_clientInfo_get(void *c); //attribute: void * btWheelInfo->m_clientInfo+void btWheelInfo_m_clippedInvContactDotSuspension_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_clippedInvContactDotSuspension+float btWheelInfo_m_clippedInvContactDotSuspension_get(void *c); //attribute: ::btScalar btWheelInfo->m_clippedInvContactDotSuspension+void btWheelInfo_m_deltaRotation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_deltaRotation+float btWheelInfo_m_deltaRotation_get(void *c); //attribute: ::btScalar btWheelInfo->m_deltaRotation+void btWheelInfo_m_engineForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_engineForce+float btWheelInfo_m_engineForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_engineForce+void btWheelInfo_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_frictionSlip+float btWheelInfo_m_frictionSlip_get(void *c); //attribute: ::btScalar btWheelInfo->m_frictionSlip+void btWheelInfo_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_maxSuspensionForce+float btWheelInfo_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_maxSuspensionForce+void btWheelInfo_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_maxSuspensionTravelCm+float btWheelInfo_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btWheelInfo->m_maxSuspensionTravelCm+void btWheelInfo_m_raycastInfo_set(void *c,void* a); //attribute: ::btWheelInfo::RaycastInfo btWheelInfo->m_raycastInfo+void* btWheelInfo_m_raycastInfo_get(void *c); //attribute: ::btWheelInfo::RaycastInfo btWheelInfo->m_raycastInfo+void btWheelInfo_m_rollInfluence_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_rollInfluence+float btWheelInfo_m_rollInfluence_get(void *c); //attribute: ::btScalar btWheelInfo->m_rollInfluence+void btWheelInfo_m_rotation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_rotation+float btWheelInfo_m_rotation_get(void *c); //attribute: ::btScalar btWheelInfo->m_rotation+void btWheelInfo_m_skidInfo_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_skidInfo+float btWheelInfo_m_skidInfo_get(void *c); //attribute: ::btScalar btWheelInfo->m_skidInfo+void btWheelInfo_m_steering_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_steering+float btWheelInfo_m_steering_get(void *c); //attribute: ::btScalar btWheelInfo->m_steering+void btWheelInfo_m_suspensionRelativeVelocity_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionRelativeVelocity+float btWheelInfo_m_suspensionRelativeVelocity_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionRelativeVelocity+void btWheelInfo_m_suspensionRestLength1_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionRestLength1+float btWheelInfo_m_suspensionRestLength1_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionRestLength1+void btWheelInfo_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_suspensionStiffness+float btWheelInfo_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btWheelInfo->m_suspensionStiffness+void btWheelInfo_m_wheelAxleCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_wheelAxleCS+void btWheelInfo_m_wheelAxleCS_get(void *c,float* a);+void btWheelInfo_m_wheelDirectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfo->m_wheelDirectionCS+void btWheelInfo_m_wheelDirectionCS_get(void *c,float* a);+void btWheelInfo_m_wheelsDampingCompression_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsDampingCompression+float btWheelInfo_m_wheelsDampingCompression_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsDampingCompression+void btWheelInfo_m_wheelsDampingRelaxation_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsDampingRelaxation+float btWheelInfo_m_wheelsDampingRelaxation_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsDampingRelaxation+void btWheelInfo_m_wheelsRadius_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsRadius+float btWheelInfo_m_wheelsRadius_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsRadius+void btWheelInfo_m_wheelsSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfo->m_wheelsSuspensionForce+float btWheelInfo_m_wheelsSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfo->m_wheelsSuspensionForce+void btWheelInfo_m_worldTransform_set(void *c,float* a); //attribute: ::btTransform btWheelInfo->m_worldTransform+void btWheelInfo_m_worldTransform_get(void *c,float* a);+void* btWheelInfoConstructionInfo_new(); //constructor: btWheelInfoConstructionInfo  ( ::btWheelInfoConstructionInfo::* )(  ) +void btWheelInfoConstructionInfo_free(void *c); +void btWheelInfoConstructionInfo_m_bIsFrontWheel_set(void *c,int a); //attribute: bool btWheelInfoConstructionInfo->m_bIsFrontWheel+int btWheelInfoConstructionInfo_m_bIsFrontWheel_get(void *c); //attribute: bool btWheelInfoConstructionInfo->m_bIsFrontWheel+void btWheelInfoConstructionInfo_m_chassisConnectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_chassisConnectionCS+void btWheelInfoConstructionInfo_m_chassisConnectionCS_get(void *c,float* a);+void btWheelInfoConstructionInfo_m_frictionSlip_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_frictionSlip+float btWheelInfoConstructionInfo_m_frictionSlip_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_frictionSlip+void btWheelInfoConstructionInfo_m_maxSuspensionForce_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionForce+float btWheelInfoConstructionInfo_m_maxSuspensionForce_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionForce+void btWheelInfoConstructionInfo_m_maxSuspensionTravelCm_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionTravelCm+float btWheelInfoConstructionInfo_m_maxSuspensionTravelCm_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_maxSuspensionTravelCm+void btWheelInfoConstructionInfo_m_suspensionRestLength_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionRestLength+float btWheelInfoConstructionInfo_m_suspensionRestLength_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionRestLength+void btWheelInfoConstructionInfo_m_suspensionStiffness_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionStiffness+float btWheelInfoConstructionInfo_m_suspensionStiffness_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_suspensionStiffness+void btWheelInfoConstructionInfo_m_wheelAxleCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_wheelAxleCS+void btWheelInfoConstructionInfo_m_wheelAxleCS_get(void *c,float* a);+void btWheelInfoConstructionInfo_m_wheelDirectionCS_set(void *c,float* a); //attribute: ::btVector3 btWheelInfoConstructionInfo->m_wheelDirectionCS+void btWheelInfoConstructionInfo_m_wheelDirectionCS_get(void *c,float* a);+void btWheelInfoConstructionInfo_m_wheelRadius_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelRadius+float btWheelInfoConstructionInfo_m_wheelRadius_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelRadius+void btWheelInfoConstructionInfo_m_wheelsDampingCompression_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingCompression+float btWheelInfoConstructionInfo_m_wheelsDampingCompression_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingCompression+void btWheelInfoConstructionInfo_m_wheelsDampingRelaxation_set(void *c,float a); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingRelaxation+float btWheelInfoConstructionInfo_m_wheelsDampingRelaxation_get(void *c); //attribute: ::btScalar btWheelInfoConstructionInfo->m_wheelsDampingRelaxation+void* btBU_Simplex1to4_new0(); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )(  ) +void* btBU_Simplex1to4_new1(float* p0); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const & ) +void* btBU_Simplex1to4_new2(float* p0,float* p1); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const & ) +void* btBU_Simplex1to4_new3(float* p0,float* p1,float* p2); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void* btBU_Simplex1to4_new4(float* p0,float* p1,float* p2,float* p3); //constructor: btBU_Simplex1to4  ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btBU_Simplex1to4_free(void *c); +void btBU_Simplex1to4_reset(void *c); //method: reset void ( ::btBU_Simplex1to4::* )(  ) +int btBU_Simplex1to4_getNumPlanes(void *c); //method: getNumPlanes int ( ::btBU_Simplex1to4::* )(  ) const+int btBU_Simplex1to4_getIndex(void *c,int p0); //method: getIndex int ( ::btBU_Simplex1to4::* )( int ) const+int btBU_Simplex1to4_getNumEdges(void *c); //method: getNumEdges int ( ::btBU_Simplex1to4::* )(  ) const+char const * btBU_Simplex1to4_getName(void *c); //method: getName char const * ( ::btBU_Simplex1to4::* )(  ) const+void btBU_Simplex1to4_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btBU_Simplex1to4::* )( int,::btVector3 & ) const+void btBU_Simplex1to4_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btBU_Simplex1to4::* )( int,::btVector3 &,::btVector3 & ) const+void btBU_Simplex1to4_addVertex(void *c,float* p0); //method: addVertex void ( ::btBU_Simplex1to4::* )( ::btVector3 const & ) +int btBU_Simplex1to4_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btBU_Simplex1to4::* )( ::btVector3 const &,::btScalar ) const+void btBU_Simplex1to4_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btBU_Simplex1to4::* )( ::btVector3 &,::btVector3 &,int ) const+void btBU_Simplex1to4_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btBU_Simplex1to4::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+int btBU_Simplex1to4_getNumVertices(void *c); //method: getNumVertices int ( ::btBU_Simplex1to4::* )(  ) const+void btBU_Simplex1to4_m_numVertices_set(void *c,int a); //attribute: int btBU_Simplex1to4->m_numVertices+int btBU_Simplex1to4_m_numVertices_get(void *c); //attribute: int btBU_Simplex1to4->m_numVertices+// attribute not supported: //attribute: ::btVector3[4] btBU_Simplex1to4->m_vertices+void* btBoxShape_new(float* p0); //constructor: btBoxShape  ( ::btBoxShape::* )( ::btVector3 const & ) +void btBoxShape_free(void *c); +void btBoxShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btBoxShape::* )( ::btScalar,::btVector3 & ) const+int btBoxShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btBoxShape::* )(  ) const+void btBoxShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btBoxShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btBoxShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btBoxShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btBoxShape::* )( ::btVector3 const & ) +void btBoxShape_getPlaneEquation(void *c,float* p0,int p1); //method: getPlaneEquation void ( ::btBoxShape::* )( ::btVector4 &,int ) const+void btBoxShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btBoxShape::* )( int,::btVector3 & ) const+int btBoxShape_getNumEdges(void *c); //method: getNumEdges int ( ::btBoxShape::* )(  ) const+char const * btBoxShape_getName(void *c); //method: getName char const * ( ::btBoxShape::* )(  ) const+void btBoxShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btBoxShape::* )( int,::btVector3 & ) const+void btBoxShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btBoxShape::* )( int,::btVector3 &,::btVector3 & ) const+int btBoxShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btBoxShape::* )( ::btVector3 const &,::btScalar ) const+void btBoxShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btBoxShape::* )( ::btVector3 &,::btVector3 &,int ) const+void btBoxShape_getHalfExtentsWithoutMargin(void *c,float* ret); //method: getHalfExtentsWithoutMargin ::btVector3 const & ( ::btBoxShape::* )(  ) const+int btBoxShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btBoxShape::* )(  ) const+void btBoxShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btBoxShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btBoxShape_setMargin(void *c,float p0); //method: setMargin void ( ::btBoxShape::* )( ::btScalar ) +int btBoxShape_getNumVertices(void *c); //method: getNumVertices int ( ::btBoxShape::* )(  ) const+void btBoxShape_getHalfExtentsWithMargin(void *c,float* ret); //method: getHalfExtentsWithMargin ::btVector3 ( ::btBoxShape::* )(  ) const+void btBoxShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btBoxShape::* )( ::btVector3 const & ) const+void* btBvhTriangleMeshShape_new0(void* p0,int p1,int p2); //constructor: btBvhTriangleMeshShape  ( ::btBvhTriangleMeshShape::* )( ::btStridingMeshInterface *,bool,bool ) +void* btBvhTriangleMeshShape_new1(void* p0,int p1,float* p2,float* p3,int p4); //constructor: btBvhTriangleMeshShape  ( ::btBvhTriangleMeshShape::* )( ::btStridingMeshInterface *,bool,::btVector3 const &,::btVector3 const &,bool ) +void btBvhTriangleMeshShape_free(void *c); +int btBvhTriangleMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btBvhTriangleMeshShape::* )(  ) const+void btBvhTriangleMeshShape_buildOptimizedBvh(void *c); //method: buildOptimizedBvh void ( ::btBvhTriangleMeshShape::* )(  ) +void btBvhTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const & ) +void btBvhTriangleMeshShape_performRaycast(void *c,void* p0,float* p1,float* p2); //method: performRaycast void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) +void btBvhTriangleMeshShape_setTriangleInfoMap(void *c,void* p0); //method: setTriangleInfoMap void ( ::btBvhTriangleMeshShape::* )( ::btTriangleInfoMap * ) +int btBvhTriangleMeshShape_usesQuantizedAabbCompression(void *c); //method: usesQuantizedAabbCompression bool ( ::btBvhTriangleMeshShape::* )(  ) const+char const * btBvhTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btBvhTriangleMeshShape::* )(  ) const+char const * btBvhTriangleMeshShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btBvhTriangleMeshShape::* )( void *,::btSerializer * ) const+void* btBvhTriangleMeshShape_getTriangleInfoMap(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap const * ( ::btBvhTriangleMeshShape::* )(  ) const+void* btBvhTriangleMeshShape_getTriangleInfoMap0(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap const * ( ::btBvhTriangleMeshShape::* )(  ) const+void* btBvhTriangleMeshShape_getTriangleInfoMap1(void *c); //method: getTriangleInfoMap ::btTriangleInfoMap * ( ::btBvhTriangleMeshShape::* )(  ) +void btBvhTriangleMeshShape_serializeSingleTriangleInfoMap(void *c,void* p0); //method: serializeSingleTriangleInfoMap void ( ::btBvhTriangleMeshShape::* )( ::btSerializer * ) const+int btBvhTriangleMeshShape_getOwnsBvh(void *c); //method: getOwnsBvh bool ( ::btBvhTriangleMeshShape::* )(  ) const+void btBvhTriangleMeshShape_partialRefitTree(void *c,float* p0,float* p1); //method: partialRefitTree void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const &,::btVector3 const & ) +void* btBvhTriangleMeshShape_getOptimizedBvh(void *c); //method: getOptimizedBvh ::btOptimizedBvh * ( ::btBvhTriangleMeshShape::* )(  ) +void btBvhTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btBvhTriangleMeshShape_refitTree(void *c,float* p0,float* p1); //method: refitTree void ( ::btBvhTriangleMeshShape::* )( ::btVector3 const &,::btVector3 const & ) +void btBvhTriangleMeshShape_performConvexcast(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: performConvexcast void ( ::btBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btBvhTriangleMeshShape_serializeSingleBvh(void *c,void* p0); //method: serializeSingleBvh void ( ::btBvhTriangleMeshShape::* )( ::btSerializer * ) const+void btBvhTriangleMeshShape_setOptimizedBvh(void *c,void* p0,float* p1); //method: setOptimizedBvh void ( ::btBvhTriangleMeshShape::* )( ::btOptimizedBvh *,::btVector3 const & ) +void btBvhTriangleMeshShape_m_bvh_set(void *c,void* a); //attribute: ::btOptimizedBvh * btBvhTriangleMeshShape->m_bvh+void* btBvhTriangleMeshShape_m_bvh_get(void *c); //attribute: ::btOptimizedBvh * btBvhTriangleMeshShape->m_bvh+void btBvhTriangleMeshShape_m_triangleInfoMap_set(void *c,void* a); //attribute: ::btTriangleInfoMap * btBvhTriangleMeshShape->m_triangleInfoMap+void* btBvhTriangleMeshShape_m_triangleInfoMap_get(void *c); //attribute: ::btTriangleInfoMap * btBvhTriangleMeshShape->m_triangleInfoMap+void btBvhTriangleMeshShape_m_useQuantizedAabbCompression_set(void *c,int a); //attribute: bool btBvhTriangleMeshShape->m_useQuantizedAabbCompression+int btBvhTriangleMeshShape_m_useQuantizedAabbCompression_get(void *c); //attribute: bool btBvhTriangleMeshShape->m_useQuantizedAabbCompression+void btBvhTriangleMeshShape_m_ownsBvh_set(void *c,int a); //attribute: bool btBvhTriangleMeshShape->m_ownsBvh+int btBvhTriangleMeshShape_m_ownsBvh_get(void *c); //attribute: bool btBvhTriangleMeshShape->m_ownsBvh+// attribute not supported: //attribute: bool[11] btBvhTriangleMeshShape->m_pad+void* btCapsuleShape_new0(); //constructor: btCapsuleShape  ( ::btCapsuleShape::* )(  ) +void* btCapsuleShape_new1(float p0,float p1); //constructor: btCapsuleShape  ( ::btCapsuleShape::* )( ::btScalar,::btScalar ) +void btCapsuleShape_free(void *c); +void btCapsuleShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCapsuleShape::* )( ::btScalar,::btVector3 & ) const+int btCapsuleShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCapsuleShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCapsuleShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btCapsuleShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCapsuleShape::* )( ::btVector3 const & ) +int btCapsuleShape_getUpAxis(void *c); //method: getUpAxis int ( ::btCapsuleShape::* )(  ) const+char const * btCapsuleShape_getName(void *c); //method: getName char const * ( ::btCapsuleShape::* )(  ) const+float btCapsuleShape_getHalfHeight(void *c); //method: getHalfHeight ::btScalar ( ::btCapsuleShape::* )(  ) const+void btCapsuleShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCapsuleShape::* )( ::btScalar ) +void btCapsuleShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCapsuleShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+char const * btCapsuleShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btCapsuleShape::* )( void *,::btSerializer * ) const+void btCapsuleShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCapsuleShape::* )( ::btVector3 const & ) const+float btCapsuleShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btCapsuleShape::* )(  ) const+void btCapsuleShape_m_upAxis_set(void *c,int a); //attribute: int btCapsuleShape->m_upAxis+int btCapsuleShape_m_upAxis_get(void *c); //attribute: int btCapsuleShape->m_upAxis+void* btCapsuleShapeData_new(); //constructor: btCapsuleShapeData  ( ::btCapsuleShapeData::* )(  ) +void btCapsuleShapeData_free(void *c); +void btCapsuleShapeData_m_convexInternalShapeData_set(void *c,void* a); //attribute: ::btConvexInternalShapeData btCapsuleShapeData->m_convexInternalShapeData+void* btCapsuleShapeData_m_convexInternalShapeData_get(void *c); //attribute: ::btConvexInternalShapeData btCapsuleShapeData->m_convexInternalShapeData+void btCapsuleShapeData_m_upAxis_set(void *c,int a); //attribute: int btCapsuleShapeData->m_upAxis+int btCapsuleShapeData_m_upAxis_get(void *c); //attribute: int btCapsuleShapeData->m_upAxis+// attribute not supported: //attribute: char[4] btCapsuleShapeData->m_padding+void* btCapsuleShapeX_new(float p0,float p1); //constructor: btCapsuleShapeX  ( ::btCapsuleShapeX::* )( ::btScalar,::btScalar ) +void btCapsuleShapeX_free(void *c); +char const * btCapsuleShapeX_getName(void *c); //method: getName char const * ( ::btCapsuleShapeX::* )(  ) const+void* btCapsuleShapeZ_new(float p0,float p1); //constructor: btCapsuleShapeZ  ( ::btCapsuleShapeZ::* )( ::btScalar,::btScalar ) +void btCapsuleShapeZ_free(void *c); +char const * btCapsuleShapeZ_getName(void *c); //method: getName char const * ( ::btCapsuleShapeZ::* )(  ) const+void* btCharIndexTripletData_new(); //constructor: btCharIndexTripletData  ( ::btCharIndexTripletData::* )(  ) +void btCharIndexTripletData_free(void *c); +// attribute not supported: //attribute: unsigned char[3] btCharIndexTripletData->m_values+void btCharIndexTripletData_m_pad_set(void *c,char a); //attribute: char btCharIndexTripletData->m_pad+char btCharIndexTripletData_m_pad_get(void *c); //attribute: char btCharIndexTripletData->m_pad+void btCollisionShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCollisionShape::* )( ::btScalar,::btVector3 & ) const+void btCollisionShape_setUserPointer(void *c,void* p0); //method: setUserPointer void ( ::btCollisionShape::* )( void * ) +char const * btCollisionShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btCollisionShape::* )( void *,::btSerializer * ) const+void btCollisionShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btCollisionShape::* )(  ) const+int btCollisionShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCollisionShape::* )(  ) const+char const * btCollisionShape_getName(void *c); //method: getName char const * ( ::btCollisionShape::* )(  ) const+int btCollisionShape_isCompound(void *c); //method: isCompound bool ( ::btCollisionShape::* )(  ) const+int btCollisionShape_isPolyhedral(void *c); //method: isPolyhedral bool ( ::btCollisionShape::* )(  ) const+void btCollisionShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCollisionShape::* )( ::btVector3 const & ) +void btCollisionShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCollisionShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+float btCollisionShape_getContactBreakingThreshold(void *c,float p0); //method: getContactBreakingThreshold ::btScalar ( ::btCollisionShape::* )( ::btScalar ) const+int btCollisionShape_isConvex(void *c); //method: isConvex bool ( ::btCollisionShape::* )(  ) const+int btCollisionShape_isInfinite(void *c); //method: isInfinite bool ( ::btCollisionShape::* )(  ) const+void* btCollisionShape_getUserPointer(void *c); //method: getUserPointer void * ( ::btCollisionShape::* )(  ) const+int btCollisionShape_isNonMoving(void *c); //method: isNonMoving bool ( ::btCollisionShape::* )(  ) const+float btCollisionShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btCollisionShape::* )(  ) const+void btCollisionShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCollisionShape::* )( ::btScalar ) +int btCollisionShape_isConvex2d(void *c); //method: isConvex2d bool ( ::btCollisionShape::* )(  ) const+int btCollisionShape_isSoftBody(void *c); //method: isSoftBody bool ( ::btCollisionShape::* )(  ) const+void btCollisionShape_calculateTemporalAabb(void *c,float* p0,float* p1,float* p2,float p3,float* p4,float* p5); //method: calculateTemporalAabb void ( ::btCollisionShape::* )( ::btTransform const &,::btVector3 const &,::btVector3 const &,::btScalar,::btVector3 &,::btVector3 & ) const+int btCollisionShape_isConcave(void *c); //method: isConcave bool ( ::btCollisionShape::* )(  ) const+float btCollisionShape_getAngularMotionDisc(void *c); //method: getAngularMotionDisc ::btScalar ( ::btCollisionShape::* )(  ) const+void btCollisionShape_serializeSingleShape(void *c,void* p0); //method: serializeSingleShape void ( ::btCollisionShape::* )( ::btSerializer * ) const+//not supported method: getBoundingSphere void ( ::btCollisionShape::* )( ::btVector3 &,::btScalar & ) const+// error: ::btVector3 & - ok,  - unsupported, void - ok++int btCollisionShape_getShapeType(void *c); //method: getShapeType int ( ::btCollisionShape::* )(  ) const+void btCollisionShape_m_shapeType_set(void *c,int a); //attribute: int btCollisionShape->m_shapeType+int btCollisionShape_m_shapeType_get(void *c); //attribute: int btCollisionShape->m_shapeType+void btCollisionShape_m_userPointer_set(void *c,void* a); //attribute: void * btCollisionShape->m_userPointer+void* btCollisionShape_m_userPointer_get(void *c); //attribute: void * btCollisionShape->m_userPointer+void* btCollisionShapeData_new(); //constructor: btCollisionShapeData  ( ::btCollisionShapeData::* )(  ) +void btCollisionShapeData_free(void *c); +void btCollisionShapeData_m_name_set(void *c,char * a); //attribute: char * btCollisionShapeData->m_name+char * btCollisionShapeData_m_name_get(void *c); //attribute: char * btCollisionShapeData->m_name+void btCollisionShapeData_m_shapeType_set(void *c,int a); //attribute: int btCollisionShapeData->m_shapeType+int btCollisionShapeData_m_shapeType_get(void *c); //attribute: int btCollisionShapeData->m_shapeType+// attribute not supported: //attribute: char[4] btCollisionShapeData->m_padding+void* btCompoundShape_new(int p0); //constructor: btCompoundShape  ( ::btCompoundShape::* )( bool ) +void btCompoundShape_free(void *c); +void btCompoundShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCompoundShape::* )( ::btScalar,::btVector3 & ) const+void* btCompoundShape_getDynamicAabbTree(void *c); //method: getDynamicAabbTree ::btDbvt const * ( ::btCompoundShape::* )(  ) const+void* btCompoundShape_getDynamicAabbTree0(void *c); //method: getDynamicAabbTree ::btDbvt const * ( ::btCompoundShape::* )(  ) const+void* btCompoundShape_getDynamicAabbTree1(void *c); //method: getDynamicAabbTree ::btDbvt * ( ::btCompoundShape::* )(  ) +int btCompoundShape_getUpdateRevision(void *c); //method: getUpdateRevision int ( ::btCompoundShape::* )(  ) const+char const * btCompoundShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btCompoundShape::* )( void *,::btSerializer * ) const+void btCompoundShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btCompoundShape::* )(  ) const+void btCompoundShape_createAabbTreeFromChildren(void *c); //method: createAabbTreeFromChildren void ( ::btCompoundShape::* )(  ) +int btCompoundShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCompoundShape::* )(  ) const+char const * btCompoundShape_getName(void *c); //method: getName char const * ( ::btCompoundShape::* )(  ) const+void btCompoundShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCompoundShape::* )( ::btVector3 const & ) +void btCompoundShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCompoundShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void* btCompoundShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btCompoundShape::* )( int ) +void* btCompoundShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btCompoundShape::* )( int ) +void* btCompoundShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btCompoundShape::* )( int ) const+void btCompoundShape_addChildShape(void *c,float* p0,void* p1); //method: addChildShape void ( ::btCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) +void btCompoundShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform & ( ::btCompoundShape::* )( int ) +void btCompoundShape_getChildTransform0(void *c,int p0,float* ret); //method: getChildTransform ::btTransform & ( ::btCompoundShape::* )( int ) +void btCompoundShape_getChildTransform1(void *c,int p0,float* ret); //method: getChildTransform ::btTransform const & ( ::btCompoundShape::* )( int ) const+void* btCompoundShape_getChildList(void *c); //method: getChildList ::btCompoundShapeChild * ( ::btCompoundShape::* )(  ) +float btCompoundShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btCompoundShape::* )(  ) const+void btCompoundShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCompoundShape::* )( ::btScalar ) +int btCompoundShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btCompoundShape::* )(  ) const+void btCompoundShape_removeChildShapeByIndex(void *c,int p0); //method: removeChildShapeByIndex void ( ::btCompoundShape::* )( int ) +void btCompoundShape_recalculateLocalAabb(void *c); //method: recalculateLocalAabb void ( ::btCompoundShape::* )(  ) +void btCompoundShape_updateChildTransform(void *c,int p0,float* p1,int p2); //method: updateChildTransform void ( ::btCompoundShape::* )( int,::btTransform const &,bool ) +//not supported method: calculatePrincipalAxisTransform void ( ::btCompoundShape::* )( ::btScalar *,::btTransform &,::btVector3 & ) const+// error:  - unsupported, ::btTransform & - ok, ::btVector3 & - ok, void - ok++void btCompoundShape_removeChildShape(void *c,void* p0); //method: removeChildShape void ( ::btCompoundShape::* )( ::btCollisionShape * ) +void btCompoundShape_m_children_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCompoundShapeChild> btCompoundShape->m_children+void* btCompoundShape_m_children_get(void *c); //attribute: ::btAlignedObjectArray<btCompoundShapeChild> btCompoundShape->m_children+void btCompoundShape_m_localAabbMin_set(void *c,float* a); //attribute: ::btVector3 btCompoundShape->m_localAabbMin+void btCompoundShape_m_localAabbMin_get(void *c,float* a);+void btCompoundShape_m_localAabbMax_set(void *c,float* a); //attribute: ::btVector3 btCompoundShape->m_localAabbMax+void btCompoundShape_m_localAabbMax_get(void *c,float* a);+void btCompoundShape_m_dynamicAabbTree_set(void *c,void* a); //attribute: ::btDbvt * btCompoundShape->m_dynamicAabbTree+void* btCompoundShape_m_dynamicAabbTree_get(void *c); //attribute: ::btDbvt * btCompoundShape->m_dynamicAabbTree+void btCompoundShape_m_updateRevision_set(void *c,int a); //attribute: int btCompoundShape->m_updateRevision+int btCompoundShape_m_updateRevision_get(void *c); //attribute: int btCompoundShape->m_updateRevision+void btCompoundShape_m_collisionMargin_set(void *c,float a); //attribute: ::btScalar btCompoundShape->m_collisionMargin+float btCompoundShape_m_collisionMargin_get(void *c); //attribute: ::btScalar btCompoundShape->m_collisionMargin+void btCompoundShape_m_localScaling_set(void *c,float* a); //attribute: ::btVector3 btCompoundShape->m_localScaling+void btCompoundShape_m_localScaling_get(void *c,float* a);+void* btCompoundShapeChild_new(); //constructor: btCompoundShapeChild  ( ::btCompoundShapeChild::* )(  ) +void btCompoundShapeChild_free(void *c); +void btCompoundShapeChild_m_childMargin_set(void *c,float a); //attribute: ::btScalar btCompoundShapeChild->m_childMargin+float btCompoundShapeChild_m_childMargin_get(void *c); //attribute: ::btScalar btCompoundShapeChild->m_childMargin+void btCompoundShapeChild_m_childShape_set(void *c,void* a); //attribute: ::btCollisionShape * btCompoundShapeChild->m_childShape+void* btCompoundShapeChild_m_childShape_get(void *c); //attribute: ::btCollisionShape * btCompoundShapeChild->m_childShape+void btCompoundShapeChild_m_childShapeType_set(void *c,int a); //attribute: int btCompoundShapeChild->m_childShapeType+int btCompoundShapeChild_m_childShapeType_get(void *c); //attribute: int btCompoundShapeChild->m_childShapeType+void btCompoundShapeChild_m_node_set(void *c,void* a); //attribute: ::btDbvtNode * btCompoundShapeChild->m_node+void* btCompoundShapeChild_m_node_get(void *c); //attribute: ::btDbvtNode * btCompoundShapeChild->m_node+void btCompoundShapeChild_m_transform_set(void *c,float* a); //attribute: ::btTransform btCompoundShapeChild->m_transform+void btCompoundShapeChild_m_transform_get(void *c,float* a);+void* btCompoundShapeChildData_new(); //constructor: btCompoundShapeChildData  ( ::btCompoundShapeChildData::* )(  ) +void btCompoundShapeChildData_free(void *c); +void btCompoundShapeChildData_m_transform_set(void *c,void* a); //attribute: ::btTransformFloatData btCompoundShapeChildData->m_transform+void* btCompoundShapeChildData_m_transform_get(void *c); //attribute: ::btTransformFloatData btCompoundShapeChildData->m_transform+void btCompoundShapeChildData_m_childShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCompoundShapeChildData->m_childShape+void* btCompoundShapeChildData_m_childShape_get(void *c); //attribute: ::btCollisionShapeData * btCompoundShapeChildData->m_childShape+void btCompoundShapeChildData_m_childShapeType_set(void *c,int a); //attribute: int btCompoundShapeChildData->m_childShapeType+int btCompoundShapeChildData_m_childShapeType_get(void *c); //attribute: int btCompoundShapeChildData->m_childShapeType+void btCompoundShapeChildData_m_childMargin_set(void *c,float a); //attribute: float btCompoundShapeChildData->m_childMargin+float btCompoundShapeChildData_m_childMargin_get(void *c); //attribute: float btCompoundShapeChildData->m_childMargin+void* btCompoundShapeData_new(); //constructor: btCompoundShapeData  ( ::btCompoundShapeData::* )(  ) +void btCompoundShapeData_free(void *c); +void btCompoundShapeData_m_collisionShapeData_set(void *c,void* a); //attribute: ::btCollisionShapeData btCompoundShapeData->m_collisionShapeData+void* btCompoundShapeData_m_collisionShapeData_get(void *c); //attribute: ::btCollisionShapeData btCompoundShapeData->m_collisionShapeData+void btCompoundShapeData_m_childShapePtr_set(void *c,void* a); //attribute: ::btCompoundShapeChildData * btCompoundShapeData->m_childShapePtr+void* btCompoundShapeData_m_childShapePtr_get(void *c); //attribute: ::btCompoundShapeChildData * btCompoundShapeData->m_childShapePtr+void btCompoundShapeData_m_numChildShapes_set(void *c,int a); //attribute: int btCompoundShapeData->m_numChildShapes+int btCompoundShapeData_m_numChildShapes_get(void *c); //attribute: int btCompoundShapeData->m_numChildShapes+void btCompoundShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btCompoundShapeData->m_collisionMargin+float btCompoundShapeData_m_collisionMargin_get(void *c); //attribute: float btCompoundShapeData->m_collisionMargin+void btConcaveShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btConcaveShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btConcaveShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConcaveShape::* )( ::btScalar ) +float btConcaveShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConcaveShape::* )(  ) const+void btConcaveShape_m_collisionMargin_set(void *c,float a); //attribute: ::btScalar btConcaveShape->m_collisionMargin+float btConcaveShape_m_collisionMargin_get(void *c); //attribute: ::btScalar btConcaveShape->m_collisionMargin+void* btConeShape_new(float p0,float p1); //constructor: btConeShape  ( ::btConeShape::* )( ::btScalar,::btScalar ) +void btConeShape_free(void *c); +void btConeShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btConeShape::* )( ::btScalar,::btVector3 & ) const+void btConeShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConeShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConeShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++int btConeShape_getConeUpIndex(void *c); //method: getConeUpIndex int ( ::btConeShape::* )(  ) const+char const * btConeShape_getName(void *c); //method: getName char const * ( ::btConeShape::* )(  ) const+float btConeShape_getHeight(void *c); //method: getHeight ::btScalar ( ::btConeShape::* )(  ) const+void btConeShape_setConeUpIndex(void *c,int p0); //method: setConeUpIndex void ( ::btConeShape::* )( int ) +void btConeShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConeShape::* )( ::btVector3 const & ) +void btConeShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConeShape::* )( ::btVector3 const & ) const+float btConeShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btConeShape::* )(  ) const+void* btConeShapeX_new(float p0,float p1); //constructor: btConeShapeX  ( ::btConeShapeX::* )( ::btScalar,::btScalar ) +void btConeShapeX_free(void *c); +void* btConeShapeZ_new(float p0,float p1); //constructor: btConeShapeZ  ( ::btConeShapeZ::* )( ::btScalar,::btScalar ) +void btConeShapeZ_free(void *c); +//not supported constructor: btConvexHullShape  ( ::btConvexHullShape::* )( ::btScalar const *,int,int ) +// error:  - unsupported, int - ok, int - ok++void btConvexHullShape_free(void *c); +void btConvexHullShape_addPoint(void *c,float* p0); //method: addPoint void ( ::btConvexHullShape::* )( ::btVector3 const & ) +void btConvexHullShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexHullShape::* )( ::btVector3 const & ) const+int btConvexHullShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConvexHullShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexHullShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btConvexHullShape_getScaledPoint(void *c,int p0,float* ret); //method: getScaledPoint ::btVector3 ( ::btConvexHullShape::* )( int ) const+int btConvexHullShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btConvexHullShape::* )(  ) const+//not supported method: getPoints ::btVector3 const * ( ::btConvexHullShape::* )(  ) const+// error:  - unsupported++int btConvexHullShape_getNumEdges(void *c); //method: getNumEdges int ( ::btConvexHullShape::* )(  ) const+char const * btConvexHullShape_getName(void *c); //method: getName char const * ( ::btConvexHullShape::* )(  ) const+void btConvexHullShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btConvexHullShape::* )( int,::btVector3 & ) const+void btConvexHullShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btConvexHullShape::* )( int,::btVector3 &,::btVector3 & ) const+void btConvexHullShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexHullShape::* )( ::btVector3 const & ) const+//not supported method: project void ( ::btConvexHullShape::* )( ::btTransform const &,::btVector3 const &,float &,float & ) const+// error: ::btTransform const & - ok, ::btVector3 const & - ok,  - unsupported,  - unsupported, void - ok++int btConvexHullShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btConvexHullShape::* )( ::btVector3 const &,::btScalar ) const+void btConvexHullShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btConvexHullShape::* )( ::btVector3 &,::btVector3 &,int ) const+void btConvexHullShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexHullShape::* )( ::btVector3 const & ) +int btConvexHullShape_getNumVertices(void *c); //method: getNumVertices int ( ::btConvexHullShape::* )(  ) const+char const * btConvexHullShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btConvexHullShape::* )( void *,::btSerializer * ) const+int btConvexHullShape_getNumPoints(void *c); //method: getNumPoints int ( ::btConvexHullShape::* )(  ) const+//not supported method: getUnscaledPoints ::btVector3 * ( ::btConvexHullShape::* )(  ) +// error:  - unsupported++//not supported method: getUnscaledPoints ::btVector3 * ( ::btConvexHullShape::* )(  ) +// error:  - unsupported++//not supported method: getUnscaledPoints ::btVector3 const * ( ::btConvexHullShape::* )(  ) const+// error:  - unsupported++void btConvexHullShape_m_unscaledPoints_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btConvexHullShape->m_unscaledPoints+void* btConvexHullShape_m_unscaledPoints_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btConvexHullShape->m_unscaledPoints+void* btConvexHullShapeData_new(); //constructor: btConvexHullShapeData  ( ::btConvexHullShapeData::* )(  ) +void btConvexHullShapeData_free(void *c); +void btConvexHullShapeData_m_convexInternalShapeData_set(void *c,void* a); //attribute: ::btConvexInternalShapeData btConvexHullShapeData->m_convexInternalShapeData+void* btConvexHullShapeData_m_convexInternalShapeData_get(void *c); //attribute: ::btConvexInternalShapeData btConvexHullShapeData->m_convexInternalShapeData+void btConvexHullShapeData_m_unscaledPointsFloatPtr_set(void *c,void* a); //attribute: ::btVector3FloatData * btConvexHullShapeData->m_unscaledPointsFloatPtr+void* btConvexHullShapeData_m_unscaledPointsFloatPtr_get(void *c); //attribute: ::btVector3FloatData * btConvexHullShapeData->m_unscaledPointsFloatPtr+void btConvexHullShapeData_m_unscaledPointsDoublePtr_set(void *c,void* a); //attribute: ::btVector3DoubleData * btConvexHullShapeData->m_unscaledPointsDoublePtr+void* btConvexHullShapeData_m_unscaledPointsDoublePtr_get(void *c); //attribute: ::btVector3DoubleData * btConvexHullShapeData->m_unscaledPointsDoublePtr+void btConvexHullShapeData_m_numUnscaledPoints_set(void *c,int a); //attribute: int btConvexHullShapeData->m_numUnscaledPoints+int btConvexHullShapeData_m_numUnscaledPoints_get(void *c); //attribute: int btConvexHullShapeData->m_numUnscaledPoints+// attribute not supported: //attribute: char[4] btConvexHullShapeData->m_padding3+void btConvexInternalAabbCachingShape_setCachedLocalAabb(void *c,float* p0,float* p1); //method: setCachedLocalAabb void ( ::btConvexInternalAabbCachingShape::* )( ::btVector3 const &,::btVector3 const & ) +void btConvexInternalAabbCachingShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btConvexInternalAabbCachingShape::* )(  ) +void btConvexInternalAabbCachingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexInternalAabbCachingShape::* )( ::btVector3 const & ) +void btConvexInternalAabbCachingShape_getNonvirtualAabb(void *c,float* p0,float* p1,float* p2,float p3); //method: getNonvirtualAabb void ( ::btConvexInternalAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 &,::btScalar ) const+void btConvexInternalAabbCachingShape_getCachedLocalAabb(void *c,float* p0,float* p1); //method: getCachedLocalAabb void ( ::btConvexInternalAabbCachingShape::* )( ::btVector3 &,::btVector3 & ) const+void btConvexInternalAabbCachingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexInternalAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexInternalAabbCachingShape_m_localAabbMin_set(void *c,float* a); //attribute: ::btVector3 btConvexInternalAabbCachingShape->m_localAabbMin+void btConvexInternalAabbCachingShape_m_localAabbMin_get(void *c,float* a);+void btConvexInternalAabbCachingShape_m_localAabbMax_set(void *c,float* a); //attribute: ::btVector3 btConvexInternalAabbCachingShape->m_localAabbMax+void btConvexInternalAabbCachingShape_m_localAabbMax_get(void *c,float* a);+void btConvexInternalAabbCachingShape_m_isLocalAabbValid_set(void *c,int a); //attribute: bool btConvexInternalAabbCachingShape->m_isLocalAabbValid+int btConvexInternalAabbCachingShape_m_isLocalAabbValid_get(void *c); //attribute: bool btConvexInternalAabbCachingShape->m_isLocalAabbValid+void btConvexInternalShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexInternalShape::* )( ::btVector3 const & ) const+int btConvexInternalShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btConvexInternalShape::* )(  ) const+void btConvexInternalShape_getImplicitShapeDimensions(void *c,float* ret); //method: getImplicitShapeDimensions ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const+char const * btConvexInternalShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btConvexInternalShape::* )( void *,::btSerializer * ) const+void btConvexInternalShape_getLocalScalingNV(void *c,float* ret); //method: getLocalScalingNV ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const+void btConvexInternalShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btConvexInternalShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexInternalShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexInternalShape::* )(  ) const+void btConvexInternalShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btConvexInternalShape::* )( int,::btVector3 & ) const+void btConvexInternalShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexInternalShape::* )( ::btVector3 const & ) +int btConvexInternalShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btConvexInternalShape::* )(  ) const+void btConvexInternalShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexInternalShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexInternalShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConvexInternalShape::* )( ::btScalar ) +float btConvexInternalShape_getMarginNV(void *c); //method: getMarginNV ::btScalar ( ::btConvexInternalShape::* )(  ) const+float btConvexInternalShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConvexInternalShape::* )(  ) const+void btConvexInternalShape_setSafeMargin(void *c,float p0,float p1); //method: setSafeMargin void ( ::btConvexInternalShape::* )( ::btScalar,::btScalar ) +void btConvexInternalShape_setSafeMargin0(void *c,float p0,float p1); //method: setSafeMargin void ( ::btConvexInternalShape::* )( ::btScalar,::btScalar ) +void btConvexInternalShape_setSafeMargin1(void *c,float* p0,float p1); //method: setSafeMargin void ( ::btConvexInternalShape::* )( ::btVector3 const &,::btScalar ) +void btConvexInternalShape_setImplicitShapeDimensions(void *c,float* p0); //method: setImplicitShapeDimensions void ( ::btConvexInternalShape::* )( ::btVector3 const & ) +void btConvexInternalShape_m_localScaling_set(void *c,float* a); //attribute: ::btVector3 btConvexInternalShape->m_localScaling+void btConvexInternalShape_m_localScaling_get(void *c,float* a);+void btConvexInternalShape_m_implicitShapeDimensions_set(void *c,float* a); //attribute: ::btVector3 btConvexInternalShape->m_implicitShapeDimensions+void btConvexInternalShape_m_implicitShapeDimensions_get(void *c,float* a);+void btConvexInternalShape_m_collisionMargin_set(void *c,float a); //attribute: ::btScalar btConvexInternalShape->m_collisionMargin+float btConvexInternalShape_m_collisionMargin_get(void *c); //attribute: ::btScalar btConvexInternalShape->m_collisionMargin+void btConvexInternalShape_m_padding_set(void *c,float a); //attribute: ::btScalar btConvexInternalShape->m_padding+float btConvexInternalShape_m_padding_get(void *c); //attribute: ::btScalar btConvexInternalShape->m_padding+void* btConvexInternalShapeData_new(); //constructor: btConvexInternalShapeData  ( ::btConvexInternalShapeData::* )(  ) +void btConvexInternalShapeData_free(void *c); +void btConvexInternalShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btConvexInternalShapeData->m_collisionMargin+float btConvexInternalShapeData_m_collisionMargin_get(void *c); //attribute: float btConvexInternalShapeData->m_collisionMargin+void btConvexInternalShapeData_m_collisionShapeData_set(void *c,void* a); //attribute: ::btCollisionShapeData btConvexInternalShapeData->m_collisionShapeData+void* btConvexInternalShapeData_m_collisionShapeData_get(void *c); //attribute: ::btCollisionShapeData btConvexInternalShapeData->m_collisionShapeData+void btConvexInternalShapeData_m_implicitShapeDimensions_set(void *c,void* a); //attribute: ::btVector3FloatData btConvexInternalShapeData->m_implicitShapeDimensions+void* btConvexInternalShapeData_m_implicitShapeDimensions_get(void *c); //attribute: ::btVector3FloatData btConvexInternalShapeData->m_implicitShapeDimensions+void btConvexInternalShapeData_m_localScaling_set(void *c,void* a); //attribute: ::btVector3FloatData btConvexInternalShapeData->m_localScaling+void* btConvexInternalShapeData_m_localScaling_get(void *c); //attribute: ::btVector3FloatData btConvexInternalShapeData->m_localScaling+void btConvexInternalShapeData_m_padding_set(void *c,int a); //attribute: int btConvexInternalShapeData->m_padding+int btConvexInternalShapeData_m_padding_get(void *c); //attribute: int btConvexInternalShapeData->m_padding+void btConvexShape_getAabbNonVirtual(void *c,float* p0,float* p1,float* p2); //method: getAabbNonVirtual void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++float btConvexShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btConvexShape::* )(  ) const+void btConvexShape_localGetSupportVertexWithoutMarginNonVirtual(void *c,float* p0,float* ret); //method: localGetSupportVertexWithoutMarginNonVirtual ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const+void btConvexShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexShape::* )(  ) const+//not supported method: project void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 const &,float &,float & ) const+// error: ::btTransform const & - ok, ::btVector3 const & - ok,  - unsupported,  - unsupported, void - ok++void btConvexShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btConvexShape::* )( int,::btVector3 & ) const+void btConvexShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexShape::* )( ::btVector3 const & ) +void btConvexShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btConvexShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btConvexShape_setMargin(void *c,float p0); //method: setMargin void ( ::btConvexShape::* )( ::btScalar ) +int btConvexShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btConvexShape::* )(  ) const+void btConvexShape_localGetSupportVertexNonVirtual(void *c,float* p0,float* ret); //method: localGetSupportVertexNonVirtual ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const+void btConvexShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexShape::* )( ::btVector3 const & ) const+float btConvexShape_getMarginNonVirtual(void *c); //method: getMarginNonVirtual ::btScalar ( ::btConvexShape::* )(  ) const+void* btConvexTriangleMeshShape_new(void* p0,int p1); //constructor: btConvexTriangleMeshShape  ( ::btConvexTriangleMeshShape::* )( ::btStridingMeshInterface *,bool ) +void btConvexTriangleMeshShape_free(void *c); +int btConvexTriangleMeshShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btConvexTriangleMeshShape::* )(  ) const+void btConvexTriangleMeshShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btConvexTriangleMeshShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++int btConvexTriangleMeshShape_getNumEdges(void *c); //method: getNumEdges int ( ::btConvexTriangleMeshShape::* )(  ) const+char const * btConvexTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btConvexTriangleMeshShape::* )(  ) const+void btConvexTriangleMeshShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btConvexTriangleMeshShape::* )( int,::btVector3 & ) const+void btConvexTriangleMeshShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btConvexTriangleMeshShape::* )( int,::btVector3 &,::btVector3 & ) const+void btConvexTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btConvexTriangleMeshShape::* )(  ) const+int btConvexTriangleMeshShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btConvexTriangleMeshShape::* )( ::btVector3 const &,::btScalar ) const+void btConvexTriangleMeshShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btConvexTriangleMeshShape::* )( ::btVector3 &,::btVector3 &,int ) const+void btConvexTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) +void* btConvexTriangleMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btConvexTriangleMeshShape::* )(  ) +void* btConvexTriangleMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btConvexTriangleMeshShape::* )(  ) +void* btConvexTriangleMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btConvexTriangleMeshShape::* )(  ) const+int btConvexTriangleMeshShape_getNumVertices(void *c); //method: getNumVertices int ( ::btConvexTriangleMeshShape::* )(  ) const+//not supported method: calculatePrincipalAxisTransform void ( ::btConvexTriangleMeshShape::* )( ::btTransform &,::btVector3 &,::btScalar & ) const+// error: ::btTransform & - ok, ::btVector3 & - ok,  - unsupported, void - ok++void btConvexTriangleMeshShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btConvexTriangleMeshShape::* )( ::btVector3 const & ) const+void btConvexTriangleMeshShape_m_stridingMesh_set(void *c,void* a); //attribute: ::btStridingMeshInterface * btConvexTriangleMeshShape->m_stridingMesh+void* btConvexTriangleMeshShape_m_stridingMesh_get(void *c); //attribute: ::btStridingMeshInterface * btConvexTriangleMeshShape->m_stridingMesh+void* btCylinderShape_new(float* p0); //constructor: btCylinderShape  ( ::btCylinderShape::* )( ::btVector3 const & ) +void btCylinderShape_free(void *c); +void btCylinderShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btCylinderShape::* )( ::btScalar,::btVector3 & ) const+void btCylinderShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btCylinderShape::* )( ::btVector3 const & ) const+int btCylinderShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCylinderShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btCylinderShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btCylinderShape::* )( ::btVector3 const & ) +int btCylinderShape_getUpAxis(void *c); //method: getUpAxis int ( ::btCylinderShape::* )(  ) const+char const * btCylinderShape_getName(void *c); //method: getName char const * ( ::btCylinderShape::* )(  ) const+char const * btCylinderShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btCylinderShape::* )( void *,::btSerializer * ) const+void btCylinderShape_getHalfExtentsWithoutMargin(void *c,float* ret); //method: getHalfExtentsWithoutMargin ::btVector3 const & ( ::btCylinderShape::* )(  ) const+void btCylinderShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btCylinderShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btCylinderShape_setMargin(void *c,float p0); //method: setMargin void ( ::btCylinderShape::* )( ::btScalar ) +void btCylinderShape_getHalfExtentsWithMargin(void *c,float* ret); //method: getHalfExtentsWithMargin ::btVector3 ( ::btCylinderShape::* )(  ) const+void btCylinderShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShape::* )( ::btVector3 const & ) const+float btCylinderShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShape::* )(  ) const+void btCylinderShape_m_upAxis_set(void *c,int a); //attribute: int btCylinderShape->m_upAxis+int btCylinderShape_m_upAxis_get(void *c); //attribute: int btCylinderShape->m_upAxis+void* btCylinderShapeData_new(); //constructor: btCylinderShapeData  ( ::btCylinderShapeData::* )(  ) +void btCylinderShapeData_free(void *c); +void btCylinderShapeData_m_convexInternalShapeData_set(void *c,void* a); //attribute: ::btConvexInternalShapeData btCylinderShapeData->m_convexInternalShapeData+void* btCylinderShapeData_m_convexInternalShapeData_get(void *c); //attribute: ::btConvexInternalShapeData btCylinderShapeData->m_convexInternalShapeData+void btCylinderShapeData_m_upAxis_set(void *c,int a); //attribute: int btCylinderShapeData->m_upAxis+int btCylinderShapeData_m_upAxis_get(void *c); //attribute: int btCylinderShapeData->m_upAxis+// attribute not supported: //attribute: char[4] btCylinderShapeData->m_padding+void* btCylinderShapeX_new(float* p0); //constructor: btCylinderShapeX  ( ::btCylinderShapeX::* )( ::btVector3 const & ) +void btCylinderShapeX_free(void *c); +char const * btCylinderShapeX_getName(void *c); //method: getName char const * ( ::btCylinderShapeX::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShapeX::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btCylinderShapeX_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShapeX::* )( ::btVector3 const & ) const+float btCylinderShapeX_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShapeX::* )(  ) const+void* btCylinderShapeZ_new(float* p0); //constructor: btCylinderShapeZ  ( ::btCylinderShapeZ::* )( ::btVector3 const & ) +void btCylinderShapeZ_free(void *c); +char const * btCylinderShapeZ_getName(void *c); //method: getName char const * ( ::btCylinderShapeZ::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btCylinderShapeZ::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btCylinderShapeZ_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btCylinderShapeZ::* )( ::btVector3 const & ) const+float btCylinderShapeZ_getRadius(void *c); //method: getRadius ::btScalar ( ::btCylinderShapeZ::* )(  ) const+void* btEmptyShape_new(); //constructor: btEmptyShape  ( ::btEmptyShape::* )(  ) +void btEmptyShape_free(void *c); +void btEmptyShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btEmptyShape::* )( ::btScalar,::btVector3 & ) const+char const * btEmptyShape_getName(void *c); //method: getName char const * ( ::btEmptyShape::* )(  ) const+void btEmptyShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btEmptyShape::* )(  ) const+void btEmptyShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btEmptyShape::* )( ::btVector3 const & ) +void btEmptyShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btEmptyShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btEmptyShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btEmptyShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btEmptyShape_m_localScaling_set(void *c,float* a); //attribute: ::btVector3 btEmptyShape->m_localScaling+void btEmptyShape_m_localScaling_get(void *c,float* a);+void* btIndexedMesh_new(); //constructor: btIndexedMesh  ( ::btIndexedMesh::* )(  ) +void btIndexedMesh_free(void *c); +// attribute not supported: //attribute: ::PHY_ScalarType btIndexedMesh->m_indexType+void btIndexedMesh_m_numTriangles_set(void *c,int a); //attribute: int btIndexedMesh->m_numTriangles+int btIndexedMesh_m_numTriangles_get(void *c); //attribute: int btIndexedMesh->m_numTriangles+void btIndexedMesh_m_numVertices_set(void *c,int a); //attribute: int btIndexedMesh->m_numVertices+int btIndexedMesh_m_numVertices_get(void *c); //attribute: int btIndexedMesh->m_numVertices+// attribute not supported: //attribute: unsigned char const * btIndexedMesh->m_triangleIndexBase+void btIndexedMesh_m_triangleIndexStride_set(void *c,int a); //attribute: int btIndexedMesh->m_triangleIndexStride+int btIndexedMesh_m_triangleIndexStride_get(void *c); //attribute: int btIndexedMesh->m_triangleIndexStride+// attribute not supported: //attribute: unsigned char const * btIndexedMesh->m_vertexBase+void btIndexedMesh_m_vertexStride_set(void *c,int a); //attribute: int btIndexedMesh->m_vertexStride+int btIndexedMesh_m_vertexStride_get(void *c); //attribute: int btIndexedMesh->m_vertexStride+// attribute not supported: //attribute: ::PHY_ScalarType btIndexedMesh->m_vertexType+void* btIntIndexData_new(); //constructor: btIntIndexData  ( ::btIntIndexData::* )(  ) +void btIntIndexData_free(void *c); +void btIntIndexData_m_value_set(void *c,int a); //attribute: int btIntIndexData->m_value+int btIntIndexData_m_value_get(void *c); //attribute: int btIntIndexData->m_value+//not supported method: internalProcessTriangleIndex void ( ::btInternalTriangleIndexCallback::* )( ::btVector3 *,int,int ) +// error:  - unsupported, int - ok, int - ok, void - ok++void* btMeshPartData_new(); //constructor: btMeshPartData  ( ::btMeshPartData::* )(  ) +void btMeshPartData_free(void *c); +void btMeshPartData_m_vertices3f_set(void *c,void* a); //attribute: ::btVector3FloatData * btMeshPartData->m_vertices3f+void* btMeshPartData_m_vertices3f_get(void *c); //attribute: ::btVector3FloatData * btMeshPartData->m_vertices3f+void btMeshPartData_m_vertices3d_set(void *c,void* a); //attribute: ::btVector3DoubleData * btMeshPartData->m_vertices3d+void* btMeshPartData_m_vertices3d_get(void *c); //attribute: ::btVector3DoubleData * btMeshPartData->m_vertices3d+void btMeshPartData_m_indices32_set(void *c,void* a); //attribute: ::btIntIndexData * btMeshPartData->m_indices32+void* btMeshPartData_m_indices32_get(void *c); //attribute: ::btIntIndexData * btMeshPartData->m_indices32+void btMeshPartData_m_3indices16_set(void *c,void* a); //attribute: ::btShortIntIndexTripletData * btMeshPartData->m_3indices16+void* btMeshPartData_m_3indices16_get(void *c); //attribute: ::btShortIntIndexTripletData * btMeshPartData->m_3indices16+void btMeshPartData_m_3indices8_set(void *c,void* a); //attribute: ::btCharIndexTripletData * btMeshPartData->m_3indices8+void* btMeshPartData_m_3indices8_get(void *c); //attribute: ::btCharIndexTripletData * btMeshPartData->m_3indices8+void btMeshPartData_m_indices16_set(void *c,void* a); //attribute: ::btShortIntIndexData * btMeshPartData->m_indices16+void* btMeshPartData_m_indices16_get(void *c); //attribute: ::btShortIntIndexData * btMeshPartData->m_indices16+void btMeshPartData_m_numTriangles_set(void *c,int a); //attribute: int btMeshPartData->m_numTriangles+int btMeshPartData_m_numTriangles_get(void *c); //attribute: int btMeshPartData->m_numTriangles+void btMeshPartData_m_numVertices_set(void *c,int a); //attribute: int btMeshPartData->m_numVertices+int btMeshPartData_m_numVertices_get(void *c); //attribute: int btMeshPartData->m_numVertices+//not supported constructor: btMultiSphereShape  ( ::btMultiSphereShape::* )( ::btVector3 const *,::btScalar const *,int ) +// error:  - unsupported,  - unsupported, int - ok++void btMultiSphereShape_free(void *c); +void btMultiSphereShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btMultiSphereShape::* )( ::btScalar,::btVector3 & ) const+int btMultiSphereShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btMultiSphereShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btMultiSphereShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++int btMultiSphereShape_getSphereCount(void *c); //method: getSphereCount int ( ::btMultiSphereShape::* )(  ) const+char const * btMultiSphereShape_getName(void *c); //method: getName char const * ( ::btMultiSphereShape::* )(  ) const+char const * btMultiSphereShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btMultiSphereShape::* )( void *,::btSerializer * ) const+void btMultiSphereShape_getSpherePosition(void *c,int p0,float* ret); //method: getSpherePosition ::btVector3 const & ( ::btMultiSphereShape::* )( int ) const+float btMultiSphereShape_getSphereRadius(void *c,int p0); //method: getSphereRadius ::btScalar ( ::btMultiSphereShape::* )( int ) const+void btMultiSphereShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btMultiSphereShape::* )( ::btVector3 const & ) const+void btMultiSphereShape_m_localPositionArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btMultiSphereShape->m_localPositionArray+void* btMultiSphereShape_m_localPositionArray_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btMultiSphereShape->m_localPositionArray+void btMultiSphereShape_m_radiArray_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btMultiSphereShape->m_radiArray+void* btMultiSphereShape_m_radiArray_get(void *c); //attribute: ::btAlignedObjectArray<float> btMultiSphereShape->m_radiArray+void* btMultiSphereShapeData_new(); //constructor: btMultiSphereShapeData  ( ::btMultiSphereShapeData::* )(  ) +void btMultiSphereShapeData_free(void *c); +void btMultiSphereShapeData_m_convexInternalShapeData_set(void *c,void* a); //attribute: ::btConvexInternalShapeData btMultiSphereShapeData->m_convexInternalShapeData+void* btMultiSphereShapeData_m_convexInternalShapeData_get(void *c); //attribute: ::btConvexInternalShapeData btMultiSphereShapeData->m_convexInternalShapeData+void btMultiSphereShapeData_m_localPositionArrayPtr_set(void *c,void* a); //attribute: ::btPositionAndRadius * btMultiSphereShapeData->m_localPositionArrayPtr+void* btMultiSphereShapeData_m_localPositionArrayPtr_get(void *c); //attribute: ::btPositionAndRadius * btMultiSphereShapeData->m_localPositionArrayPtr+void btMultiSphereShapeData_m_localPositionArraySize_set(void *c,int a); //attribute: int btMultiSphereShapeData->m_localPositionArraySize+int btMultiSphereShapeData_m_localPositionArraySize_get(void *c); //attribute: int btMultiSphereShapeData->m_localPositionArraySize+// attribute not supported: //attribute: char[4] btMultiSphereShapeData->m_padding+void* btOptimizedBvh_new(); //constructor: btOptimizedBvh  ( ::btOptimizedBvh::* )(  ) +void btOptimizedBvh_free(void *c); +void btOptimizedBvh_updateBvhNodes(void *c,void* p0,int p1,int p2,int p3); //method: updateBvhNodes void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,int,int,int ) +int btOptimizedBvh_serializeInPlace(void *c,void* p0,unsigned int p1,int p2); //method: serializeInPlace bool ( ::btOptimizedBvh::* )( void *,unsigned int,bool ) const+void btOptimizedBvh_refit(void *c,void* p0,float* p1,float* p2); //method: refit void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,::btVector3 const &,::btVector3 const & ) +void btOptimizedBvh_build(void *c,void* p0,int p1,float* p2,float* p3); //method: build void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,bool,::btVector3 const &,::btVector3 const & ) +void btOptimizedBvh_refitPartial(void *c,void* p0,float* p1,float* p2); //method: refitPartial void ( ::btOptimizedBvh::* )( ::btStridingMeshInterface *,::btVector3 const &,::btVector3 const & ) +void* btOptimizedBvh_deSerializeInPlace(void* p0,unsigned int p1,int p2); //method: deSerializeInPlace ::btOptimizedBvh * (*)( void *,unsigned int,bool )+void btPolyhedralConvexAabbCachingShape_setCachedLocalAabb(void *c,float* p0,float* p1); //method: setCachedLocalAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btVector3 const &,::btVector3 const & ) +void btPolyhedralConvexAabbCachingShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btPolyhedralConvexAabbCachingShape::* )(  ) +void btPolyhedralConvexAabbCachingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btVector3 const & ) +void btPolyhedralConvexAabbCachingShape_getNonvirtualAabb(void *c,float* p0,float* p1,float* p2,float p3); //method: getNonvirtualAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 &,::btScalar ) const+void btPolyhedralConvexAabbCachingShape_getCachedLocalAabb(void *c,float* p0,float* p1); //method: getCachedLocalAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btVector3 &,::btVector3 & ) const+void btPolyhedralConvexAabbCachingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btPolyhedralConvexAabbCachingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btPolyhedralConvexAabbCachingShape_m_localAabbMin_set(void *c,float* a); //attribute: ::btVector3 btPolyhedralConvexAabbCachingShape->m_localAabbMin+void btPolyhedralConvexAabbCachingShape_m_localAabbMin_get(void *c,float* a);+void btPolyhedralConvexAabbCachingShape_m_localAabbMax_set(void *c,float* a); //attribute: ::btVector3 btPolyhedralConvexAabbCachingShape->m_localAabbMax+void btPolyhedralConvexAabbCachingShape_m_localAabbMax_get(void *c,float* a);+void btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_set(void *c,int a); //attribute: bool btPolyhedralConvexAabbCachingShape->m_isLocalAabbValid+int btPolyhedralConvexAabbCachingShape_m_isLocalAabbValid_get(void *c); //attribute: bool btPolyhedralConvexAabbCachingShape->m_isLocalAabbValid+void btPolyhedralConvexShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btPolyhedralConvexShape::* )( ::btScalar,::btVector3 & ) const+int btPolyhedralConvexShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btPolyhedralConvexShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btPolyhedralConvexShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++int btPolyhedralConvexShape_getNumEdges(void *c); //method: getNumEdges int ( ::btPolyhedralConvexShape::* )(  ) const+void btPolyhedralConvexShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btPolyhedralConvexShape::* )( int,::btVector3 & ) const+void btPolyhedralConvexShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btPolyhedralConvexShape::* )( int,::btVector3 &,::btVector3 & ) const+int btPolyhedralConvexShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btPolyhedralConvexShape::* )( ::btVector3 const &,::btScalar ) const+void btPolyhedralConvexShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btPolyhedralConvexShape::* )( ::btVector3 &,::btVector3 &,int ) const+//not supported method: getConvexPolyhedron ::btConvexPolyhedron const * ( ::btPolyhedralConvexShape::* )(  ) const+// error:  - unsupported++int btPolyhedralConvexShape_initializePolyhedralFeatures(void *c); //method: initializePolyhedralFeatures bool ( ::btPolyhedralConvexShape::* )(  ) +int btPolyhedralConvexShape_getNumVertices(void *c); //method: getNumVertices int ( ::btPolyhedralConvexShape::* )(  ) const+void btPolyhedralConvexShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btPolyhedralConvexShape::* )( ::btVector3 const & ) const+// attribute not supported: //attribute: ::btConvexPolyhedron * btPolyhedralConvexShape->m_polyhedron+void* btPositionAndRadius_new(); //constructor: btPositionAndRadius  ( ::btPositionAndRadius::* )(  ) +void btPositionAndRadius_free(void *c); +void btPositionAndRadius_m_pos_set(void *c,void* a); //attribute: ::btVector3FloatData btPositionAndRadius->m_pos+void* btPositionAndRadius_m_pos_get(void *c); //attribute: ::btVector3FloatData btPositionAndRadius->m_pos+void btPositionAndRadius_m_radius_set(void *c,float a); //attribute: float btPositionAndRadius->m_radius+float btPositionAndRadius_m_radius_get(void *c); //attribute: float btPositionAndRadius->m_radius+void* btScaledBvhTriangleMeshShape_new(void* p0,float* p1); //constructor: btScaledBvhTriangleMeshShape  ( ::btScaledBvhTriangleMeshShape::* )( ::btBvhTriangleMeshShape *,::btVector3 const & ) +void btScaledBvhTriangleMeshShape_free(void *c); +void btScaledBvhTriangleMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btScaledBvhTriangleMeshShape::* )( ::btScalar,::btVector3 & ) const+void* btScaledBvhTriangleMeshShape_getChildShape(void *c); //method: getChildShape ::btBvhTriangleMeshShape * ( ::btScaledBvhTriangleMeshShape::* )(  ) +void* btScaledBvhTriangleMeshShape_getChildShape0(void *c); //method: getChildShape ::btBvhTriangleMeshShape * ( ::btScaledBvhTriangleMeshShape::* )(  ) +void* btScaledBvhTriangleMeshShape_getChildShape1(void *c); //method: getChildShape ::btBvhTriangleMeshShape const * ( ::btScaledBvhTriangleMeshShape::* )(  ) const+int btScaledBvhTriangleMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btScaledBvhTriangleMeshShape::* )(  ) const+char const * btScaledBvhTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btScaledBvhTriangleMeshShape::* )(  ) const+char const * btScaledBvhTriangleMeshShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btScaledBvhTriangleMeshShape::* )( void *,::btSerializer * ) const+void btScaledBvhTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btScaledBvhTriangleMeshShape::* )(  ) const+void btScaledBvhTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btScaledBvhTriangleMeshShape::* )( ::btVector3 const & ) +void btScaledBvhTriangleMeshShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btScaledBvhTriangleMeshShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btScaledBvhTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btScaledBvhTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btScaledBvhTriangleMeshShape_m_localScaling_set(void *c,float* a); //attribute: ::btVector3 btScaledBvhTriangleMeshShape->m_localScaling+void btScaledBvhTriangleMeshShape_m_localScaling_get(void *c,float* a);+void btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_set(void *c,void* a); //attribute: ::btBvhTriangleMeshShape * btScaledBvhTriangleMeshShape->m_bvhTriMeshShape+void* btScaledBvhTriangleMeshShape_m_bvhTriMeshShape_get(void *c); //attribute: ::btBvhTriangleMeshShape * btScaledBvhTriangleMeshShape->m_bvhTriMeshShape+void* btScaledTriangleMeshShapeData_new(); //constructor: btScaledTriangleMeshShapeData  ( ::btScaledTriangleMeshShapeData::* )(  ) +void btScaledTriangleMeshShapeData_free(void *c); +void btScaledTriangleMeshShapeData_m_trimeshShapeData_set(void *c,void* a); //attribute: ::btTriangleMeshShapeData btScaledTriangleMeshShapeData->m_trimeshShapeData+void* btScaledTriangleMeshShapeData_m_trimeshShapeData_get(void *c); //attribute: ::btTriangleMeshShapeData btScaledTriangleMeshShapeData->m_trimeshShapeData+void btScaledTriangleMeshShapeData_m_localScaling_set(void *c,void* a); //attribute: ::btVector3FloatData btScaledTriangleMeshShapeData->m_localScaling+void* btScaledTriangleMeshShapeData_m_localScaling_get(void *c); //attribute: ::btVector3FloatData btScaledTriangleMeshShapeData->m_localScaling+void* btShortIntIndexData_new(); //constructor: btShortIntIndexData  ( ::btShortIntIndexData::* )(  ) +void btShortIntIndexData_free(void *c); +// attribute not supported: //attribute: char[2] btShortIntIndexData->m_pad+void btShortIntIndexData_m_value_set(void *c,short int a); //attribute: short int btShortIntIndexData->m_value+short int btShortIntIndexData_m_value_get(void *c); //attribute: short int btShortIntIndexData->m_value+void* btShortIntIndexTripletData_new(); //constructor: btShortIntIndexTripletData  ( ::btShortIntIndexTripletData::* )(  ) +void btShortIntIndexTripletData_free(void *c); +// attribute not supported: //attribute: char[2] btShortIntIndexTripletData->m_pad+// attribute not supported: //attribute: short int[3] btShortIntIndexTripletData->m_values+void* btSphereShape_new(float p0); //constructor: btSphereShape  ( ::btSphereShape::* )( ::btScalar ) +void btSphereShape_free(void *c); +void btSphereShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btSphereShape::* )( ::btScalar,::btVector3 & ) const+void btSphereShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btSphereShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btSphereShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++char const * btSphereShape_getName(void *c); //method: getName char const * ( ::btSphereShape::* )(  ) const+float btSphereShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btSphereShape::* )(  ) const+void btSphereShape_setMargin(void *c,float p0); //method: setMargin void ( ::btSphereShape::* )( ::btScalar ) +void btSphereShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btSphereShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btSphereShape_setUnscaledRadius(void *c,float p0); //method: setUnscaledRadius void ( ::btSphereShape::* )( ::btScalar ) +void btSphereShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btSphereShape::* )( ::btVector3 const & ) const+float btSphereShape_getRadius(void *c); //method: getRadius ::btScalar ( ::btSphereShape::* )(  ) const+void* btStaticPlaneShape_new(float* p0,float p1); //constructor: btStaticPlaneShape  ( ::btStaticPlaneShape::* )( ::btVector3 const &,::btScalar ) +void btStaticPlaneShape_free(void *c); +void btStaticPlaneShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btStaticPlaneShape::* )( ::btScalar,::btVector3 & ) const+int btStaticPlaneShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btStaticPlaneShape::* )(  ) const+char const * btStaticPlaneShape_getName(void *c); //method: getName char const * ( ::btStaticPlaneShape::* )(  ) const+char const * btStaticPlaneShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btStaticPlaneShape::* )( void *,::btSerializer * ) const+void btStaticPlaneShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btStaticPlaneShape::* )(  ) const+void btStaticPlaneShape_getPlaneNormal(void *c,float* ret); //method: getPlaneNormal ::btVector3 const & ( ::btStaticPlaneShape::* )(  ) const+float btStaticPlaneShape_getPlaneConstant(void *c); //method: getPlaneConstant ::btScalar const & ( ::btStaticPlaneShape::* )(  ) const+void btStaticPlaneShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btStaticPlaneShape::* )( ::btVector3 const & ) +void btStaticPlaneShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btStaticPlaneShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btStaticPlaneShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btStaticPlaneShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btStaticPlaneShape_m_localAabbMin_set(void *c,float* a); //attribute: ::btVector3 btStaticPlaneShape->m_localAabbMin+void btStaticPlaneShape_m_localAabbMin_get(void *c,float* a);+void btStaticPlaneShape_m_localAabbMax_set(void *c,float* a); //attribute: ::btVector3 btStaticPlaneShape->m_localAabbMax+void btStaticPlaneShape_m_localAabbMax_get(void *c,float* a);+void btStaticPlaneShape_m_planeNormal_set(void *c,float* a); //attribute: ::btVector3 btStaticPlaneShape->m_planeNormal+void btStaticPlaneShape_m_planeNormal_get(void *c,float* a);+void btStaticPlaneShape_m_planeConstant_set(void *c,float a); //attribute: ::btScalar btStaticPlaneShape->m_planeConstant+float btStaticPlaneShape_m_planeConstant_get(void *c); //attribute: ::btScalar btStaticPlaneShape->m_planeConstant+void btStaticPlaneShape_m_localScaling_set(void *c,float* a); //attribute: ::btVector3 btStaticPlaneShape->m_localScaling+void btStaticPlaneShape_m_localScaling_get(void *c,float* a);+void* btStaticPlaneShapeData_new(); //constructor: btStaticPlaneShapeData  ( ::btStaticPlaneShapeData::* )(  ) +void btStaticPlaneShapeData_free(void *c); +void btStaticPlaneShapeData_m_collisionShapeData_set(void *c,void* a); //attribute: ::btCollisionShapeData btStaticPlaneShapeData->m_collisionShapeData+void* btStaticPlaneShapeData_m_collisionShapeData_get(void *c); //attribute: ::btCollisionShapeData btStaticPlaneShapeData->m_collisionShapeData+void btStaticPlaneShapeData_m_localScaling_set(void *c,void* a); //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_localScaling+void* btStaticPlaneShapeData_m_localScaling_get(void *c); //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_localScaling+void btStaticPlaneShapeData_m_planeNormal_set(void *c,void* a); //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_planeNormal+void* btStaticPlaneShapeData_m_planeNormal_get(void *c); //attribute: ::btVector3FloatData btStaticPlaneShapeData->m_planeNormal+void btStaticPlaneShapeData_m_planeConstant_set(void *c,float a); //attribute: float btStaticPlaneShapeData->m_planeConstant+float btStaticPlaneShapeData_m_planeConstant_get(void *c); //attribute: float btStaticPlaneShapeData->m_planeConstant+// attribute not supported: //attribute: char[4] btStaticPlaneShapeData->m_pad+//not supported method: getLockedReadOnlyVertexIndexBase void ( ::btStridingMeshInterface::* )( unsigned char const * *,int &,::PHY_ScalarType &,int &,unsigned char const * *,int &,int &,::PHY_ScalarType &,int ) const+// error:  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported, int - ok, void - ok++int btStridingMeshInterface_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btStridingMeshInterface::* )(  ) const+void btStridingMeshInterface_calculateAabbBruteForce(void *c,float* p0,float* p1); //method: calculateAabbBruteForce void ( ::btStridingMeshInterface::* )( ::btVector3 &,::btVector3 & ) +char const * btStridingMeshInterface_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btStridingMeshInterface::* )( void *,::btSerializer * ) const+void btStridingMeshInterface_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btStridingMeshInterface::* )( int ) +void btStridingMeshInterface_unLockVertexBase(void *c,int p0); //method: unLockVertexBase void ( ::btStridingMeshInterface::* )( int ) +void btStridingMeshInterface_getScaling(void *c,float* ret); //method: getScaling ::btVector3 const & ( ::btStridingMeshInterface::* )(  ) const+void btStridingMeshInterface_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btStridingMeshInterface::* )( int ) +void btStridingMeshInterface_setPremadeAabb(void *c,float* p0,float* p1); //method: setPremadeAabb void ( ::btStridingMeshInterface::* )( ::btVector3 const &,::btVector3 const & ) const+void btStridingMeshInterface_InternalProcessAllTriangles(void *c,void* p0,float* p1,float* p2); //method: InternalProcessAllTriangles void ( ::btStridingMeshInterface::* )( ::btInternalTriangleIndexCallback *,::btVector3 const &,::btVector3 const & ) const+//not supported method: getPremadeAabb void ( ::btStridingMeshInterface::* )( ::btVector3 *,::btVector3 * ) const+// error:  - unsupported,  - unsupported, void - ok++int btStridingMeshInterface_getNumSubParts(void *c); //method: getNumSubParts int ( ::btStridingMeshInterface::* )(  ) const+//not supported method: getLockedVertexIndexBase void ( ::btStridingMeshInterface::* )( unsigned char * *,int &,::PHY_ScalarType &,int &,unsigned char * *,int &,int &,::PHY_ScalarType &,int ) +// error:  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported, int - ok, void - ok++int btStridingMeshInterface_hasPremadeAabb(void *c); //method: hasPremadeAabb bool ( ::btStridingMeshInterface::* )(  ) const+void btStridingMeshInterface_setScaling(void *c,float* p0); //method: setScaling void ( ::btStridingMeshInterface::* )( ::btVector3 const & ) +void btStridingMeshInterface_unLockReadOnlyVertexBase(void *c,int p0); //method: unLockReadOnlyVertexBase void ( ::btStridingMeshInterface::* )( int ) const+void btStridingMeshInterface_m_scaling_set(void *c,float* a); //attribute: ::btVector3 btStridingMeshInterface->m_scaling+void btStridingMeshInterface_m_scaling_get(void *c,float* a);+void* btStridingMeshInterfaceData_new(); //constructor: btStridingMeshInterfaceData  ( ::btStridingMeshInterfaceData::* )(  ) +void btStridingMeshInterfaceData_free(void *c); +void btStridingMeshInterfaceData_m_meshPartsPtr_set(void *c,void* a); //attribute: ::btMeshPartData * btStridingMeshInterfaceData->m_meshPartsPtr+void* btStridingMeshInterfaceData_m_meshPartsPtr_get(void *c); //attribute: ::btMeshPartData * btStridingMeshInterfaceData->m_meshPartsPtr+void btStridingMeshInterfaceData_m_scaling_set(void *c,void* a); //attribute: ::btVector3FloatData btStridingMeshInterfaceData->m_scaling+void* btStridingMeshInterfaceData_m_scaling_get(void *c); //attribute: ::btVector3FloatData btStridingMeshInterfaceData->m_scaling+void btStridingMeshInterfaceData_m_numMeshParts_set(void *c,int a); //attribute: int btStridingMeshInterfaceData->m_numMeshParts+int btStridingMeshInterfaceData_m_numMeshParts_get(void *c); //attribute: int btStridingMeshInterfaceData->m_numMeshParts+// attribute not supported: //attribute: char[4] btStridingMeshInterfaceData->m_padding+//not supported method: processTriangle void ( ::btTriangleCallback::* )( ::btVector3 *,int,int ) +// error:  - unsupported, int - ok, int - ok, void - ok++void* btTriangleIndexVertexArray_new0(); //constructor: btTriangleIndexVertexArray  ( ::btTriangleIndexVertexArray::* )(  ) +//not supported constructor: btTriangleIndexVertexArray  ( ::btTriangleIndexVertexArray::* )( int,int *,int,int,::btScalar *,int ) +// error: int - ok,  - unsupported, int - ok, int - ok,  - unsupported, int - ok++void btTriangleIndexVertexArray_free(void *c); +//not supported method: getLockedReadOnlyVertexIndexBase void ( ::btTriangleIndexVertexArray::* )( unsigned char const * *,int &,::PHY_ScalarType &,int &,unsigned char const * *,int &,int &,::PHY_ScalarType &,int ) const+// error:  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported, int - ok, void - ok++void btTriangleIndexVertexArray_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btTriangleIndexVertexArray::* )( int ) +void btTriangleIndexVertexArray_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btTriangleIndexVertexArray::* )( int ) +void* btTriangleIndexVertexArray_getIndexedMeshArray(void *c); //method: getIndexedMeshArray ::IndexedMeshArray & ( ::btTriangleIndexVertexArray::* )(  ) +void* btTriangleIndexVertexArray_getIndexedMeshArray0(void *c); //method: getIndexedMeshArray ::IndexedMeshArray & ( ::btTriangleIndexVertexArray::* )(  ) +void* btTriangleIndexVertexArray_getIndexedMeshArray1(void *c); //method: getIndexedMeshArray ::IndexedMeshArray const & ( ::btTriangleIndexVertexArray::* )(  ) const+void btTriangleIndexVertexArray_setPremadeAabb(void *c,float* p0,float* p1); //method: setPremadeAabb void ( ::btTriangleIndexVertexArray::* )( ::btVector3 const &,::btVector3 const & ) const+//not supported method: getPremadeAabb void ( ::btTriangleIndexVertexArray::* )( ::btVector3 *,::btVector3 * ) const+// error:  - unsupported,  - unsupported, void - ok++//not supported method: addIndexedMesh void ( ::btTriangleIndexVertexArray::* )( ::btIndexedMesh const &,::PHY_ScalarType ) +// error: ::btIndexedMesh const & - ok,  - unsupported, void - ok++int btTriangleIndexVertexArray_getNumSubParts(void *c); //method: getNumSubParts int ( ::btTriangleIndexVertexArray::* )(  ) const+//not supported method: getLockedVertexIndexBase void ( ::btTriangleIndexVertexArray::* )( unsigned char * *,int &,::PHY_ScalarType &,int &,unsigned char * *,int &,int &,::PHY_ScalarType &,int ) +// error:  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported,  - unsupported, int - ok, void - ok++int btTriangleIndexVertexArray_hasPremadeAabb(void *c); //method: hasPremadeAabb bool ( ::btTriangleIndexVertexArray::* )(  ) const+void btTriangleIndexVertexArray_unLockVertexBase(void *c,int p0); //method: unLockVertexBase void ( ::btTriangleIndexVertexArray::* )( int ) +void btTriangleIndexVertexArray_unLockReadOnlyVertexBase(void *c,int p0); //method: unLockReadOnlyVertexBase void ( ::btTriangleIndexVertexArray::* )( int ) const+void btTriangleIndexVertexArray_m_indexedMeshes_set(void *c,void* a); //attribute: ::IndexedMeshArray btTriangleIndexVertexArray->m_indexedMeshes+void* btTriangleIndexVertexArray_m_indexedMeshes_get(void *c); //attribute: ::IndexedMeshArray btTriangleIndexVertexArray->m_indexedMeshes+// attribute not supported: //attribute: int[2] btTriangleIndexVertexArray->m_pad+void btTriangleIndexVertexArray_m_hasAabb_set(void *c,int a); //attribute: int btTriangleIndexVertexArray->m_hasAabb+int btTriangleIndexVertexArray_m_hasAabb_get(void *c); //attribute: int btTriangleIndexVertexArray->m_hasAabb+void btTriangleIndexVertexArray_m_aabbMin_set(void *c,float* a); //attribute: ::btVector3 btTriangleIndexVertexArray->m_aabbMin+void btTriangleIndexVertexArray_m_aabbMin_get(void *c,float* a);+void btTriangleIndexVertexArray_m_aabbMax_set(void *c,float* a); //attribute: ::btVector3 btTriangleIndexVertexArray->m_aabbMax+void btTriangleIndexVertexArray_m_aabbMax_get(void *c,float* a);+void* btTriangleInfo_new(); //constructor: btTriangleInfo  ( ::btTriangleInfo::* )(  ) +void btTriangleInfo_free(void *c); +void btTriangleInfo_m_edgeV0V1Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV0V1Angle+float btTriangleInfo_m_edgeV0V1Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV0V1Angle+void btTriangleInfo_m_edgeV1V2Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV1V2Angle+float btTriangleInfo_m_edgeV1V2Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV1V2Angle+void btTriangleInfo_m_edgeV2V0Angle_set(void *c,float a); //attribute: ::btScalar btTriangleInfo->m_edgeV2V0Angle+float btTriangleInfo_m_edgeV2V0Angle_get(void *c); //attribute: ::btScalar btTriangleInfo->m_edgeV2V0Angle+void btTriangleInfo_m_flags_set(void *c,int a); //attribute: int btTriangleInfo->m_flags+int btTriangleInfo_m_flags_get(void *c); //attribute: int btTriangleInfo->m_flags+void* btTriangleInfoData_new(); //constructor: btTriangleInfoData  ( ::btTriangleInfoData::* )(  ) +void btTriangleInfoData_free(void *c); +void btTriangleInfoData_m_flags_set(void *c,int a); //attribute: int btTriangleInfoData->m_flags+int btTriangleInfoData_m_flags_get(void *c); //attribute: int btTriangleInfoData->m_flags+void btTriangleInfoData_m_edgeV0V1Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV0V1Angle+float btTriangleInfoData_m_edgeV0V1Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV0V1Angle+void btTriangleInfoData_m_edgeV1V2Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV1V2Angle+float btTriangleInfoData_m_edgeV1V2Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV1V2Angle+void btTriangleInfoData_m_edgeV2V0Angle_set(void *c,float a); //attribute: float btTriangleInfoData->m_edgeV2V0Angle+float btTriangleInfoData_m_edgeV2V0Angle_get(void *c); //attribute: float btTriangleInfoData->m_edgeV2V0Angle+void* btTriangleInfoMap_new(); //constructor: btTriangleInfoMap  ( ::btTriangleInfoMap::* )(  ) +void btTriangleInfoMap_free(void *c); +char const * btTriangleInfoMap_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btTriangleInfoMap::* )( void *,::btSerializer * ) const+int btTriangleInfoMap_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btTriangleInfoMap::* )(  ) const+void btTriangleInfoMap_deSerialize(void *c,void* p0); //method: deSerialize void ( ::btTriangleInfoMap::* )( ::btTriangleInfoMapData & ) +void btTriangleInfoMap_m_convexEpsilon_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_convexEpsilon+float btTriangleInfoMap_m_convexEpsilon_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_convexEpsilon+void btTriangleInfoMap_m_edgeDistanceThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_edgeDistanceThreshold+float btTriangleInfoMap_m_edgeDistanceThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_edgeDistanceThreshold+void btTriangleInfoMap_m_equalVertexThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_equalVertexThreshold+float btTriangleInfoMap_m_equalVertexThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_equalVertexThreshold+void btTriangleInfoMap_m_maxEdgeAngleThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_maxEdgeAngleThreshold+float btTriangleInfoMap_m_maxEdgeAngleThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_maxEdgeAngleThreshold+void btTriangleInfoMap_m_planarEpsilon_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_planarEpsilon+float btTriangleInfoMap_m_planarEpsilon_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_planarEpsilon+void btTriangleInfoMap_m_zeroAreaThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleInfoMap->m_zeroAreaThreshold+float btTriangleInfoMap_m_zeroAreaThreshold_get(void *c); //attribute: ::btScalar btTriangleInfoMap->m_zeroAreaThreshold+void* btTriangleInfoMapData_new(); //constructor: btTriangleInfoMapData  ( ::btTriangleInfoMapData::* )(  ) +void btTriangleInfoMapData_free(void *c); +void btTriangleInfoMapData_m_convexEpsilon_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_convexEpsilon+float btTriangleInfoMapData_m_convexEpsilon_get(void *c); //attribute: float btTriangleInfoMapData->m_convexEpsilon+void btTriangleInfoMapData_m_edgeDistanceThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_edgeDistanceThreshold+float btTriangleInfoMapData_m_edgeDistanceThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_edgeDistanceThreshold+void btTriangleInfoMapData_m_equalVertexThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_equalVertexThreshold+float btTriangleInfoMapData_m_equalVertexThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_equalVertexThreshold+// attribute not supported: //attribute: int * btTriangleInfoMapData->m_hashTablePtr+void btTriangleInfoMapData_m_hashTableSize_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_hashTableSize+int btTriangleInfoMapData_m_hashTableSize_get(void *c); //attribute: int btTriangleInfoMapData->m_hashTableSize+// attribute not supported: //attribute: int * btTriangleInfoMapData->m_keyArrayPtr+// attribute not supported: //attribute: int * btTriangleInfoMapData->m_nextPtr+void btTriangleInfoMapData_m_nextSize_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_nextSize+int btTriangleInfoMapData_m_nextSize_get(void *c); //attribute: int btTriangleInfoMapData->m_nextSize+void btTriangleInfoMapData_m_numKeys_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_numKeys+int btTriangleInfoMapData_m_numKeys_get(void *c); //attribute: int btTriangleInfoMapData->m_numKeys+void btTriangleInfoMapData_m_numValues_set(void *c,int a); //attribute: int btTriangleInfoMapData->m_numValues+int btTriangleInfoMapData_m_numValues_get(void *c); //attribute: int btTriangleInfoMapData->m_numValues+// attribute not supported: //attribute: char[4] btTriangleInfoMapData->m_padding+void btTriangleInfoMapData_m_planarEpsilon_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_planarEpsilon+float btTriangleInfoMapData_m_planarEpsilon_get(void *c); //attribute: float btTriangleInfoMapData->m_planarEpsilon+void btTriangleInfoMapData_m_valueArrayPtr_set(void *c,void* a); //attribute: ::btTriangleInfoData * btTriangleInfoMapData->m_valueArrayPtr+void* btTriangleInfoMapData_m_valueArrayPtr_get(void *c); //attribute: ::btTriangleInfoData * btTriangleInfoMapData->m_valueArrayPtr+void btTriangleInfoMapData_m_zeroAreaThreshold_set(void *c,float a); //attribute: float btTriangleInfoMapData->m_zeroAreaThreshold+float btTriangleInfoMapData_m_zeroAreaThreshold_get(void *c); //attribute: float btTriangleInfoMapData->m_zeroAreaThreshold+void* btTriangleMesh_new(int p0,int p1); //constructor: btTriangleMesh  ( ::btTriangleMesh::* )( bool,bool ) +void btTriangleMesh_free(void *c); +void btTriangleMesh_preallocateIndices(void *c,int p0); //method: preallocateIndices void ( ::btTriangleMesh::* )( int ) +int btTriangleMesh_getNumTriangles(void *c); //method: getNumTriangles int ( ::btTriangleMesh::* )(  ) const+int btTriangleMesh_getUse32bitIndices(void *c); //method: getUse32bitIndices bool ( ::btTriangleMesh::* )(  ) const+void btTriangleMesh_addIndex(void *c,int p0); //method: addIndex void ( ::btTriangleMesh::* )( int ) +void btTriangleMesh_preallocateVertices(void *c,int p0); //method: preallocateVertices void ( ::btTriangleMesh::* )( int ) +int btTriangleMesh_findOrAddVertex(void *c,float* p0,int p1); //method: findOrAddVertex int ( ::btTriangleMesh::* )( ::btVector3 const &,bool ) +int btTriangleMesh_getUse4componentVertices(void *c); //method: getUse4componentVertices bool ( ::btTriangleMesh::* )(  ) const+void btTriangleMesh_addTriangle(void *c,float* p0,float* p1,float* p2,int p3); //method: addTriangle void ( ::btTriangleMesh::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,bool ) +void btTriangleMesh_m_4componentVertices_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btTriangleMesh->m_4componentVertices+void* btTriangleMesh_m_4componentVertices_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btTriangleMesh->m_4componentVertices+void btTriangleMesh_m_3componentVertices_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btTriangleMesh->m_3componentVertices+void* btTriangleMesh_m_3componentVertices_get(void *c); //attribute: ::btAlignedObjectArray<float> btTriangleMesh->m_3componentVertices+void btTriangleMesh_m_32bitIndices_set(void *c,void* a); //attribute: ::btAlignedObjectArray<unsigned int> btTriangleMesh->m_32bitIndices+void* btTriangleMesh_m_32bitIndices_get(void *c); //attribute: ::btAlignedObjectArray<unsigned int> btTriangleMesh->m_32bitIndices+void btTriangleMesh_m_16bitIndices_set(void *c,void* a); //attribute: ::btAlignedObjectArray<unsigned short> btTriangleMesh->m_16bitIndices+void* btTriangleMesh_m_16bitIndices_get(void *c); //attribute: ::btAlignedObjectArray<unsigned short> btTriangleMesh->m_16bitIndices+void btTriangleMesh_m_use32bitIndices_set(void *c,int a); //attribute: bool btTriangleMesh->m_use32bitIndices+int btTriangleMesh_m_use32bitIndices_get(void *c); //attribute: bool btTriangleMesh->m_use32bitIndices+void btTriangleMesh_m_use4componentVertices_set(void *c,int a); //attribute: bool btTriangleMesh->m_use4componentVertices+int btTriangleMesh_m_use4componentVertices_get(void *c); //attribute: bool btTriangleMesh->m_use4componentVertices+void btTriangleMesh_m_weldingThreshold_set(void *c,float a); //attribute: ::btScalar btTriangleMesh->m_weldingThreshold+float btTriangleMesh_m_weldingThreshold_get(void *c); //attribute: ::btScalar btTriangleMesh->m_weldingThreshold+void* btTriangleMeshShape_new(void* p0); //constructor: btTriangleMeshShape  ( ::btTriangleMeshShape::* )( ::btStridingMeshInterface * ) +void btTriangleMeshShape_free(void *c); +void btTriangleMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btTriangleMeshShape::* )( ::btScalar,::btVector3 & ) const+void btTriangleMeshShape_getLocalAabbMax(void *c,float* ret); //method: getLocalAabbMax ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const+void btTriangleMeshShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btTriangleMeshShape::* )( ::btVector3 const & ) const+char const * btTriangleMeshShape_getName(void *c); //method: getName char const * ( ::btTriangleMeshShape::* )(  ) const+void btTriangleMeshShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const+void btTriangleMeshShape_recalcLocalAabb(void *c); //method: recalcLocalAabb void ( ::btTriangleMeshShape::* )(  ) +void btTriangleMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btTriangleMeshShape::* )( ::btVector3 const & ) +void* btTriangleMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btTriangleMeshShape::* )(  ) +void* btTriangleMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btTriangleMeshShape::* )(  ) +void* btTriangleMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btTriangleMeshShape::* )(  ) const+void btTriangleMeshShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleMeshShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btTriangleMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btTriangleMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+void btTriangleMeshShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btTriangleMeshShape::* )( ::btVector3 const & ) const+void btTriangleMeshShape_getLocalAabbMin(void *c,float* ret); //method: getLocalAabbMin ::btVector3 const & ( ::btTriangleMeshShape::* )(  ) const+void btTriangleMeshShape_m_localAabbMin_set(void *c,float* a); //attribute: ::btVector3 btTriangleMeshShape->m_localAabbMin+void btTriangleMeshShape_m_localAabbMin_get(void *c,float* a);+void btTriangleMeshShape_m_localAabbMax_set(void *c,float* a); //attribute: ::btVector3 btTriangleMeshShape->m_localAabbMax+void btTriangleMeshShape_m_localAabbMax_get(void *c,float* a);+void btTriangleMeshShape_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterface * btTriangleMeshShape->m_meshInterface+void* btTriangleMeshShape_m_meshInterface_get(void *c); //attribute: ::btStridingMeshInterface * btTriangleMeshShape->m_meshInterface+void* btTriangleMeshShapeData_new(); //constructor: btTriangleMeshShapeData  ( ::btTriangleMeshShapeData::* )(  ) +void btTriangleMeshShapeData_free(void *c); +void btTriangleMeshShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btTriangleMeshShapeData->m_collisionMargin+float btTriangleMeshShapeData_m_collisionMargin_get(void *c); //attribute: float btTriangleMeshShapeData->m_collisionMargin+void btTriangleMeshShapeData_m_collisionShapeData_set(void *c,void* a); //attribute: ::btCollisionShapeData btTriangleMeshShapeData->m_collisionShapeData+void* btTriangleMeshShapeData_m_collisionShapeData_get(void *c); //attribute: ::btCollisionShapeData btTriangleMeshShapeData->m_collisionShapeData+void btTriangleMeshShapeData_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterfaceData btTriangleMeshShapeData->m_meshInterface+void* btTriangleMeshShapeData_m_meshInterface_get(void *c); //attribute: ::btStridingMeshInterfaceData btTriangleMeshShapeData->m_meshInterface+// attribute not supported: //attribute: char[4] btTriangleMeshShapeData->m_pad3+void btTriangleMeshShapeData_m_quantizedDoubleBvh_set(void *c,void* a); //attribute: ::btQuantizedBvhDoubleData * btTriangleMeshShapeData->m_quantizedDoubleBvh+void* btTriangleMeshShapeData_m_quantizedDoubleBvh_get(void *c); //attribute: ::btQuantizedBvhDoubleData * btTriangleMeshShapeData->m_quantizedDoubleBvh+void btTriangleMeshShapeData_m_quantizedFloatBvh_set(void *c,void* a); //attribute: ::btQuantizedBvhFloatData * btTriangleMeshShapeData->m_quantizedFloatBvh+void* btTriangleMeshShapeData_m_quantizedFloatBvh_get(void *c); //attribute: ::btQuantizedBvhFloatData * btTriangleMeshShapeData->m_quantizedFloatBvh+void btTriangleMeshShapeData_m_triangleInfoMap_set(void *c,void* a); //attribute: ::btTriangleInfoMapData * btTriangleMeshShapeData->m_triangleInfoMap+void* btTriangleMeshShapeData_m_triangleInfoMap_get(void *c); //attribute: ::btTriangleInfoMapData * btTriangleMeshShapeData->m_triangleInfoMap+void* btTriangleShape_new0(); //constructor: btTriangleShape  ( ::btTriangleShape::* )(  ) +void* btTriangleShape_new1(float* p0,float* p1,float* p2); //constructor: btTriangleShape  ( ::btTriangleShape::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btTriangleShape_free(void *c); +void btTriangleShape_getVertexPtr(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 & ( ::btTriangleShape::* )( int ) +void btTriangleShape_getVertexPtr0(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 & ( ::btTriangleShape::* )( int ) +void btTriangleShape_getVertexPtr1(void *c,int p0,float* ret); //method: getVertexPtr ::btVector3 const & ( ::btTriangleShape::* )( int ) const+int btTriangleShape_getNumPlanes(void *c); //method: getNumPlanes int ( ::btTriangleShape::* )(  ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btTriangleShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++void btTriangleShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btTriangleShape::* )( int,::btVector3 & ) const+int btTriangleShape_getNumEdges(void *c); //method: getNumEdges int ( ::btTriangleShape::* )(  ) const+char const * btTriangleShape_getName(void *c); //method: getName char const * ( ::btTriangleShape::* )(  ) const+int btTriangleShape_getNumVertices(void *c); //method: getNumVertices int ( ::btTriangleShape::* )(  ) const+void btTriangleShape_getEdge(void *c,int p0,float* p1,float* p2); //method: getEdge void ( ::btTriangleShape::* )( int,::btVector3 &,::btVector3 & ) const+int btTriangleShape_isInside(void *c,float* p0,float p1); //method: isInside bool ( ::btTriangleShape::* )( ::btVector3 const &,::btScalar ) const+void btTriangleShape_getPlane(void *c,float* p0,float* p1,int p2); //method: getPlane void ( ::btTriangleShape::* )( ::btVector3 &,::btVector3 &,int ) const+int btTriangleShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btTriangleShape::* )(  ) const+void btTriangleShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btTriangleShape_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btTriangleShape::* )( int,::btVector3 & ) const+void btTriangleShape_calcNormal(void *c,float* p0); //method: calcNormal void ( ::btTriangleShape::* )( ::btVector3 & ) const+void btTriangleShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btTriangleShape::* )( ::btScalar,::btVector3 & ) const+void btTriangleShape_getPlaneEquation(void *c,int p0,float* p1,float* p2); //method: getPlaneEquation void ( ::btTriangleShape::* )( int,::btVector3 &,::btVector3 & ) const+void btTriangleShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btTriangleShape::* )( ::btVector3 const & ) const+// attribute not supported: //attribute: ::btVector3[3] btTriangleShape->m_vertices1+void* btUniformScalingShape_new(void* p0,float p1); //constructor: btUniformScalingShape  ( ::btUniformScalingShape::* )( ::btConvexShape *,::btScalar ) +void btUniformScalingShape_free(void *c); +void btUniformScalingShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btUniformScalingShape::* )( ::btScalar,::btVector3 & ) const+float btUniformScalingShape_getUniformScalingFactor(void *c); //method: getUniformScalingFactor ::btScalar ( ::btUniformScalingShape::* )(  ) const+void btUniformScalingShape_localGetSupportingVertex(void *c,float* p0,float* ret); //method: localGetSupportingVertex ::btVector3 ( ::btUniformScalingShape::* )( ::btVector3 const & ) const+//not supported method: batchedUnitVectorGetSupportingVertexWithoutMargin void ( ::btUniformScalingShape::* )( ::btVector3 const *,::btVector3 *,int ) const+// error:  - unsupported,  - unsupported, int - ok, void - ok++char const * btUniformScalingShape_getName(void *c); //method: getName char const * ( ::btUniformScalingShape::* )(  ) const+void btUniformScalingShape_getAabbSlow(void *c,float* p0,float* p1,float* p2); //method: getAabbSlow void ( ::btUniformScalingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btUniformScalingShape_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btUniformScalingShape::* )(  ) const+void* btUniformScalingShape_getChildShape(void *c); //method: getChildShape ::btConvexShape * ( ::btUniformScalingShape::* )(  ) +void* btUniformScalingShape_getChildShape0(void *c); //method: getChildShape ::btConvexShape * ( ::btUniformScalingShape::* )(  ) +void* btUniformScalingShape_getChildShape1(void *c); //method: getChildShape ::btConvexShape const * ( ::btUniformScalingShape::* )(  ) const+void btUniformScalingShape_getPreferredPenetrationDirection(void *c,int p0,float* p1); //method: getPreferredPenetrationDirection void ( ::btUniformScalingShape::* )( int,::btVector3 & ) const+void btUniformScalingShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btUniformScalingShape::* )( ::btVector3 const & ) +int btUniformScalingShape_getNumPreferredPenetrationDirections(void *c); //method: getNumPreferredPenetrationDirections int ( ::btUniformScalingShape::* )(  ) const+void btUniformScalingShape_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btUniformScalingShape::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void btUniformScalingShape_setMargin(void *c,float p0); //method: setMargin void ( ::btUniformScalingShape::* )( ::btScalar ) +float btUniformScalingShape_getMargin(void *c); //method: getMargin ::btScalar ( ::btUniformScalingShape::* )(  ) const+void btUniformScalingShape_localGetSupportingVertexWithoutMargin(void *c,float* p0,float* ret); //method: localGetSupportingVertexWithoutMargin ::btVector3 ( ::btUniformScalingShape::* )( ::btVector3 const & ) const+void btUniformScalingShape_m_childConvexShape_set(void *c,void* a); //attribute: ::btConvexShape * btUniformScalingShape->m_childConvexShape+void* btUniformScalingShape_m_childConvexShape_get(void *c); //attribute: ::btConvexShape * btUniformScalingShape->m_childConvexShape+void btUniformScalingShape_m_uniformScalingFactor_set(void *c,float a); //attribute: ::btScalar btUniformScalingShape->m_uniformScalingFactor+float btUniformScalingShape_m_uniformScalingFactor_get(void *c); //attribute: ::btScalar btUniformScalingShape->m_uniformScalingFactor+void* bT_BOX_BOX_TRANSFORM_CACHE_new(); //constructor: BT_BOX_BOX_TRANSFORM_CACHE  ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )(  ) +void bT_BOX_BOX_TRANSFORM_CACHE_free(void *c); +void bT_BOX_BOX_TRANSFORM_CACHE_calc_from_full_invert(void *c,float* p0,float* p1); //method: calc_from_full_invert void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btTransform const &,::btTransform const & ) +void bT_BOX_BOX_TRANSFORM_CACHE_calc_from_homogenic(void *c,float* p0,float* p1); //method: calc_from_homogenic void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btTransform const &,::btTransform const & ) +void bT_BOX_BOX_TRANSFORM_CACHE_transform(void *c,float* p0,float* ret); //method: transform ::btVector3 ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )( ::btVector3 const & ) const+void bT_BOX_BOX_TRANSFORM_CACHE_calc_absolute_matrix(void *c); //method: calc_absolute_matrix void ( ::BT_BOX_BOX_TRANSFORM_CACHE::* )(  ) +void bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_set(void *c,float* a); //attribute: ::btVector3 bT_BOX_BOX_TRANSFORM_CACHE->m_T1to0+void bT_BOX_BOX_TRANSFORM_CACHE_m_T1to0_get(void *c,float* a);+void bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_set(void *c,float* a); //attribute: ::btMatrix3x3 bT_BOX_BOX_TRANSFORM_CACHE->m_R1to0+void bT_BOX_BOX_TRANSFORM_CACHE_m_R1to0_get(void *c,float* a);+void bT_BOX_BOX_TRANSFORM_CACHE_m_AR_set(void *c,float* a); //attribute: ::btMatrix3x3 bT_BOX_BOX_TRANSFORM_CACHE->m_AR+void bT_BOX_BOX_TRANSFORM_CACHE_m_AR_get(void *c,float* a);+void* bT_QUANTIZED_BVH_NODE_new(); //constructor: BT_QUANTIZED_BVH_NODE  ( ::BT_QUANTIZED_BVH_NODE::* )(  ) +void bT_QUANTIZED_BVH_NODE_free(void *c); +int bT_QUANTIZED_BVH_NODE_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const+int bT_QUANTIZED_BVH_NODE_getDataIndex(void *c); //method: getDataIndex int ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const+void bT_QUANTIZED_BVH_NODE_setEscapeIndex(void *c,int p0); //method: setEscapeIndex void ( ::BT_QUANTIZED_BVH_NODE::* )( int ) +void bT_QUANTIZED_BVH_NODE_setDataIndex(void *c,int p0); //method: setDataIndex void ( ::BT_QUANTIZED_BVH_NODE::* )( int ) +int bT_QUANTIZED_BVH_NODE_isLeafNode(void *c); //method: isLeafNode bool ( ::BT_QUANTIZED_BVH_NODE::* )(  ) const+//not supported method: testQuantizedBoxOverlapp bool ( ::BT_QUANTIZED_BVH_NODE::* )( short unsigned int *,short unsigned int * ) const+// error:  - unsupported,  - unsupported, bool - ok++void bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_set(void *c,int a); //attribute: int bT_QUANTIZED_BVH_NODE->m_escapeIndexOrDataIndex+int bT_QUANTIZED_BVH_NODE_m_escapeIndexOrDataIndex_get(void *c); //attribute: int bT_QUANTIZED_BVH_NODE->m_escapeIndexOrDataIndex+// attribute not supported: //attribute: short unsigned int[3] bT_QUANTIZED_BVH_NODE->m_quantizedAabbMax+// attribute not supported: //attribute: short unsigned int[3] bT_QUANTIZED_BVH_NODE->m_quantizedAabbMin+void* btGImpactCompoundShape_CompoundPrimitiveManager_new0(void* p0); //constructor: CompoundPrimitiveManager  ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( ::btGImpactCompoundShape * ) +void* btGImpactCompoundShape_CompoundPrimitiveManager_new1(); //constructor: CompoundPrimitiveManager  ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) +void btGImpactCompoundShape_CompoundPrimitiveManager_free(void *c); +int btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_count(void *c); //method: get_primitive_count int ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) const+void btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( int,::btPrimitiveTriangle & ) const+void btGImpactCompoundShape_CompoundPrimitiveManager_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )( int,::btAABB & ) const+int btGImpactCompoundShape_CompoundPrimitiveManager_is_trimesh(void *c); //method: is_trimesh bool ( ::btGImpactCompoundShape::CompoundPrimitiveManager::* )(  ) const+void btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_set(void *c,void* a); //attribute: ::btGImpactCompoundShape * btGImpactCompoundShape_CompoundPrimitiveManager->m_compoundShape+void* btGImpactCompoundShape_CompoundPrimitiveManager_m_compoundShape_get(void *c); //attribute: ::btGImpactCompoundShape * btGImpactCompoundShape_CompoundPrimitiveManager->m_compoundShape+void* btGImpactCollisionAlgorithm_CreateFunc_new(); //constructor: CreateFunc  ( ::btGImpactCollisionAlgorithm::CreateFunc::* )(  ) +void btGImpactCollisionAlgorithm_CreateFunc_free(void *c); +void* btGImpactCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btGImpactCollisionAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) +void* gIM_BVH_DATA_new(); //constructor: GIM_BVH_DATA  ( ::GIM_BVH_DATA::* )(  ) +void gIM_BVH_DATA_free(void *c); +void gIM_BVH_DATA_m_bound_set(void *c,void* a); //attribute: ::btAABB gIM_BVH_DATA->m_bound+void* gIM_BVH_DATA_m_bound_get(void *c); //attribute: ::btAABB gIM_BVH_DATA->m_bound+void gIM_BVH_DATA_m_data_set(void *c,int a); //attribute: int gIM_BVH_DATA->m_data+int gIM_BVH_DATA_m_data_get(void *c); //attribute: int gIM_BVH_DATA->m_data+void* gIM_BVH_DATA_ARRAY_new(); //constructor: GIM_BVH_DATA_ARRAY  ( ::GIM_BVH_DATA_ARRAY::* )(  ) +void gIM_BVH_DATA_ARRAY_free(void *c); +void* gIM_BVH_TREE_NODE_new(); //constructor: GIM_BVH_TREE_NODE  ( ::GIM_BVH_TREE_NODE::* )(  ) +void gIM_BVH_TREE_NODE_free(void *c); +void gIM_BVH_TREE_NODE_setDataIndex(void *c,int p0); //method: setDataIndex void ( ::GIM_BVH_TREE_NODE::* )( int ) +int gIM_BVH_TREE_NODE_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::GIM_BVH_TREE_NODE::* )(  ) const+int gIM_BVH_TREE_NODE_getDataIndex(void *c); //method: getDataIndex int ( ::GIM_BVH_TREE_NODE::* )(  ) const+void gIM_BVH_TREE_NODE_setEscapeIndex(void *c,int p0); //method: setEscapeIndex void ( ::GIM_BVH_TREE_NODE::* )( int ) +int gIM_BVH_TREE_NODE_isLeafNode(void *c); //method: isLeafNode bool ( ::GIM_BVH_TREE_NODE::* )(  ) const+void gIM_BVH_TREE_NODE_m_bound_set(void *c,void* a); //attribute: ::btAABB gIM_BVH_TREE_NODE->m_bound+void* gIM_BVH_TREE_NODE_m_bound_get(void *c); //attribute: ::btAABB gIM_BVH_TREE_NODE->m_bound+void gIM_BVH_TREE_NODE_m_escapeIndexOrDataIndex_set(void *c,int a); //attribute: int gIM_BVH_TREE_NODE->m_escapeIndexOrDataIndex+int gIM_BVH_TREE_NODE_m_escapeIndexOrDataIndex_get(void *c); //attribute: int gIM_BVH_TREE_NODE->m_escapeIndexOrDataIndex+void* gIM_BVH_TREE_NODE_ARRAY_new(); //constructor: GIM_BVH_TREE_NODE_ARRAY  ( ::GIM_BVH_TREE_NODE_ARRAY::* )(  ) +void gIM_BVH_TREE_NODE_ARRAY_free(void *c); +void* gIM_PAIR_new0(); //constructor: GIM_PAIR  ( ::GIM_PAIR::* )(  ) +void* gIM_PAIR_new1(int p0,int p1); //constructor: GIM_PAIR  ( ::GIM_PAIR::* )( int,int ) +void gIM_PAIR_free(void *c); +void gIM_PAIR_m_index1_set(void *c,int a); //attribute: int gIM_PAIR->m_index1+int gIM_PAIR_m_index1_get(void *c); //attribute: int gIM_PAIR->m_index1+void gIM_PAIR_m_index2_set(void *c,int a); //attribute: int gIM_PAIR->m_index2+int gIM_PAIR_m_index2_get(void *c); //attribute: int gIM_PAIR->m_index2+void* gIM_QUANTIZED_BVH_NODE_ARRAY_new(); //constructor: GIM_QUANTIZED_BVH_NODE_ARRAY  ( ::GIM_QUANTIZED_BVH_NODE_ARRAY::* )(  ) +void gIM_QUANTIZED_BVH_NODE_ARRAY_free(void *c); +void* gIM_TRIANGLE_CONTACT_new(); //constructor: GIM_TRIANGLE_CONTACT  ( ::GIM_TRIANGLE_CONTACT::* )(  ) +void gIM_TRIANGLE_CONTACT_free(void *c); +//not supported method: merge_points void ( ::GIM_TRIANGLE_CONTACT::* )( ::btVector4 const &,::btScalar,::btVector3 const *,int ) +// error: ::btVector4 const & - ok, ::btScalar - ok,  - unsupported, int - ok, void - ok++void gIM_TRIANGLE_CONTACT_copy_from(void *c,void* p0); //method: copy_from void ( ::GIM_TRIANGLE_CONTACT::* )( ::GIM_TRIANGLE_CONTACT const & ) +void gIM_TRIANGLE_CONTACT_m_penetration_depth_set(void *c,float a); //attribute: ::btScalar gIM_TRIANGLE_CONTACT->m_penetration_depth+float gIM_TRIANGLE_CONTACT_m_penetration_depth_get(void *c); //attribute: ::btScalar gIM_TRIANGLE_CONTACT->m_penetration_depth+void gIM_TRIANGLE_CONTACT_m_point_count_set(void *c,int a); //attribute: int gIM_TRIANGLE_CONTACT->m_point_count+int gIM_TRIANGLE_CONTACT_m_point_count_get(void *c); //attribute: int gIM_TRIANGLE_CONTACT->m_point_count+// attribute not supported: //attribute: ::btVector3[16] gIM_TRIANGLE_CONTACT->m_points+void gIM_TRIANGLE_CONTACT_m_separating_normal_set(void *c,float* a); //attribute: ::btVector4 gIM_TRIANGLE_CONTACT->m_separating_normal+void gIM_TRIANGLE_CONTACT_m_separating_normal_get(void *c,float* a);+void* btGImpactMeshShapePart_TrimeshPrimitiveManager_new0(); //constructor: TrimeshPrimitiveManager  ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) +void* btGImpactMeshShapePart_TrimeshPrimitiveManager_new1(void* p0,int p1); //constructor: TrimeshPrimitiveManager  ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( ::btStridingMeshInterface *,int ) +void btGImpactMeshShapePart_TrimeshPrimitiveManager_free(void *c); +int btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex_count(void *c); //method: get_vertex_count int ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const+void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_vertex(void *c,int p0,float* p1); //method: get_vertex void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btVector3 & ) const+int btGImpactMeshShapePart_TrimeshPrimitiveManager_is_trimesh(void *c); //method: is_trimesh bool ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const+void btGImpactMeshShapePart_TrimeshPrimitiveManager_lock(void *c); //method: lock void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) +void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btAABB & ) const+void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btPrimitiveTriangle & ) const+void btGImpactMeshShapePart_TrimeshPrimitiveManager_unlock(void *c); //method: unlock void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) +void btGImpactMeshShapePart_TrimeshPrimitiveManager_get_bullet_triangle(void *c,int p0,void* p1); //method: get_bullet_triangle void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,::btTriangleShapeEx & ) const+int btGImpactMeshShapePart_TrimeshPrimitiveManager_get_primitive_count(void *c); //method: get_primitive_count int ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )(  ) const+//not supported method: get_indices void ( ::btGImpactMeshShapePart::TrimeshPrimitiveManager::* )( int,int &,int &,int & ) const+// error: int - ok,  - unsupported,  - unsupported,  - unsupported, void - ok++void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_set(void *c,float a); //attribute: ::btScalar btGImpactMeshShapePart_TrimeshPrimitiveManager->m_margin+float btGImpactMeshShapePart_TrimeshPrimitiveManager_m_margin_get(void *c); //attribute: ::btScalar btGImpactMeshShapePart_TrimeshPrimitiveManager->m_margin+void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterface * btGImpactMeshShapePart_TrimeshPrimitiveManager->m_meshInterface+void* btGImpactMeshShapePart_TrimeshPrimitiveManager_m_meshInterface_get(void *c); //attribute: ::btStridingMeshInterface * btGImpactMeshShapePart_TrimeshPrimitiveManager->m_meshInterface+void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_set(void *c,float* a); //attribute: ::btVector3 btGImpactMeshShapePart_TrimeshPrimitiveManager->m_scale+void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_scale_get(void *c,float* a);+void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_part+int btGImpactMeshShapePart_TrimeshPrimitiveManager_m_part_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_part+void btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_lock_count+int btGImpactMeshShapePart_TrimeshPrimitiveManager_m_lock_count_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->m_lock_count+// attribute not supported: //attribute: unsigned char const * btGImpactMeshShapePart_TrimeshPrimitiveManager->vertexbase+void btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numverts+int btGImpactMeshShapePart_TrimeshPrimitiveManager_numverts_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numverts+// attribute not supported: //attribute: ::PHY_ScalarType btGImpactMeshShapePart_TrimeshPrimitiveManager->type+void btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->stride+int btGImpactMeshShapePart_TrimeshPrimitiveManager_stride_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->stride+// attribute not supported: //attribute: unsigned char const * btGImpactMeshShapePart_TrimeshPrimitiveManager->indexbase+void btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->indexstride+int btGImpactMeshShapePart_TrimeshPrimitiveManager_indexstride_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->indexstride+void btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_set(void *c,int a); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numfaces+int btGImpactMeshShapePart_TrimeshPrimitiveManager_numfaces_get(void *c); //attribute: int btGImpactMeshShapePart_TrimeshPrimitiveManager->numfaces+// attribute not supported: //attribute: ::PHY_ScalarType btGImpactMeshShapePart_TrimeshPrimitiveManager->indicestype+void* btAABB_new0(); //constructor: btAABB  ( ::btAABB::* )(  ) +void* btAABB_new1(float* p0,float* p1,float* p2); //constructor: btAABB  ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void* btAABB_new2(float* p0,float* p1,float* p2,float p3); //constructor: btAABB  ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void* btAABB_new3(void* p0,float p1); //constructor: btAABB  ( ::btAABB::* )( ::btAABB const &,::btScalar ) +void btAABB_free(void *c); +int btAABB_overlapping_trans_conservative(void *c,void* p0,float* p1); //method: overlapping_trans_conservative bool ( ::btAABB::* )( ::btAABB const &,::btTransform & ) const+void btAABB_appy_transform(void *c,float* p0); //method: appy_transform void ( ::btAABB::* )( ::btTransform const & ) +void btAABB_find_intersection(void *c,void* p0,void* p1); //method: find_intersection void ( ::btAABB::* )( ::btAABB const &,::btAABB & ) const+int btAABB_collide_ray(void *c,float* p0,float* p1); //method: collide_ray bool ( ::btAABB::* )( ::btVector3 const &,::btVector3 const & ) const+int btAABB_overlapping_trans_cache(void *c,void* p0,void* p1,int p2); //method: overlapping_trans_cache bool ( ::btAABB::* )( ::btAABB const &,::BT_BOX_BOX_TRANSFORM_CACHE const &,bool ) const+void btAABB_get_center_extend(void *c,float* p0,float* p1); //method: get_center_extend void ( ::btAABB::* )( ::btVector3 &,::btVector3 & ) const+void btAABB_invalidate(void *c); //method: invalidate void ( ::btAABB::* )(  ) +int btAABB_has_collision(void *c,void* p0); //method: has_collision bool ( ::btAABB::* )( ::btAABB const & ) const+//not supported method: projection_interval void ( ::btAABB::* )( ::btVector3 const &,::btScalar &,::btScalar & ) const+// error: ::btVector3 const & - ok,  - unsupported,  - unsupported, void - ok++void btAABB_appy_transform_trans_cache(void *c,void* p0); //method: appy_transform_trans_cache void ( ::btAABB::* )( ::BT_BOX_BOX_TRANSFORM_CACHE const & ) +void btAABB_calc_from_triangle_margin(void *c,float* p0,float* p1,float* p2,float p3); //method: calc_from_triangle_margin void ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btAABB_increment_margin(void *c,float p0); //method: increment_margin void ( ::btAABB::* )( ::btScalar ) +void btAABB_merge(void *c,void* p0); //method: merge void ( ::btAABB::* )( ::btAABB const & ) +int btAABB_collide_plane(void *c,float* p0); //method: collide_plane bool ( ::btAABB::* )( ::btVector4 const & ) const+//not supported method: plane_classify ::eBT_PLANE_INTERSECTION_TYPE ( ::btAABB::* )( ::btVector4 const & ) const+// error: ::btVector4 const & - ok,  - unsupported++int btAABB_overlapping_trans_conservative2(void *c,void* p0,void* p1); //method: overlapping_trans_conservative2 bool ( ::btAABB::* )( ::btAABB const &,::BT_BOX_BOX_TRANSFORM_CACHE const & ) const+void btAABB_copy_with_margin(void *c,void* p0,float p1); //method: copy_with_margin void ( ::btAABB::* )( ::btAABB const &,::btScalar ) +int btAABB_collide_triangle_exact(void *c,float* p0,float* p1,float* p2,float* p3); //method: collide_triangle_exact bool ( ::btAABB::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector4 const & ) const+void btAABB_m_max_set(void *c,float* a); //attribute: ::btVector3 btAABB->m_max+void btAABB_m_max_get(void *c,float* a);+void btAABB_m_min_set(void *c,float* a); //attribute: ::btVector3 btAABB->m_min+void btAABB_m_min_get(void *c,float* a);+void* btBvhTree_new(); //constructor: btBvhTree  ( ::btBvhTree::* )(  ) +void btBvhTree_free(void *c); +int btBvhTree_getNodeCount(void *c); //method: getNodeCount int ( ::btBvhTree::* )(  ) const+void btBvhTree_build_tree(void *c,void* p0); //method: build_tree void ( ::btBvhTree::* )( ::GIM_BVH_DATA_ARRAY & ) +void btBvhTree_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btBvhTree::* )( int,::btAABB const & ) +int btBvhTree_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btBvhTree::* )( int ) const+void btBvhTree__build_sub_tree(void *c,void* p0,int p1,int p2); //method: _build_sub_tree void ( ::btBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int ) +void btBvhTree_clearNodes(void *c); //method: clearNodes void ( ::btBvhTree::* )(  ) +int btBvhTree__sort_and_calc_splitting_index(void *c,void* p0,int p1,int p2,int p3); //method: _sort_and_calc_splitting_index int ( ::btBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int,int ) +int btBvhTree_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btBvhTree::* )( int ) const+int btBvhTree_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btBvhTree::* )( int ) const+void* btBvhTree_get_node_pointer(void *c,int p0); //method: get_node_pointer ::GIM_BVH_TREE_NODE const * ( ::btBvhTree::* )( int ) const+int btBvhTree_getNodeData(void *c,int p0); //method: getNodeData int ( ::btBvhTree::* )( int ) const+void btBvhTree_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btBvhTree::* )( int,::btAABB & ) const+int btBvhTree_getRightNode(void *c,int p0); //method: getRightNode int ( ::btBvhTree::* )( int ) const+int btBvhTree__calc_splitting_axis(void *c,void* p0,int p1,int p2); //method: _calc_splitting_axis int ( ::btBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int ) +void btBvhTree_m_num_nodes_set(void *c,int a); //attribute: int btBvhTree->m_num_nodes+int btBvhTree_m_num_nodes_get(void *c); //attribute: int btBvhTree->m_num_nodes+void btBvhTree_m_node_array_set(void *c,void* a); //attribute: ::GIM_BVH_TREE_NODE_ARRAY btBvhTree->m_node_array+void* btBvhTree_m_node_array_get(void *c); //attribute: ::GIM_BVH_TREE_NODE_ARRAY btBvhTree->m_node_array+void* btGImpactBvh_new0(); //constructor: btGImpactBvh  ( ::btGImpactBvh::* )(  ) +void* btGImpactBvh_new1(void* p0); //constructor: btGImpactBvh  ( ::btGImpactBvh::* )( ::btPrimitiveManagerBase * ) +void btGImpactBvh_free(void *c); +void btGImpactBvh_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btGImpactBvh::* )( int,::btAABB const & ) +int btGImpactBvh_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btGImpactBvh::* )( int ) const+int btGImpactBvh_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btGImpactBvh::* )( int ) const+void* btGImpactBvh_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase * ( ::btGImpactBvh::* )(  ) const+void btGImpactBvh_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btGImpactBvh::* )( int,::btAABB & ) const+int btGImpactBvh_getRightNode(void *c,int p0); //method: getRightNode int ( ::btGImpactBvh::* )( int ) const+int btGImpactBvh_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btGImpactBvh::* )( int ) const+void btGImpactBvh_setPrimitiveManager(void *c,void* p0); //method: setPrimitiveManager void ( ::btGImpactBvh::* )( ::btPrimitiveManagerBase * ) +void btGImpactBvh_buildSet(void *c); //method: buildSet void ( ::btGImpactBvh::* )(  ) +void btGImpactBvh_getNodeTriangle(void *c,int p0,void* p1); //method: getNodeTriangle void ( ::btGImpactBvh::* )( int,::btPrimitiveTriangle & ) const+int btGImpactBvh_getNodeCount(void *c); //method: getNodeCount int ( ::btGImpactBvh::* )(  ) const+int btGImpactBvh_hasHierarchy(void *c); //method: hasHierarchy bool ( ::btGImpactBvh::* )(  ) const+int btGImpactBvh_rayQuery(void *c,float* p0,float* p1,void* p2); //method: rayQuery bool ( ::btGImpactBvh::* )( ::btVector3 const &,::btVector3 const &,::btAlignedObjectArray<int> & ) const+void btGImpactBvh_update(void *c); //method: update void ( ::btGImpactBvh::* )(  ) +void btGImpactBvh_refit(void *c); //method: refit void ( ::btGImpactBvh::* )(  ) +int btGImpactBvh_isTrimesh(void *c); //method: isTrimesh bool ( ::btGImpactBvh::* )(  ) const+int btGImpactBvh_boxQuery(void *c,void* p0,void* p1); //method: boxQuery bool ( ::btGImpactBvh::* )( ::btAABB const &,::btAlignedObjectArray<int> & ) const+void btGImpactBvh_find_collision(void* p0,float* p1,void* p2,float* p3,void* p4); //method: find_collision void (*)( ::btGImpactBvh *,::btTransform const &,::btGImpactBvh *,::btTransform const &,::btPairSet & )+void* btGImpactBvh_get_node_pointer(void *c,int p0); //method: get_node_pointer ::GIM_BVH_TREE_NODE const * ( ::btGImpactBvh::* )( int ) const+int btGImpactBvh_boxQueryTrans(void *c,void* p0,float* p1,void* p2); //method: boxQueryTrans bool ( ::btGImpactBvh::* )( ::btAABB const &,::btTransform const &,::btAlignedObjectArray<int> & ) const+//not supported method: getGlobalBox ::btAABB ( ::btGImpactBvh::* )(  ) const+// error:  - unsupported++int btGImpactBvh_getNodeData(void *c,int p0); //method: getNodeData int ( ::btGImpactBvh::* )( int ) const+void btGImpactBvh_m_box_tree_set(void *c,void* a); //attribute: ::btBvhTree btGImpactBvh->m_box_tree+void* btGImpactBvh_m_box_tree_get(void *c); //attribute: ::btBvhTree btGImpactBvh->m_box_tree+void btGImpactBvh_m_primitive_manager_set(void *c,void* a); //attribute: ::btPrimitiveManagerBase * btGImpactBvh->m_primitive_manager+void* btGImpactBvh_m_primitive_manager_get(void *c); //attribute: ::btPrimitiveManagerBase * btGImpactBvh->m_primitive_manager+void* btGImpactCollisionAlgorithm_new(void* p0,void* p1,void* p2); //constructor: btGImpactCollisionAlgorithm  ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject * ) +void btGImpactCollisionAlgorithm_free(void *c); +int btGImpactCollisionAlgorithm_getFace1(void *c); //method: getFace1 int ( ::btGImpactCollisionAlgorithm::* )(  ) +int btGImpactCollisionAlgorithm_getFace0(void *c); //method: getFace0 int ( ::btGImpactCollisionAlgorithm::* )(  ) +void btGImpactCollisionAlgorithm_gimpact_vs_compoundshape(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_compoundshape void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btCompoundShape *,bool ) +void btGImpactCollisionAlgorithm_gimpact_vs_shape(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_shape void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btCollisionShape *,bool ) +void btGImpactCollisionAlgorithm_convex_vs_convex_collision(void *c,void* p0,void* p1,void* p2,void* p3); //method: convex_vs_convex_collision void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btCollisionShape *,::btCollisionShape * ) +void btGImpactCollisionAlgorithm_setFace0(void *c,int p0); //method: setFace0 void ( ::btGImpactCollisionAlgorithm::* )( int ) +void btGImpactCollisionAlgorithm_setFace1(void *c,int p0); //method: setFace1 void ( ::btGImpactCollisionAlgorithm::* )( int ) +void btGImpactCollisionAlgorithm_checkManifold(void *c,void* p0,void* p1); //method: checkManifold void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject * ) +//not supported method: collide_gjk_triangles void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactMeshShapePart *,::btGImpactMeshShapePart *,int const *,int ) +// error: ::btCollisionObject * - ok, ::btCollisionObject * - ok, ::btGImpactMeshShapePart * - ok, ::btGImpactMeshShapePart * - ok,  - unsupported, int - ok, void - ok++void* btGImpactCollisionAlgorithm_newContactManifold(void *c,void* p0,void* p1); //method: newContactManifold ::btPersistentManifold * ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject * ) +void btGImpactCollisionAlgorithm_addContactPoint(void *c,void* p0,void* p1,float* p2,float* p3,float p4); //method: addContactPoint void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btVector3 const &,::btVector3 const &,::btScalar ) +void btGImpactCollisionAlgorithm_gimpacttrimeshpart_vs_plane_collision(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpacttrimeshpart_vs_plane_collision void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactMeshShapePart *,::btStaticPlaneShape *,bool ) +void btGImpactCollisionAlgorithm_registerAlgorithm(void* p0); //method: registerAlgorithm void (*)( ::btCollisionDispatcher * )+void btGImpactCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btGImpactCollisionAlgorithm_destroyContactManifolds(void *c); //method: destroyContactManifolds void ( ::btGImpactCollisionAlgorithm::* )(  ) +//not supported method: collide_sat_triangles void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactMeshShapePart *,::btGImpactMeshShapePart *,int const *,int ) +// error: ::btCollisionObject * - ok, ::btCollisionObject * - ok, ::btGImpactMeshShapePart * - ok, ::btGImpactMeshShapePart * - ok,  - unsupported, int - ok, void - ok++void btGImpactCollisionAlgorithm_gimpact_vs_gimpact_find_pairs(void *c,float* p0,float* p1,void* p2,void* p3,void* p4); //method: gimpact_vs_gimpact_find_pairs void ( ::btGImpactCollisionAlgorithm::* )( ::btTransform const &,::btTransform const &,::btGImpactShapeInterface *,::btGImpactShapeInterface *,::btPairSet & ) +void* btGImpactCollisionAlgorithm_getLastManifold(void *c); //method: getLastManifold ::btPersistentManifold * ( ::btGImpactCollisionAlgorithm::* )(  ) +void btGImpactCollisionAlgorithm_gimpact_vs_shape_find_pairs(void *c,float* p0,float* p1,void* p2,void* p3,void* p4); //method: gimpact_vs_shape_find_pairs void ( ::btGImpactCollisionAlgorithm::* )( ::btTransform const &,::btTransform const &,::btGImpactShapeInterface *,::btCollisionShape *,::btAlignedObjectArray<int> & ) +void btGImpactCollisionAlgorithm_destroyConvexAlgorithm(void *c); //method: destroyConvexAlgorithm void ( ::btGImpactCollisionAlgorithm::* )(  ) +void btGImpactCollisionAlgorithm_checkConvexAlgorithm(void *c,void* p0,void* p1); //method: checkConvexAlgorithm void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject * ) +void* btGImpactCollisionAlgorithm_newAlgorithm(void *c,void* p0,void* p1); //method: newAlgorithm ::btCollisionAlgorithm * ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject * ) +void btGImpactCollisionAlgorithm_shape_vs_shape_collision(void *c,void* p0,void* p1,void* p2,void* p3); //method: shape_vs_shape_collision void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btCollisionShape *,::btCollisionShape * ) +void btGImpactCollisionAlgorithm_setPart1(void *c,int p0); //method: setPart1 void ( ::btGImpactCollisionAlgorithm::* )( int ) +void btGImpactCollisionAlgorithm_setPart0(void *c,int p0); //method: setPart0 void ( ::btGImpactCollisionAlgorithm::* )( int ) +void btGImpactCollisionAlgorithm_clearCache(void *c); //method: clearCache void ( ::btGImpactCollisionAlgorithm::* )(  ) +int btGImpactCollisionAlgorithm_getPart1(void *c); //method: getPart1 int ( ::btGImpactCollisionAlgorithm::* )(  ) +int btGImpactCollisionAlgorithm_getPart0(void *c); //method: getPart0 int ( ::btGImpactCollisionAlgorithm::* )(  ) +void btGImpactCollisionAlgorithm_gimpact_vs_concave(void *c,void* p0,void* p1,void* p2,void* p3,int p4); //method: gimpact_vs_concave void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btConcaveShape *,bool ) +float btGImpactCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btGImpactCollisionAlgorithm_gimpact_vs_gimpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: gimpact_vs_gimpact void ( ::btGImpactCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btGImpactShapeInterface *,::btGImpactShapeInterface * ) +void btGImpactCollisionAlgorithm_getAllContactManifolds(void *c,void* p0); //method: getAllContactManifolds void ( ::btGImpactCollisionAlgorithm::* )( ::btManifoldArray & ) +void btGImpactCollisionAlgorithm_m_convex_algorithm_set(void *c,void* a); //attribute: ::btCollisionAlgorithm * btGImpactCollisionAlgorithm->m_convex_algorithm+void* btGImpactCollisionAlgorithm_m_convex_algorithm_get(void *c); //attribute: ::btCollisionAlgorithm * btGImpactCollisionAlgorithm->m_convex_algorithm+void btGImpactCollisionAlgorithm_m_manifoldPtr_set(void *c,void* a); //attribute: ::btPersistentManifold * btGImpactCollisionAlgorithm->m_manifoldPtr+void* btGImpactCollisionAlgorithm_m_manifoldPtr_get(void *c); //attribute: ::btPersistentManifold * btGImpactCollisionAlgorithm->m_manifoldPtr+void btGImpactCollisionAlgorithm_m_resultOut_set(void *c,void* a); //attribute: ::btManifoldResult * btGImpactCollisionAlgorithm->m_resultOut+void* btGImpactCollisionAlgorithm_m_resultOut_get(void *c); //attribute: ::btManifoldResult * btGImpactCollisionAlgorithm->m_resultOut+void btGImpactCollisionAlgorithm_m_dispatchInfo_set(void *c,void* a); //attribute: ::btDispatcherInfo const * btGImpactCollisionAlgorithm->m_dispatchInfo+void* btGImpactCollisionAlgorithm_m_dispatchInfo_get(void *c); //attribute: ::btDispatcherInfo const * btGImpactCollisionAlgorithm->m_dispatchInfo+void btGImpactCollisionAlgorithm_m_triface0_set(void *c,int a); //attribute: int btGImpactCollisionAlgorithm->m_triface0+int btGImpactCollisionAlgorithm_m_triface0_get(void *c); //attribute: int btGImpactCollisionAlgorithm->m_triface0+void btGImpactCollisionAlgorithm_m_part0_set(void *c,int a); //attribute: int btGImpactCollisionAlgorithm->m_part0+int btGImpactCollisionAlgorithm_m_part0_get(void *c); //attribute: int btGImpactCollisionAlgorithm->m_part0+void btGImpactCollisionAlgorithm_m_triface1_set(void *c,int a); //attribute: int btGImpactCollisionAlgorithm->m_triface1+int btGImpactCollisionAlgorithm_m_triface1_get(void *c); //attribute: int btGImpactCollisionAlgorithm->m_triface1+void btGImpactCollisionAlgorithm_m_part1_set(void *c,int a); //attribute: int btGImpactCollisionAlgorithm->m_part1+int btGImpactCollisionAlgorithm_m_part1_get(void *c); //attribute: int btGImpactCollisionAlgorithm->m_part1+void* btGImpactCompoundShape_new(int p0); //constructor: btGImpactCompoundShape  ( ::btGImpactCompoundShape::* )( bool ) +void btGImpactCompoundShape_free(void *c); +void btGImpactCompoundShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactCompoundShape::* )( ::btScalar,::btVector3 & ) const+void btGImpactCompoundShape_addChildShape(void *c,float* p0,void* p1); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) +void btGImpactCompoundShape_addChildShape0(void *c,float* p0,void* p1); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btTransform const &,::btCollisionShape * ) +void btGImpactCompoundShape_addChildShape1(void *c,void* p0); //method: addChildShape void ( ::btGImpactCompoundShape::* )( ::btCollisionShape * ) +void* btGImpactCompoundShape_getCompoundPrimitiveManager(void *c); //method: getCompoundPrimitiveManager ::btGImpactCompoundShape::CompoundPrimitiveManager * ( ::btGImpactCompoundShape::* )(  ) +void btGImpactCompoundShape_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactCompoundShape::* )( int,::btTransform const & ) +void btGImpactCompoundShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactCompoundShape::* )( int ) const+void btGImpactCompoundShape_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactCompoundShape::* )( int,::btTetrahedronShapeEx & ) const+char const * btGImpactCompoundShape_getName(void *c); //method: getName char const * ( ::btGImpactCompoundShape::* )(  ) const+int btGImpactCompoundShape_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactCompoundShape::* )(  ) const+void* btGImpactCompoundShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactCompoundShape::* )( int ) +void* btGImpactCompoundShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactCompoundShape::* )( int ) +void* btGImpactCompoundShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactCompoundShape::* )( int ) const+void btGImpactCompoundShape_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactCompoundShape::* )( int,::btTriangleShapeEx & ) const+int btGImpactCompoundShape_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactCompoundShape::* )(  ) const+int btGImpactCompoundShape_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactCompoundShape::* )(  ) const+int btGImpactCompoundShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactCompoundShape::* )(  ) const+void* btGImpactCompoundShape_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactCompoundShape::* )(  ) const+void btGImpactCompoundShape_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactCompoundShape::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const+//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactCompoundShape::* )(  ) const+// error:  - unsupported++void btGImpactCompoundShape_m_childShapes_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCollisionShape*> btGImpactCompoundShape->m_childShapes+void* btGImpactCompoundShape_m_childShapes_get(void *c); //attribute: ::btAlignedObjectArray<btCollisionShape*> btGImpactCompoundShape->m_childShapes+void btGImpactCompoundShape_m_childTransforms_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btTransform> btGImpactCompoundShape->m_childTransforms+void* btGImpactCompoundShape_m_childTransforms_get(void *c); //attribute: ::btAlignedObjectArray<btTransform> btGImpactCompoundShape->m_childTransforms+void btGImpactCompoundShape_m_primitive_manager_set(void *c,void* a); //attribute: ::btGImpactCompoundShape::CompoundPrimitiveManager btGImpactCompoundShape->m_primitive_manager+void* btGImpactCompoundShape_m_primitive_manager_get(void *c); //attribute: ::btGImpactCompoundShape::CompoundPrimitiveManager btGImpactCompoundShape->m_primitive_manager+void* btGImpactMeshShape_new(void* p0); //constructor: btGImpactMeshShape  ( ::btGImpactMeshShape::* )( ::btStridingMeshInterface * ) +void btGImpactMeshShape_free(void *c); +void btGImpactMeshShape_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactMeshShape::* )( ::btScalar,::btVector3 & ) const+void btGImpactMeshShape_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactMeshShape::* )( int,::btTransform const & ) +void* btGImpactMeshShape_getMeshInterface(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btGImpactMeshShape::* )(  ) +void* btGImpactMeshShape_getMeshInterface0(void *c); //method: getMeshInterface ::btStridingMeshInterface * ( ::btGImpactMeshShape::* )(  ) +void* btGImpactMeshShape_getMeshInterface1(void *c); //method: getMeshInterface ::btStridingMeshInterface const * ( ::btGImpactMeshShape::* )(  ) const+void* btGImpactMeshShape_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactMeshShape::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+int btGImpactMeshShape_getMeshPartCount(void *c); //method: getMeshPartCount int ( ::btGImpactMeshShape::* )(  ) const+int btGImpactMeshShape_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btGImpactMeshShape::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const+void btGImpactMeshShape_buildMeshParts(void *c,void* p0); //method: buildMeshParts void ( ::btGImpactMeshShape::* )( ::btStridingMeshInterface * ) +char const * btGImpactMeshShape_getName(void *c); //method: getName char const * ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactMeshShape::* )( int,::btTriangleShapeEx & ) const+void btGImpactMeshShape_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactMeshShape::* )( ::btVector3 const & ) +int btGImpactMeshShape_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactMeshShape::* )(  ) const+int btGImpactMeshShape_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactMeshShape::* )(  ) const+void* btGImpactMeshShape_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShape::* )( int ) +void* btGImpactMeshShape_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShape::* )( int ) +void* btGImpactMeshShape_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactMeshShape::* )( int ) const+void btGImpactMeshShape_calcLocalAABB(void *c); //method: calcLocalAABB void ( ::btGImpactMeshShape::* )(  ) +void btGImpactMeshShape_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactMeshShape::* )( int ) const+char const * btGImpactMeshShape_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btGImpactMeshShape::* )( void *,::btSerializer * ) const+void btGImpactMeshShape_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactMeshShape::* )( ::btScalar ) +int btGImpactMeshShape_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactMeshShape::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const+void btGImpactMeshShape_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactMeshShape::* )( int,::btTetrahedronShapeEx & ) const+int btGImpactMeshShape_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactMeshShape::* )(  ) const+void btGImpactMeshShape_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactMeshShape::* )(  ) const+void* btGImpactMeshShape_getMeshPart(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart * ( ::btGImpactMeshShape::* )( int ) +void* btGImpactMeshShape_getMeshPart0(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart * ( ::btGImpactMeshShape::* )( int ) +void* btGImpactMeshShape_getMeshPart1(void *c,int p0); //method: getMeshPart ::btGImpactMeshShapePart const * ( ::btGImpactMeshShape::* )( int ) const+void btGImpactMeshShape_postUpdate(void *c); //method: postUpdate void ( ::btGImpactMeshShape::* )(  ) +//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactMeshShape::* )(  ) const+// error:  - unsupported++void btGImpactMeshShape_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterface * btGImpactMeshShape->m_meshInterface+void* btGImpactMeshShape_m_meshInterface_get(void *c); //attribute: ::btStridingMeshInterface * btGImpactMeshShape->m_meshInterface+void btGImpactMeshShape_m_mesh_parts_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btGImpactMeshShapePart*> btGImpactMeshShape->m_mesh_parts+void* btGImpactMeshShape_m_mesh_parts_get(void *c); //attribute: ::btAlignedObjectArray<btGImpactMeshShapePart*> btGImpactMeshShape->m_mesh_parts+void* btGImpactMeshShapeData_new(); //constructor: btGImpactMeshShapeData  ( ::btGImpactMeshShapeData::* )(  ) +void btGImpactMeshShapeData_free(void *c); +void btGImpactMeshShapeData_m_collisionShapeData_set(void *c,void* a); //attribute: ::btCollisionShapeData btGImpactMeshShapeData->m_collisionShapeData+void* btGImpactMeshShapeData_m_collisionShapeData_get(void *c); //attribute: ::btCollisionShapeData btGImpactMeshShapeData->m_collisionShapeData+void btGImpactMeshShapeData_m_meshInterface_set(void *c,void* a); //attribute: ::btStridingMeshInterfaceData btGImpactMeshShapeData->m_meshInterface+void* btGImpactMeshShapeData_m_meshInterface_get(void *c); //attribute: ::btStridingMeshInterfaceData btGImpactMeshShapeData->m_meshInterface+void btGImpactMeshShapeData_m_localScaling_set(void *c,void* a); //attribute: ::btVector3FloatData btGImpactMeshShapeData->m_localScaling+void* btGImpactMeshShapeData_m_localScaling_get(void *c); //attribute: ::btVector3FloatData btGImpactMeshShapeData->m_localScaling+void btGImpactMeshShapeData_m_collisionMargin_set(void *c,float a); //attribute: float btGImpactMeshShapeData->m_collisionMargin+float btGImpactMeshShapeData_m_collisionMargin_get(void *c); //attribute: float btGImpactMeshShapeData->m_collisionMargin+void btGImpactMeshShapeData_m_gimpactSubType_set(void *c,int a); //attribute: int btGImpactMeshShapeData->m_gimpactSubType+int btGImpactMeshShapeData_m_gimpactSubType_get(void *c); //attribute: int btGImpactMeshShapeData->m_gimpactSubType+void* btGImpactMeshShapePart_new0(); //constructor: btGImpactMeshShapePart  ( ::btGImpactMeshShapePart::* )(  ) +void* btGImpactMeshShapePart_new1(void* p0,int p1); //constructor: btGImpactMeshShapePart  ( ::btGImpactMeshShapePart::* )( ::btStridingMeshInterface *,int ) +void btGImpactMeshShapePart_free(void *c); +void btGImpactMeshShapePart_calculateLocalInertia(void *c,float p0,float* p1); //method: calculateLocalInertia void ( ::btGImpactMeshShapePart::* )( ::btScalar,::btVector3 & ) const+void btGImpactMeshShapePart_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactMeshShapePart::* )( int,::btTransform const & ) +void btGImpactMeshShapePart_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_getVertex(void *c,int p0,float* p1); //method: getVertex void ( ::btGImpactMeshShapePart::* )( int,::btVector3 & ) const+void btGImpactMeshShapePart_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactMeshShapePart::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+char const * btGImpactMeshShapePart_getName(void *c); //method: getName char const * ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactMeshShapePart::* )( int,::btTriangleShapeEx & ) const+void btGImpactMeshShapePart_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactMeshShapePart::* )( ::btVector3 const & ) +int btGImpactMeshShapePart_getPart(void *c); //method: getPart int ( ::btGImpactMeshShapePart::* )(  ) const+int btGImpactMeshShapePart_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactMeshShapePart::* )(  ) const+int btGImpactMeshShapePart_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactMeshShapePart::* )(  ) const+void* btGImpactMeshShapePart_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShapePart::* )( int ) +void* btGImpactMeshShapePart_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactMeshShapePart::* )( int ) +void* btGImpactMeshShapePart_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactMeshShapePart::* )( int ) const+void btGImpactMeshShapePart_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactMeshShapePart::* )( int ) const+void btGImpactMeshShapePart_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactMeshShapePart::* )(  ) const+float btGImpactMeshShapePart_getMargin(void *c); //method: getMargin ::btScalar ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactMeshShapePart::* )( ::btScalar ) +void* btGImpactMeshShapePart_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactMeshShapePart::* )(  ) const+int btGImpactMeshShapePart_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactMeshShapePart::* )( int,::btTetrahedronShapeEx & ) const+void* btGImpactMeshShapePart_getTrimeshPrimitiveManager(void *c); //method: getTrimeshPrimitiveManager ::btGImpactMeshShapePart::TrimeshPrimitiveManager * ( ::btGImpactMeshShapePart::* )(  ) +int btGImpactMeshShapePart_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactMeshShapePart::* )(  ) const+//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactMeshShapePart::* )(  ) const+// error:  - unsupported++int btGImpactMeshShapePart_getVertexCount(void *c); //method: getVertexCount int ( ::btGImpactMeshShapePart::* )(  ) const+void btGImpactMeshShapePart_m_primitive_manager_set(void *c,void* a); //attribute: ::btGImpactMeshShapePart::TrimeshPrimitiveManager btGImpactMeshShapePart->m_primitive_manager+void* btGImpactMeshShapePart_m_primitive_manager_get(void *c); //attribute: ::btGImpactMeshShapePart::TrimeshPrimitiveManager btGImpactMeshShapePart->m_primitive_manager+void* btGImpactQuantizedBvh_new0(); //constructor: btGImpactQuantizedBvh  ( ::btGImpactQuantizedBvh::* )(  ) +void* btGImpactQuantizedBvh_new1(void* p0); //constructor: btGImpactQuantizedBvh  ( ::btGImpactQuantizedBvh::* )( ::btPrimitiveManagerBase * ) +void btGImpactQuantizedBvh_free(void *c); +void btGImpactQuantizedBvh_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btGImpactQuantizedBvh::* )( int,::btAABB const & ) +int btGImpactQuantizedBvh_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btGImpactQuantizedBvh::* )( int ) const+int btGImpactQuantizedBvh_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btGImpactQuantizedBvh::* )( int ) const+void* btGImpactQuantizedBvh_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase * ( ::btGImpactQuantizedBvh::* )(  ) const+void btGImpactQuantizedBvh_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btGImpactQuantizedBvh::* )( int,::btAABB & ) const+int btGImpactQuantizedBvh_getRightNode(void *c,int p0); //method: getRightNode int ( ::btGImpactQuantizedBvh::* )( int ) const+int btGImpactQuantizedBvh_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btGImpactQuantizedBvh::* )( int ) const+void btGImpactQuantizedBvh_setPrimitiveManager(void *c,void* p0); //method: setPrimitiveManager void ( ::btGImpactQuantizedBvh::* )( ::btPrimitiveManagerBase * ) +void btGImpactQuantizedBvh_buildSet(void *c); //method: buildSet void ( ::btGImpactQuantizedBvh::* )(  ) +void btGImpactQuantizedBvh_getNodeTriangle(void *c,int p0,void* p1); //method: getNodeTriangle void ( ::btGImpactQuantizedBvh::* )( int,::btPrimitiveTriangle & ) const+int btGImpactQuantizedBvh_getNodeCount(void *c); //method: getNodeCount int ( ::btGImpactQuantizedBvh::* )(  ) const+int btGImpactQuantizedBvh_hasHierarchy(void *c); //method: hasHierarchy bool ( ::btGImpactQuantizedBvh::* )(  ) const+int btGImpactQuantizedBvh_rayQuery(void *c,float* p0,float* p1,void* p2); //method: rayQuery bool ( ::btGImpactQuantizedBvh::* )( ::btVector3 const &,::btVector3 const &,::btAlignedObjectArray<int> & ) const+void btGImpactQuantizedBvh_update(void *c); //method: update void ( ::btGImpactQuantizedBvh::* )(  ) +void btGImpactQuantizedBvh_refit(void *c); //method: refit void ( ::btGImpactQuantizedBvh::* )(  ) +int btGImpactQuantizedBvh_isTrimesh(void *c); //method: isTrimesh bool ( ::btGImpactQuantizedBvh::* )(  ) const+int btGImpactQuantizedBvh_boxQuery(void *c,void* p0,void* p1); //method: boxQuery bool ( ::btGImpactQuantizedBvh::* )( ::btAABB const &,::btAlignedObjectArray<int> & ) const+void btGImpactQuantizedBvh_find_collision(void* p0,float* p1,void* p2,float* p3,void* p4); //method: find_collision void (*)( ::btGImpactQuantizedBvh *,::btTransform const &,::btGImpactQuantizedBvh *,::btTransform const &,::btPairSet & )+void* btGImpactQuantizedBvh_get_node_pointer(void *c,int p0); //method: get_node_pointer ::BT_QUANTIZED_BVH_NODE const * ( ::btGImpactQuantizedBvh::* )( int ) const+int btGImpactQuantizedBvh_boxQueryTrans(void *c,void* p0,float* p1,void* p2); //method: boxQueryTrans bool ( ::btGImpactQuantizedBvh::* )( ::btAABB const &,::btTransform const &,::btAlignedObjectArray<int> & ) const+//not supported method: getGlobalBox ::btAABB ( ::btGImpactQuantizedBvh::* )(  ) const+// error:  - unsupported++int btGImpactQuantizedBvh_getNodeData(void *c,int p0); //method: getNodeData int ( ::btGImpactQuantizedBvh::* )( int ) const+void btGImpactQuantizedBvh_m_box_tree_set(void *c,void* a); //attribute: ::btQuantizedBvhTree btGImpactQuantizedBvh->m_box_tree+void* btGImpactQuantizedBvh_m_box_tree_get(void *c); //attribute: ::btQuantizedBvhTree btGImpactQuantizedBvh->m_box_tree+void btGImpactQuantizedBvh_m_primitive_manager_set(void *c,void* a); //attribute: ::btPrimitiveManagerBase * btGImpactQuantizedBvh->m_primitive_manager+void* btGImpactQuantizedBvh_m_primitive_manager_get(void *c); //attribute: ::btPrimitiveManagerBase * btGImpactQuantizedBvh->m_primitive_manager+void btGImpactShapeInterface_getPrimitiveTriangle(void *c,int p0,void* p1); //method: getPrimitiveTriangle void ( ::btGImpactShapeInterface::* )( int,::btPrimitiveTriangle & ) const+void btGImpactShapeInterface_setChildTransform(void *c,int p0,float* p1); //method: setChildTransform void ( ::btGImpactShapeInterface::* )( int,::btTransform const & ) +void btGImpactShapeInterface_getLocalScaling(void *c,float* ret); //method: getLocalScaling ::btVector3 const & ( ::btGImpactShapeInterface::* )(  ) const+void* btGImpactShapeInterface_getLocalBox(void *c); //method: getLocalBox ::btAABB const & ( ::btGImpactShapeInterface::* )(  ) +void* btGImpactShapeInterface_getPrimitiveManager(void *c); //method: getPrimitiveManager ::btPrimitiveManagerBase const * ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_processAllTriangles(void *c,void* p0,float* p1,float* p2); //method: processAllTriangles void ( ::btGImpactShapeInterface::* )( ::btTriangleCallback *,::btVector3 const &,::btVector3 const & ) const+int btGImpactShapeInterface_hasBoxSet(void *c); //method: hasBoxSet bool ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btGImpactShapeInterface::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const+void* btGImpactShapeInterface_getBoxSet(void *c); //method: getBoxSet ::btGImpactBoxSet * ( ::btGImpactShapeInterface::* )(  ) +void btGImpactShapeInterface_getBulletTriangle(void *c,int p0,void* p1); //method: getBulletTriangle void ( ::btGImpactShapeInterface::* )( int,::btTriangleShapeEx & ) const+void btGImpactShapeInterface_setLocalScaling(void *c,float* p0); //method: setLocalScaling void ( ::btGImpactShapeInterface::* )( ::btVector3 const & ) +int btGImpactShapeInterface_needsRetrieveTriangles(void *c); //method: needsRetrieveTriangles bool ( ::btGImpactShapeInterface::* )(  ) const+int btGImpactShapeInterface_childrenHasTransform(void *c); //method: childrenHasTransform bool ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btGImpactShapeInterface::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void* btGImpactShapeInterface_getChildShape(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactShapeInterface::* )( int ) +void* btGImpactShapeInterface_getChildShape0(void *c,int p0); //method: getChildShape ::btCollisionShape * ( ::btGImpactShapeInterface::* )( int ) +void* btGImpactShapeInterface_getChildShape1(void *c,int p0); //method: getChildShape ::btCollisionShape const * ( ::btGImpactShapeInterface::* )( int ) const+void btGImpactShapeInterface_calcLocalAABB(void *c); //method: calcLocalAABB void ( ::btGImpactShapeInterface::* )(  ) +void btGImpactShapeInterface_getChildTransform(void *c,int p0,float* ret); //method: getChildTransform ::btTransform ( ::btGImpactShapeInterface::* )( int ) const+void btGImpactShapeInterface_lockChildShapes(void *c); //method: lockChildShapes void ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_setMargin(void *c,float p0); //method: setMargin void ( ::btGImpactShapeInterface::* )( ::btScalar ) +int btGImpactShapeInterface_getNumChildShapes(void *c); //method: getNumChildShapes int ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_getChildAabb(void *c,int p0,float* p1,float* p2,float* p3); //method: getChildAabb void ( ::btGImpactShapeInterface::* )( int,::btTransform const &,::btVector3 &,::btVector3 & ) const+int btGImpactShapeInterface_getShapeType(void *c); //method: getShapeType int ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_getBulletTetrahedron(void *c,int p0,void* p1); //method: getBulletTetrahedron void ( ::btGImpactShapeInterface::* )( int,::btTetrahedronShapeEx & ) const+int btGImpactShapeInterface_needsRetrieveTetrahedrons(void *c); //method: needsRetrieveTetrahedrons bool ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_unlockChildShapes(void *c); //method: unlockChildShapes void ( ::btGImpactShapeInterface::* )(  ) const+void btGImpactShapeInterface_postUpdate(void *c); //method: postUpdate void ( ::btGImpactShapeInterface::* )(  ) +void btGImpactShapeInterface_updateBound(void *c); //method: updateBound void ( ::btGImpactShapeInterface::* )(  ) +//not supported method: getGImpactShapeType ::eGIMPACT_SHAPE_TYPE ( ::btGImpactShapeInterface::* )(  ) const+// error:  - unsupported++void btGImpactShapeInterface_localScaling_set(void *c,float* a); //attribute: ::btVector3 btGImpactShapeInterface->localScaling+void btGImpactShapeInterface_localScaling_get(void *c,float* a);+void btGImpactShapeInterface_m_box_set_set(void *c,void* a); //attribute: ::btGImpactBoxSet btGImpactShapeInterface->m_box_set+void* btGImpactShapeInterface_m_box_set_get(void *c); //attribute: ::btGImpactBoxSet btGImpactShapeInterface->m_box_set+void btGImpactShapeInterface_m_localAABB_set(void *c,void* a); //attribute: ::btAABB btGImpactShapeInterface->m_localAABB+void* btGImpactShapeInterface_m_localAABB_get(void *c); //attribute: ::btAABB btGImpactShapeInterface->m_localAABB+void btGImpactShapeInterface_m_needs_update_set(void *c,int a); //attribute: bool btGImpactShapeInterface->m_needs_update+int btGImpactShapeInterface_m_needs_update_get(void *c); //attribute: bool btGImpactShapeInterface->m_needs_update+void* btPairSet_new(); //constructor: btPairSet  ( ::btPairSet::* )(  ) +void btPairSet_free(void *c); +void btPairSet_push_pair_inv(void *c,int p0,int p1); //method: push_pair_inv void ( ::btPairSet::* )( int,int ) +void btPairSet_push_pair(void *c,int p0,int p1); //method: push_pair void ( ::btPairSet::* )( int,int ) +void btPrimitiveManagerBase_get_primitive_box(void *c,int p0,void* p1); //method: get_primitive_box void ( ::btPrimitiveManagerBase::* )( int,::btAABB & ) const+void btPrimitiveManagerBase_get_primitive_triangle(void *c,int p0,void* p1); //method: get_primitive_triangle void ( ::btPrimitiveManagerBase::* )( int,::btPrimitiveTriangle & ) const+int btPrimitiveManagerBase_is_trimesh(void *c); //method: is_trimesh bool ( ::btPrimitiveManagerBase::* )(  ) const+int btPrimitiveManagerBase_get_primitive_count(void *c); //method: get_primitive_count int ( ::btPrimitiveManagerBase::* )(  ) const+void* btPrimitiveTriangle_new(); //constructor: btPrimitiveTriangle  ( ::btPrimitiveTriangle::* )(  ) +void btPrimitiveTriangle_free(void *c); +//not supported method: clip_triangle int ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle &,::btVector3 * ) +// error: ::btPrimitiveTriangle & - ok,  - unsupported, int - ok++void btPrimitiveTriangle_get_edge_plane(void *c,int p0,float* p1); //method: get_edge_plane void ( ::btPrimitiveTriangle::* )( int,::btVector4 & ) const+int btPrimitiveTriangle_overlap_test_conservative(void *c,void* p0); //method: overlap_test_conservative bool ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle const & ) +void btPrimitiveTriangle_buildTriPlane(void *c); //method: buildTriPlane void ( ::btPrimitiveTriangle::* )(  ) +void btPrimitiveTriangle_applyTransform(void *c,float* p0); //method: applyTransform void ( ::btPrimitiveTriangle::* )( ::btTransform const & ) +int btPrimitiveTriangle_find_triangle_collision_clip_method(void *c,void* p0,void* p1); //method: find_triangle_collision_clip_method bool ( ::btPrimitiveTriangle::* )( ::btPrimitiveTriangle &,::GIM_TRIANGLE_CONTACT & ) +void btPrimitiveTriangle_m_dummy_set(void *c,float a); //attribute: ::btScalar btPrimitiveTriangle->m_dummy+float btPrimitiveTriangle_m_dummy_get(void *c); //attribute: ::btScalar btPrimitiveTriangle->m_dummy+void btPrimitiveTriangle_m_margin_set(void *c,float a); //attribute: ::btScalar btPrimitiveTriangle->m_margin+float btPrimitiveTriangle_m_margin_get(void *c); //attribute: ::btScalar btPrimitiveTriangle->m_margin+void btPrimitiveTriangle_m_plane_set(void *c,float* a); //attribute: ::btVector4 btPrimitiveTriangle->m_plane+void btPrimitiveTriangle_m_plane_get(void *c,float* a);+// attribute not supported: //attribute: ::btVector3[3] btPrimitiveTriangle->m_vertices+void* btQuantizedBvhTree_new(); //constructor: btQuantizedBvhTree  ( ::btQuantizedBvhTree::* )(  ) +void btQuantizedBvhTree_free(void *c); +int btQuantizedBvhTree_getNodeCount(void *c); //method: getNodeCount int ( ::btQuantizedBvhTree::* )(  ) const+void btQuantizedBvhTree_calc_quantization(void *c,void* p0,float p1); //method: calc_quantization void ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,::btScalar ) +void btQuantizedBvhTree_build_tree(void *c,void* p0); //method: build_tree void ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY & ) +void btQuantizedBvhTree_setNodeBound(void *c,int p0,void* p1); //method: setNodeBound void ( ::btQuantizedBvhTree::* )( int,::btAABB const & ) +int btQuantizedBvhTree_getLeftNode(void *c,int p0); //method: getLeftNode int ( ::btQuantizedBvhTree::* )( int ) const+void btQuantizedBvhTree__build_sub_tree(void *c,void* p0,int p1,int p2); //method: _build_sub_tree void ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int ) +void btQuantizedBvhTree_clearNodes(void *c); //method: clearNodes void ( ::btQuantizedBvhTree::* )(  ) +int btQuantizedBvhTree__sort_and_calc_splitting_index(void *c,void* p0,int p1,int p2,int p3); //method: _sort_and_calc_splitting_index int ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int,int ) +//not supported method: quantizePoint void ( ::btQuantizedBvhTree::* )( short unsigned int *,::btVector3 const & ) const+// error:  - unsupported, ::btVector3 const & - ok, void - ok++int btQuantizedBvhTree_getEscapeNodeIndex(void *c,int p0); //method: getEscapeNodeIndex int ( ::btQuantizedBvhTree::* )( int ) const+int btQuantizedBvhTree_isLeafNode(void *c,int p0); //method: isLeafNode bool ( ::btQuantizedBvhTree::* )( int ) const+void* btQuantizedBvhTree_get_node_pointer(void *c,int p0); //method: get_node_pointer ::BT_QUANTIZED_BVH_NODE const * ( ::btQuantizedBvhTree::* )( int ) const+//not supported method: testQuantizedBoxOverlapp bool ( ::btQuantizedBvhTree::* )( int,short unsigned int *,short unsigned int * ) const+// error: int - ok,  - unsupported,  - unsupported, bool - ok++int btQuantizedBvhTree_getNodeData(void *c,int p0); //method: getNodeData int ( ::btQuantizedBvhTree::* )( int ) const+void btQuantizedBvhTree_getNodeBound(void *c,int p0,void* p1); //method: getNodeBound void ( ::btQuantizedBvhTree::* )( int,::btAABB & ) const+int btQuantizedBvhTree_getRightNode(void *c,int p0); //method: getRightNode int ( ::btQuantizedBvhTree::* )( int ) const+int btQuantizedBvhTree__calc_splitting_axis(void *c,void* p0,int p1,int p2); //method: _calc_splitting_axis int ( ::btQuantizedBvhTree::* )( ::GIM_BVH_DATA_ARRAY &,int,int ) +void btQuantizedBvhTree_m_bvhQuantization_set(void *c,float* a); //attribute: ::btVector3 btQuantizedBvhTree->m_bvhQuantization+void btQuantizedBvhTree_m_bvhQuantization_get(void *c,float* a);+void btQuantizedBvhTree_m_global_bound_set(void *c,void* a); //attribute: ::btAABB btQuantizedBvhTree->m_global_bound+void* btQuantizedBvhTree_m_global_bound_get(void *c); //attribute: ::btAABB btQuantizedBvhTree->m_global_bound+void btQuantizedBvhTree_m_node_array_set(void *c,void* a); //attribute: ::GIM_QUANTIZED_BVH_NODE_ARRAY btQuantizedBvhTree->m_node_array+void* btQuantizedBvhTree_m_node_array_get(void *c); //attribute: ::GIM_QUANTIZED_BVH_NODE_ARRAY btQuantizedBvhTree->m_node_array+void btQuantizedBvhTree_m_num_nodes_set(void *c,int a); //attribute: int btQuantizedBvhTree->m_num_nodes+int btQuantizedBvhTree_m_num_nodes_get(void *c); //attribute: int btQuantizedBvhTree->m_num_nodes+void* btTetrahedronShapeEx_new(); //constructor: btTetrahedronShapeEx  ( ::btTetrahedronShapeEx::* )(  ) +void btTetrahedronShapeEx_free(void *c); +void btTetrahedronShapeEx_setVertices(void *c,float* p0,float* p1,float* p2,float* p3); //method: setVertices void ( ::btTetrahedronShapeEx::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void* btTriangleShapeEx_new0(); //constructor: btTriangleShapeEx  ( ::btTriangleShapeEx::* )(  ) +void* btTriangleShapeEx_new1(float* p0,float* p1,float* p2); //constructor: btTriangleShapeEx  ( ::btTriangleShapeEx::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btTriangleShapeEx_free(void *c); +int btTriangleShapeEx_overlap_test_conservative(void *c,void* p0); //method: overlap_test_conservative bool ( ::btTriangleShapeEx::* )( ::btTriangleShapeEx const & ) +void btTriangleShapeEx_buildTriPlane(void *c,float* p0); //method: buildTriPlane void ( ::btTriangleShapeEx::* )( ::btVector4 & ) const+void btTriangleShapeEx_applyTransform(void *c,float* p0); //method: applyTransform void ( ::btTriangleShapeEx::* )( ::btTransform const & ) +void btTriangleShapeEx_getAabb(void *c,float* p0,float* p1,float* p2); //method: getAabb void ( ::btTriangleShapeEx::* )( ::btTransform const &,::btVector3 &,::btVector3 & ) const+void* btDbvt_IClone_new(); //constructor: IClone  ( ::btDbvt::IClone::* )(  ) +void btDbvt_IClone_free(void *c); +void btDbvt_IClone_CloneLeaf(void *c,void* p0); //method: CloneLeaf void ( ::btDbvt::IClone::* )( ::btDbvtNode * ) +void* btDbvt_ICollide_new(); //constructor: ICollide  ( ::btDbvt::ICollide::* )(  ) +void btDbvt_ICollide_free(void *c); +void btDbvt_ICollide_Process(void *c,void* p0,void* p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btDbvtNode const * ) +void btDbvt_ICollide_Process0(void *c,void* p0,void* p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btDbvtNode const * ) +void btDbvt_ICollide_Process1(void *c,void* p0); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) +void btDbvt_ICollide_Process2(void *c,void* p0,float p1); //method: Process void ( ::btDbvt::ICollide::* )( ::btDbvtNode const *,::btScalar ) +int btDbvt_ICollide_AllLeaves(void *c,void* p0); //method: AllLeaves bool ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) +int btDbvt_ICollide_Descent(void *c,void* p0); //method: Descent bool ( ::btDbvt::ICollide::* )( ::btDbvtNode const * ) +void btDbvt_IWriter_WriteLeaf(void *c,void* p0,int p1,int p2); //method: WriteLeaf void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int,int ) +void btDbvt_IWriter_WriteNode(void *c,void* p0,int p1,int p2,int p3,int p4); //method: WriteNode void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int,int,int,int ) +void btDbvt_IWriter_Prepare(void *c,void* p0,int p1); //method: Prepare void ( ::btDbvt::IWriter::* )( ::btDbvtNode const *,int ) +void* bt32BitAxisSweep3_new(float* p0,float* p1,unsigned int p2,void* p3,int p4); //constructor: bt32BitAxisSweep3  ( ::bt32BitAxisSweep3::* )( ::btVector3 const &,::btVector3 const &,unsigned int,::btOverlappingPairCache *,bool ) +void bt32BitAxisSweep3_free(void *c); +void* btAxisSweep3_new(float* p0,float* p1,short unsigned int p2,void* p3,int p4); //constructor: btAxisSweep3  ( ::btAxisSweep3::* )( ::btVector3 const &,::btVector3 const &,short unsigned int,::btOverlappingPairCache *,bool ) +void btAxisSweep3_free(void *c); +void* btAxisSweep3Internal_unsignedint__new(float* p0,float* p1,unsigned int p2,unsigned int p3,unsigned int p4,void* p5,int p6); //constructor: btAxisSweep3Internal  ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 const &,::btVector3 const &,unsigned int,unsigned int,unsigned int,::btOverlappingPairCache *,bool ) +void btAxisSweep3Internal_unsignedint__free(void *c); +void btAxisSweep3Internal_unsignedint__sortMinUp(void *c,int p0,unsigned int p1,void* p2,int p3); //method: sortMinUp void ( ::btAxisSweep3Internal<unsigned int>::* )( int,unsigned int,::btDispatcher *,bool ) +unsigned int btAxisSweep3Internal_unsignedint__allocHandle(void *c); //method: allocHandle unsigned int ( ::btAxisSweep3Internal<unsigned int>::* )(  ) +unsigned int btAxisSweep3Internal_unsignedint__getNumHandles(void *c); //method: getNumHandles unsigned int ( ::btAxisSweep3Internal<unsigned int>::* )(  ) const+unsigned int btAxisSweep3Internal_unsignedint__addHandle(void *c,float* p0,float* p1,void* p2,short int p3,short int p4,void* p5,void* p6); //method: addHandle unsigned int ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int,::btDispatcher *,void * ) +//not supported method: quantize void ( ::btAxisSweep3Internal<unsigned int>::* )( unsigned int *,::btVector3 const &,int ) const+// error:  - unsupported, ::btVector3 const & - ok, int - ok, void - ok++void btAxisSweep3Internal_unsignedint__sortMaxUp(void *c,int p0,unsigned int p1,void* p2,int p3); //method: sortMaxUp void ( ::btAxisSweep3Internal<unsigned int>::* )( int,unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedint__removeHandle(void *c,unsigned int p0,void* p1); //method: removeHandle void ( ::btAxisSweep3Internal<unsigned int>::* )( unsigned int,::btDispatcher * ) +void* btAxisSweep3Internal_unsignedint__getOverlappingPairUserCallback(void *c); //method: getOverlappingPairUserCallback ::btOverlappingPairCallback const * ( ::btAxisSweep3Internal<unsigned int>::* )(  ) const+void btAxisSweep3Internal_unsignedint__sortMaxDown(void *c,int p0,unsigned int p1,void* p2,int p3); //method: sortMaxDown void ( ::btAxisSweep3Internal<unsigned int>::* )( int,unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedint__rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btAxisSweep3Internal_unsignedint__setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btAxisSweep3Internal_unsignedint__resetPool(void *c,void* p0); //method: resetPool void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btDispatcher * ) +int btAxisSweep3Internal_unsignedint__testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btAxisSweep3Internal<unsigned int>::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btAxisSweep3Internal_unsignedint__getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+//not supported method: testOverlap2D bool ( ::btAxisSweep3Internal<unsigned int>::* )( ::btAxisSweep3Internal<unsigned int>::Handle const *,::btAxisSweep3Internal<unsigned int>::Handle const *,int,int ) +// error:  - unsupported,  - unsupported, int - ok, int - ok, bool - ok++void btAxisSweep3Internal_unsignedint__updateHandle(void *c,unsigned int p0,float* p1,float* p2,void* p3); //method: updateHandle void ( ::btAxisSweep3Internal<unsigned int>::* )( unsigned int,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btAxisSweep3Internal_unsignedint__freeHandle(void *c,unsigned int p0); //method: freeHandle void ( ::btAxisSweep3Internal<unsigned int>::* )( unsigned int ) +void btAxisSweep3Internal_unsignedint__printStats(void *c); //method: printStats void ( ::btAxisSweep3Internal<unsigned int>::* )(  ) +void* btAxisSweep3Internal_unsignedint__createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void btAxisSweep3Internal_unsignedint__setOverlappingPairUserCallback(void *c,void* p0); //method: setOverlappingPairUserCallback void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btOverlappingPairCallback * ) +void btAxisSweep3Internal_unsignedint__calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btDispatcher * ) +void* btAxisSweep3Internal_unsignedint__getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btAxisSweep3Internal<unsigned int>::* )(  ) +void* btAxisSweep3Internal_unsignedint__getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btAxisSweep3Internal<unsigned int>::* )(  ) +void* btAxisSweep3Internal_unsignedint__getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btAxisSweep3Internal<unsigned int>::* )(  ) const+void btAxisSweep3Internal_unsignedint__unQuantize(void *c,void* p0,float* p1,float* p2); //method: unQuantize void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void btAxisSweep3Internal_unsignedint__sortMinDown(void *c,int p0,unsigned int p1,void* p2,int p3); //method: sortMinDown void ( ::btAxisSweep3Internal<unsigned int>::* )( int,unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedint__aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) +void btAxisSweep3Internal_unsignedint__getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btVector3 &,::btVector3 & ) const+void btAxisSweep3Internal_unsignedint__destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btAxisSweep3Internal<unsigned int>::* )( ::btBroadphaseProxy *,::btDispatcher * ) +//not supported method: getHandle ::btAxisSweep3Internal<unsigned int>::Handle * ( ::btAxisSweep3Internal<unsigned int>::* )( unsigned int ) const+// error: unsigned int - ok,  - unsupported++void btAxisSweep3Internal_unsignedint__m_bpHandleMask_set(void *c,unsigned int a); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_bpHandleMask+unsigned int btAxisSweep3Internal_unsignedint__m_bpHandleMask_get(void *c); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_bpHandleMask+void btAxisSweep3Internal_unsignedint__m_handleSentinel_set(void *c,unsigned int a); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_handleSentinel+unsigned int btAxisSweep3Internal_unsignedint__m_handleSentinel_get(void *c); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_handleSentinel+void btAxisSweep3Internal_unsignedint__m_worldAabbMin_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedint_->m_worldAabbMin+void btAxisSweep3Internal_unsignedint__m_worldAabbMin_get(void *c,float* a);+void btAxisSweep3Internal_unsignedint__m_worldAabbMax_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedint_->m_worldAabbMax+void btAxisSweep3Internal_unsignedint__m_worldAabbMax_get(void *c,float* a);+void btAxisSweep3Internal_unsignedint__m_quantize_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedint_->m_quantize+void btAxisSweep3Internal_unsignedint__m_quantize_get(void *c,float* a);+void btAxisSweep3Internal_unsignedint__m_numHandles_set(void *c,unsigned int a); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_numHandles+unsigned int btAxisSweep3Internal_unsignedint__m_numHandles_get(void *c); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_numHandles+void btAxisSweep3Internal_unsignedint__m_maxHandles_set(void *c,unsigned int a); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_maxHandles+unsigned int btAxisSweep3Internal_unsignedint__m_maxHandles_get(void *c); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_maxHandles+// attribute not supported: //attribute: ::btAxisSweep3Internal<unsigned int>::Handle * btAxisSweep3Internal_unsignedint_->m_pHandles+void btAxisSweep3Internal_unsignedint__m_firstFreeHandle_set(void *c,unsigned int a); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_firstFreeHandle+unsigned int btAxisSweep3Internal_unsignedint__m_firstFreeHandle_get(void *c); //attribute: unsigned int btAxisSweep3Internal_unsignedint_->m_firstFreeHandle+// attribute not supported: //attribute: ::btAxisSweep3Internal<unsigned int>::Edge *[3] btAxisSweep3Internal_unsignedint_->m_pEdges+// attribute not supported: //attribute: void *[3] btAxisSweep3Internal_unsignedint_->m_pEdgesRawPtr+void btAxisSweep3Internal_unsignedint__m_pairCache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedint_->m_pairCache+void* btAxisSweep3Internal_unsignedint__m_pairCache_get(void *c); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedint_->m_pairCache+void btAxisSweep3Internal_unsignedint__m_userPairCallback_set(void *c,void* a); //attribute: ::btOverlappingPairCallback * btAxisSweep3Internal_unsignedint_->m_userPairCallback+void* btAxisSweep3Internal_unsignedint__m_userPairCallback_get(void *c); //attribute: ::btOverlappingPairCallback * btAxisSweep3Internal_unsignedint_->m_userPairCallback+void btAxisSweep3Internal_unsignedint__m_ownsPairCache_set(void *c,int a); //attribute: bool btAxisSweep3Internal_unsignedint_->m_ownsPairCache+int btAxisSweep3Internal_unsignedint__m_ownsPairCache_get(void *c); //attribute: bool btAxisSweep3Internal_unsignedint_->m_ownsPairCache+void btAxisSweep3Internal_unsignedint__m_invalidPair_set(void *c,int a); //attribute: int btAxisSweep3Internal_unsignedint_->m_invalidPair+int btAxisSweep3Internal_unsignedint__m_invalidPair_get(void *c); //attribute: int btAxisSweep3Internal_unsignedint_->m_invalidPair+void btAxisSweep3Internal_unsignedint__m_raycastAccelerator_set(void *c,void* a); //attribute: ::btDbvtBroadphase * btAxisSweep3Internal_unsignedint_->m_raycastAccelerator+void* btAxisSweep3Internal_unsignedint__m_raycastAccelerator_get(void *c); //attribute: ::btDbvtBroadphase * btAxisSweep3Internal_unsignedint_->m_raycastAccelerator+void btAxisSweep3Internal_unsignedint__m_nullPairCache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedint_->m_nullPairCache+void* btAxisSweep3Internal_unsignedint__m_nullPairCache_get(void *c); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedint_->m_nullPairCache+void* btAxisSweep3Internal_unsignedshort__new(float* p0,float* p1,short unsigned int p2,short unsigned int p3,short unsigned int p4,void* p5,int p6); //constructor: btAxisSweep3Internal  ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 const &,::btVector3 const &,short unsigned int,short unsigned int,short unsigned int,::btOverlappingPairCache *,bool ) +void btAxisSweep3Internal_unsignedshort__free(void *c); +void btAxisSweep3Internal_unsignedshort__sortMinUp(void *c,int p0,short unsigned int p1,void* p2,int p3); //method: sortMinUp void ( ::btAxisSweep3Internal<unsigned short>::* )( int,short unsigned int,::btDispatcher *,bool ) +short unsigned int btAxisSweep3Internal_unsignedshort__allocHandle(void *c); //method: allocHandle short unsigned int ( ::btAxisSweep3Internal<unsigned short>::* )(  ) +short unsigned int btAxisSweep3Internal_unsignedshort__getNumHandles(void *c); //method: getNumHandles short unsigned int ( ::btAxisSweep3Internal<unsigned short>::* )(  ) const+short unsigned int btAxisSweep3Internal_unsignedshort__addHandle(void *c,float* p0,float* p1,void* p2,short int p3,short int p4,void* p5,void* p6); //method: addHandle short unsigned int ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int,::btDispatcher *,void * ) +//not supported method: quantize void ( ::btAxisSweep3Internal<unsigned short>::* )( short unsigned int *,::btVector3 const &,int ) const+// error:  - unsupported, ::btVector3 const & - ok, int - ok, void - ok++void btAxisSweep3Internal_unsignedshort__sortMaxUp(void *c,int p0,short unsigned int p1,void* p2,int p3); //method: sortMaxUp void ( ::btAxisSweep3Internal<unsigned short>::* )( int,short unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedshort__removeHandle(void *c,short unsigned int p0,void* p1); //method: removeHandle void ( ::btAxisSweep3Internal<unsigned short>::* )( short unsigned int,::btDispatcher * ) +void* btAxisSweep3Internal_unsignedshort__getOverlappingPairUserCallback(void *c); //method: getOverlappingPairUserCallback ::btOverlappingPairCallback const * ( ::btAxisSweep3Internal<unsigned short>::* )(  ) const+void btAxisSweep3Internal_unsignedshort__sortMaxDown(void *c,int p0,short unsigned int p1,void* p2,int p3); //method: sortMaxDown void ( ::btAxisSweep3Internal<unsigned short>::* )( int,short unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedshort__rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btAxisSweep3Internal_unsignedshort__setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btAxisSweep3Internal_unsignedshort__resetPool(void *c,void* p0); //method: resetPool void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btDispatcher * ) +int btAxisSweep3Internal_unsignedshort__testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btAxisSweep3Internal<unsigned short>::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btAxisSweep3Internal_unsignedshort__getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+//not supported method: testOverlap2D bool ( ::btAxisSweep3Internal<unsigned short>::* )( ::btAxisSweep3Internal<unsigned short>::Handle const *,::btAxisSweep3Internal<unsigned short>::Handle const *,int,int ) +// error:  - unsupported,  - unsupported, int - ok, int - ok, bool - ok++void btAxisSweep3Internal_unsignedshort__updateHandle(void *c,short unsigned int p0,float* p1,float* p2,void* p3); //method: updateHandle void ( ::btAxisSweep3Internal<unsigned short>::* )( short unsigned int,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btAxisSweep3Internal_unsignedshort__freeHandle(void *c,short unsigned int p0); //method: freeHandle void ( ::btAxisSweep3Internal<unsigned short>::* )( short unsigned int ) +void btAxisSweep3Internal_unsignedshort__printStats(void *c); //method: printStats void ( ::btAxisSweep3Internal<unsigned short>::* )(  ) +void* btAxisSweep3Internal_unsignedshort__createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void btAxisSweep3Internal_unsignedshort__setOverlappingPairUserCallback(void *c,void* p0); //method: setOverlappingPairUserCallback void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btOverlappingPairCallback * ) +void btAxisSweep3Internal_unsignedshort__calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btDispatcher * ) +void* btAxisSweep3Internal_unsignedshort__getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btAxisSweep3Internal<unsigned short>::* )(  ) +void* btAxisSweep3Internal_unsignedshort__getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btAxisSweep3Internal<unsigned short>::* )(  ) +void* btAxisSweep3Internal_unsignedshort__getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btAxisSweep3Internal<unsigned short>::* )(  ) const+void btAxisSweep3Internal_unsignedshort__unQuantize(void *c,void* p0,float* p1,float* p2); //method: unQuantize void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void btAxisSweep3Internal_unsignedshort__sortMinDown(void *c,int p0,short unsigned int p1,void* p2,int p3); //method: sortMinDown void ( ::btAxisSweep3Internal<unsigned short>::* )( int,short unsigned int,::btDispatcher *,bool ) +void btAxisSweep3Internal_unsignedshort__aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) +void btAxisSweep3Internal_unsignedshort__getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btVector3 &,::btVector3 & ) const+void btAxisSweep3Internal_unsignedshort__destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btAxisSweep3Internal<unsigned short>::* )( ::btBroadphaseProxy *,::btDispatcher * ) +//not supported method: getHandle ::btAxisSweep3Internal<unsigned short>::Handle * ( ::btAxisSweep3Internal<unsigned short>::* )( short unsigned int ) const+// error: short unsigned int - ok,  - unsupported++void btAxisSweep3Internal_unsignedshort__m_bpHandleMask_set(void *c,short unsigned int a); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_bpHandleMask+short unsigned int btAxisSweep3Internal_unsignedshort__m_bpHandleMask_get(void *c); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_bpHandleMask+void btAxisSweep3Internal_unsignedshort__m_handleSentinel_set(void *c,short unsigned int a); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_handleSentinel+short unsigned int btAxisSweep3Internal_unsignedshort__m_handleSentinel_get(void *c); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_handleSentinel+void btAxisSweep3Internal_unsignedshort__m_worldAabbMin_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedshort_->m_worldAabbMin+void btAxisSweep3Internal_unsignedshort__m_worldAabbMin_get(void *c,float* a);+void btAxisSweep3Internal_unsignedshort__m_worldAabbMax_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedshort_->m_worldAabbMax+void btAxisSweep3Internal_unsignedshort__m_worldAabbMax_get(void *c,float* a);+void btAxisSweep3Internal_unsignedshort__m_quantize_set(void *c,float* a); //attribute: ::btVector3 btAxisSweep3Internal_unsignedshort_->m_quantize+void btAxisSweep3Internal_unsignedshort__m_quantize_get(void *c,float* a);+void btAxisSweep3Internal_unsignedshort__m_numHandles_set(void *c,short unsigned int a); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_numHandles+short unsigned int btAxisSweep3Internal_unsignedshort__m_numHandles_get(void *c); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_numHandles+void btAxisSweep3Internal_unsignedshort__m_maxHandles_set(void *c,short unsigned int a); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_maxHandles+short unsigned int btAxisSweep3Internal_unsignedshort__m_maxHandles_get(void *c); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_maxHandles+// attribute not supported: //attribute: ::btAxisSweep3Internal<unsigned short>::Handle * btAxisSweep3Internal_unsignedshort_->m_pHandles+void btAxisSweep3Internal_unsignedshort__m_firstFreeHandle_set(void *c,short unsigned int a); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_firstFreeHandle+short unsigned int btAxisSweep3Internal_unsignedshort__m_firstFreeHandle_get(void *c); //attribute: short unsigned int btAxisSweep3Internal_unsignedshort_->m_firstFreeHandle+// attribute not supported: //attribute: ::btAxisSweep3Internal<unsigned short>::Edge *[3] btAxisSweep3Internal_unsignedshort_->m_pEdges+// attribute not supported: //attribute: void *[3] btAxisSweep3Internal_unsignedshort_->m_pEdgesRawPtr+void btAxisSweep3Internal_unsignedshort__m_pairCache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedshort_->m_pairCache+void* btAxisSweep3Internal_unsignedshort__m_pairCache_get(void *c); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedshort_->m_pairCache+void btAxisSweep3Internal_unsignedshort__m_userPairCallback_set(void *c,void* a); //attribute: ::btOverlappingPairCallback * btAxisSweep3Internal_unsignedshort_->m_userPairCallback+void* btAxisSweep3Internal_unsignedshort__m_userPairCallback_get(void *c); //attribute: ::btOverlappingPairCallback * btAxisSweep3Internal_unsignedshort_->m_userPairCallback+void btAxisSweep3Internal_unsignedshort__m_ownsPairCache_set(void *c,int a); //attribute: bool btAxisSweep3Internal_unsignedshort_->m_ownsPairCache+int btAxisSweep3Internal_unsignedshort__m_ownsPairCache_get(void *c); //attribute: bool btAxisSweep3Internal_unsignedshort_->m_ownsPairCache+void btAxisSweep3Internal_unsignedshort__m_invalidPair_set(void *c,int a); //attribute: int btAxisSweep3Internal_unsignedshort_->m_invalidPair+int btAxisSweep3Internal_unsignedshort__m_invalidPair_get(void *c); //attribute: int btAxisSweep3Internal_unsignedshort_->m_invalidPair+void btAxisSweep3Internal_unsignedshort__m_raycastAccelerator_set(void *c,void* a); //attribute: ::btDbvtBroadphase * btAxisSweep3Internal_unsignedshort_->m_raycastAccelerator+void* btAxisSweep3Internal_unsignedshort__m_raycastAccelerator_get(void *c); //attribute: ::btDbvtBroadphase * btAxisSweep3Internal_unsignedshort_->m_raycastAccelerator+void btAxisSweep3Internal_unsignedshort__m_nullPairCache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedshort_->m_nullPairCache+void* btAxisSweep3Internal_unsignedshort__m_nullPairCache_get(void *c); //attribute: ::btOverlappingPairCache * btAxisSweep3Internal_unsignedshort_->m_nullPairCache+void* btMultiSapBroadphase_btBridgeProxy_new(); //constructor: btBridgeProxy  ( ::btMultiSapBroadphase::btBridgeProxy::* )(  ) +void btMultiSapBroadphase_btBridgeProxy_free(void *c); +void btMultiSapBroadphase_btBridgeProxy_m_childBroadphase_set(void *c,void* a); //attribute: ::btBroadphaseInterface * btMultiSapBroadphase_btBridgeProxy->m_childBroadphase+void* btMultiSapBroadphase_btBridgeProxy_m_childBroadphase_get(void *c); //attribute: ::btBroadphaseInterface * btMultiSapBroadphase_btBridgeProxy->m_childBroadphase+void btMultiSapBroadphase_btBridgeProxy_m_childProxy_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btMultiSapBroadphase_btBridgeProxy->m_childProxy+void* btMultiSapBroadphase_btBridgeProxy_m_childProxy_get(void *c); //attribute: ::btBroadphaseProxy * btMultiSapBroadphase_btBridgeProxy->m_childProxy+int btBroadphaseAabbCallback_process(void *c,void* p0); //method: process bool ( ::btBroadphaseAabbCallback::* )( ::btBroadphaseProxy const * ) +void btBroadphaseInterface_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btBroadphaseInterface_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btBroadphaseInterface_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btBroadphaseInterface::* )( ::btVector3 &,::btVector3 & ) const+void btBroadphaseInterface_resetPool(void *c,void* p0); //method: resetPool void ( ::btBroadphaseInterface::* )( ::btDispatcher * ) +void btBroadphaseInterface_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btBroadphaseInterface::* )( ::btDispatcher * ) +void btBroadphaseInterface_printStats(void *c); //method: printStats void ( ::btBroadphaseInterface::* )(  ) +void btBroadphaseInterface_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void btBroadphaseInterface_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) +void* btBroadphaseInterface_createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btBroadphaseInterface::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void* btBroadphaseInterface_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btBroadphaseInterface::* )(  ) +void* btBroadphaseInterface_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btBroadphaseInterface::* )(  ) +void* btBroadphaseInterface_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btBroadphaseInterface::* )(  ) const+void btBroadphaseInterface_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btBroadphaseInterface::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void* btBroadphasePair_new0(); //constructor: btBroadphasePair  ( ::btBroadphasePair::* )(  ) +void* btBroadphasePair_new1(void* p0,void* p1); //constructor: btBroadphasePair  ( ::btBroadphasePair::* )( ::btBroadphaseProxy &,::btBroadphaseProxy & ) +void btBroadphasePair_free(void *c); +// attribute not supported: //attribute: ::btBroadphasePair btBroadphasePair->+void btBroadphasePair_m_algorithm_set(void *c,void* a); //attribute: ::btCollisionAlgorithm * btBroadphasePair->m_algorithm+void* btBroadphasePair_m_algorithm_get(void *c); //attribute: ::btCollisionAlgorithm * btBroadphasePair->m_algorithm+void btBroadphasePair_m_pProxy0_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy0+void* btBroadphasePair_m_pProxy0_get(void *c); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy0+void btBroadphasePair_m_pProxy1_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy1+void* btBroadphasePair_m_pProxy1_get(void *c); //attribute: ::btBroadphaseProxy * btBroadphasePair->m_pProxy1+void* btBroadphasePairSortPredicate_new(); //constructor: btBroadphasePairSortPredicate  ( ::btBroadphasePairSortPredicate::* )(  ) +void btBroadphasePairSortPredicate_free(void *c); +void* btBroadphaseProxy_new0(); //constructor: btBroadphaseProxy  ( ::btBroadphaseProxy::* )(  ) +void* btBroadphaseProxy_new1(float* p0,float* p1,void* p2,short int p3,short int p4,void* p5); //constructor: btBroadphaseProxy  ( ::btBroadphaseProxy::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int,void * ) +void btBroadphaseProxy_free(void *c); +int btBroadphaseProxy_isConvex(int p0); //method: isConvex bool (*)( int )+int btBroadphaseProxy_isInfinite(int p0); //method: isInfinite bool (*)( int )+int btBroadphaseProxy_getUid(void *c); //method: getUid int ( ::btBroadphaseProxy::* )(  ) const+int btBroadphaseProxy_isConcave(int p0); //method: isConcave bool (*)( int )+int btBroadphaseProxy_isNonMoving(int p0); //method: isNonMoving bool (*)( int )+int btBroadphaseProxy_isCompound(int p0); //method: isCompound bool (*)( int )+int btBroadphaseProxy_isPolyhedral(int p0); //method: isPolyhedral bool (*)( int )+int btBroadphaseProxy_isConvex2d(int p0); //method: isConvex2d bool (*)( int )+int btBroadphaseProxy_isSoftBody(int p0); //method: isSoftBody bool (*)( int )+void btBroadphaseProxy_m_aabbMax_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseProxy->m_aabbMax+void btBroadphaseProxy_m_aabbMax_get(void *c,float* a);+void btBroadphaseProxy_m_aabbMin_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseProxy->m_aabbMin+void btBroadphaseProxy_m_aabbMin_get(void *c,float* a);+void btBroadphaseProxy_m_clientObject_set(void *c,void* a); //attribute: void * btBroadphaseProxy->m_clientObject+void* btBroadphaseProxy_m_clientObject_get(void *c); //attribute: void * btBroadphaseProxy->m_clientObject+void btBroadphaseProxy_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btBroadphaseProxy->m_collisionFilterGroup+short int btBroadphaseProxy_m_collisionFilterGroup_get(void *c); //attribute: short int btBroadphaseProxy->m_collisionFilterGroup+void btBroadphaseProxy_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btBroadphaseProxy->m_collisionFilterMask+short int btBroadphaseProxy_m_collisionFilterMask_get(void *c); //attribute: short int btBroadphaseProxy->m_collisionFilterMask+void btBroadphaseProxy_m_multiSapParentProxy_set(void *c,void* a); //attribute: void * btBroadphaseProxy->m_multiSapParentProxy+void* btBroadphaseProxy_m_multiSapParentProxy_get(void *c); //attribute: void * btBroadphaseProxy->m_multiSapParentProxy+void btBroadphaseProxy_m_uniqueId_set(void *c,int a); //attribute: int btBroadphaseProxy->m_uniqueId+int btBroadphaseProxy_m_uniqueId_get(void *c); //attribute: int btBroadphaseProxy->m_uniqueId+void btBroadphaseRayCallback_m_lambda_max_set(void *c,float a); //attribute: ::btScalar btBroadphaseRayCallback->m_lambda_max+float btBroadphaseRayCallback_m_lambda_max_get(void *c); //attribute: ::btScalar btBroadphaseRayCallback->m_lambda_max+void btBroadphaseRayCallback_m_rayDirectionInverse_set(void *c,float* a); //attribute: ::btVector3 btBroadphaseRayCallback->m_rayDirectionInverse+void btBroadphaseRayCallback_m_rayDirectionInverse_get(void *c,float* a);+// attribute not supported: //attribute: unsigned int[3] btBroadphaseRayCallback->m_signs+void* btBvhSubtreeInfo_new(); //constructor: btBvhSubtreeInfo  ( ::btBvhSubtreeInfo::* )(  ) +void btBvhSubtreeInfo_free(void *c); +void btBvhSubtreeInfo_setAabbFromQuantizeNode(void *c,void* p0); //method: setAabbFromQuantizeNode void ( ::btBvhSubtreeInfo::* )( ::btQuantizedBvhNode const & ) +// attribute not supported: //attribute: int[3] btBvhSubtreeInfo->m_padding+// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfo->m_quantizedAabbMax+// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfo->m_quantizedAabbMin+void btBvhSubtreeInfo_m_rootNodeIndex_set(void *c,int a); //attribute: int btBvhSubtreeInfo->m_rootNodeIndex+int btBvhSubtreeInfo_m_rootNodeIndex_get(void *c); //attribute: int btBvhSubtreeInfo->m_rootNodeIndex+void btBvhSubtreeInfo_m_subtreeSize_set(void *c,int a); //attribute: int btBvhSubtreeInfo->m_subtreeSize+int btBvhSubtreeInfo_m_subtreeSize_get(void *c); //attribute: int btBvhSubtreeInfo->m_subtreeSize+void* btBvhSubtreeInfoData_new(); //constructor: btBvhSubtreeInfoData  ( ::btBvhSubtreeInfoData::* )(  ) +void btBvhSubtreeInfoData_free(void *c); +void btBvhSubtreeInfoData_m_rootNodeIndex_set(void *c,int a); //attribute: int btBvhSubtreeInfoData->m_rootNodeIndex+int btBvhSubtreeInfoData_m_rootNodeIndex_get(void *c); //attribute: int btBvhSubtreeInfoData->m_rootNodeIndex+void btBvhSubtreeInfoData_m_subtreeSize_set(void *c,int a); //attribute: int btBvhSubtreeInfoData->m_subtreeSize+int btBvhSubtreeInfoData_m_subtreeSize_get(void *c); //attribute: int btBvhSubtreeInfoData->m_subtreeSize+// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfoData->m_quantizedAabbMin+// attribute not supported: //attribute: short unsigned int[3] btBvhSubtreeInfoData->m_quantizedAabbMax+void btCollisionAlgorithm_getAllContactManifolds(void *c,void* p0); //method: getAllContactManifolds void ( ::btCollisionAlgorithm::* )( ::btManifoldArray & ) +float btCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btCollisionAlgorithm_m_dispatcher_set(void *c,void* a); //attribute: ::btDispatcher * btCollisionAlgorithm->m_dispatcher+void* btCollisionAlgorithm_m_dispatcher_get(void *c); //attribute: ::btDispatcher * btCollisionAlgorithm->m_dispatcher+void* btCollisionAlgorithmConstructionInfo_new0(); //constructor: btCollisionAlgorithmConstructionInfo  ( ::btCollisionAlgorithmConstructionInfo::* )(  ) +void* btCollisionAlgorithmConstructionInfo_new1(void* p0,int p1); //constructor: btCollisionAlgorithmConstructionInfo  ( ::btCollisionAlgorithmConstructionInfo::* )( ::btDispatcher *,int ) +void btCollisionAlgorithmConstructionInfo_free(void *c); +void btCollisionAlgorithmConstructionInfo_m_dispatcher1_set(void *c,void* a); //attribute: ::btDispatcher * btCollisionAlgorithmConstructionInfo->m_dispatcher1+void* btCollisionAlgorithmConstructionInfo_m_dispatcher1_get(void *c); //attribute: ::btDispatcher * btCollisionAlgorithmConstructionInfo->m_dispatcher1+void btCollisionAlgorithmConstructionInfo_m_manifold_set(void *c,void* a); //attribute: ::btPersistentManifold * btCollisionAlgorithmConstructionInfo->m_manifold+void* btCollisionAlgorithmConstructionInfo_m_manifold_get(void *c); //attribute: ::btPersistentManifold * btCollisionAlgorithmConstructionInfo->m_manifold+void* btDbvt_new(); //constructor: btDbvt  ( ::btDbvt::* )(  ) +void btDbvt_free(void *c); +//not supported method: nearest int (*)( int const *,::btDbvt::sStkNPS const *,::btScalar,int,int )+// error:  - unsupported, ::btDbvt::sStkNPS const * - ok, ::btScalar - ok, int - ok, int - ok, int - ok++void btDbvt_enumLeaves(void* p0,void* p1); //method: enumLeaves void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )+void btDbvt_optimizeIncremental(void *c,int p0); //method: optimizeIncremental void ( ::btDbvt::* )( int ) +void btDbvt_rayTest(void* p0,float* p1,float* p2,void* p3); //method: rayTest void (*)( ::btDbvtNode const *,::btVector3 const &,::btVector3 const &,::btDbvt::ICollide & )+void btDbvt_optimizeTopDown(void *c,int p0); //method: optimizeTopDown void ( ::btDbvt::* )( int ) +void btDbvt_enumNodes(void* p0,void* p1); //method: enumNodes void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )+void btDbvt_write(void *c,void* p0); //method: write void ( ::btDbvt::* )( ::btDbvt::IWriter * ) const+int btDbvt_allocate(void* p0,void* p1,void* p2); //method: allocate int (*)( ::btAlignedObjectArray<int> &,::btAlignedObjectArray<btDbvt::sStkNPS> &,::btDbvt::sStkNPS const & )+int btDbvt_empty(void *c); //method: empty bool ( ::btDbvt::* )(  ) const+void btDbvt_collideTV(void *c,void* p0,void* p1,void* p2); //method: collideTV void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtVolume const &,::btDbvt::ICollide & ) +void btDbvt_collideTU(void* p0,void* p1); //method: collideTU void (*)( ::btDbvtNode const *,::btDbvt::ICollide & )+void btDbvt_collideTT(void *c,void* p0,void* p1,void* p2); //method: collideTT void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtNode const *,::btDbvt::ICollide & ) +void btDbvt_collideTTpersistentStack(void *c,void* p0,void* p1,void* p2); //method: collideTTpersistentStack void ( ::btDbvt::* )( ::btDbvtNode const *,::btDbvtNode const *,::btDbvt::ICollide & ) +void btDbvt_clone(void *c,void* p0,void* p1); //method: clone void ( ::btDbvt::* )( ::btDbvt &,::btDbvt::IClone * ) const+void btDbvt_benchmark(); //method: benchmark void (*)(  )+void btDbvt_update(void *c,void* p0,int p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,int ) +void btDbvt_update0(void *c,void* p0,int p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,int ) +void btDbvt_update1(void *c,void* p0,void* p1); //method: update void ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume & ) +int btDbvt_update2(void *c,void* p0,void* p1,float* p2,float p3); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btVector3 const &,::btScalar ) +int btDbvt_update3(void *c,void* p0,void* p1,float* p2); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btVector3 const & ) +int btDbvt_update4(void *c,void* p0,void* p1,float p2); //method: update bool ( ::btDbvt::* )( ::btDbvtNode *,::btDbvtVolume &,::btScalar ) +int btDbvt_countLeaves(void* p0); //method: countLeaves int (*)( ::btDbvtNode const * )+//not supported method: collideOCL void (*)( ::btDbvtNode const *,::btVector3 const *,::btScalar const *,::btVector3 const &,int,::btDbvt::ICollide &,bool )+// error: ::btDbvtNode const * - ok,  - unsupported,  - unsupported, ::btVector3 const & - ok, int - ok, ::btDbvt::ICollide & - ok, bool - ok, void - ok++void* btDbvt_insert(void *c,void* p0,void* p1); //method: insert ::btDbvtNode * ( ::btDbvt::* )( ::btDbvtVolume const &,void * ) +//not supported method: collideKDOP void (*)( ::btDbvtNode const *,::btVector3 const *,::btScalar const *,int,::btDbvt::ICollide & )+// error: ::btDbvtNode const * - ok,  - unsupported,  - unsupported, int - ok, ::btDbvt::ICollide & - ok, void - ok++void btDbvt_extractLeaves(void* p0,void* p1); //method: extractLeaves void (*)( ::btDbvtNode const *,::btAlignedObjectArray<btDbvtNode const*> & )+void btDbvt_remove(void *c,void* p0); //method: remove void ( ::btDbvt::* )( ::btDbvtNode * ) +//not supported method: rayTestInternal void ( ::btDbvt::* )( ::btDbvtNode const *,::btVector3 const &,::btVector3 const &,::btVector3 const &,unsigned int *,::btScalar,::btVector3 const &,::btVector3 const &,::btDbvt::ICollide & ) const+// error: ::btDbvtNode const * - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported, ::btScalar - ok, ::btVector3 const & - ok, ::btVector3 const & - ok, ::btDbvt::ICollide & - ok, void - ok++int btDbvt_maxdepth(void* p0); //method: maxdepth int (*)( ::btDbvtNode const * )+void btDbvt_clear(void *c); //method: clear void ( ::btDbvt::* )(  ) +void btDbvt_optimizeBottomUp(void *c); //method: optimizeBottomUp void ( ::btDbvt::* )(  ) +void btDbvt_m_free_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt->m_free+void* btDbvt_m_free_get(void *c); //attribute: ::btDbvtNode * btDbvt->m_free+void btDbvt_m_leaves_set(void *c,int a); //attribute: int btDbvt->m_leaves+int btDbvt_m_leaves_get(void *c); //attribute: int btDbvt->m_leaves+void btDbvt_m_lkhd_set(void *c,int a); //attribute: int btDbvt->m_lkhd+int btDbvt_m_lkhd_get(void *c); //attribute: int btDbvt->m_lkhd+void btDbvt_m_opath_set(void *c,unsigned int a); //attribute: unsigned int btDbvt->m_opath+unsigned int btDbvt_m_opath_get(void *c); //attribute: unsigned int btDbvt->m_opath+void btDbvt_m_root_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt->m_root+void* btDbvt_m_root_get(void *c); //attribute: ::btDbvtNode * btDbvt->m_root+void btDbvt_m_stkStack_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btDbvt::sStkNN> btDbvt->m_stkStack+void* btDbvt_m_stkStack_get(void *c); //attribute: ::btAlignedObjectArray<btDbvt::sStkNN> btDbvt->m_stkStack+void* btDbvtAabbMm_new(); //constructor: btDbvtAabbMm  ( ::btDbvtAabbMm::* )(  ) +void btDbvtAabbMm_free(void *c); +void btDbvtAabbMm_SignedExpand(void *c,float* p0); //method: SignedExpand void ( ::btDbvtAabbMm::* )( ::btVector3 const & ) +void btDbvtAabbMm_Extents(void *c,float* ret); //method: Extents ::btVector3 ( ::btDbvtAabbMm::* )(  ) const+void btDbvtAabbMm_Center(void *c,float* ret); //method: Center ::btVector3 ( ::btDbvtAabbMm::* )(  ) const+void btDbvtAabbMm_Lengths(void *c,float* ret); //method: Lengths ::btVector3 ( ::btDbvtAabbMm::* )(  ) const+void btDbvtAabbMm_Maxs(void *c,float* ret); //method: Maxs ::btVector3 const & ( ::btDbvtAabbMm::* )(  ) const+//not supported method: FromCE ::btDbvtAabbMm (*)( ::btVector3 const &,::btVector3 const & )+// error: ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported++//not supported method: FromMM ::btDbvtAabbMm (*)( ::btVector3 const &,::btVector3 const & )+// error: ::btVector3 const & - ok, ::btVector3 const & - ok,  - unsupported++float btDbvtAabbMm_ProjectMinimum(void *c,float* p0,unsigned int p1); //method: ProjectMinimum ::btScalar ( ::btDbvtAabbMm::* )( ::btVector3 const &,unsigned int ) const+int btDbvtAabbMm_Classify(void *c,float* p0,float p1,int p2); //method: Classify int ( ::btDbvtAabbMm::* )( ::btVector3 const &,::btScalar,int ) const+int btDbvtAabbMm_Contain(void *c,void* p0); //method: Contain bool ( ::btDbvtAabbMm::* )( ::btDbvtAabbMm const & ) const+//not supported method: AddSpan void ( ::btDbvtAabbMm::* )( ::btVector3 const &,::btScalar &,::btScalar & ) const+// error: ::btVector3 const & - ok,  - unsupported,  - unsupported, void - ok++void btDbvtAabbMm_Mins(void *c,float* ret); //method: Mins ::btVector3 const & ( ::btDbvtAabbMm::* )(  ) const+//not supported method: FromCR ::btDbvtAabbMm (*)( ::btVector3 const &,::btScalar )+// error: ::btVector3 const & - ok, ::btScalar - ok,  - unsupported++void btDbvtAabbMm_Expand(void *c,float* p0); //method: Expand void ( ::btDbvtAabbMm::* )( ::btVector3 const & ) +//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const *,int )+// error:  - unsupported, int - ok,  - unsupported++//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const *,int )+// error:  - unsupported, int - ok,  - unsupported++//not supported method: FromPoints ::btDbvtAabbMm (*)( ::btVector3 const * *,int )+// error:  - unsupported, int - ok,  - unsupported++void btDbvtAabbMm_mi_set(void *c,float* a); //attribute: ::btVector3 btDbvtAabbMm->mi+void btDbvtAabbMm_mi_get(void *c,float* a);+void btDbvtAabbMm_mx_set(void *c,float* a); //attribute: ::btVector3 btDbvtAabbMm->mx+void btDbvtAabbMm_mx_get(void *c,float* a);+void* btDbvtBroadphase_new(void* p0); //constructor: btDbvtBroadphase  ( ::btDbvtBroadphase::* )( ::btOverlappingPairCache * ) +void btDbvtBroadphase_free(void *c); +void btDbvtBroadphase_setVelocityPrediction(void *c,float p0); //method: setVelocityPrediction void ( ::btDbvtBroadphase::* )( ::btScalar ) +void btDbvtBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btDbvtBroadphase_performDeferredRemoval(void *c,void* p0); //method: performDeferredRemoval void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) +void btDbvtBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btDbvtBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btDbvtBroadphase::* )( ::btVector3 &,::btVector3 & ) const+float btDbvtBroadphase_getVelocityPrediction(void *c); //method: getVelocityPrediction ::btScalar ( ::btDbvtBroadphase::* )(  ) const+void btDbvtBroadphase_benchmark(void* p0); //method: benchmark void (*)( ::btBroadphaseInterface * )+void btDbvtBroadphase_collide(void *c,void* p0); //method: collide void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) +void btDbvtBroadphase_resetPool(void *c,void* p0); //method: resetPool void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) +void btDbvtBroadphase_optimize(void *c); //method: optimize void ( ::btDbvtBroadphase::* )(  ) +void btDbvtBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btDbvtBroadphase::* )( ::btDispatcher * ) +void btDbvtBroadphase_setAabbForceUpdate(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabbForceUpdate void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void btDbvtBroadphase_printStats(void *c); //method: printStats void ( ::btDbvtBroadphase::* )(  ) +void btDbvtBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void btDbvtBroadphase_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) +void* btDbvtBroadphase_createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btDbvtBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void* btDbvtBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btDbvtBroadphase::* )(  ) +void* btDbvtBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btDbvtBroadphase::* )(  ) +void* btDbvtBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btDbvtBroadphase::* )(  ) const+void btDbvtBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btDbvtBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btDbvtBroadphase_m_cid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_cid+int btDbvtBroadphase_m_cid_get(void *c); //attribute: int btDbvtBroadphase->m_cid+void btDbvtBroadphase_m_cupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_cupdates+int btDbvtBroadphase_m_cupdates_get(void *c); //attribute: int btDbvtBroadphase->m_cupdates+void btDbvtBroadphase_m_deferedcollide_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_deferedcollide+int btDbvtBroadphase_m_deferedcollide_get(void *c); //attribute: bool btDbvtBroadphase->m_deferedcollide+void btDbvtBroadphase_m_dupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_dupdates+int btDbvtBroadphase_m_dupdates_get(void *c); //attribute: int btDbvtBroadphase->m_dupdates+void btDbvtBroadphase_m_fixedleft_set(void *c,int a); //attribute: int btDbvtBroadphase->m_fixedleft+int btDbvtBroadphase_m_fixedleft_get(void *c); //attribute: int btDbvtBroadphase->m_fixedleft+void btDbvtBroadphase_m_fupdates_set(void *c,int a); //attribute: int btDbvtBroadphase->m_fupdates+int btDbvtBroadphase_m_fupdates_get(void *c); //attribute: int btDbvtBroadphase->m_fupdates+void btDbvtBroadphase_m_gid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_gid+int btDbvtBroadphase_m_gid_get(void *c); //attribute: int btDbvtBroadphase->m_gid+void btDbvtBroadphase_m_needcleanup_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_needcleanup+int btDbvtBroadphase_m_needcleanup_get(void *c); //attribute: bool btDbvtBroadphase->m_needcleanup+void btDbvtBroadphase_m_newpairs_set(void *c,int a); //attribute: int btDbvtBroadphase->m_newpairs+int btDbvtBroadphase_m_newpairs_get(void *c); //attribute: int btDbvtBroadphase->m_newpairs+void btDbvtBroadphase_m_paircache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btDbvtBroadphase->m_paircache+void* btDbvtBroadphase_m_paircache_get(void *c); //attribute: ::btOverlappingPairCache * btDbvtBroadphase->m_paircache+void btDbvtBroadphase_m_pid_set(void *c,int a); //attribute: int btDbvtBroadphase->m_pid+int btDbvtBroadphase_m_pid_get(void *c); //attribute: int btDbvtBroadphase->m_pid+void btDbvtBroadphase_m_prediction_set(void *c,float a); //attribute: ::btScalar btDbvtBroadphase->m_prediction+float btDbvtBroadphase_m_prediction_get(void *c); //attribute: ::btScalar btDbvtBroadphase->m_prediction+void btDbvtBroadphase_m_releasepaircache_set(void *c,int a); //attribute: bool btDbvtBroadphase->m_releasepaircache+int btDbvtBroadphase_m_releasepaircache_get(void *c); //attribute: bool btDbvtBroadphase->m_releasepaircache+// attribute not supported: //attribute: ::btDbvt[2] btDbvtBroadphase->m_sets+void btDbvtBroadphase_m_stageCurrent_set(void *c,int a); //attribute: int btDbvtBroadphase->m_stageCurrent+int btDbvtBroadphase_m_stageCurrent_get(void *c); //attribute: int btDbvtBroadphase->m_stageCurrent+// attribute not supported: //attribute: ::btDbvtProxy *[3] btDbvtBroadphase->m_stageRoots+void btDbvtBroadphase_m_updates_call_set(void *c,unsigned int a); //attribute: unsigned int btDbvtBroadphase->m_updates_call+unsigned int btDbvtBroadphase_m_updates_call_get(void *c); //attribute: unsigned int btDbvtBroadphase->m_updates_call+void btDbvtBroadphase_m_updates_done_set(void *c,unsigned int a); //attribute: unsigned int btDbvtBroadphase->m_updates_done+unsigned int btDbvtBroadphase_m_updates_done_get(void *c); //attribute: unsigned int btDbvtBroadphase->m_updates_done+void btDbvtBroadphase_m_updates_ratio_set(void *c,float a); //attribute: ::btScalar btDbvtBroadphase->m_updates_ratio+float btDbvtBroadphase_m_updates_ratio_get(void *c); //attribute: ::btScalar btDbvtBroadphase->m_updates_ratio+void* btDbvtNode_new(); //constructor: btDbvtNode  ( ::btDbvtNode::* )(  ) +void btDbvtNode_free(void *c); +int btDbvtNode_isinternal(void *c); //method: isinternal bool ( ::btDbvtNode::* )(  ) const+int btDbvtNode_isleaf(void *c); //method: isleaf bool ( ::btDbvtNode::* )(  ) const+// attribute not supported: //attribute: ::btDbvtNode btDbvtNode->+void btDbvtNode_parent_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvtNode->parent+void* btDbvtNode_parent_get(void *c); //attribute: ::btDbvtNode * btDbvtNode->parent+void btDbvtNode_volume_set(void *c,void* a); //attribute: ::btDbvtVolume btDbvtNode->volume+void* btDbvtNode_volume_get(void *c); //attribute: ::btDbvtVolume btDbvtNode->volume+void* btDbvtProxy_new(float* p0,float* p1,void* p2,short int p3,short int p4); //constructor: btDbvtProxy  ( ::btDbvtProxy::* )( ::btVector3 const &,::btVector3 const &,void *,short int,short int ) +void btDbvtProxy_free(void *c); +void btDbvtProxy_leaf_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvtProxy->leaf+void* btDbvtProxy_leaf_get(void *c); //attribute: ::btDbvtNode * btDbvtProxy->leaf+// attribute not supported: //attribute: ::btDbvtProxy *[2] btDbvtProxy->links+void btDbvtProxy_stage_set(void *c,int a); //attribute: int btDbvtProxy->stage+int btDbvtProxy_stage_get(void *c); //attribute: int btDbvtProxy->stage+void* btDispatcher_allocateCollisionAlgorithm(void *c,int p0); //method: allocateCollisionAlgorithm void * ( ::btDispatcher::* )( int ) +void btDispatcher_releaseManifold(void *c,void* p0); //method: releaseManifold void ( ::btDispatcher::* )( ::btPersistentManifold * ) +int btDispatcher_getNumManifolds(void *c); //method: getNumManifolds int ( ::btDispatcher::* )(  ) const+void btDispatcher_clearManifold(void *c,void* p0); //method: clearManifold void ( ::btDispatcher::* )( ::btPersistentManifold * ) +void btDispatcher_freeCollisionAlgorithm(void *c,void* p0); //method: freeCollisionAlgorithm void ( ::btDispatcher::* )( void * ) +//not supported method: getInternalManifoldPointer ::btPersistentManifold * * ( ::btDispatcher::* )(  ) +// error:  - unsupported++void* btDispatcher_findAlgorithm(void *c,void* p0,void* p1,void* p2); //method: findAlgorithm ::btCollisionAlgorithm * ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject *,::btPersistentManifold * ) +int btDispatcher_needsResponse(void *c,void* p0,void* p1); //method: needsResponse bool ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) +void* btDispatcher_getNewManifold(void *c,void* p0,void* p1); //method: getNewManifold ::btPersistentManifold * ( ::btDispatcher::* )( void *,void * ) +void btDispatcher_dispatchAllCollisionPairs(void *c,void* p0,void* p1,void* p2); //method: dispatchAllCollisionPairs void ( ::btDispatcher::* )( ::btOverlappingPairCache *,::btDispatcherInfo const &,::btDispatcher * ) +//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btDispatcher::* )(  ) +// error:  - unsupported++//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btDispatcher::* )(  ) +// error:  - unsupported++//not supported method: getInternalManifoldPool ::btPoolAllocator const * ( ::btDispatcher::* )(  ) const+// error:  - unsupported++int btDispatcher_needsCollision(void *c,void* p0,void* p1); //method: needsCollision bool ( ::btDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) +void* btDispatcher_getManifoldByIndexInternal(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btDispatcher::* )( int ) +void* btDispatcherInfo_new(); //constructor: btDispatcherInfo  ( ::btDispatcherInfo::* )(  ) +void btDispatcherInfo_free(void *c); +void btDispatcherInfo_m_allowedCcdPenetration_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_allowedCcdPenetration+float btDispatcherInfo_m_allowedCcdPenetration_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_allowedCcdPenetration+void btDispatcherInfo_m_convexConservativeDistanceThreshold_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_convexConservativeDistanceThreshold+float btDispatcherInfo_m_convexConservativeDistanceThreshold_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_convexConservativeDistanceThreshold+void btDispatcherInfo_m_debugDraw_set(void *c,void* a); //attribute: ::btIDebugDraw * btDispatcherInfo->m_debugDraw+void* btDispatcherInfo_m_debugDraw_get(void *c); //attribute: ::btIDebugDraw * btDispatcherInfo->m_debugDraw+void btDispatcherInfo_m_dispatchFunc_set(void *c,int a); //attribute: int btDispatcherInfo->m_dispatchFunc+int btDispatcherInfo_m_dispatchFunc_get(void *c); //attribute: int btDispatcherInfo->m_dispatchFunc+void btDispatcherInfo_m_enableSPU_set(void *c,int a); //attribute: bool btDispatcherInfo->m_enableSPU+int btDispatcherInfo_m_enableSPU_get(void *c); //attribute: bool btDispatcherInfo->m_enableSPU+void btDispatcherInfo_m_enableSatConvex_set(void *c,int a); //attribute: bool btDispatcherInfo->m_enableSatConvex+int btDispatcherInfo_m_enableSatConvex_get(void *c); //attribute: bool btDispatcherInfo->m_enableSatConvex+void btDispatcherInfo_m_stackAllocator_set(void *c,void* a); //attribute: ::btStackAlloc * btDispatcherInfo->m_stackAllocator+void* btDispatcherInfo_m_stackAllocator_get(void *c); //attribute: ::btStackAlloc * btDispatcherInfo->m_stackAllocator+void btDispatcherInfo_m_stepCount_set(void *c,int a); //attribute: int btDispatcherInfo->m_stepCount+int btDispatcherInfo_m_stepCount_get(void *c); //attribute: int btDispatcherInfo->m_stepCount+void btDispatcherInfo_m_timeOfImpact_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_timeOfImpact+float btDispatcherInfo_m_timeOfImpact_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_timeOfImpact+void btDispatcherInfo_m_timeStep_set(void *c,float a); //attribute: ::btScalar btDispatcherInfo->m_timeStep+float btDispatcherInfo_m_timeStep_get(void *c); //attribute: ::btScalar btDispatcherInfo->m_timeStep+void btDispatcherInfo_m_useContinuous_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useContinuous+int btDispatcherInfo_m_useContinuous_get(void *c); //attribute: bool btDispatcherInfo->m_useContinuous+void btDispatcherInfo_m_useConvexConservativeDistanceUtil_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useConvexConservativeDistanceUtil+int btDispatcherInfo_m_useConvexConservativeDistanceUtil_get(void *c); //attribute: bool btDispatcherInfo->m_useConvexConservativeDistanceUtil+void btDispatcherInfo_m_useEpa_set(void *c,int a); //attribute: bool btDispatcherInfo->m_useEpa+int btDispatcherInfo_m_useEpa_get(void *c); //attribute: bool btDispatcherInfo->m_useEpa+void* btHashedOverlappingPairCache_new(); //constructor: btHashedOverlappingPairCache  ( ::btHashedOverlappingPairCache::* )(  ) +void btHashedOverlappingPairCache_free(void *c); +void btHashedOverlappingPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btHashedOverlappingPairCache::* )( ::btDispatcher * ) +int btHashedOverlappingPairCache_equalsPair(void *c,void* p0,int p1,int p2); //method: equalsPair bool ( ::btHashedOverlappingPairCache::* )( ::btBroadphasePair const &,int,int ) +void* btHashedOverlappingPairCache_internalFindPair(void *c,void* p0,void* p1,int p2); //method: internalFindPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,int ) +void* btHashedOverlappingPairCache_getOverlappingPairArray(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btHashedOverlappingPairCache::* )(  ) +void* btHashedOverlappingPairCache_getOverlappingPairArray0(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btHashedOverlappingPairCache::* )(  ) +void* btHashedOverlappingPairCache_getOverlappingPairArray1(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray const & ( ::btHashedOverlappingPairCache::* )(  ) const+void btHashedOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btHashedOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) +int btHashedOverlappingPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btHashedOverlappingPairCache::* )(  ) +void btHashedOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +int btHashedOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btHashedOverlappingPairCache::* )(  ) const+void btHashedOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btHashedOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) +void btHashedOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btHashedOverlappingPairCache::* )( ::btOverlapFilterCallback * ) +void btHashedOverlappingPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btHashedOverlappingPairCache::* )( ::btOverlappingPairCallback * ) +void* btHashedOverlappingPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +int btHashedOverlappingPairCache_needsBroadphaseCollision(void *c,void* p0,void* p1); //method: needsBroadphaseCollision bool ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const+void* btHashedOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )(  ) +void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )(  ) +void* btHashedOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btHashedOverlappingPairCache::* )(  ) const+void* btHashedOverlappingPairCache_getOverlapFilterCallback(void *c); //method: getOverlapFilterCallback ::btOverlapFilterCallback * ( ::btHashedOverlappingPairCache::* )(  ) +void btHashedOverlappingPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void* btHashedOverlappingPairCache_internalAddPair(void *c,void* p0,void* p1); //method: internalAddPair ::btBroadphasePair * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btHashedOverlappingPairCache_growTables(void *c); //method: growTables void ( ::btHashedOverlappingPairCache::* )(  ) +void* btHashedOverlappingPairCache_removeOverlappingPair(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingPair void * ( ::btHashedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) +int btHashedOverlappingPairCache_GetCount(void *c); //method: GetCount int ( ::btHashedOverlappingPairCache::* )(  ) const+unsigned int btHashedOverlappingPairCache_getHash(void *c,unsigned int p0,unsigned int p1); //method: getHash unsigned int ( ::btHashedOverlappingPairCache::* )( unsigned int,unsigned int ) +void btHashedOverlappingPairCache_m_overlappingPairArray_set(void *c,void* a); //attribute: ::btBroadphasePairArray btHashedOverlappingPairCache->m_overlappingPairArray+void* btHashedOverlappingPairCache_m_overlappingPairArray_get(void *c); //attribute: ::btBroadphasePairArray btHashedOverlappingPairCache->m_overlappingPairArray+void btHashedOverlappingPairCache_m_overlapFilterCallback_set(void *c,void* a); //attribute: ::btOverlapFilterCallback * btHashedOverlappingPairCache->m_overlapFilterCallback+void* btHashedOverlappingPairCache_m_overlapFilterCallback_get(void *c); //attribute: ::btOverlapFilterCallback * btHashedOverlappingPairCache->m_overlapFilterCallback+void btHashedOverlappingPairCache_m_blockedForChanges_set(void *c,int a); //attribute: bool btHashedOverlappingPairCache->m_blockedForChanges+int btHashedOverlappingPairCache_m_blockedForChanges_get(void *c); //attribute: bool btHashedOverlappingPairCache->m_blockedForChanges+void btHashedOverlappingPairCache_m_hashTable_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashedOverlappingPairCache->m_hashTable+void* btHashedOverlappingPairCache_m_hashTable_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashedOverlappingPairCache->m_hashTable+void btHashedOverlappingPairCache_m_next_set(void *c,void* a); //attribute: ::btAlignedObjectArray<int> btHashedOverlappingPairCache->m_next+void* btHashedOverlappingPairCache_m_next_get(void *c); //attribute: ::btAlignedObjectArray<int> btHashedOverlappingPairCache->m_next+void btHashedOverlappingPairCache_m_ghostPairCallback_set(void *c,void* a); //attribute: ::btOverlappingPairCallback * btHashedOverlappingPairCache->m_ghostPairCallback+void* btHashedOverlappingPairCache_m_ghostPairCallback_get(void *c); //attribute: ::btOverlappingPairCallback * btHashedOverlappingPairCache->m_ghostPairCallback+void btMultiSapBroadphase_addToChildBroadphase(void *c,void* p0,void* p1,void* p2); //method: addToChildBroadphase void ( ::btMultiSapBroadphase::* )( ::btMultiSapBroadphase::btMultiSapProxy *,::btBroadphaseProxy *,::btBroadphaseInterface * ) +void btMultiSapBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btMultiSapBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +void* btMultiSapBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btMultiSapBroadphase::* )(  ) +void* btMultiSapBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btMultiSapBroadphase::* )(  ) +void* btMultiSapBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btMultiSapBroadphase::* )(  ) const+void btMultiSapBroadphase_buildTree(void *c,float* p0,float* p1); //method: buildTree void ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const & ) +void btMultiSapBroadphase_resetPool(void *c,void* p0); //method: resetPool void ( ::btMultiSapBroadphase::* )( ::btDispatcher * ) +void btMultiSapBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btMultiSapBroadphase::* )( ::btDispatcher * ) +int btMultiSapBroadphase_testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btMultiSapBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void* btMultiSapBroadphase_getBroadphaseArray(void *c); //method: getBroadphaseArray ::btSapBroadphaseArray & ( ::btMultiSapBroadphase::* )(  ) +void* btMultiSapBroadphase_getBroadphaseArray0(void *c); //method: getBroadphaseArray ::btSapBroadphaseArray & ( ::btMultiSapBroadphase::* )(  ) +void* btMultiSapBroadphase_getBroadphaseArray1(void *c); //method: getBroadphaseArray ::btSapBroadphaseArray const & ( ::btMultiSapBroadphase::* )(  ) const+void* btMultiSapBroadphase_createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btMultiSapBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void btMultiSapBroadphase_printStats(void *c); //method: printStats void ( ::btMultiSapBroadphase::* )(  ) +void btMultiSapBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btMultiSapBroadphase::* )( ::btVector3 &,::btVector3 & ) const+void btMultiSapBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btMultiSapBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btMultiSapBroadphase_m_sapBroadphases_set(void *c,void* a); //attribute: ::btSapBroadphaseArray btMultiSapBroadphase->m_sapBroadphases+void* btMultiSapBroadphase_m_sapBroadphases_get(void *c); //attribute: ::btSapBroadphaseArray btMultiSapBroadphase->m_sapBroadphases+void btMultiSapBroadphase_m_simpleBroadphase_set(void *c,void* a); //attribute: ::btSimpleBroadphase * btMultiSapBroadphase->m_simpleBroadphase+void* btMultiSapBroadphase_m_simpleBroadphase_get(void *c); //attribute: ::btSimpleBroadphase * btMultiSapBroadphase->m_simpleBroadphase+void btMultiSapBroadphase_m_overlappingPairs_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btMultiSapBroadphase->m_overlappingPairs+void* btMultiSapBroadphase_m_overlappingPairs_get(void *c); //attribute: ::btOverlappingPairCache * btMultiSapBroadphase->m_overlappingPairs+void btMultiSapBroadphase_m_optimizedAabbTree_set(void *c,void* a); //attribute: ::btQuantizedBvh * btMultiSapBroadphase->m_optimizedAabbTree+void* btMultiSapBroadphase_m_optimizedAabbTree_get(void *c); //attribute: ::btQuantizedBvh * btMultiSapBroadphase->m_optimizedAabbTree+void btMultiSapBroadphase_m_ownsPairCache_set(void *c,int a); //attribute: bool btMultiSapBroadphase->m_ownsPairCache+int btMultiSapBroadphase_m_ownsPairCache_get(void *c); //attribute: bool btMultiSapBroadphase->m_ownsPairCache+void btMultiSapBroadphase_m_filterCallback_set(void *c,void* a); //attribute: ::btOverlapFilterCallback * btMultiSapBroadphase->m_filterCallback+void* btMultiSapBroadphase_m_filterCallback_get(void *c); //attribute: ::btOverlapFilterCallback * btMultiSapBroadphase->m_filterCallback+void btMultiSapBroadphase_m_invalidPair_set(void *c,int a); //attribute: int btMultiSapBroadphase->m_invalidPair+int btMultiSapBroadphase_m_invalidPair_get(void *c); //attribute: int btMultiSapBroadphase->m_invalidPair+void btMultiSapBroadphase_m_multiSapProxies_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*> btMultiSapBroadphase->m_multiSapProxies+void* btMultiSapBroadphase_m_multiSapProxies_get(void *c); //attribute: ::btAlignedObjectArray<btMultiSapBroadphase::btMultiSapProxy*> btMultiSapBroadphase->m_multiSapProxies+void* btMultiSapBroadphase_btMultiSapProxy_new(float* p0,float* p1,int p2,void* p3,short int p4,short int p5); //constructor: btMultiSapProxy  ( ::btMultiSapBroadphase::btMultiSapProxy::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int ) +void btMultiSapBroadphase_btMultiSapProxy_free(void *c); +void btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_set(void *c,float* a); //attribute: ::btVector3 btMultiSapBroadphase_btMultiSapProxy->m_aabbMax+void btMultiSapBroadphase_btMultiSapProxy_m_aabbMax_get(void *c,float* a);+void btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_set(void *c,float* a); //attribute: ::btVector3 btMultiSapBroadphase_btMultiSapProxy->m_aabbMin+void btMultiSapBroadphase_btMultiSapProxy_m_aabbMin_get(void *c,float* a);+void btMultiSapBroadphase_btMultiSapProxy_m_bridgeProxies_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*> btMultiSapBroadphase_btMultiSapProxy->m_bridgeProxies+void* btMultiSapBroadphase_btMultiSapProxy_m_bridgeProxies_get(void *c); //attribute: ::btAlignedObjectArray<btMultiSapBroadphase::btBridgeProxy*> btMultiSapBroadphase_btMultiSapProxy->m_bridgeProxies+void btMultiSapBroadphase_btMultiSapProxy_m_shapeType_set(void *c,int a); //attribute: int btMultiSapBroadphase_btMultiSapProxy->m_shapeType+int btMultiSapBroadphase_btMultiSapProxy_m_shapeType_get(void *c); //attribute: int btMultiSapBroadphase_btMultiSapProxy->m_shapeType+void btNodeOverlapCallback_processNode(void *c,int p0,int p1); //method: processNode void ( ::btNodeOverlapCallback::* )( int,int ) +void* btNullPairCache_new(); //constructor: btNullPairCache  ( ::btNullPairCache::* )(  ) +void btNullPairCache_free(void *c); +void btNullPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btNullPairCache::* )( ::btDispatcher * ) +void btNullPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btNullPairCache::* )( ::btOverlappingPairCallback * ) +void* btNullPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btNullPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +int btNullPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btNullPairCache::* )(  ) +void* btNullPairCache_getOverlappingPairArray(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btNullPairCache::* )(  ) +void* btNullPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btNullPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btNullPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btNullPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) +int btNullPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btNullPairCache::* )(  ) const+void* btNullPairCache_removeOverlappingPair(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingPair void * ( ::btNullPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) +void btNullPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btNullPairCache::* )( ::btOverlapFilterCallback * ) +void* btNullPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btNullPairCache::* )(  ) +void* btNullPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btNullPairCache::* )(  ) +void* btNullPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btNullPairCache::* )(  ) const+void btNullPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btNullPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) +void btNullPairCache_m_overlappingPairArray_set(void *c,void* a); //attribute: ::btBroadphasePairArray btNullPairCache->m_overlappingPairArray+void* btNullPairCache_m_overlappingPairArray_get(void *c); //attribute: ::btBroadphasePairArray btNullPairCache->m_overlappingPairArray+void* btOptimizedBvhNode_new(); //constructor: btOptimizedBvhNode  ( ::btOptimizedBvhNode::* )(  ) +void btOptimizedBvhNode_free(void *c); +void btOptimizedBvhNode_m_aabbMaxOrg_set(void *c,float* a); //attribute: ::btVector3 btOptimizedBvhNode->m_aabbMaxOrg+void btOptimizedBvhNode_m_aabbMaxOrg_get(void *c,float* a);+void btOptimizedBvhNode_m_aabbMinOrg_set(void *c,float* a); //attribute: ::btVector3 btOptimizedBvhNode->m_aabbMinOrg+void btOptimizedBvhNode_m_aabbMinOrg_get(void *c,float* a);+void btOptimizedBvhNode_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_escapeIndex+int btOptimizedBvhNode_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNode->m_escapeIndex+// attribute not supported: //attribute: char[20] btOptimizedBvhNode->m_padding+void btOptimizedBvhNode_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_subPart+int btOptimizedBvhNode_m_subPart_get(void *c); //attribute: int btOptimizedBvhNode->m_subPart+void btOptimizedBvhNode_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNode->m_triangleIndex+int btOptimizedBvhNode_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNode->m_triangleIndex+void* btOptimizedBvhNodeDoubleData_new(); //constructor: btOptimizedBvhNodeDoubleData  ( ::btOptimizedBvhNodeDoubleData::* )(  ) +void btOptimizedBvhNodeDoubleData_free(void *c); +void btOptimizedBvhNodeDoubleData_m_aabbMinOrg_set(void *c,void* a); //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMinOrg+void* btOptimizedBvhNodeDoubleData_m_aabbMinOrg_get(void *c); //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMinOrg+void btOptimizedBvhNodeDoubleData_m_aabbMaxOrg_set(void *c,void* a); //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMaxOrg+void* btOptimizedBvhNodeDoubleData_m_aabbMaxOrg_get(void *c); //attribute: ::btVector3DoubleData btOptimizedBvhNodeDoubleData->m_aabbMaxOrg+void btOptimizedBvhNodeDoubleData_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_escapeIndex+int btOptimizedBvhNodeDoubleData_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_escapeIndex+void btOptimizedBvhNodeDoubleData_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_subPart+int btOptimizedBvhNodeDoubleData_m_subPart_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_subPart+void btOptimizedBvhNodeDoubleData_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeDoubleData->m_triangleIndex+int btOptimizedBvhNodeDoubleData_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNodeDoubleData->m_triangleIndex+// attribute not supported: //attribute: char[4] btOptimizedBvhNodeDoubleData->m_pad+void* btOptimizedBvhNodeFloatData_new(); //constructor: btOptimizedBvhNodeFloatData  ( ::btOptimizedBvhNodeFloatData::* )(  ) +void btOptimizedBvhNodeFloatData_free(void *c); +void btOptimizedBvhNodeFloatData_m_aabbMinOrg_set(void *c,void* a); //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMinOrg+void* btOptimizedBvhNodeFloatData_m_aabbMinOrg_get(void *c); //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMinOrg+void btOptimizedBvhNodeFloatData_m_aabbMaxOrg_set(void *c,void* a); //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMaxOrg+void* btOptimizedBvhNodeFloatData_m_aabbMaxOrg_get(void *c); //attribute: ::btVector3FloatData btOptimizedBvhNodeFloatData->m_aabbMaxOrg+void btOptimizedBvhNodeFloatData_m_escapeIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_escapeIndex+int btOptimizedBvhNodeFloatData_m_escapeIndex_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_escapeIndex+void btOptimizedBvhNodeFloatData_m_subPart_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_subPart+int btOptimizedBvhNodeFloatData_m_subPart_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_subPart+void btOptimizedBvhNodeFloatData_m_triangleIndex_set(void *c,int a); //attribute: int btOptimizedBvhNodeFloatData->m_triangleIndex+int btOptimizedBvhNodeFloatData_m_triangleIndex_get(void *c); //attribute: int btOptimizedBvhNodeFloatData->m_triangleIndex+// attribute not supported: //attribute: char[4] btOptimizedBvhNodeFloatData->m_pad+int btOverlapCallback_processOverlap(void *c,void* p0); //method: processOverlap bool ( ::btOverlapCallback::* )( ::btBroadphasePair & ) +int btOverlapFilterCallback_needBroadphaseCollision(void *c,void* p0,void* p1); //method: needBroadphaseCollision bool ( ::btOverlapFilterCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const+void btOverlappingPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btOverlappingPairCache::* )( ::btDispatcher * ) +void btOverlappingPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btOverlappingPairCache::* )( ::btOverlappingPairCallback * ) +void btOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btOverlappingPairCache::* )( ::btOverlapFilterCallback * ) +void* btOverlappingPairCache_getOverlappingPairArray(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btOverlappingPairCache::* )(  ) +void* btOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) +int btOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btOverlappingPairCache::* )(  ) const+void btOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) +void* btOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btOverlappingPairCache::* )(  ) +void* btOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btOverlappingPairCache::* )(  ) +void* btOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btOverlappingPairCache::* )(  ) const+int btOverlappingPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btOverlappingPairCache::* )(  ) +void* btOverlappingPairCallback_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void* btOverlappingPairCallback_removeOverlappingPair(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingPair void * ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) +void btOverlappingPairCallback_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btOverlappingPairCallback::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void* btQuantizedBvh_new0(); //constructor: btQuantizedBvh  ( ::btQuantizedBvh::* )(  ) +void* btQuantizedBvh_new1(void* p0,int p1); //constructor: btQuantizedBvh  ( ::btQuantizedBvh::* )( ::btQuantizedBvh &,bool ) +void btQuantizedBvh_free(void *c); +int btQuantizedBvh_calcSplittingAxis(void *c,int p0,int p1); //method: calcSplittingAxis int ( ::btQuantizedBvh::* )( int,int ) +void btQuantizedBvh_buildInternal(void *c); //method: buildInternal void ( ::btQuantizedBvh::* )(  ) +int btQuantizedBvh_serialize(void *c,void* p0,unsigned int p1,int p2); //method: serialize bool ( ::btQuantizedBvh::* )( void *,unsigned int,bool ) const+int btQuantizedBvh_serialize0(void *c,void* p0,unsigned int p1,int p2); //method: serialize bool ( ::btQuantizedBvh::* )( void *,unsigned int,bool ) const+char const * btQuantizedBvh_serialize1(void *c,void* p0,void* p1); //method: serialize char const * ( ::btQuantizedBvh::* )( void *,::btSerializer * ) const+void btQuantizedBvh_deSerializeDouble(void *c,void* p0); //method: deSerializeDouble void ( ::btQuantizedBvh::* )( ::btQuantizedBvhDoubleData & ) +void btQuantizedBvh_setQuantizationValues(void *c,float* p0,float* p1,float p2); //method: setQuantizationValues void ( ::btQuantizedBvh::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void btQuantizedBvh_deSerializeFloat(void *c,void* p0); //method: deSerializeFloat void ( ::btQuantizedBvh::* )( ::btQuantizedBvhFloatData & ) +//not supported method: setTraversalMode void ( ::btQuantizedBvh::* )( ::btQuantizedBvh::btTraversalMode ) +// error:  - unsupported, void - ok++void btQuantizedBvh_setInternalNodeAabbMin(void *c,int p0,float* p1); //method: setInternalNodeAabbMin void ( ::btQuantizedBvh::* )( int,::btVector3 const & ) +int btQuantizedBvh_isQuantized(void *c); //method: isQuantized bool ( ::btQuantizedBvh::* )(  ) +unsigned int btQuantizedBvh_getAlignmentSerializationPadding(); //method: getAlignmentSerializationPadding unsigned int (*)(  )+unsigned int btQuantizedBvh_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize unsigned int ( ::btQuantizedBvh::* )(  ) const+int btQuantizedBvh_sortAndCalcSplittingIndex(void *c,int p0,int p1,int p2); //method: sortAndCalcSplittingIndex int ( ::btQuantizedBvh::* )( int,int,int ) +void btQuantizedBvh_reportAabbOverlappingNodex(void *c,void* p0,float* p1,float* p2); //method: reportAabbOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const & ) const+void btQuantizedBvh_swapLeafNodes(void *c,int p0,int p1); //method: swapLeafNodes void ( ::btQuantizedBvh::* )( int,int ) +void* btQuantizedBvh_getQuantizedNodeArray(void *c); //method: getQuantizedNodeArray ::QuantizedNodeArray & ( ::btQuantizedBvh::* )(  ) +void btQuantizedBvh_buildTree(void *c,int p0,int p1); //method: buildTree void ( ::btQuantizedBvh::* )( int,int ) +//not supported method: walkStacklessQuantizedTreeCacheFriendly void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,short unsigned int *,short unsigned int * ) const+// error: ::btNodeOverlapCallback * - ok,  - unsupported,  - unsupported, void - ok++void btQuantizedBvh_reportRayOverlappingNodex(void *c,void* p0,float* p1,float* p2); //method: reportRayOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const & ) const+void btQuantizedBvh_walkStacklessTree(void *c,void* p0,float* p1,float* p2); //method: walkStacklessTree void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const & ) const+void btQuantizedBvh_walkStacklessQuantizedTreeAgainstRay(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,int p5,int p6); //method: walkStacklessQuantizedTreeAgainstRay void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int ) const+void btQuantizedBvh_updateSubtreeHeaders(void *c,int p0,int p1); //method: updateSubtreeHeaders void ( ::btQuantizedBvh::* )( int,int ) +void* btQuantizedBvh_deSerializeInPlace(void* p0,unsigned int p1,int p2); //method: deSerializeInPlace ::btQuantizedBvh * (*)( void *,unsigned int,bool )+void btQuantizedBvh_mergeInternalNodeAabb(void *c,int p0,float* p1,float* p2); //method: mergeInternalNodeAabb void ( ::btQuantizedBvh::* )( int,::btVector3 const &,::btVector3 const & ) +//not supported method: quantizeWithClamp void ( ::btQuantizedBvh::* )( short unsigned int *,::btVector3 const &,int ) const+// error:  - unsupported, ::btVector3 const & - ok, int - ok, void - ok++void btQuantizedBvh_getAabbMin(void *c,int p0,float* ret); //method: getAabbMin ::btVector3 ( ::btQuantizedBvh::* )( int ) const+void btQuantizedBvh_walkStacklessTreeAgainstRay(void *c,void* p0,float* p1,float* p2,float* p3,float* p4,int p5,int p6); //method: walkStacklessTreeAgainstRay void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,int,int ) const+//not supported method: walkRecursiveQuantizedTreeAgainstQueryAabb void ( ::btQuantizedBvh::* )( ::btQuantizedBvhNode const *,::btNodeOverlapCallback *,short unsigned int *,short unsigned int * ) const+// error: ::btQuantizedBvhNode const * - ok, ::btNodeOverlapCallback * - ok,  - unsupported,  - unsupported, void - ok++void* btQuantizedBvh_getLeafNodeArray(void *c); //method: getLeafNodeArray ::QuantizedNodeArray & ( ::btQuantizedBvh::* )(  ) +int btQuantizedBvh_calculateSerializeBufferSizeNew(void *c); //method: calculateSerializeBufferSizeNew int ( ::btQuantizedBvh::* )(  ) const+void btQuantizedBvh_setInternalNodeEscapeIndex(void *c,int p0,int p1); //method: setInternalNodeEscapeIndex void ( ::btQuantizedBvh::* )( int,int ) +void btQuantizedBvh_getAabbMax(void *c,int p0,float* ret); //method: getAabbMax ::btVector3 ( ::btQuantizedBvh::* )( int ) const+//not supported method: quantize void ( ::btQuantizedBvh::* )( short unsigned int *,::btVector3 const &,int ) const+// error:  - unsupported, ::btVector3 const & - ok, int - ok, void - ok++void* btQuantizedBvh_getSubtreeInfoArray(void *c); //method: getSubtreeInfoArray ::BvhSubtreeInfoArray & ( ::btQuantizedBvh::* )(  ) +void btQuantizedBvh_setInternalNodeAabbMax(void *c,int p0,float* p1); //method: setInternalNodeAabbMax void ( ::btQuantizedBvh::* )( int,::btVector3 const & ) +//not supported method: unQuantize ::btVector3 ( ::btQuantizedBvh::* )( short unsigned int const * ) const+// error:  - unsupported, ::btVector3 - ok++void btQuantizedBvh_reportBoxCastOverlappingNodex(void *c,void* p0,float* p1,float* p2,float* p3,float* p4); //method: reportBoxCastOverlappingNodex void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) const+//not supported method: walkStacklessQuantizedTree void ( ::btQuantizedBvh::* )( ::btNodeOverlapCallback *,short unsigned int *,short unsigned int *,int,int ) const+// error: ::btNodeOverlapCallback * - ok,  - unsupported,  - unsupported, int - ok, int - ok, void - ok++void btQuantizedBvh_assignInternalNodeFromLeafNode(void *c,int p0,int p1); //method: assignInternalNodeFromLeafNode void ( ::btQuantizedBvh::* )( int,int ) +void btQuantizedBvh_m_SubtreeHeaders_set(void *c,void* a); //attribute: ::BvhSubtreeInfoArray btQuantizedBvh->m_SubtreeHeaders+void* btQuantizedBvh_m_SubtreeHeaders_get(void *c); //attribute: ::BvhSubtreeInfoArray btQuantizedBvh->m_SubtreeHeaders+void btQuantizedBvh_m_bulletVersion_set(void *c,int a); //attribute: int btQuantizedBvh->m_bulletVersion+int btQuantizedBvh_m_bulletVersion_get(void *c); //attribute: int btQuantizedBvh->m_bulletVersion+void btQuantizedBvh_m_bvhAabbMax_set(void *c,float* a); //attribute: ::btVector3 btQuantizedBvh->m_bvhAabbMax+void btQuantizedBvh_m_bvhAabbMax_get(void *c,float* a);+void btQuantizedBvh_m_bvhAabbMin_set(void *c,float* a); //attribute: ::btVector3 btQuantizedBvh->m_bvhAabbMin+void btQuantizedBvh_m_bvhAabbMin_get(void *c,float* a);+void btQuantizedBvh_m_bvhQuantization_set(void *c,float* a); //attribute: ::btVector3 btQuantizedBvh->m_bvhQuantization+void btQuantizedBvh_m_bvhQuantization_get(void *c,float* a);+void btQuantizedBvh_m_contiguousNodes_set(void *c,void* a); //attribute: ::NodeArray btQuantizedBvh->m_contiguousNodes+void* btQuantizedBvh_m_contiguousNodes_get(void *c); //attribute: ::NodeArray btQuantizedBvh->m_contiguousNodes+void btQuantizedBvh_m_curNodeIndex_set(void *c,int a); //attribute: int btQuantizedBvh->m_curNodeIndex+int btQuantizedBvh_m_curNodeIndex_get(void *c); //attribute: int btQuantizedBvh->m_curNodeIndex+void btQuantizedBvh_m_leafNodes_set(void *c,void* a); //attribute: ::NodeArray btQuantizedBvh->m_leafNodes+void* btQuantizedBvh_m_leafNodes_get(void *c); //attribute: ::NodeArray btQuantizedBvh->m_leafNodes+void btQuantizedBvh_m_quantizedContiguousNodes_set(void *c,void* a); //attribute: ::QuantizedNodeArray btQuantizedBvh->m_quantizedContiguousNodes+void* btQuantizedBvh_m_quantizedContiguousNodes_get(void *c); //attribute: ::QuantizedNodeArray btQuantizedBvh->m_quantizedContiguousNodes+void btQuantizedBvh_m_quantizedLeafNodes_set(void *c,void* a); //attribute: ::QuantizedNodeArray btQuantizedBvh->m_quantizedLeafNodes+void* btQuantizedBvh_m_quantizedLeafNodes_get(void *c); //attribute: ::QuantizedNodeArray btQuantizedBvh->m_quantizedLeafNodes+void btQuantizedBvh_m_subtreeHeaderCount_set(void *c,int a); //attribute: int btQuantizedBvh->m_subtreeHeaderCount+int btQuantizedBvh_m_subtreeHeaderCount_get(void *c); //attribute: int btQuantizedBvh->m_subtreeHeaderCount+// attribute not supported: //attribute: ::btQuantizedBvh::btTraversalMode btQuantizedBvh->m_traversalMode+void btQuantizedBvh_m_useQuantization_set(void *c,int a); //attribute: bool btQuantizedBvh->m_useQuantization+int btQuantizedBvh_m_useQuantization_get(void *c); //attribute: bool btQuantizedBvh->m_useQuantization+void* btQuantizedBvhDoubleData_new(); //constructor: btQuantizedBvhDoubleData  ( ::btQuantizedBvhDoubleData::* )(  ) +void btQuantizedBvhDoubleData_free(void *c); +void btQuantizedBvhDoubleData_m_bvhAabbMax_set(void *c,void* a); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMax+void* btQuantizedBvhDoubleData_m_bvhAabbMax_get(void *c); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMax+void btQuantizedBvhDoubleData_m_bvhAabbMin_set(void *c,void* a); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMin+void* btQuantizedBvhDoubleData_m_bvhAabbMin_get(void *c); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhAabbMin+void btQuantizedBvhDoubleData_m_bvhQuantization_set(void *c,void* a); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhQuantization+void* btQuantizedBvhDoubleData_m_bvhQuantization_get(void *c); //attribute: ::btVector3DoubleData btQuantizedBvhDoubleData->m_bvhQuantization+void btQuantizedBvhDoubleData_m_contiguousNodesPtr_set(void *c,void* a); //attribute: ::btOptimizedBvhNodeDoubleData * btQuantizedBvhDoubleData->m_contiguousNodesPtr+void* btQuantizedBvhDoubleData_m_contiguousNodesPtr_get(void *c); //attribute: ::btOptimizedBvhNodeDoubleData * btQuantizedBvhDoubleData->m_contiguousNodesPtr+void btQuantizedBvhDoubleData_m_curNodeIndex_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_curNodeIndex+int btQuantizedBvhDoubleData_m_curNodeIndex_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_curNodeIndex+void btQuantizedBvhDoubleData_m_numContiguousLeafNodes_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numContiguousLeafNodes+int btQuantizedBvhDoubleData_m_numContiguousLeafNodes_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numContiguousLeafNodes+void btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numQuantizedContiguousNodes+int btQuantizedBvhDoubleData_m_numQuantizedContiguousNodes_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numQuantizedContiguousNodes+void btQuantizedBvhDoubleData_m_numSubtreeHeaders_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_numSubtreeHeaders+int btQuantizedBvhDoubleData_m_numSubtreeHeaders_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_numSubtreeHeaders+void btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_set(void *c,void* a); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhDoubleData->m_quantizedContiguousNodesPtr+void* btQuantizedBvhDoubleData_m_quantizedContiguousNodesPtr_get(void *c); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhDoubleData->m_quantizedContiguousNodesPtr+void btQuantizedBvhDoubleData_m_subTreeInfoPtr_set(void *c,void* a); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhDoubleData->m_subTreeInfoPtr+void* btQuantizedBvhDoubleData_m_subTreeInfoPtr_get(void *c); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhDoubleData->m_subTreeInfoPtr+void btQuantizedBvhDoubleData_m_traversalMode_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_traversalMode+int btQuantizedBvhDoubleData_m_traversalMode_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_traversalMode+void btQuantizedBvhDoubleData_m_useQuantization_set(void *c,int a); //attribute: int btQuantizedBvhDoubleData->m_useQuantization+int btQuantizedBvhDoubleData_m_useQuantization_get(void *c); //attribute: int btQuantizedBvhDoubleData->m_useQuantization+void* btQuantizedBvhFloatData_new(); //constructor: btQuantizedBvhFloatData  ( ::btQuantizedBvhFloatData::* )(  ) +void btQuantizedBvhFloatData_free(void *c); +void btQuantizedBvhFloatData_m_bvhAabbMax_set(void *c,void* a); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMax+void* btQuantizedBvhFloatData_m_bvhAabbMax_get(void *c); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMax+void btQuantizedBvhFloatData_m_bvhAabbMin_set(void *c,void* a); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMin+void* btQuantizedBvhFloatData_m_bvhAabbMin_get(void *c); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhAabbMin+void btQuantizedBvhFloatData_m_bvhQuantization_set(void *c,void* a); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhQuantization+void* btQuantizedBvhFloatData_m_bvhQuantization_get(void *c); //attribute: ::btVector3FloatData btQuantizedBvhFloatData->m_bvhQuantization+void btQuantizedBvhFloatData_m_contiguousNodesPtr_set(void *c,void* a); //attribute: ::btOptimizedBvhNodeFloatData * btQuantizedBvhFloatData->m_contiguousNodesPtr+void* btQuantizedBvhFloatData_m_contiguousNodesPtr_get(void *c); //attribute: ::btOptimizedBvhNodeFloatData * btQuantizedBvhFloatData->m_contiguousNodesPtr+void btQuantizedBvhFloatData_m_curNodeIndex_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_curNodeIndex+int btQuantizedBvhFloatData_m_curNodeIndex_get(void *c); //attribute: int btQuantizedBvhFloatData->m_curNodeIndex+void btQuantizedBvhFloatData_m_numContiguousLeafNodes_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numContiguousLeafNodes+int btQuantizedBvhFloatData_m_numContiguousLeafNodes_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numContiguousLeafNodes+void btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numQuantizedContiguousNodes+int btQuantizedBvhFloatData_m_numQuantizedContiguousNodes_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numQuantizedContiguousNodes+void btQuantizedBvhFloatData_m_numSubtreeHeaders_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_numSubtreeHeaders+int btQuantizedBvhFloatData_m_numSubtreeHeaders_get(void *c); //attribute: int btQuantizedBvhFloatData->m_numSubtreeHeaders+void btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_set(void *c,void* a); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhFloatData->m_quantizedContiguousNodesPtr+void* btQuantizedBvhFloatData_m_quantizedContiguousNodesPtr_get(void *c); //attribute: ::btQuantizedBvhNodeData * btQuantizedBvhFloatData->m_quantizedContiguousNodesPtr+void btQuantizedBvhFloatData_m_subTreeInfoPtr_set(void *c,void* a); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhFloatData->m_subTreeInfoPtr+void* btQuantizedBvhFloatData_m_subTreeInfoPtr_get(void *c); //attribute: ::btBvhSubtreeInfoData * btQuantizedBvhFloatData->m_subTreeInfoPtr+void btQuantizedBvhFloatData_m_traversalMode_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_traversalMode+int btQuantizedBvhFloatData_m_traversalMode_get(void *c); //attribute: int btQuantizedBvhFloatData->m_traversalMode+void btQuantizedBvhFloatData_m_useQuantization_set(void *c,int a); //attribute: int btQuantizedBvhFloatData->m_useQuantization+int btQuantizedBvhFloatData_m_useQuantization_get(void *c); //attribute: int btQuantizedBvhFloatData->m_useQuantization+void* btQuantizedBvhNode_new(); //constructor: btQuantizedBvhNode  ( ::btQuantizedBvhNode::* )(  ) +void btQuantizedBvhNode_free(void *c); +int btQuantizedBvhNode_getEscapeIndex(void *c); //method: getEscapeIndex int ( ::btQuantizedBvhNode::* )(  ) const+int btQuantizedBvhNode_getTriangleIndex(void *c); //method: getTriangleIndex int ( ::btQuantizedBvhNode::* )(  ) const+int btQuantizedBvhNode_getPartId(void *c); //method: getPartId int ( ::btQuantizedBvhNode::* )(  ) const+int btQuantizedBvhNode_isLeafNode(void *c); //method: isLeafNode bool ( ::btQuantizedBvhNode::* )(  ) const+void btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_set(void *c,int a); //attribute: int btQuantizedBvhNode->m_escapeIndexOrTriangleIndex+int btQuantizedBvhNode_m_escapeIndexOrTriangleIndex_get(void *c); //attribute: int btQuantizedBvhNode->m_escapeIndexOrTriangleIndex+// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNode->m_quantizedAabbMax+// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNode->m_quantizedAabbMin+void* btQuantizedBvhNodeData_new(); //constructor: btQuantizedBvhNodeData  ( ::btQuantizedBvhNodeData::* )(  ) +void btQuantizedBvhNodeData_free(void *c); +void btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_set(void *c,int a); //attribute: int btQuantizedBvhNodeData->m_escapeIndexOrTriangleIndex+int btQuantizedBvhNodeData_m_escapeIndexOrTriangleIndex_get(void *c); //attribute: int btQuantizedBvhNodeData->m_escapeIndexOrTriangleIndex+// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNodeData->m_quantizedAabbMax+// attribute not supported: //attribute: short unsigned int[3] btQuantizedBvhNodeData->m_quantizedAabbMin+void* btSimpleBroadphase_new(int p0,void* p1); //constructor: btSimpleBroadphase  ( ::btSimpleBroadphase::* )( int,::btOverlappingPairCache * ) +void btSimpleBroadphase_free(void *c); +void* btSimpleBroadphase_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btSimpleBroadphase::* )(  ) +void* btSimpleBroadphase_getOverlappingPairCache0(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache * ( ::btSimpleBroadphase::* )(  ) +void* btSimpleBroadphase_getOverlappingPairCache1(void *c); //method: getOverlappingPairCache ::btOverlappingPairCache const * ( ::btSimpleBroadphase::* )(  ) const+void btSimpleBroadphase_rayTest(void *c,float* p0,float* p1,void* p2,float* p3,float* p4); //method: rayTest void ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseRayCallback &,::btVector3 const &,::btVector3 const & ) +void btSimpleBroadphase_setAabb(void *c,void* p0,float* p1,float* p2,void* p3); //method: setAabb void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btVector3 const &,::btVector3 const &,::btDispatcher * ) +int btSimpleBroadphase_allocHandle(void *c); //method: allocHandle int ( ::btSimpleBroadphase::* )(  ) +void btSimpleBroadphase_resetPool(void *c,void* p0); //method: resetPool void ( ::btSimpleBroadphase::* )( ::btDispatcher * ) +int btSimpleBroadphase_testAabbOverlap(void *c,void* p0,void* p1); //method: testAabbOverlap bool ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btSimpleBroadphase_calculateOverlappingPairs(void *c,void* p0); //method: calculateOverlappingPairs void ( ::btSimpleBroadphase::* )( ::btDispatcher * ) +void btSimpleBroadphase_freeHandle(void *c,void* p0); //method: freeHandle void ( ::btSimpleBroadphase::* )( ::btSimpleBroadphaseProxy * ) +void btSimpleBroadphase_printStats(void *c); //method: printStats void ( ::btSimpleBroadphase::* )(  ) +void btSimpleBroadphase_getAabb(void *c,void* p0,float* p1,float* p2); //method: getAabb void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btVector3 &,::btVector3 & ) const+void btSimpleBroadphase_aabbTest(void *c,float* p0,float* p1,void* p2); //method: aabbTest void ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,::btBroadphaseAabbCallback & ) +void* btSimpleBroadphase_createProxy(void *c,float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6,void* p7); //method: createProxy ::btBroadphaseProxy * ( ::btSimpleBroadphase::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,::btDispatcher *,void * ) +void* btSimpleBroadphase_getSimpleProxyFromProxy(void *c,void* p0); //method: getSimpleProxyFromProxy ::btSimpleBroadphaseProxy * ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy * ) +void* btSimpleBroadphase_getSimpleProxyFromProxy0(void *c,void* p0); //method: getSimpleProxyFromProxy ::btSimpleBroadphaseProxy * ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy * ) +void* btSimpleBroadphase_getSimpleProxyFromProxy1(void *c,void* p0); //method: getSimpleProxyFromProxy ::btSimpleBroadphaseProxy const * ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy * ) const+void btSimpleBroadphase_validate(void *c); //method: validate void ( ::btSimpleBroadphase::* )(  ) +int btSimpleBroadphase_aabbOverlap(void* p0,void* p1); //method: aabbOverlap bool (*)( ::btSimpleBroadphaseProxy *,::btSimpleBroadphaseProxy * )+void btSimpleBroadphase_getBroadphaseAabb(void *c,float* p0,float* p1); //method: getBroadphaseAabb void ( ::btSimpleBroadphase::* )( ::btVector3 &,::btVector3 & ) const+void btSimpleBroadphase_destroyProxy(void *c,void* p0,void* p1); //method: destroyProxy void ( ::btSimpleBroadphase::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btSimpleBroadphase_m_LastHandleIndex_set(void *c,int a); //attribute: int btSimpleBroadphase->m_LastHandleIndex+int btSimpleBroadphase_m_LastHandleIndex_get(void *c); //attribute: int btSimpleBroadphase->m_LastHandleIndex+void btSimpleBroadphase_m_firstFreeHandle_set(void *c,int a); //attribute: int btSimpleBroadphase->m_firstFreeHandle+int btSimpleBroadphase_m_firstFreeHandle_get(void *c); //attribute: int btSimpleBroadphase->m_firstFreeHandle+void btSimpleBroadphase_m_invalidPair_set(void *c,int a); //attribute: int btSimpleBroadphase->m_invalidPair+int btSimpleBroadphase_m_invalidPair_get(void *c); //attribute: int btSimpleBroadphase->m_invalidPair+void btSimpleBroadphase_m_maxHandles_set(void *c,int a); //attribute: int btSimpleBroadphase->m_maxHandles+int btSimpleBroadphase_m_maxHandles_get(void *c); //attribute: int btSimpleBroadphase->m_maxHandles+void btSimpleBroadphase_m_numHandles_set(void *c,int a); //attribute: int btSimpleBroadphase->m_numHandles+int btSimpleBroadphase_m_numHandles_get(void *c); //attribute: int btSimpleBroadphase->m_numHandles+void btSimpleBroadphase_m_ownsPairCache_set(void *c,int a); //attribute: bool btSimpleBroadphase->m_ownsPairCache+int btSimpleBroadphase_m_ownsPairCache_get(void *c); //attribute: bool btSimpleBroadphase->m_ownsPairCache+void btSimpleBroadphase_m_pHandles_set(void *c,void* a); //attribute: ::btSimpleBroadphaseProxy * btSimpleBroadphase->m_pHandles+void* btSimpleBroadphase_m_pHandles_get(void *c); //attribute: ::btSimpleBroadphaseProxy * btSimpleBroadphase->m_pHandles+void btSimpleBroadphase_m_pHandlesRawPtr_set(void *c,void* a); //attribute: void * btSimpleBroadphase->m_pHandlesRawPtr+void* btSimpleBroadphase_m_pHandlesRawPtr_get(void *c); //attribute: void * btSimpleBroadphase->m_pHandlesRawPtr+void btSimpleBroadphase_m_pairCache_set(void *c,void* a); //attribute: ::btOverlappingPairCache * btSimpleBroadphase->m_pairCache+void* btSimpleBroadphase_m_pairCache_get(void *c); //attribute: ::btOverlappingPairCache * btSimpleBroadphase->m_pairCache+void* btSimpleBroadphaseProxy_new0(); //constructor: btSimpleBroadphaseProxy  ( ::btSimpleBroadphaseProxy::* )(  ) +void* btSimpleBroadphaseProxy_new1(float* p0,float* p1,int p2,void* p3,short int p4,short int p5,void* p6); //constructor: btSimpleBroadphaseProxy  ( ::btSimpleBroadphaseProxy::* )( ::btVector3 const &,::btVector3 const &,int,void *,short int,short int,void * ) +void btSimpleBroadphaseProxy_free(void *c); +int btSimpleBroadphaseProxy_GetNextFree(void *c); //method: GetNextFree int ( ::btSimpleBroadphaseProxy::* )(  ) const+void btSimpleBroadphaseProxy_SetNextFree(void *c,int p0); //method: SetNextFree void ( ::btSimpleBroadphaseProxy::* )( int ) +void btSimpleBroadphaseProxy_m_nextFree_set(void *c,int a); //attribute: int btSimpleBroadphaseProxy->m_nextFree+int btSimpleBroadphaseProxy_m_nextFree_get(void *c); //attribute: int btSimpleBroadphaseProxy->m_nextFree+void* btSortedOverlappingPairCache_new(); //constructor: btSortedOverlappingPairCache  ( ::btSortedOverlappingPairCache::* )(  ) +void btSortedOverlappingPairCache_free(void *c); +void btSortedOverlappingPairCache_sortOverlappingPairs(void *c,void* p0); //method: sortOverlappingPairs void ( ::btSortedOverlappingPairCache::* )( ::btDispatcher * ) +void btSortedOverlappingPairCache_setInternalGhostPairCallback(void *c,void* p0); //method: setInternalGhostPairCallback void ( ::btSortedOverlappingPairCache::* )( ::btOverlappingPairCallback * ) +void* btSortedOverlappingPairCache_getOverlapFilterCallback(void *c); //method: getOverlapFilterCallback ::btOverlapFilterCallback * ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btSortedOverlappingPairCache_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +int btSortedOverlappingPairCache_needsBroadphaseCollision(void *c,void* p0,void* p1); //method: needsBroadphaseCollision bool ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) const+int btSortedOverlappingPairCache_hasDeferredRemoval(void *c); //method: hasDeferredRemoval bool ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_getOverlappingPairArray(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_getOverlappingPairArray0(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray & ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_getOverlappingPairArray1(void *c); //method: getOverlappingPairArray ::btBroadphasePairArray const & ( ::btSortedOverlappingPairCache::* )(  ) const+void* btSortedOverlappingPairCache_findPair(void *c,void* p0,void* p1); //method: findPair ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btSortedOverlappingPairCache_cleanProxyFromPairs(void *c,void* p0,void* p1); //method: cleanProxyFromPairs void ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void btSortedOverlappingPairCache_cleanOverlappingPair(void *c,void* p0,void* p1); //method: cleanOverlappingPair void ( ::btSortedOverlappingPairCache::* )( ::btBroadphasePair &,::btDispatcher * ) +int btSortedOverlappingPairCache_getNumOverlappingPairs(void *c); //method: getNumOverlappingPairs int ( ::btSortedOverlappingPairCache::* )(  ) const+void* btSortedOverlappingPairCache_removeOverlappingPair(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingPair void * ( ::btSortedOverlappingPairCache::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) +void btSortedOverlappingPairCache_processAllOverlappingPairs(void *c,void* p0,void* p1); //method: processAllOverlappingPairs void ( ::btSortedOverlappingPairCache::* )( ::btOverlapCallback *,::btDispatcher * ) +void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr0(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair * ( ::btSortedOverlappingPairCache::* )(  ) +void* btSortedOverlappingPairCache_getOverlappingPairArrayPtr1(void *c); //method: getOverlappingPairArrayPtr ::btBroadphasePair const * ( ::btSortedOverlappingPairCache::* )(  ) const+void btSortedOverlappingPairCache_setOverlapFilterCallback(void *c,void* p0); //method: setOverlapFilterCallback void ( ::btSortedOverlappingPairCache::* )( ::btOverlapFilterCallback * ) +void btSortedOverlappingPairCache_m_overlappingPairArray_set(void *c,void* a); //attribute: ::btBroadphasePairArray btSortedOverlappingPairCache->m_overlappingPairArray+void* btSortedOverlappingPairCache_m_overlappingPairArray_get(void *c); //attribute: ::btBroadphasePairArray btSortedOverlappingPairCache->m_overlappingPairArray+void btSortedOverlappingPairCache_m_blockedForChanges_set(void *c,int a); //attribute: bool btSortedOverlappingPairCache->m_blockedForChanges+int btSortedOverlappingPairCache_m_blockedForChanges_get(void *c); //attribute: bool btSortedOverlappingPairCache->m_blockedForChanges+void btSortedOverlappingPairCache_m_hasDeferredRemoval_set(void *c,int a); //attribute: bool btSortedOverlappingPairCache->m_hasDeferredRemoval+int btSortedOverlappingPairCache_m_hasDeferredRemoval_get(void *c); //attribute: bool btSortedOverlappingPairCache->m_hasDeferredRemoval+void btSortedOverlappingPairCache_m_overlapFilterCallback_set(void *c,void* a); //attribute: ::btOverlapFilterCallback * btSortedOverlappingPairCache->m_overlapFilterCallback+void* btSortedOverlappingPairCache_m_overlapFilterCallback_get(void *c); //attribute: ::btOverlapFilterCallback * btSortedOverlappingPairCache->m_overlapFilterCallback+void btSortedOverlappingPairCache_m_ghostPairCallback_set(void *c,void* a); //attribute: ::btOverlappingPairCallback * btSortedOverlappingPairCache->m_ghostPairCallback+void* btSortedOverlappingPairCache_m_ghostPairCallback_get(void *c); //attribute: ::btOverlappingPairCallback * btSortedOverlappingPairCache->m_ghostPairCallback+void* btDbvt_sStkCLN_new(void* p0,void* p1); //constructor: sStkCLN  ( ::btDbvt::sStkCLN::* )( ::btDbvtNode const *,::btDbvtNode * ) +void btDbvt_sStkCLN_free(void *c); +void btDbvt_sStkCLN_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkCLN->node+void* btDbvt_sStkCLN_node_get(void *c); //attribute: ::btDbvtNode const * btDbvt_sStkCLN->node+void btDbvt_sStkCLN_parent_set(void *c,void* a); //attribute: ::btDbvtNode * btDbvt_sStkCLN->parent+void* btDbvt_sStkCLN_parent_get(void *c); //attribute: ::btDbvtNode * btDbvt_sStkCLN->parent+void* btDbvt_sStkNN_new0(); //constructor: sStkNN  ( ::btDbvt::sStkNN::* )(  ) +void* btDbvt_sStkNN_new1(void* p0,void* p1); //constructor: sStkNN  ( ::btDbvt::sStkNN::* )( ::btDbvtNode const *,::btDbvtNode const * ) +void btDbvt_sStkNN_free(void *c); +void btDbvt_sStkNN_a_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNN->a+void* btDbvt_sStkNN_a_get(void *c); //attribute: ::btDbvtNode const * btDbvt_sStkNN->a+void btDbvt_sStkNN_b_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNN->b+void* btDbvt_sStkNN_b_get(void *c); //attribute: ::btDbvtNode const * btDbvt_sStkNN->b+void* btDbvt_sStkNP_new(void* p0,unsigned int p1); //constructor: sStkNP  ( ::btDbvt::sStkNP::* )( ::btDbvtNode const *,unsigned int ) +void btDbvt_sStkNP_free(void *c); +void btDbvt_sStkNP_mask_set(void *c,int a); //attribute: int btDbvt_sStkNP->mask+int btDbvt_sStkNP_mask_get(void *c); //attribute: int btDbvt_sStkNP->mask+void btDbvt_sStkNP_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNP->node+void* btDbvt_sStkNP_node_get(void *c); //attribute: ::btDbvtNode const * btDbvt_sStkNP->node+void* btDbvt_sStkNPS_new0(); //constructor: sStkNPS  ( ::btDbvt::sStkNPS::* )(  ) +void* btDbvt_sStkNPS_new1(void* p0,unsigned int p1,float p2); //constructor: sStkNPS  ( ::btDbvt::sStkNPS::* )( ::btDbvtNode const *,unsigned int,::btScalar ) +void btDbvt_sStkNPS_free(void *c); +void btDbvt_sStkNPS_mask_set(void *c,int a); //attribute: int btDbvt_sStkNPS->mask+int btDbvt_sStkNPS_mask_get(void *c); //attribute: int btDbvt_sStkNPS->mask+void btDbvt_sStkNPS_node_set(void *c,void* a); //attribute: ::btDbvtNode const * btDbvt_sStkNPS->node+void* btDbvt_sStkNPS_node_get(void *c); //attribute: ::btDbvtNode const * btDbvt_sStkNPS->node+void btDbvt_sStkNPS_value_set(void *c,float a); //attribute: ::btScalar btDbvt_sStkNPS->value+float btDbvt_sStkNPS_value_get(void *c); //attribute: ::btScalar btDbvt_sStkNPS->value+void* btDiscreteCollisionDetectorInterface_ClosestPointInput_new(); //constructor: ClosestPointInput  ( ::btDiscreteCollisionDetectorInterface::ClosestPointInput::* )(  ) +void btDiscreteCollisionDetectorInterface_ClosestPointInput_free(void *c); +void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformA_set(void *c,float* a); //attribute: ::btTransform btDiscreteCollisionDetectorInterface_ClosestPointInput->m_transformA+void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformA_get(void *c,float* a);+void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformB_set(void *c,float* a); //attribute: ::btTransform btDiscreteCollisionDetectorInterface_ClosestPointInput->m_transformB+void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_transformB_get(void *c,float* a);+void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_maximumDistanceSquared_set(void *c,float a); //attribute: ::btScalar btDiscreteCollisionDetectorInterface_ClosestPointInput->m_maximumDistanceSquared+float btDiscreteCollisionDetectorInterface_ClosestPointInput_m_maximumDistanceSquared_get(void *c); //attribute: ::btScalar btDiscreteCollisionDetectorInterface_ClosestPointInput->m_maximumDistanceSquared+void btDiscreteCollisionDetectorInterface_ClosestPointInput_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btDiscreteCollisionDetectorInterface_ClosestPointInput->m_stackAlloc+void* btDiscreteCollisionDetectorInterface_ClosestPointInput_m_stackAlloc_get(void *c); //attribute: ::btStackAlloc * btDiscreteCollisionDetectorInterface_ClosestPointInput->m_stackAlloc+void btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersB(void *c,int p0,int p1); //method: setShapeIdentifiersB void ( ::btDiscreteCollisionDetectorInterface::Result::* )( int,int ) +void btDiscreteCollisionDetectorInterface_Result_setShapeIdentifiersA(void *c,int p0,int p1); //method: setShapeIdentifiersA void ( ::btDiscreteCollisionDetectorInterface::Result::* )( int,int ) +void btDiscreteCollisionDetectorInterface_Result_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btDiscreteCollisionDetectorInterface::Result::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void* btConstraintRow_new(); //constructor: btConstraintRow  ( ::btConstraintRow::* )(  ) +void btConstraintRow_free(void *c); +// attribute not supported: //attribute: ::btScalar[3] btConstraintRow->m_normal+void btConstraintRow_m_rhs_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_rhs+float btConstraintRow_m_rhs_get(void *c); //attribute: ::btScalar btConstraintRow->m_rhs+void btConstraintRow_m_jacDiagInv_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_jacDiagInv+float btConstraintRow_m_jacDiagInv_get(void *c); //attribute: ::btScalar btConstraintRow->m_jacDiagInv+void btConstraintRow_m_lowerLimit_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_lowerLimit+float btConstraintRow_m_lowerLimit_get(void *c); //attribute: ::btScalar btConstraintRow->m_lowerLimit+void btConstraintRow_m_upperLimit_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_upperLimit+float btConstraintRow_m_upperLimit_get(void *c); //attribute: ::btScalar btConstraintRow->m_upperLimit+void btConstraintRow_m_accumImpulse_set(void *c,float a); //attribute: ::btScalar btConstraintRow->m_accumImpulse+float btConstraintRow_m_accumImpulse_get(void *c); //attribute: ::btScalar btConstraintRow->m_accumImpulse+void btDiscreteCollisionDetectorInterface_getClosestPoints(void *c,void* p0,void* p1,void* p2,int p3); //method: getClosestPoints void ( ::btDiscreteCollisionDetectorInterface::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw *,bool ) +void* btGjkEpaSolver2_new(); //constructor: btGjkEpaSolver2  ( ::btGjkEpaSolver2::* )(  ) +void btGjkEpaSolver2_free(void *c); +int btGjkEpaSolver2_StackSizeRequirement(); //method: StackSizeRequirement int (*)(  )+int btGjkEpaSolver2_Distance(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5); //method: Distance bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults & )+int btGjkEpaSolver2_Penetration(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5,int p6); //method: Penetration bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults &,bool )+float btGjkEpaSolver2_SignedDistance(float* p0,float p1,void* p2,float* p3,void* p4); //method: SignedDistance ::btScalar (*)( ::btVector3 const &,::btScalar,::btConvexShape const *,::btTransform const &,::btGjkEpaSolver2::sResults & )+float btGjkEpaSolver2_SignedDistance0(float* p0,float p1,void* p2,float* p3,void* p4); //method: SignedDistance ::btScalar (*)( ::btVector3 const &,::btScalar,::btConvexShape const *,::btTransform const &,::btGjkEpaSolver2::sResults & )+int btGjkEpaSolver2_SignedDistance1(void* p0,float* p1,void* p2,float* p3,float* p4,void* p5); //method: SignedDistance bool (*)( ::btConvexShape const *,::btTransform const &,::btConvexShape const *,::btTransform const &,::btVector3 const &,::btGjkEpaSolver2::sResults & )+//not supported constructor: btGjkPairDetector  ( ::btGjkPairDetector::* )( ::btConvexShape const *,::btConvexShape const *,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) +// error: ::btConvexShape const * - ok, ::btConvexShape const * - ok, ::btVoronoiSimplexSolver * - ok,  - unsupported++//not supported constructor: btGjkPairDetector  ( ::btGjkPairDetector::* )( ::btConvexShape const *,::btConvexShape const *,int,int,::btScalar,::btScalar,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) +// error: ::btConvexShape const * - ok, ::btConvexShape const * - ok, int - ok, int - ok, ::btScalar - ok, ::btScalar - ok, ::btVoronoiSimplexSolver * - ok,  - unsupported++void btGjkPairDetector_free(void *c); +void btGjkPairDetector_setCachedSeperatingAxis(void *c,float* p0); //method: setCachedSeperatingAxis void ( ::btGjkPairDetector::* )( ::btVector3 const & ) +void btGjkPairDetector_getCachedSeparatingAxis(void *c,float* ret); //method: getCachedSeparatingAxis ::btVector3 const & ( ::btGjkPairDetector::* )(  ) const+//not supported method: setPenetrationDepthSolver void ( ::btGjkPairDetector::* )( ::btConvexPenetrationDepthSolver * ) +// error:  - unsupported, void - ok++void btGjkPairDetector_getClosestPoints(void *c,void* p0,void* p1,void* p2,int p3); //method: getClosestPoints void ( ::btGjkPairDetector::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw *,bool ) +void btGjkPairDetector_setMinkowskiA(void *c,void* p0); //method: setMinkowskiA void ( ::btGjkPairDetector::* )( ::btConvexShape * ) +void btGjkPairDetector_setMinkowskiB(void *c,void* p0); //method: setMinkowskiB void ( ::btGjkPairDetector::* )( ::btConvexShape * ) +void btGjkPairDetector_setIgnoreMargin(void *c,int p0); //method: setIgnoreMargin void ( ::btGjkPairDetector::* )( bool ) +void btGjkPairDetector_getClosestPointsNonVirtual(void *c,void* p0,void* p1,void* p2); //method: getClosestPointsNonVirtual void ( ::btGjkPairDetector::* )( ::btDiscreteCollisionDetectorInterface::ClosestPointInput const &,::btDiscreteCollisionDetectorInterface::Result &,::btIDebugDraw * ) +float btGjkPairDetector_getCachedSeparatingDistance(void *c); //method: getCachedSeparatingDistance ::btScalar ( ::btGjkPairDetector::* )(  ) const+void btGjkPairDetector_m_cachedSeparatingAxis_set(void *c,float* a); //attribute: ::btVector3 btGjkPairDetector->m_cachedSeparatingAxis+void btGjkPairDetector_m_cachedSeparatingAxis_get(void *c,float* a);+// attribute not supported: //attribute: ::btConvexPenetrationDepthSolver * btGjkPairDetector->m_penetrationDepthSolver+void btGjkPairDetector_m_simplexSolver_set(void *c,void* a); //attribute: ::btVoronoiSimplexSolver * btGjkPairDetector->m_simplexSolver+void* btGjkPairDetector_m_simplexSolver_get(void *c); //attribute: ::btVoronoiSimplexSolver * btGjkPairDetector->m_simplexSolver+void btGjkPairDetector_m_minkowskiA_set(void *c,void* a); //attribute: ::btConvexShape const * btGjkPairDetector->m_minkowskiA+void* btGjkPairDetector_m_minkowskiA_get(void *c); //attribute: ::btConvexShape const * btGjkPairDetector->m_minkowskiA+void btGjkPairDetector_m_minkowskiB_set(void *c,void* a); //attribute: ::btConvexShape const * btGjkPairDetector->m_minkowskiB+void* btGjkPairDetector_m_minkowskiB_get(void *c); //attribute: ::btConvexShape const * btGjkPairDetector->m_minkowskiB+void btGjkPairDetector_m_shapeTypeA_set(void *c,int a); //attribute: int btGjkPairDetector->m_shapeTypeA+int btGjkPairDetector_m_shapeTypeA_get(void *c); //attribute: int btGjkPairDetector->m_shapeTypeA+void btGjkPairDetector_m_shapeTypeB_set(void *c,int a); //attribute: int btGjkPairDetector->m_shapeTypeB+int btGjkPairDetector_m_shapeTypeB_get(void *c); //attribute: int btGjkPairDetector->m_shapeTypeB+void btGjkPairDetector_m_marginA_set(void *c,float a); //attribute: ::btScalar btGjkPairDetector->m_marginA+float btGjkPairDetector_m_marginA_get(void *c); //attribute: ::btScalar btGjkPairDetector->m_marginA+void btGjkPairDetector_m_marginB_set(void *c,float a); //attribute: ::btScalar btGjkPairDetector->m_marginB+float btGjkPairDetector_m_marginB_get(void *c); //attribute: ::btScalar btGjkPairDetector->m_marginB+void btGjkPairDetector_m_ignoreMargin_set(void *c,int a); //attribute: bool btGjkPairDetector->m_ignoreMargin+int btGjkPairDetector_m_ignoreMargin_get(void *c); //attribute: bool btGjkPairDetector->m_ignoreMargin+void btGjkPairDetector_m_cachedSeparatingDistance_set(void *c,float a); //attribute: ::btScalar btGjkPairDetector->m_cachedSeparatingDistance+float btGjkPairDetector_m_cachedSeparatingDistance_get(void *c); //attribute: ::btScalar btGjkPairDetector->m_cachedSeparatingDistance+void btGjkPairDetector_m_lastUsedMethod_set(void *c,int a); //attribute: int btGjkPairDetector->m_lastUsedMethod+int btGjkPairDetector_m_lastUsedMethod_get(void *c); //attribute: int btGjkPairDetector->m_lastUsedMethod+void btGjkPairDetector_m_curIter_set(void *c,int a); //attribute: int btGjkPairDetector->m_curIter+int btGjkPairDetector_m_curIter_get(void *c); //attribute: int btGjkPairDetector->m_curIter+void btGjkPairDetector_m_degenerateSimplex_set(void *c,int a); //attribute: int btGjkPairDetector->m_degenerateSimplex+int btGjkPairDetector_m_degenerateSimplex_get(void *c); //attribute: int btGjkPairDetector->m_degenerateSimplex+void btGjkPairDetector_m_catchDegeneracies_set(void *c,int a); //attribute: int btGjkPairDetector->m_catchDegeneracies+int btGjkPairDetector_m_catchDegeneracies_get(void *c); //attribute: int btGjkPairDetector->m_catchDegeneracies+void* btManifoldPoint_new0(); //constructor: btManifoldPoint  ( ::btManifoldPoint::* )(  ) +void* btManifoldPoint_new1(float* p0,float* p1,float* p2,float p3); //constructor: btManifoldPoint  ( ::btManifoldPoint::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btScalar ) +void btManifoldPoint_free(void *c); +void btManifoldPoint_setDistance(void *c,float p0); //method: setDistance void ( ::btManifoldPoint::* )( ::btScalar ) +int btManifoldPoint_getLifeTime(void *c); //method: getLifeTime int ( ::btManifoldPoint::* )(  ) const+float btManifoldPoint_getDistance(void *c); //method: getDistance ::btScalar ( ::btManifoldPoint::* )(  ) const+void btManifoldPoint_getPositionWorldOnB(void *c,float* ret); //method: getPositionWorldOnB ::btVector3 const & ( ::btManifoldPoint::* )(  ) const+float btManifoldPoint_getAppliedImpulse(void *c); //method: getAppliedImpulse ::btScalar ( ::btManifoldPoint::* )(  ) const+void btManifoldPoint_getPositionWorldOnA(void *c,float* ret); //method: getPositionWorldOnA ::btVector3 const & ( ::btManifoldPoint::* )(  ) const+// attribute not supported: //attribute: ::btConstraintRow[3] btManifoldPoint->mConstraintRow+void btManifoldPoint_m_appliedImpulse_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulse+float btManifoldPoint_m_appliedImpulse_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulse+void btManifoldPoint_m_appliedImpulseLateral1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral1+float btManifoldPoint_m_appliedImpulseLateral1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral1+void btManifoldPoint_m_appliedImpulseLateral2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral2+float btManifoldPoint_m_appliedImpulseLateral2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_appliedImpulseLateral2+void btManifoldPoint_m_combinedFriction_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_combinedFriction+float btManifoldPoint_m_combinedFriction_get(void *c); //attribute: ::btScalar btManifoldPoint->m_combinedFriction+void btManifoldPoint_m_combinedRestitution_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_combinedRestitution+float btManifoldPoint_m_combinedRestitution_get(void *c); //attribute: ::btScalar btManifoldPoint->m_combinedRestitution+void btManifoldPoint_m_contactCFM1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactCFM1+float btManifoldPoint_m_contactCFM1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactCFM1+void btManifoldPoint_m_contactCFM2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactCFM2+float btManifoldPoint_m_contactCFM2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactCFM2+void btManifoldPoint_m_contactMotion1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactMotion1+float btManifoldPoint_m_contactMotion1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactMotion1+void btManifoldPoint_m_contactMotion2_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_contactMotion2+float btManifoldPoint_m_contactMotion2_get(void *c); //attribute: ::btScalar btManifoldPoint->m_contactMotion2+void btManifoldPoint_m_distance1_set(void *c,float a); //attribute: ::btScalar btManifoldPoint->m_distance1+float btManifoldPoint_m_distance1_get(void *c); //attribute: ::btScalar btManifoldPoint->m_distance1+void btManifoldPoint_m_index0_set(void *c,int a); //attribute: int btManifoldPoint->m_index0+int btManifoldPoint_m_index0_get(void *c); //attribute: int btManifoldPoint->m_index0+void btManifoldPoint_m_index1_set(void *c,int a); //attribute: int btManifoldPoint->m_index1+int btManifoldPoint_m_index1_get(void *c); //attribute: int btManifoldPoint->m_index1+void btManifoldPoint_m_lateralFrictionDir1_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_lateralFrictionDir1+void btManifoldPoint_m_lateralFrictionDir1_get(void *c,float* a);+void btManifoldPoint_m_lateralFrictionDir2_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_lateralFrictionDir2+void btManifoldPoint_m_lateralFrictionDir2_get(void *c,float* a);+void btManifoldPoint_m_lateralFrictionInitialized_set(void *c,int a); //attribute: bool btManifoldPoint->m_lateralFrictionInitialized+int btManifoldPoint_m_lateralFrictionInitialized_get(void *c); //attribute: bool btManifoldPoint->m_lateralFrictionInitialized+void btManifoldPoint_m_lifeTime_set(void *c,int a); //attribute: int btManifoldPoint->m_lifeTime+int btManifoldPoint_m_lifeTime_get(void *c); //attribute: int btManifoldPoint->m_lifeTime+void btManifoldPoint_m_localPointA_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_localPointA+void btManifoldPoint_m_localPointA_get(void *c,float* a);+void btManifoldPoint_m_localPointB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_localPointB+void btManifoldPoint_m_localPointB_get(void *c,float* a);+void btManifoldPoint_m_normalWorldOnB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_normalWorldOnB+void btManifoldPoint_m_normalWorldOnB_get(void *c,float* a);+void btManifoldPoint_m_partId0_set(void *c,int a); //attribute: int btManifoldPoint->m_partId0+int btManifoldPoint_m_partId0_get(void *c); //attribute: int btManifoldPoint->m_partId0+void btManifoldPoint_m_partId1_set(void *c,int a); //attribute: int btManifoldPoint->m_partId1+int btManifoldPoint_m_partId1_get(void *c); //attribute: int btManifoldPoint->m_partId1+void btManifoldPoint_m_positionWorldOnA_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_positionWorldOnA+void btManifoldPoint_m_positionWorldOnA_get(void *c,float* a);+void btManifoldPoint_m_positionWorldOnB_set(void *c,float* a); //attribute: ::btVector3 btManifoldPoint->m_positionWorldOnB+void btManifoldPoint_m_positionWorldOnB_get(void *c,float* a);+void btManifoldPoint_m_userPersistentData_set(void *c,void* a); //attribute: void * btManifoldPoint->m_userPersistentData+void* btManifoldPoint_m_userPersistentData_get(void *c); //attribute: void * btManifoldPoint->m_userPersistentData+void* btPersistentManifold_new0(); //constructor: btPersistentManifold  ( ::btPersistentManifold::* )(  ) +void* btPersistentManifold_new1(void* p0,void* p1,int p2,float p3,float p4); //constructor: btPersistentManifold  ( ::btPersistentManifold::* )( void *,void *,int,::btScalar,::btScalar ) +void btPersistentManifold_free(void *c); +void btPersistentManifold_setBodies(void *c,void* p0,void* p1); //method: setBodies void ( ::btPersistentManifold::* )( void *,void * ) +void btPersistentManifold_replaceContactPoint(void *c,void* p0,int p1); //method: replaceContactPoint void ( ::btPersistentManifold::* )( ::btManifoldPoint const &,int ) +void btPersistentManifold_clearUserCache(void *c,void* p0); //method: clearUserCache void ( ::btPersistentManifold::* )( ::btManifoldPoint & ) +void* btPersistentManifold_getBody1(void *c); //method: getBody1 void * ( ::btPersistentManifold::* )(  ) +void* btPersistentManifold_getBody10(void *c); //method: getBody1 void * ( ::btPersistentManifold::* )(  ) +//not supported method: getBody1 void const * ( ::btPersistentManifold::* )(  ) const+// error:  - unsupported++float btPersistentManifold_getContactProcessingThreshold(void *c); //method: getContactProcessingThreshold ::btScalar ( ::btPersistentManifold::* )(  ) const+void btPersistentManifold_clearManifold(void *c); //method: clearManifold void ( ::btPersistentManifold::* )(  ) +int btPersistentManifold_getNumContacts(void *c); //method: getNumContacts int ( ::btPersistentManifold::* )(  ) const+void* btPersistentManifold_getBody0(void *c); //method: getBody0 void * ( ::btPersistentManifold::* )(  ) +void* btPersistentManifold_getBody00(void *c); //method: getBody0 void * ( ::btPersistentManifold::* )(  ) +//not supported method: getBody0 void const * ( ::btPersistentManifold::* )(  ) const+// error:  - unsupported++int btPersistentManifold_addManifoldPoint(void *c,void* p0); //method: addManifoldPoint int ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) +int btPersistentManifold_getCacheEntry(void *c,void* p0); //method: getCacheEntry int ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) const+int btPersistentManifold_validContactDistance(void *c,void* p0); //method: validContactDistance bool ( ::btPersistentManifold::* )( ::btManifoldPoint const & ) const+void btPersistentManifold_removeContactPoint(void *c,int p0); //method: removeContactPoint void ( ::btPersistentManifold::* )( int ) +void* btPersistentManifold_getContactPoint(void *c,int p0); //method: getContactPoint ::btManifoldPoint const & ( ::btPersistentManifold::* )( int ) const+void* btPersistentManifold_getContactPoint0(void *c,int p0); //method: getContactPoint ::btManifoldPoint const & ( ::btPersistentManifold::* )( int ) const+void* btPersistentManifold_getContactPoint1(void *c,int p0); //method: getContactPoint ::btManifoldPoint & ( ::btPersistentManifold::* )( int ) +void btPersistentManifold_refreshContactPoints(void *c,float* p0,float* p1); //method: refreshContactPoints void ( ::btPersistentManifold::* )( ::btTransform const &,::btTransform const & ) +float btPersistentManifold_getContactBreakingThreshold(void *c); //method: getContactBreakingThreshold ::btScalar ( ::btPersistentManifold::* )(  ) const+void btPersistentManifold_m_companionIdA_set(void *c,int a); //attribute: int btPersistentManifold->m_companionIdA+int btPersistentManifold_m_companionIdA_get(void *c); //attribute: int btPersistentManifold->m_companionIdA+void btPersistentManifold_m_companionIdB_set(void *c,int a); //attribute: int btPersistentManifold->m_companionIdB+int btPersistentManifold_m_companionIdB_get(void *c); //attribute: int btPersistentManifold->m_companionIdB+void btPersistentManifold_m_index1a_set(void *c,int a); //attribute: int btPersistentManifold->m_index1a+int btPersistentManifold_m_index1a_get(void *c); //attribute: int btPersistentManifold->m_index1a+void btStorageResult_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btStorageResult::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void btStorageResult_m_normalOnSurfaceB_set(void *c,float* a); //attribute: ::btVector3 btStorageResult->m_normalOnSurfaceB+void btStorageResult_m_normalOnSurfaceB_get(void *c,float* a);+void btStorageResult_m_closestPointInB_set(void *c,float* a); //attribute: ::btVector3 btStorageResult->m_closestPointInB+void btStorageResult_m_closestPointInB_get(void *c,float* a);+void btStorageResult_m_distance_set(void *c,float a); //attribute: ::btScalar btStorageResult->m_distance+float btStorageResult_m_distance_get(void *c); //attribute: ::btScalar btStorageResult->m_distance+void* btSubSimplexClosestResult_new(); //constructor: btSubSimplexClosestResult  ( ::btSubSimplexClosestResult::* )(  ) +void btSubSimplexClosestResult_free(void *c); +void btSubSimplexClosestResult_reset(void *c); //method: reset void ( ::btSubSimplexClosestResult::* )(  ) +int btSubSimplexClosestResult_isValid(void *c); //method: isValid bool ( ::btSubSimplexClosestResult::* )(  ) +void btSubSimplexClosestResult_setBarycentricCoordinates(void *c,float p0,float p1,float p2,float p3); //method: setBarycentricCoordinates void ( ::btSubSimplexClosestResult::* )( ::btScalar,::btScalar,::btScalar,::btScalar ) +void btSubSimplexClosestResult_m_closestPointOnSimplex_set(void *c,float* a); //attribute: ::btVector3 btSubSimplexClosestResult->m_closestPointOnSimplex+void btSubSimplexClosestResult_m_closestPointOnSimplex_get(void *c,float* a);+void btSubSimplexClosestResult_m_usedVertices_set(void *c,void* a); //attribute: ::btUsageBitfield btSubSimplexClosestResult->m_usedVertices+void* btSubSimplexClosestResult_m_usedVertices_get(void *c); //attribute: ::btUsageBitfield btSubSimplexClosestResult->m_usedVertices+// attribute not supported: //attribute: ::btScalar[4] btSubSimplexClosestResult->m_barycentricCoords+void btSubSimplexClosestResult_m_degenerate_set(void *c,int a); //attribute: bool btSubSimplexClosestResult->m_degenerate+int btSubSimplexClosestResult_m_degenerate_get(void *c); //attribute: bool btSubSimplexClosestResult->m_degenerate+void* btUsageBitfield_new(); //constructor: btUsageBitfield  ( ::btUsageBitfield::* )(  ) +void btUsageBitfield_free(void *c); +void btUsageBitfield_reset(void *c); //method: reset void ( ::btUsageBitfield::* )(  ) +void btUsageBitfield_unused1_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused1+short unsigned int btUsageBitfield_unused1_get(void *c); //attribute: short unsigned int btUsageBitfield->unused1+void btUsageBitfield_unused2_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused2+short unsigned int btUsageBitfield_unused2_get(void *c); //attribute: short unsigned int btUsageBitfield->unused2+void btUsageBitfield_unused3_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused3+short unsigned int btUsageBitfield_unused3_get(void *c); //attribute: short unsigned int btUsageBitfield->unused3+void btUsageBitfield_unused4_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->unused4+short unsigned int btUsageBitfield_unused4_get(void *c); //attribute: short unsigned int btUsageBitfield->unused4+void btUsageBitfield_usedVertexA_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexA+short unsigned int btUsageBitfield_usedVertexA_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexA+void btUsageBitfield_usedVertexB_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexB+short unsigned int btUsageBitfield_usedVertexB_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexB+void btUsageBitfield_usedVertexC_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexC+short unsigned int btUsageBitfield_usedVertexC_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexC+void btUsageBitfield_usedVertexD_set(void *c,short unsigned int a); //attribute: short unsigned int btUsageBitfield->usedVertexD+short unsigned int btUsageBitfield_usedVertexD_get(void *c); //attribute: short unsigned int btUsageBitfield->usedVertexD+void* btVoronoiSimplexSolver_new(); //constructor: btVoronoiSimplexSolver  ( ::btVoronoiSimplexSolver::* )(  ) +void btVoronoiSimplexSolver_free(void *c); +void btVoronoiSimplexSolver_reset(void *c); //method: reset void ( ::btVoronoiSimplexSolver::* )(  ) +int btVoronoiSimplexSolver_updateClosestVectorAndPoints(void *c); //method: updateClosestVectorAndPoints bool ( ::btVoronoiSimplexSolver::* )(  ) +void btVoronoiSimplexSolver_setEqualVertexThreshold(void *c,float p0); //method: setEqualVertexThreshold void ( ::btVoronoiSimplexSolver::* )( ::btScalar ) +int btVoronoiSimplexSolver_inSimplex(void *c,float* p0); //method: inSimplex bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const & ) +int btVoronoiSimplexSolver_closest(void *c,float* p0); //method: closest bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 & ) +int btVoronoiSimplexSolver_closestPtPointTetrahedron(void *c,float* p0,float* p1,float* p2,float* p3,float* p4,void* p5); //method: closestPtPointTetrahedron bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btSubSimplexClosestResult & ) +int btVoronoiSimplexSolver_closestPtPointTriangle(void *c,float* p0,float* p1,float* p2,float* p3,void* p4); //method: closestPtPointTriangle bool ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btSubSimplexClosestResult & ) +int btVoronoiSimplexSolver_pointOutsideOfPlane(void *c,float* p0,float* p1,float* p2,float* p3,float* p4); //method: pointOutsideOfPlane int ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const &,::btVector3 const & ) +int btVoronoiSimplexSolver_emptySimplex(void *c); //method: emptySimplex bool ( ::btVoronoiSimplexSolver::* )(  ) const+//not supported method: getSimplex int ( ::btVoronoiSimplexSolver::* )( ::btVector3 *,::btVector3 *,::btVector3 * ) const+// error:  - unsupported,  - unsupported,  - unsupported, int - ok++float btVoronoiSimplexSolver_maxVertex(void *c); //method: maxVertex ::btScalar ( ::btVoronoiSimplexSolver::* )(  ) +void btVoronoiSimplexSolver_addVertex(void *c,float* p0,float* p1,float* p2); //method: addVertex void ( ::btVoronoiSimplexSolver::* )( ::btVector3 const &,::btVector3 const &,::btVector3 const & ) +void btVoronoiSimplexSolver_reduceVertices(void *c,void* p0); //method: reduceVertices void ( ::btVoronoiSimplexSolver::* )( ::btUsageBitfield const & ) +void btVoronoiSimplexSolver_backup_closest(void *c,float* p0); //method: backup_closest void ( ::btVoronoiSimplexSolver::* )( ::btVector3 & ) +void btVoronoiSimplexSolver_removeVertex(void *c,int p0); //method: removeVertex void ( ::btVoronoiSimplexSolver::* )( int ) +float btVoronoiSimplexSolver_getEqualVertexThreshold(void *c); //method: getEqualVertexThreshold ::btScalar ( ::btVoronoiSimplexSolver::* )(  ) const+void btVoronoiSimplexSolver_compute_points(void *c,float* p0,float* p1); //method: compute_points void ( ::btVoronoiSimplexSolver::* )( ::btVector3 &,::btVector3 & ) +int btVoronoiSimplexSolver_fullSimplex(void *c); //method: fullSimplex bool ( ::btVoronoiSimplexSolver::* )(  ) const+int btVoronoiSimplexSolver_numVertices(void *c); //method: numVertices int ( ::btVoronoiSimplexSolver::* )(  ) const+void btVoronoiSimplexSolver_m_cachedBC_set(void *c,void* a); //attribute: ::btSubSimplexClosestResult btVoronoiSimplexSolver->m_cachedBC+void* btVoronoiSimplexSolver_m_cachedBC_get(void *c); //attribute: ::btSubSimplexClosestResult btVoronoiSimplexSolver->m_cachedBC+void btVoronoiSimplexSolver_m_cachedP1_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedP1+void btVoronoiSimplexSolver_m_cachedP1_get(void *c,float* a);+void btVoronoiSimplexSolver_m_cachedP2_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedP2+void btVoronoiSimplexSolver_m_cachedP2_get(void *c,float* a);+void btVoronoiSimplexSolver_m_cachedV_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_cachedV+void btVoronoiSimplexSolver_m_cachedV_get(void *c,float* a);+void btVoronoiSimplexSolver_m_cachedValidClosest_set(void *c,int a); //attribute: bool btVoronoiSimplexSolver->m_cachedValidClosest+int btVoronoiSimplexSolver_m_cachedValidClosest_get(void *c); //attribute: bool btVoronoiSimplexSolver->m_cachedValidClosest+void btVoronoiSimplexSolver_m_equalVertexThreshold_set(void *c,float a); //attribute: ::btScalar btVoronoiSimplexSolver->m_equalVertexThreshold+float btVoronoiSimplexSolver_m_equalVertexThreshold_get(void *c); //attribute: ::btScalar btVoronoiSimplexSolver->m_equalVertexThreshold+void btVoronoiSimplexSolver_m_lastW_set(void *c,float* a); //attribute: ::btVector3 btVoronoiSimplexSolver->m_lastW+void btVoronoiSimplexSolver_m_lastW_get(void *c,float* a);+void btVoronoiSimplexSolver_m_needsUpdate_set(void *c,int a); //attribute: bool btVoronoiSimplexSolver->m_needsUpdate+int btVoronoiSimplexSolver_m_needsUpdate_get(void *c); //attribute: bool btVoronoiSimplexSolver->m_needsUpdate+void btVoronoiSimplexSolver_m_numVertices_set(void *c,int a); //attribute: int btVoronoiSimplexSolver->m_numVertices+int btVoronoiSimplexSolver_m_numVertices_get(void *c); //attribute: int btVoronoiSimplexSolver->m_numVertices+// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexPointsP+// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexPointsQ+// attribute not supported: //attribute: ::btVector3[5] btVoronoiSimplexSolver->m_simplexVectorW+void* btGjkEpaSolver2_sResults_new(); //constructor: sResults  ( ::btGjkEpaSolver2::sResults::* )(  ) +void btGjkEpaSolver2_sResults_free(void *c); +void btGjkEpaSolver2_sResults_distance_set(void *c,float a); //attribute: ::btScalar btGjkEpaSolver2_sResults->distance+float btGjkEpaSolver2_sResults_distance_get(void *c); //attribute: ::btScalar btGjkEpaSolver2_sResults->distance+void btGjkEpaSolver2_sResults_normal_set(void *c,float* a); //attribute: ::btVector3 btGjkEpaSolver2_sResults->normal+void btGjkEpaSolver2_sResults_normal_get(void *c,float* a);+// attribute not supported: //attribute: ::btGjkEpaSolver2::sResults::eStatus btGjkEpaSolver2_sResults->status+// attribute not supported: //attribute: ::btVector3[2] btGjkEpaSolver2_sResults->witnesses+void* btCollisionWorld_AllHitsRayResultCallback_new(float* p0,float* p1); //constructor: AllHitsRayResultCallback  ( ::btCollisionWorld::AllHitsRayResultCallback::* )( ::btVector3 const &,::btVector3 const & ) +void btCollisionWorld_AllHitsRayResultCallback_free(void *c); +float btCollisionWorld_AllHitsRayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::AllHitsRayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) +void btCollisionWorld_AllHitsRayResultCallback_m_collisionObjects_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCollisionObject*> btCollisionWorld_AllHitsRayResultCallback->m_collisionObjects+void* btCollisionWorld_AllHitsRayResultCallback_m_collisionObjects_get(void *c); //attribute: ::btAlignedObjectArray<btCollisionObject*> btCollisionWorld_AllHitsRayResultCallback->m_collisionObjects+void btCollisionWorld_AllHitsRayResultCallback_m_hitFractions_set(void *c,void* a); //attribute: ::btAlignedObjectArray<float> btCollisionWorld_AllHitsRayResultCallback->m_hitFractions+void* btCollisionWorld_AllHitsRayResultCallback_m_hitFractions_get(void *c); //attribute: ::btAlignedObjectArray<float> btCollisionWorld_AllHitsRayResultCallback->m_hitFractions+void btCollisionWorld_AllHitsRayResultCallback_m_hitNormalWorld_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitNormalWorld+void* btCollisionWorld_AllHitsRayResultCallback_m_hitNormalWorld_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitNormalWorld+void btCollisionWorld_AllHitsRayResultCallback_m_hitPointWorld_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitPointWorld+void* btCollisionWorld_AllHitsRayResultCallback_m_hitPointWorld_get(void *c); //attribute: ::btAlignedObjectArray<btVector3> btCollisionWorld_AllHitsRayResultCallback->m_hitPointWorld+void btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_AllHitsRayResultCallback->m_rayFromWorld+void btCollisionWorld_AllHitsRayResultCallback_m_rayFromWorld_get(void *c,float* a);+void btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_AllHitsRayResultCallback->m_rayToWorld+void btCollisionWorld_AllHitsRayResultCallback_m_rayToWorld_get(void *c,float* a);+void* btCollisionWorld_ClosestConvexResultCallback_new(float* p0,float* p1); //constructor: ClosestConvexResultCallback  ( ::btCollisionWorld::ClosestConvexResultCallback::* )( ::btVector3 const &,::btVector3 const & ) +void btCollisionWorld_ClosestConvexResultCallback_free(void *c); +float btCollisionWorld_ClosestConvexResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ClosestConvexResultCallback::* )( ::btCollisionWorld::LocalConvexResult &,bool ) +void btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_convexFromWorld+void btCollisionWorld_ClosestConvexResultCallback_m_convexFromWorld_get(void *c,float* a);+void btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_convexToWorld+void btCollisionWorld_ClosestConvexResultCallback_m_convexToWorld_get(void *c,float* a);+void btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_ClosestConvexResultCallback->m_hitCollisionObject+void* btCollisionWorld_ClosestConvexResultCallback_m_hitCollisionObject_get(void *c); //attribute: ::btCollisionObject * btCollisionWorld_ClosestConvexResultCallback->m_hitCollisionObject+void btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_hitNormalWorld+void btCollisionWorld_ClosestConvexResultCallback_m_hitNormalWorld_get(void *c,float* a);+void btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestConvexResultCallback->m_hitPointWorld+void btCollisionWorld_ClosestConvexResultCallback_m_hitPointWorld_get(void *c,float* a);+void* btCollisionWorld_ClosestRayResultCallback_new(float* p0,float* p1); //constructor: ClosestRayResultCallback  ( ::btCollisionWorld::ClosestRayResultCallback::* )( ::btVector3 const &,::btVector3 const & ) +void btCollisionWorld_ClosestRayResultCallback_free(void *c); +float btCollisionWorld_ClosestRayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ClosestRayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) +void btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_hitNormalWorld+void btCollisionWorld_ClosestRayResultCallback_m_hitNormalWorld_get(void *c,float* a);+void btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_hitPointWorld+void btCollisionWorld_ClosestRayResultCallback_m_hitPointWorld_get(void *c,float* a);+void btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_rayFromWorld+void btCollisionWorld_ClosestRayResultCallback_m_rayFromWorld_get(void *c,float* a);+void btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_ClosestRayResultCallback->m_rayToWorld+void btCollisionWorld_ClosestRayResultCallback_m_rayToWorld_get(void *c,float* a);+float btCollisionWorld_ContactResultCallback_addSingleResult(void *c,void* p0,void* p1,int p2,int p3,void* p4,int p5,int p6); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ContactResultCallback::* )( ::btManifoldPoint &,::btCollisionObject const *,int,int,::btCollisionObject const *,int,int ) +int btCollisionWorld_ContactResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::ContactResultCallback::* )( ::btBroadphaseProxy * ) const+void btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterGroup+short int btCollisionWorld_ContactResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterGroup+void btCollisionWorld_ContactResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterMask+short int btCollisionWorld_ContactResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_ContactResultCallback->m_collisionFilterMask+float btCollisionWorld_ConvexResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::ConvexResultCallback::* )( ::btCollisionWorld::LocalConvexResult &,bool ) +int btCollisionWorld_ConvexResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::ConvexResultCallback::* )( ::btBroadphaseProxy * ) const+int btCollisionWorld_ConvexResultCallback_hasHit(void *c); //method: hasHit bool ( ::btCollisionWorld::ConvexResultCallback::* )(  ) const+void btCollisionWorld_ConvexResultCallback_m_closestHitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_ConvexResultCallback->m_closestHitFraction+float btCollisionWorld_ConvexResultCallback_m_closestHitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_ConvexResultCallback->m_closestHitFraction+void btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterGroup+short int btCollisionWorld_ConvexResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterGroup+void btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterMask+short int btCollisionWorld_ConvexResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_ConvexResultCallback->m_collisionFilterMask+void* btSphereSphereCollisionAlgorithm_CreateFunc_new(); //constructor: CreateFunc  ( ::btSphereSphereCollisionAlgorithm::CreateFunc::* )(  ) +void btSphereSphereCollisionAlgorithm_CreateFunc_free(void *c); +void* btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btSphereSphereCollisionAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) +//not supported constructor: CreateFunc  ( ::btConvexConvexAlgorithm::CreateFunc::* )( ::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver * ) +// error: ::btVoronoiSimplexSolver * - ok,  - unsupported++void btConvexConvexAlgorithm_CreateFunc_free(void *c); +void* btConvexConvexAlgorithm_CreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btConvexConvexAlgorithm::CreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) +// attribute not supported: //attribute: ::btConvexPenetrationDepthSolver * btConvexConvexAlgorithm_CreateFunc->m_pdSolver+void btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_set(void *c,void* a); //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm_CreateFunc->m_simplexSolver+void* btConvexConvexAlgorithm_CreateFunc_m_simplexSolver_get(void *c); //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm_CreateFunc->m_simplexSolver+void btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_set(void *c,int a); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_numPerturbationIterations+int btConvexConvexAlgorithm_CreateFunc_m_numPerturbationIterations_get(void *c); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_numPerturbationIterations+void btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_set(void *c,int a); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_minimumPointsPerturbationThreshold+int btConvexConvexAlgorithm_CreateFunc_m_minimumPointsPerturbationThreshold_get(void *c); //attribute: int btConvexConvexAlgorithm_CreateFunc->m_minimumPointsPerturbationThreshold+void* btCollisionWorld_LocalConvexResult_new(void* p0,void* p1,float* p2,float* p3,float p4); //constructor: LocalConvexResult  ( ::btCollisionWorld::LocalConvexResult::* )( ::btCollisionObject *,::btCollisionWorld::LocalShapeInfo *,::btVector3 const &,::btVector3 const &,::btScalar ) +void btCollisionWorld_LocalConvexResult_free(void *c); +void btCollisionWorld_LocalConvexResult_m_hitCollisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_LocalConvexResult->m_hitCollisionObject+void* btCollisionWorld_LocalConvexResult_m_hitCollisionObject_get(void *c); //attribute: ::btCollisionObject * btCollisionWorld_LocalConvexResult->m_hitCollisionObject+void btCollisionWorld_LocalConvexResult_m_hitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_LocalConvexResult->m_hitFraction+float btCollisionWorld_LocalConvexResult_m_hitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_LocalConvexResult->m_hitFraction+void btCollisionWorld_LocalConvexResult_m_hitNormalLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalConvexResult->m_hitNormalLocal+void btCollisionWorld_LocalConvexResult_m_hitNormalLocal_get(void *c,float* a);+void btCollisionWorld_LocalConvexResult_m_hitPointLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalConvexResult->m_hitPointLocal+void btCollisionWorld_LocalConvexResult_m_hitPointLocal_get(void *c,float* a);+void btCollisionWorld_LocalConvexResult_m_localShapeInfo_set(void *c,void* a); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalConvexResult->m_localShapeInfo+void* btCollisionWorld_LocalConvexResult_m_localShapeInfo_get(void *c); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalConvexResult->m_localShapeInfo+void* btCollisionWorld_LocalRayResult_new(void* p0,void* p1,float* p2,float p3); //constructor: LocalRayResult  ( ::btCollisionWorld::LocalRayResult::* )( ::btCollisionObject *,::btCollisionWorld::LocalShapeInfo *,::btVector3 const &,::btScalar ) +void btCollisionWorld_LocalRayResult_free(void *c); +void btCollisionWorld_LocalRayResult_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_LocalRayResult->m_collisionObject+void* btCollisionWorld_LocalRayResult_m_collisionObject_get(void *c); //attribute: ::btCollisionObject * btCollisionWorld_LocalRayResult->m_collisionObject+void btCollisionWorld_LocalRayResult_m_hitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_LocalRayResult->m_hitFraction+float btCollisionWorld_LocalRayResult_m_hitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_LocalRayResult->m_hitFraction+void btCollisionWorld_LocalRayResult_m_hitNormalLocal_set(void *c,float* a); //attribute: ::btVector3 btCollisionWorld_LocalRayResult->m_hitNormalLocal+void btCollisionWorld_LocalRayResult_m_hitNormalLocal_get(void *c,float* a);+void btCollisionWorld_LocalRayResult_m_localShapeInfo_set(void *c,void* a); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalRayResult->m_localShapeInfo+void* btCollisionWorld_LocalRayResult_m_localShapeInfo_get(void *c); //attribute: ::btCollisionWorld::LocalShapeInfo * btCollisionWorld_LocalRayResult->m_localShapeInfo+void* btCollisionWorld_LocalShapeInfo_new(); //constructor: LocalShapeInfo  ( ::btCollisionWorld::LocalShapeInfo::* )(  ) +void btCollisionWorld_LocalShapeInfo_free(void *c); +void btCollisionWorld_LocalShapeInfo_m_shapePart_set(void *c,int a); //attribute: int btCollisionWorld_LocalShapeInfo->m_shapePart+int btCollisionWorld_LocalShapeInfo_m_shapePart_get(void *c); //attribute: int btCollisionWorld_LocalShapeInfo->m_shapePart+void btCollisionWorld_LocalShapeInfo_m_triangleIndex_set(void *c,int a); //attribute: int btCollisionWorld_LocalShapeInfo->m_triangleIndex+int btCollisionWorld_LocalShapeInfo_m_triangleIndex_get(void *c); //attribute: int btCollisionWorld_LocalShapeInfo->m_triangleIndex+float btCollisionWorld_RayResultCallback_addSingleResult(void *c,void* p0,int p1); //method: addSingleResult ::btScalar ( ::btCollisionWorld::RayResultCallback::* )( ::btCollisionWorld::LocalRayResult &,bool ) +int btCollisionWorld_RayResultCallback_needsCollision(void *c,void* p0); //method: needsCollision bool ( ::btCollisionWorld::RayResultCallback::* )( ::btBroadphaseProxy * ) const+int btCollisionWorld_RayResultCallback_hasHit(void *c); //method: hasHit bool ( ::btCollisionWorld::RayResultCallback::* )(  ) const+void btCollisionWorld_RayResultCallback_m_closestHitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionWorld_RayResultCallback->m_closestHitFraction+float btCollisionWorld_RayResultCallback_m_closestHitFraction_get(void *c); //attribute: ::btScalar btCollisionWorld_RayResultCallback->m_closestHitFraction+void btCollisionWorld_RayResultCallback_m_collisionFilterGroup_set(void *c,short int a); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterGroup+short int btCollisionWorld_RayResultCallback_m_collisionFilterGroup_get(void *c); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterGroup+void btCollisionWorld_RayResultCallback_m_collisionFilterMask_set(void *c,short int a); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterMask+short int btCollisionWorld_RayResultCallback_m_collisionFilterMask_get(void *c); //attribute: short int btCollisionWorld_RayResultCallback->m_collisionFilterMask+void btCollisionWorld_RayResultCallback_m_collisionObject_set(void *c,void* a); //attribute: ::btCollisionObject * btCollisionWorld_RayResultCallback->m_collisionObject+void* btCollisionWorld_RayResultCallback_m_collisionObject_get(void *c); //attribute: ::btCollisionObject * btCollisionWorld_RayResultCallback->m_collisionObject+void btCollisionWorld_RayResultCallback_m_flags_set(void *c,unsigned int a); //attribute: unsigned int btCollisionWorld_RayResultCallback->m_flags+unsigned int btCollisionWorld_RayResultCallback_m_flags_get(void *c); //attribute: unsigned int btCollisionWorld_RayResultCallback->m_flags+void* btCollisionAlgorithmCreateFunc_new(); //constructor: btCollisionAlgorithmCreateFunc  ( ::btCollisionAlgorithmCreateFunc::* )(  ) +void btCollisionAlgorithmCreateFunc_free(void *c); +void* btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm(void *c,void* p0,void* p1,void* p2); //method: CreateCollisionAlgorithm ::btCollisionAlgorithm * ( ::btCollisionAlgorithmCreateFunc::* )( ::btCollisionAlgorithmConstructionInfo &,::btCollisionObject *,::btCollisionObject * ) +void btCollisionAlgorithmCreateFunc_m_swapped_set(void *c,int a); //attribute: bool btCollisionAlgorithmCreateFunc->m_swapped+int btCollisionAlgorithmCreateFunc_m_swapped_get(void *c); //attribute: bool btCollisionAlgorithmCreateFunc->m_swapped+//not supported method: getPersistentManifoldPool ::btPoolAllocator * ( ::btCollisionConfiguration::* )(  ) +// error:  - unsupported++void* btCollisionConfiguration_getStackAllocator(void *c); //method: getStackAllocator ::btStackAlloc * ( ::btCollisionConfiguration::* )(  ) +//not supported method: getCollisionAlgorithmPool ::btPoolAllocator * ( ::btCollisionConfiguration::* )(  ) +// error:  - unsupported++void* btCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btCollisionConfiguration::* )( int,int ) +void* btCollisionDispatcher_new(void* p0); //constructor: btCollisionDispatcher  ( ::btCollisionDispatcher::* )( ::btCollisionConfiguration * ) +void btCollisionDispatcher_free(void *c); +void* btCollisionDispatcher_allocateCollisionAlgorithm(void *c,int p0); //method: allocateCollisionAlgorithm void * ( ::btCollisionDispatcher::* )( int ) +int btCollisionDispatcher_getDispatcherFlags(void *c); //method: getDispatcherFlags int ( ::btCollisionDispatcher::* )(  ) const+void* btCollisionDispatcher_getCollisionConfiguration(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration * ( ::btCollisionDispatcher::* )(  ) +void* btCollisionDispatcher_getCollisionConfiguration0(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration * ( ::btCollisionDispatcher::* )(  ) +void* btCollisionDispatcher_getCollisionConfiguration1(void *c); //method: getCollisionConfiguration ::btCollisionConfiguration const * ( ::btCollisionDispatcher::* )(  ) const+void btCollisionDispatcher_setDispatcherFlags(void *c,int p0); //method: setDispatcherFlags void ( ::btCollisionDispatcher::* )( int ) +void btCollisionDispatcher_releaseManifold(void *c,void* p0); //method: releaseManifold void ( ::btCollisionDispatcher::* )( ::btPersistentManifold * ) +void btCollisionDispatcher_setCollisionConfiguration(void *c,void* p0); //method: setCollisionConfiguration void ( ::btCollisionDispatcher::* )( ::btCollisionConfiguration * ) +int btCollisionDispatcher_getNumManifolds(void *c); //method: getNumManifolds int ( ::btCollisionDispatcher::* )(  ) const+void btCollisionDispatcher_clearManifold(void *c,void* p0); //method: clearManifold void ( ::btCollisionDispatcher::* )( ::btPersistentManifold * ) +void btCollisionDispatcher_freeCollisionAlgorithm(void *c,void* p0); //method: freeCollisionAlgorithm void ( ::btCollisionDispatcher::* )( void * ) +//not supported method: getInternalManifoldPointer ::btPersistentManifold * * ( ::btCollisionDispatcher::* )(  ) +// error:  - unsupported++void btCollisionDispatcher_registerCollisionCreateFunc(void *c,int p0,int p1,void* p2); //method: registerCollisionCreateFunc void ( ::btCollisionDispatcher::* )( int,int,::btCollisionAlgorithmCreateFunc * ) +void btCollisionDispatcher_defaultNearCallback(void* p0,void* p1,void* p2); //method: defaultNearCallback void (*)( ::btBroadphasePair &,::btCollisionDispatcher &,::btDispatcherInfo const & )+//not supported method: getNearCallback ::btNearCallback ( ::btCollisionDispatcher::* )(  ) const+// error:  - unsupported++void* btCollisionDispatcher_findAlgorithm(void *c,void* p0,void* p1,void* p2); //method: findAlgorithm ::btCollisionAlgorithm * ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject *,::btPersistentManifold * ) +int btCollisionDispatcher_needsResponse(void *c,void* p0,void* p1); //method: needsResponse bool ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) +void* btCollisionDispatcher_getNewManifold(void *c,void* p0,void* p1); //method: getNewManifold ::btPersistentManifold * ( ::btCollisionDispatcher::* )( void *,void * ) +void btCollisionDispatcher_dispatchAllCollisionPairs(void *c,void* p0,void* p1,void* p2); //method: dispatchAllCollisionPairs void ( ::btCollisionDispatcher::* )( ::btOverlappingPairCache *,::btDispatcherInfo const &,::btDispatcher * ) +//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btCollisionDispatcher::* )(  ) +// error:  - unsupported++//not supported method: getInternalManifoldPool ::btPoolAllocator * ( ::btCollisionDispatcher::* )(  ) +// error:  - unsupported++//not supported method: getInternalManifoldPool ::btPoolAllocator const * ( ::btCollisionDispatcher::* )(  ) const+// error:  - unsupported++int btCollisionDispatcher_needsCollision(void *c,void* p0,void* p1); //method: needsCollision bool ( ::btCollisionDispatcher::* )( ::btCollisionObject *,::btCollisionObject * ) +void* btCollisionDispatcher_getManifoldByIndexInternal(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btCollisionDispatcher::* )( int ) +void* btCollisionDispatcher_getManifoldByIndexInternal0(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold * ( ::btCollisionDispatcher::* )( int ) +void* btCollisionDispatcher_getManifoldByIndexInternal1(void *c,int p0); //method: getManifoldByIndexInternal ::btPersistentManifold const * ( ::btCollisionDispatcher::* )( int ) const+//not supported method: setNearCallback void ( ::btCollisionDispatcher::* )( ::btNearCallback ) +// error:  - unsupported, void - ok++// attribute not supported: //attribute: ::btPoolAllocator * btCollisionDispatcher->m_collisionAlgorithmPoolAllocator+void btCollisionDispatcher_m_collisionConfiguration_set(void *c,void* a); //attribute: ::btCollisionConfiguration * btCollisionDispatcher->m_collisionConfiguration+void* btCollisionDispatcher_m_collisionConfiguration_get(void *c); //attribute: ::btCollisionConfiguration * btCollisionDispatcher->m_collisionConfiguration+void btCollisionDispatcher_m_defaultManifoldResult_set(void *c,void* a); //attribute: ::btManifoldResult btCollisionDispatcher->m_defaultManifoldResult+void* btCollisionDispatcher_m_defaultManifoldResult_get(void *c); //attribute: ::btManifoldResult btCollisionDispatcher->m_defaultManifoldResult+void btCollisionDispatcher_m_dispatcherFlags_set(void *c,int a); //attribute: int btCollisionDispatcher->m_dispatcherFlags+int btCollisionDispatcher_m_dispatcherFlags_get(void *c); //attribute: int btCollisionDispatcher->m_dispatcherFlags+// attribute not supported: //attribute: ::btCollisionAlgorithmCreateFunc *[36][36] btCollisionDispatcher->m_doubleDispatch+void btCollisionDispatcher_m_manifoldsPtr_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btPersistentManifold*> btCollisionDispatcher->m_manifoldsPtr+void* btCollisionDispatcher_m_manifoldsPtr_get(void *c); //attribute: ::btAlignedObjectArray<btPersistentManifold*> btCollisionDispatcher->m_manifoldsPtr+// attribute not supported: //attribute: ::btNearCallback btCollisionDispatcher->m_nearCallback+// attribute not supported: //attribute: ::btPoolAllocator * btCollisionDispatcher->m_persistentManifoldPoolAllocator+void* btCollisionObject_new(); //constructor: btCollisionObject  ( ::btCollisionObject::* )(  ) +void btCollisionObject_free(void *c); +float btCollisionObject_getCcdSquareMotionThreshold(void *c); //method: getCcdSquareMotionThreshold ::btScalar ( ::btCollisionObject::* )(  ) const+void btCollisionObject_activate(void *c,int p0); //method: activate void ( ::btCollisionObject::* )( bool ) +void btCollisionObject_setInterpolationLinearVelocity(void *c,float* p0); //method: setInterpolationLinearVelocity void ( ::btCollisionObject::* )( ::btVector3 const & ) +float btCollisionObject_getFriction(void *c); //method: getFriction ::btScalar ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setCompanionId(void *c,int p0); //method: setCompanionId void ( ::btCollisionObject::* )( int ) +void btCollisionObject_setInterpolationAngularVelocity(void *c,float* p0); //method: setInterpolationAngularVelocity void ( ::btCollisionObject::* )( ::btVector3 const & ) +char const * btCollisionObject_serialize(void *c,void* p0,void* p1); //method: serialize char const * ( ::btCollisionObject::* )( void *,::btSerializer * ) const+void btCollisionObject_setWorldTransform(void *c,float* p0); //method: setWorldTransform void ( ::btCollisionObject::* )( ::btTransform const & ) +int btCollisionObject_getCompanionId(void *c); //method: getCompanionId int ( ::btCollisionObject::* )(  ) const+void btCollisionObject_internalSetExtensionPointer(void *c,void* p0); //method: internalSetExtensionPointer void ( ::btCollisionObject::* )( void * ) +void btCollisionObject_setContactProcessingThreshold(void *c,float p0); //method: setContactProcessingThreshold void ( ::btCollisionObject::* )( ::btScalar ) +void btCollisionObject_setInterpolationWorldTransform(void *c,float* p0); //method: setInterpolationWorldTransform void ( ::btCollisionObject::* )( ::btTransform const & ) +void btCollisionObject_getInterpolationLinearVelocity(void *c,float* ret); //method: getInterpolationLinearVelocity ::btVector3 const & ( ::btCollisionObject::* )(  ) const+int btCollisionObject_mergesSimulationIslands(void *c); //method: mergesSimulationIslands bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setCollisionShape(void *c,void* p0); //method: setCollisionShape void ( ::btCollisionObject::* )( ::btCollisionShape * ) +void btCollisionObject_setCcdMotionThreshold(void *c,float p0); //method: setCcdMotionThreshold void ( ::btCollisionObject::* )( ::btScalar ) +int btCollisionObject_getIslandTag(void *c); //method: getIslandTag int ( ::btCollisionObject::* )(  ) const+int btCollisionObject_calculateSerializeBufferSize(void *c); //method: calculateSerializeBufferSize int ( ::btCollisionObject::* )(  ) const+float btCollisionObject_getCcdMotionThreshold(void *c); //method: getCcdMotionThreshold ::btScalar ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setUserPointer(void *c,void* p0); //method: setUserPointer void ( ::btCollisionObject::* )( void * ) +int btCollisionObject_checkCollideWith(void *c,void* p0); //method: checkCollideWith bool ( ::btCollisionObject::* )( ::btCollisionObject * ) +void btCollisionObject_getAnisotropicFriction(void *c,float* ret); //method: getAnisotropicFriction ::btVector3 const & ( ::btCollisionObject::* )(  ) const+void btCollisionObject_getInterpolationAngularVelocity(void *c,float* ret); //method: getInterpolationAngularVelocity ::btVector3 const & ( ::btCollisionObject::* )(  ) const+void btCollisionObject_forceActivationState(void *c,int p0); //method: forceActivationState void ( ::btCollisionObject::* )( int ) +int btCollisionObject_isStaticObject(void *c); //method: isStaticObject bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setFriction(void *c,float p0); //method: setFriction void ( ::btCollisionObject::* )( ::btScalar ) +void btCollisionObject_getInterpolationWorldTransform(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const+void btCollisionObject_getInterpolationWorldTransform0(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const+void btCollisionObject_getInterpolationWorldTransform1(void *c,float* ret); //method: getInterpolationWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) +void btCollisionObject_setIslandTag(void *c,int p0); //method: setIslandTag void ( ::btCollisionObject::* )( int ) +void btCollisionObject_setHitFraction(void *c,float p0); //method: setHitFraction void ( ::btCollisionObject::* )( ::btScalar ) +void btCollisionObject_serializeSingleObject(void *c,void* p0); //method: serializeSingleObject void ( ::btCollisionObject::* )( ::btSerializer * ) const+int btCollisionObject_getCollisionFlags(void *c); //method: getCollisionFlags int ( ::btCollisionObject::* )(  ) const+float btCollisionObject_getDeactivationTime(void *c); //method: getDeactivationTime ::btScalar ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getCollisionShape(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getCollisionShape0(void *c); //method: getCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getCollisionShape1(void *c); //method: getCollisionShape ::btCollisionShape * ( ::btCollisionObject::* )(  ) +void btCollisionObject_setAnisotropicFriction(void *c,float* p0); //method: setAnisotropicFriction void ( ::btCollisionObject::* )( ::btVector3 const & ) +int btCollisionObject_checkCollideWithOverride(void *c,void* p0); //method: checkCollideWithOverride bool ( ::btCollisionObject::* )( ::btCollisionObject * ) +void* btCollisionObject_getBroadphaseHandle(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy * ( ::btCollisionObject::* )(  ) +void* btCollisionObject_getBroadphaseHandle0(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy * ( ::btCollisionObject::* )(  ) +void* btCollisionObject_getBroadphaseHandle1(void *c); //method: getBroadphaseHandle ::btBroadphaseProxy const * ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getUserPointer(void *c); //method: getUserPointer void * ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setCcdSweptSphereRadius(void *c,float p0); //method: setCcdSweptSphereRadius void ( ::btCollisionObject::* )( ::btScalar ) +void btCollisionObject_getWorldTransform(void *c,float* ret); //method: getWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) +void btCollisionObject_getWorldTransform0(void *c,float* ret); //method: getWorldTransform ::btTransform & ( ::btCollisionObject::* )(  ) +void btCollisionObject_getWorldTransform1(void *c,float* ret); //method: getWorldTransform ::btTransform const & ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setCollisionFlags(void *c,int p0); //method: setCollisionFlags void ( ::btCollisionObject::* )( int ) +void btCollisionObject_internalSetTemporaryCollisionShape(void *c,void* p0); //method: internalSetTemporaryCollisionShape void ( ::btCollisionObject::* )( ::btCollisionShape * ) +float btCollisionObject_getHitFraction(void *c); //method: getHitFraction ::btScalar ( ::btCollisionObject::* )(  ) const+int btCollisionObject_isActive(void *c); //method: isActive bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setActivationState(void *c,int p0); //method: setActivationState void ( ::btCollisionObject::* )( int ) +int btCollisionObject_getInternalType(void *c); //method: getInternalType int ( ::btCollisionObject::* )(  ) const+int btCollisionObject_getActivationState(void *c); //method: getActivationState int ( ::btCollisionObject::* )(  ) const+int btCollisionObject_hasContactResponse(void *c); //method: hasContactResponse bool ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getRootCollisionShape(void *c); //method: getRootCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getRootCollisionShape0(void *c); //method: getRootCollisionShape ::btCollisionShape const * ( ::btCollisionObject::* )(  ) const+void* btCollisionObject_getRootCollisionShape1(void *c); //method: getRootCollisionShape ::btCollisionShape * ( ::btCollisionObject::* )(  ) +float btCollisionObject_getRestitution(void *c); //method: getRestitution ::btScalar ( ::btCollisionObject::* )(  ) const+float btCollisionObject_getCcdSweptSphereRadius(void *c); //method: getCcdSweptSphereRadius ::btScalar ( ::btCollisionObject::* )(  ) const+float btCollisionObject_getContactProcessingThreshold(void *c); //method: getContactProcessingThreshold ::btScalar ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setDeactivationTime(void *c,float p0); //method: setDeactivationTime void ( ::btCollisionObject::* )( ::btScalar ) +void* btCollisionObject_internalGetExtensionPointer(void *c); //method: internalGetExtensionPointer void * ( ::btCollisionObject::* )(  ) const+int btCollisionObject_isStaticOrKinematicObject(void *c); //method: isStaticOrKinematicObject bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setRestitution(void *c,float p0); //method: setRestitution void ( ::btCollisionObject::* )( ::btScalar ) +int btCollisionObject_hasAnisotropicFriction(void *c); //method: hasAnisotropicFriction bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_setBroadphaseHandle(void *c,void* p0); //method: setBroadphaseHandle void ( ::btCollisionObject::* )( ::btBroadphaseProxy * ) +int btCollisionObject_isKinematicObject(void *c); //method: isKinematicObject bool ( ::btCollisionObject::* )(  ) const+void btCollisionObject_m_activationState1_set(void *c,int a); //attribute: int btCollisionObject->m_activationState1+int btCollisionObject_m_activationState1_get(void *c); //attribute: int btCollisionObject->m_activationState1+void btCollisionObject_m_anisotropicFriction_set(void *c,float* a); //attribute: ::btVector3 btCollisionObject->m_anisotropicFriction+void btCollisionObject_m_anisotropicFriction_get(void *c,float* a);+void btCollisionObject_m_broadphaseHandle_set(void *c,void* a); //attribute: ::btBroadphaseProxy * btCollisionObject->m_broadphaseHandle+void* btCollisionObject_m_broadphaseHandle_get(void *c); //attribute: ::btBroadphaseProxy * btCollisionObject->m_broadphaseHandle+void btCollisionObject_m_ccdMotionThreshold_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_ccdMotionThreshold+float btCollisionObject_m_ccdMotionThreshold_get(void *c); //attribute: ::btScalar btCollisionObject->m_ccdMotionThreshold+void btCollisionObject_m_ccdSweptSphereRadius_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_ccdSweptSphereRadius+float btCollisionObject_m_ccdSweptSphereRadius_get(void *c); //attribute: ::btScalar btCollisionObject->m_ccdSweptSphereRadius+void btCollisionObject_m_checkCollideWith_set(void *c,int a); //attribute: int btCollisionObject->m_checkCollideWith+int btCollisionObject_m_checkCollideWith_get(void *c); //attribute: int btCollisionObject->m_checkCollideWith+void btCollisionObject_m_collisionFlags_set(void *c,int a); //attribute: int btCollisionObject->m_collisionFlags+int btCollisionObject_m_collisionFlags_get(void *c); //attribute: int btCollisionObject->m_collisionFlags+void btCollisionObject_m_collisionShape_set(void *c,void* a); //attribute: ::btCollisionShape * btCollisionObject->m_collisionShape+void* btCollisionObject_m_collisionShape_get(void *c); //attribute: ::btCollisionShape * btCollisionObject->m_collisionShape+void btCollisionObject_m_companionId_set(void *c,int a); //attribute: int btCollisionObject->m_companionId+int btCollisionObject_m_companionId_get(void *c); //attribute: int btCollisionObject->m_companionId+void btCollisionObject_m_contactProcessingThreshold_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_contactProcessingThreshold+float btCollisionObject_m_contactProcessingThreshold_get(void *c); //attribute: ::btScalar btCollisionObject->m_contactProcessingThreshold+void btCollisionObject_m_deactivationTime_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_deactivationTime+float btCollisionObject_m_deactivationTime_get(void *c); //attribute: ::btScalar btCollisionObject->m_deactivationTime+void btCollisionObject_m_extensionPointer_set(void *c,void* a); //attribute: void * btCollisionObject->m_extensionPointer+void* btCollisionObject_m_extensionPointer_get(void *c); //attribute: void * btCollisionObject->m_extensionPointer+void btCollisionObject_m_friction_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_friction+float btCollisionObject_m_friction_get(void *c); //attribute: ::btScalar btCollisionObject->m_friction+void btCollisionObject_m_hasAnisotropicFriction_set(void *c,int a); //attribute: int btCollisionObject->m_hasAnisotropicFriction+int btCollisionObject_m_hasAnisotropicFriction_get(void *c); //attribute: int btCollisionObject->m_hasAnisotropicFriction+void btCollisionObject_m_hitFraction_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_hitFraction+float btCollisionObject_m_hitFraction_get(void *c); //attribute: ::btScalar btCollisionObject->m_hitFraction+void btCollisionObject_m_internalType_set(void *c,int a); //attribute: int btCollisionObject->m_internalType+int btCollisionObject_m_internalType_get(void *c); //attribute: int btCollisionObject->m_internalType+void btCollisionObject_m_interpolationAngularVelocity_set(void *c,float* a); //attribute: ::btVector3 btCollisionObject->m_interpolationAngularVelocity+void btCollisionObject_m_interpolationAngularVelocity_get(void *c,float* a);+void btCollisionObject_m_interpolationLinearVelocity_set(void *c,float* a); //attribute: ::btVector3 btCollisionObject->m_interpolationLinearVelocity+void btCollisionObject_m_interpolationLinearVelocity_get(void *c,float* a);+void btCollisionObject_m_interpolationWorldTransform_set(void *c,float* a); //attribute: ::btTransform btCollisionObject->m_interpolationWorldTransform+void btCollisionObject_m_interpolationWorldTransform_get(void *c,float* a);+void btCollisionObject_m_islandTag1_set(void *c,int a); //attribute: int btCollisionObject->m_islandTag1+int btCollisionObject_m_islandTag1_get(void *c); //attribute: int btCollisionObject->m_islandTag1+void btCollisionObject_m_restitution_set(void *c,float a); //attribute: ::btScalar btCollisionObject->m_restitution+float btCollisionObject_m_restitution_get(void *c); //attribute: ::btScalar btCollisionObject->m_restitution+void btCollisionObject_m_rootCollisionShape_set(void *c,void* a); //attribute: ::btCollisionShape * btCollisionObject->m_rootCollisionShape+void* btCollisionObject_m_rootCollisionShape_get(void *c); //attribute: ::btCollisionShape * btCollisionObject->m_rootCollisionShape+void btCollisionObject_m_userObjectPointer_set(void *c,void* a); //attribute: void * btCollisionObject->m_userObjectPointer+void* btCollisionObject_m_userObjectPointer_get(void *c); //attribute: void * btCollisionObject->m_userObjectPointer+void btCollisionObject_m_worldTransform_set(void *c,float* a); //attribute: ::btTransform btCollisionObject->m_worldTransform+void btCollisionObject_m_worldTransform_get(void *c,float* a);+void* btCollisionObjectDoubleData_new(); //constructor: btCollisionObjectDoubleData  ( ::btCollisionObjectDoubleData::* )(  ) +void btCollisionObjectDoubleData_free(void *c); +void btCollisionObjectDoubleData_m_activationState1_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_activationState1+int btCollisionObjectDoubleData_m_activationState1_get(void *c); //attribute: int btCollisionObjectDoubleData->m_activationState1+void btCollisionObjectDoubleData_m_anisotropicFriction_set(void *c,void* a); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_anisotropicFriction+void* btCollisionObjectDoubleData_m_anisotropicFriction_get(void *c); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_anisotropicFriction+void btCollisionObjectDoubleData_m_broadphaseHandle_set(void *c,void* a); //attribute: void * btCollisionObjectDoubleData->m_broadphaseHandle+void* btCollisionObjectDoubleData_m_broadphaseHandle_get(void *c); //attribute: void * btCollisionObjectDoubleData->m_broadphaseHandle+void btCollisionObjectDoubleData_m_ccdMotionThreshold_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_ccdMotionThreshold+double btCollisionObjectDoubleData_m_ccdMotionThreshold_get(void *c); //attribute: double btCollisionObjectDoubleData->m_ccdMotionThreshold+void btCollisionObjectDoubleData_m_ccdSweptSphereRadius_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_ccdSweptSphereRadius+double btCollisionObjectDoubleData_m_ccdSweptSphereRadius_get(void *c); //attribute: double btCollisionObjectDoubleData->m_ccdSweptSphereRadius+void btCollisionObjectDoubleData_m_checkCollideWith_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_checkCollideWith+int btCollisionObjectDoubleData_m_checkCollideWith_get(void *c); //attribute: int btCollisionObjectDoubleData->m_checkCollideWith+void btCollisionObjectDoubleData_m_collisionFlags_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_collisionFlags+int btCollisionObjectDoubleData_m_collisionFlags_get(void *c); //attribute: int btCollisionObjectDoubleData->m_collisionFlags+void btCollisionObjectDoubleData_m_collisionShape_set(void *c,void* a); //attribute: void * btCollisionObjectDoubleData->m_collisionShape+void* btCollisionObjectDoubleData_m_collisionShape_get(void *c); //attribute: void * btCollisionObjectDoubleData->m_collisionShape+void btCollisionObjectDoubleData_m_companionId_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_companionId+int btCollisionObjectDoubleData_m_companionId_get(void *c); //attribute: int btCollisionObjectDoubleData->m_companionId+void btCollisionObjectDoubleData_m_contactProcessingThreshold_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_contactProcessingThreshold+double btCollisionObjectDoubleData_m_contactProcessingThreshold_get(void *c); //attribute: double btCollisionObjectDoubleData->m_contactProcessingThreshold+void btCollisionObjectDoubleData_m_deactivationTime_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_deactivationTime+double btCollisionObjectDoubleData_m_deactivationTime_get(void *c); //attribute: double btCollisionObjectDoubleData->m_deactivationTime+void btCollisionObjectDoubleData_m_friction_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_friction+double btCollisionObjectDoubleData_m_friction_get(void *c); //attribute: double btCollisionObjectDoubleData->m_friction+void btCollisionObjectDoubleData_m_hasAnisotropicFriction_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_hasAnisotropicFriction+int btCollisionObjectDoubleData_m_hasAnisotropicFriction_get(void *c); //attribute: int btCollisionObjectDoubleData->m_hasAnisotropicFriction+void btCollisionObjectDoubleData_m_hitFraction_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_hitFraction+double btCollisionObjectDoubleData_m_hitFraction_get(void *c); //attribute: double btCollisionObjectDoubleData->m_hitFraction+void btCollisionObjectDoubleData_m_internalType_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_internalType+int btCollisionObjectDoubleData_m_internalType_get(void *c); //attribute: int btCollisionObjectDoubleData->m_internalType+void btCollisionObjectDoubleData_m_interpolationAngularVelocity_set(void *c,void* a); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationAngularVelocity+void* btCollisionObjectDoubleData_m_interpolationAngularVelocity_get(void *c); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationAngularVelocity+void btCollisionObjectDoubleData_m_interpolationLinearVelocity_set(void *c,void* a); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationLinearVelocity+void* btCollisionObjectDoubleData_m_interpolationLinearVelocity_get(void *c); //attribute: ::btVector3DoubleData btCollisionObjectDoubleData->m_interpolationLinearVelocity+void btCollisionObjectDoubleData_m_interpolationWorldTransform_set(void *c,void* a); //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_interpolationWorldTransform+void* btCollisionObjectDoubleData_m_interpolationWorldTransform_get(void *c); //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_interpolationWorldTransform+void btCollisionObjectDoubleData_m_islandTag1_set(void *c,int a); //attribute: int btCollisionObjectDoubleData->m_islandTag1+int btCollisionObjectDoubleData_m_islandTag1_get(void *c); //attribute: int btCollisionObjectDoubleData->m_islandTag1+void btCollisionObjectDoubleData_m_name_set(void *c,char * a); //attribute: char * btCollisionObjectDoubleData->m_name+char * btCollisionObjectDoubleData_m_name_get(void *c); //attribute: char * btCollisionObjectDoubleData->m_name+// attribute not supported: //attribute: char[4] btCollisionObjectDoubleData->m_padding+void btCollisionObjectDoubleData_m_restitution_set(void *c,double a); //attribute: double btCollisionObjectDoubleData->m_restitution+double btCollisionObjectDoubleData_m_restitution_get(void *c); //attribute: double btCollisionObjectDoubleData->m_restitution+void btCollisionObjectDoubleData_m_rootCollisionShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCollisionObjectDoubleData->m_rootCollisionShape+void* btCollisionObjectDoubleData_m_rootCollisionShape_get(void *c); //attribute: ::btCollisionShapeData * btCollisionObjectDoubleData->m_rootCollisionShape+void btCollisionObjectDoubleData_m_worldTransform_set(void *c,void* a); //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_worldTransform+void* btCollisionObjectDoubleData_m_worldTransform_get(void *c); //attribute: ::btTransformDoubleData btCollisionObjectDoubleData->m_worldTransform+void* btCollisionObjectFloatData_new(); //constructor: btCollisionObjectFloatData  ( ::btCollisionObjectFloatData::* )(  ) +void btCollisionObjectFloatData_free(void *c); +void btCollisionObjectFloatData_m_activationState1_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_activationState1+int btCollisionObjectFloatData_m_activationState1_get(void *c); //attribute: int btCollisionObjectFloatData->m_activationState1+void btCollisionObjectFloatData_m_anisotropicFriction_set(void *c,void* a); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_anisotropicFriction+void* btCollisionObjectFloatData_m_anisotropicFriction_get(void *c); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_anisotropicFriction+void btCollisionObjectFloatData_m_broadphaseHandle_set(void *c,void* a); //attribute: void * btCollisionObjectFloatData->m_broadphaseHandle+void* btCollisionObjectFloatData_m_broadphaseHandle_get(void *c); //attribute: void * btCollisionObjectFloatData->m_broadphaseHandle+void btCollisionObjectFloatData_m_ccdMotionThreshold_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_ccdMotionThreshold+float btCollisionObjectFloatData_m_ccdMotionThreshold_get(void *c); //attribute: float btCollisionObjectFloatData->m_ccdMotionThreshold+void btCollisionObjectFloatData_m_ccdSweptSphereRadius_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_ccdSweptSphereRadius+float btCollisionObjectFloatData_m_ccdSweptSphereRadius_get(void *c); //attribute: float btCollisionObjectFloatData->m_ccdSweptSphereRadius+void btCollisionObjectFloatData_m_checkCollideWith_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_checkCollideWith+int btCollisionObjectFloatData_m_checkCollideWith_get(void *c); //attribute: int btCollisionObjectFloatData->m_checkCollideWith+void btCollisionObjectFloatData_m_collisionFlags_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_collisionFlags+int btCollisionObjectFloatData_m_collisionFlags_get(void *c); //attribute: int btCollisionObjectFloatData->m_collisionFlags+void btCollisionObjectFloatData_m_collisionShape_set(void *c,void* a); //attribute: void * btCollisionObjectFloatData->m_collisionShape+void* btCollisionObjectFloatData_m_collisionShape_get(void *c); //attribute: void * btCollisionObjectFloatData->m_collisionShape+void btCollisionObjectFloatData_m_companionId_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_companionId+int btCollisionObjectFloatData_m_companionId_get(void *c); //attribute: int btCollisionObjectFloatData->m_companionId+void btCollisionObjectFloatData_m_contactProcessingThreshold_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_contactProcessingThreshold+float btCollisionObjectFloatData_m_contactProcessingThreshold_get(void *c); //attribute: float btCollisionObjectFloatData->m_contactProcessingThreshold+void btCollisionObjectFloatData_m_deactivationTime_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_deactivationTime+float btCollisionObjectFloatData_m_deactivationTime_get(void *c); //attribute: float btCollisionObjectFloatData->m_deactivationTime+void btCollisionObjectFloatData_m_friction_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_friction+float btCollisionObjectFloatData_m_friction_get(void *c); //attribute: float btCollisionObjectFloatData->m_friction+void btCollisionObjectFloatData_m_hasAnisotropicFriction_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_hasAnisotropicFriction+int btCollisionObjectFloatData_m_hasAnisotropicFriction_get(void *c); //attribute: int btCollisionObjectFloatData->m_hasAnisotropicFriction+void btCollisionObjectFloatData_m_hitFraction_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_hitFraction+float btCollisionObjectFloatData_m_hitFraction_get(void *c); //attribute: float btCollisionObjectFloatData->m_hitFraction+void btCollisionObjectFloatData_m_internalType_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_internalType+int btCollisionObjectFloatData_m_internalType_get(void *c); //attribute: int btCollisionObjectFloatData->m_internalType+void btCollisionObjectFloatData_m_interpolationAngularVelocity_set(void *c,void* a); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationAngularVelocity+void* btCollisionObjectFloatData_m_interpolationAngularVelocity_get(void *c); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationAngularVelocity+void btCollisionObjectFloatData_m_interpolationLinearVelocity_set(void *c,void* a); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationLinearVelocity+void* btCollisionObjectFloatData_m_interpolationLinearVelocity_get(void *c); //attribute: ::btVector3FloatData btCollisionObjectFloatData->m_interpolationLinearVelocity+void btCollisionObjectFloatData_m_interpolationWorldTransform_set(void *c,void* a); //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_interpolationWorldTransform+void* btCollisionObjectFloatData_m_interpolationWorldTransform_get(void *c); //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_interpolationWorldTransform+void btCollisionObjectFloatData_m_islandTag1_set(void *c,int a); //attribute: int btCollisionObjectFloatData->m_islandTag1+int btCollisionObjectFloatData_m_islandTag1_get(void *c); //attribute: int btCollisionObjectFloatData->m_islandTag1+void btCollisionObjectFloatData_m_name_set(void *c,char * a); //attribute: char * btCollisionObjectFloatData->m_name+char * btCollisionObjectFloatData_m_name_get(void *c); //attribute: char * btCollisionObjectFloatData->m_name+void btCollisionObjectFloatData_m_restitution_set(void *c,float a); //attribute: float btCollisionObjectFloatData->m_restitution+float btCollisionObjectFloatData_m_restitution_get(void *c); //attribute: float btCollisionObjectFloatData->m_restitution+void btCollisionObjectFloatData_m_rootCollisionShape_set(void *c,void* a); //attribute: ::btCollisionShapeData * btCollisionObjectFloatData->m_rootCollisionShape+void* btCollisionObjectFloatData_m_rootCollisionShape_get(void *c); //attribute: ::btCollisionShapeData * btCollisionObjectFloatData->m_rootCollisionShape+void btCollisionObjectFloatData_m_worldTransform_set(void *c,void* a); //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_worldTransform+void* btCollisionObjectFloatData_m_worldTransform_get(void *c); //attribute: ::btTransformFloatData btCollisionObjectFloatData->m_worldTransform+void* btCollisionWorld_new(void* p0,void* p1,void* p2); //constructor: btCollisionWorld  ( ::btCollisionWorld::* )( ::btDispatcher *,::btBroadphaseInterface *,::btCollisionConfiguration * ) +void btCollisionWorld_free(void *c); +void btCollisionWorld_setBroadphase(void *c,void* p0); //method: setBroadphase void ( ::btCollisionWorld::* )( ::btBroadphaseInterface * ) +void btCollisionWorld_serialize(void *c,void* p0); //method: serialize void ( ::btCollisionWorld::* )( ::btSerializer * ) +void* btCollisionWorld_getDispatcher(void *c); //method: getDispatcher ::btDispatcher * ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getDispatcher0(void *c); //method: getDispatcher ::btDispatcher * ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getDispatcher1(void *c); //method: getDispatcher ::btDispatcher const * ( ::btCollisionWorld::* )(  ) const+void* btCollisionWorld_getDispatchInfo(void *c); //method: getDispatchInfo ::btDispatcherInfo & ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getDispatchInfo0(void *c); //method: getDispatchInfo ::btDispatcherInfo & ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getDispatchInfo1(void *c); //method: getDispatchInfo ::btDispatcherInfo const & ( ::btCollisionWorld::* )(  ) const+void* btCollisionWorld_getDebugDrawer(void *c); //method: getDebugDrawer ::btIDebugDraw * ( ::btCollisionWorld::* )(  ) +void btCollisionWorld_performDiscreteCollisionDetection(void *c); //method: performDiscreteCollisionDetection void ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getCollisionObjectArray(void *c); //method: getCollisionObjectArray ::btCollisionObjectArray & ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getCollisionObjectArray0(void *c); //method: getCollisionObjectArray ::btCollisionObjectArray & ( ::btCollisionWorld::* )(  ) +void* btCollisionWorld_getCollisionObjectArray1(void *c); //method: getCollisionObjectArray ::btCollisionObjectArray const & ( ::btCollisionWorld::* )(  ) const+void btCollisionWorld_debugDrawObject(void *c,float* p0,void* p1,float* p2); //method: debugDrawObject void ( ::btCollisionWorld::* )( ::btTransform const &,::btCollisionShape const *,::btVector3 const & ) +void btCollisionWorld_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btCollisionWorld::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const+void btCollisionWorld_addCollisionObject(void *c,void* p0,short int p1,short int p2); //method: addCollisionObject void ( ::btCollisionWorld::* )( ::btCollisionObject *,short int,short int ) +void btCollisionWorld_setForceUpdateAllAabbs(void *c,int p0); //method: setForceUpdateAllAabbs void ( ::btCollisionWorld::* )( bool ) +void btCollisionWorld_contactTest(void *c,void* p0,void* p1); //method: contactTest void ( ::btCollisionWorld::* )( ::btCollisionObject *,::btCollisionWorld::ContactResultCallback & ) +int btCollisionWorld_getForceUpdateAllAabbs(void *c); //method: getForceUpdateAllAabbs bool ( ::btCollisionWorld::* )(  ) const+void btCollisionWorld_updateAabbs(void *c); //method: updateAabbs void ( ::btCollisionWorld::* )(  ) +void btCollisionWorld_setDebugDrawer(void *c,void* p0); //method: setDebugDrawer void ( ::btCollisionWorld::* )( ::btIDebugDraw * ) +void btCollisionWorld_debugDrawWorld(void *c); //method: debugDrawWorld void ( ::btCollisionWorld::* )(  ) +void btCollisionWorld_convexSweepTest(void *c,void* p0,float* p1,float* p2,void* p3,float p4); //method: convexSweepTest void ( ::btCollisionWorld::* )( ::btConvexShape const *,::btTransform const &,::btTransform const &,::btCollisionWorld::ConvexResultCallback &,::btScalar ) const+int btCollisionWorld_getNumCollisionObjects(void *c); //method: getNumCollisionObjects int ( ::btCollisionWorld::* )(  ) const+void btCollisionWorld_contactPairTest(void *c,void* p0,void* p1,void* p2); //method: contactPairTest void ( ::btCollisionWorld::* )( ::btCollisionObject *,::btCollisionObject *,::btCollisionWorld::ContactResultCallback & ) +void* btCollisionWorld_getBroadphase(void *c); //method: getBroadphase ::btBroadphaseInterface const * ( ::btCollisionWorld::* )(  ) const+void* btCollisionWorld_getBroadphase0(void *c); //method: getBroadphase ::btBroadphaseInterface const * ( ::btCollisionWorld::* )(  ) const+void* btCollisionWorld_getBroadphase1(void *c); //method: getBroadphase ::btBroadphaseInterface * ( ::btCollisionWorld::* )(  ) +void btCollisionWorld_rayTestSingle(float* p0,float* p1,void* p2,void* p3,float* p4,void* p5); //method: rayTestSingle void (*)( ::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::RayResultCallback & )+void btCollisionWorld_objectQuerySingle(void* p0,float* p1,float* p2,void* p3,void* p4,float* p5,void* p6,float p7); //method: objectQuerySingle void (*)( ::btConvexShape const *,::btTransform const &,::btTransform const &,::btCollisionObject *,::btCollisionShape const *,::btTransform const &,::btCollisionWorld::ConvexResultCallback &,::btScalar )+void btCollisionWorld_updateSingleAabb(void *c,void* p0); //method: updateSingleAabb void ( ::btCollisionWorld::* )( ::btCollisionObject * ) +void btCollisionWorld_serializeCollisionObjects(void *c,void* p0); //method: serializeCollisionObjects void ( ::btCollisionWorld::* )( ::btSerializer * ) +void* btCollisionWorld_getPairCache(void *c); //method: getPairCache ::btOverlappingPairCache * ( ::btCollisionWorld::* )(  ) +void btCollisionWorld_removeCollisionObject(void *c,void* p0); //method: removeCollisionObject void ( ::btCollisionWorld::* )( ::btCollisionObject * ) +void btCollisionWorld_m_broadphasePairCache_set(void *c,void* a); //attribute: ::btBroadphaseInterface * btCollisionWorld->m_broadphasePairCache+void* btCollisionWorld_m_broadphasePairCache_get(void *c); //attribute: ::btBroadphaseInterface * btCollisionWorld->m_broadphasePairCache+void btCollisionWorld_m_collisionObjects_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCollisionObject*> btCollisionWorld->m_collisionObjects+void* btCollisionWorld_m_collisionObjects_get(void *c); //attribute: ::btAlignedObjectArray<btCollisionObject*> btCollisionWorld->m_collisionObjects+void btCollisionWorld_m_debugDrawer_set(void *c,void* a); //attribute: ::btIDebugDraw * btCollisionWorld->m_debugDrawer+void* btCollisionWorld_m_debugDrawer_get(void *c); //attribute: ::btIDebugDraw * btCollisionWorld->m_debugDrawer+void btCollisionWorld_m_dispatchInfo_set(void *c,void* a); //attribute: ::btDispatcherInfo btCollisionWorld->m_dispatchInfo+void* btCollisionWorld_m_dispatchInfo_get(void *c); //attribute: ::btDispatcherInfo btCollisionWorld->m_dispatchInfo+void btCollisionWorld_m_dispatcher1_set(void *c,void* a); //attribute: ::btDispatcher * btCollisionWorld->m_dispatcher1+void* btCollisionWorld_m_dispatcher1_get(void *c); //attribute: ::btDispatcher * btCollisionWorld->m_dispatcher1+void btCollisionWorld_m_forceUpdateAllAabbs_set(void *c,int a); //attribute: bool btCollisionWorld->m_forceUpdateAllAabbs+int btCollisionWorld_m_forceUpdateAllAabbs_get(void *c); //attribute: bool btCollisionWorld->m_forceUpdateAllAabbs+void btCollisionWorld_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btCollisionWorld->m_stackAlloc+void* btCollisionWorld_m_stackAlloc_get(void *c); //attribute: ::btStackAlloc * btCollisionWorld->m_stackAlloc+//not supported constructor: btConvexConvexAlgorithm  ( ::btConvexConvexAlgorithm::* )( ::btPersistentManifold *,::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject *,::btVoronoiSimplexSolver *,::btConvexPenetrationDepthSolver *,int,int ) +// error: ::btPersistentManifold * - ok, ::btCollisionAlgorithmConstructionInfo const & - ok, ::btCollisionObject * - ok, ::btCollisionObject * - ok, ::btVoronoiSimplexSolver * - ok,  - unsupported, int - ok, int - ok++void btConvexConvexAlgorithm_free(void *c); +void btConvexConvexAlgorithm_getAllContactManifolds(void *c,void* p0); //method: getAllContactManifolds void ( ::btConvexConvexAlgorithm::* )( ::btManifoldArray & ) +float btConvexConvexAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btConvexConvexAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btConvexConvexAlgorithm_setLowLevelOfDetail(void *c,int p0); //method: setLowLevelOfDetail void ( ::btConvexConvexAlgorithm::* )( bool ) +void btConvexConvexAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btConvexConvexAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void* btConvexConvexAlgorithm_getManifold(void *c); //method: getManifold ::btPersistentManifold const * ( ::btConvexConvexAlgorithm::* )(  ) +void btConvexConvexAlgorithm_m_simplexSolver_set(void *c,void* a); //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm->m_simplexSolver+void* btConvexConvexAlgorithm_m_simplexSolver_get(void *c); //attribute: ::btVoronoiSimplexSolver * btConvexConvexAlgorithm->m_simplexSolver+// attribute not supported: //attribute: ::btConvexPenetrationDepthSolver * btConvexConvexAlgorithm->m_pdSolver+void btConvexConvexAlgorithm_m_ownManifold_set(void *c,int a); //attribute: bool btConvexConvexAlgorithm->m_ownManifold+int btConvexConvexAlgorithm_m_ownManifold_get(void *c); //attribute: bool btConvexConvexAlgorithm->m_ownManifold+void btConvexConvexAlgorithm_m_manifoldPtr_set(void *c,void* a); //attribute: ::btPersistentManifold * btConvexConvexAlgorithm->m_manifoldPtr+void* btConvexConvexAlgorithm_m_manifoldPtr_get(void *c); //attribute: ::btPersistentManifold * btConvexConvexAlgorithm->m_manifoldPtr+void btConvexConvexAlgorithm_m_lowLevelOfDetail_set(void *c,int a); //attribute: bool btConvexConvexAlgorithm->m_lowLevelOfDetail+int btConvexConvexAlgorithm_m_lowLevelOfDetail_get(void *c); //attribute: bool btConvexConvexAlgorithm->m_lowLevelOfDetail+void btConvexConvexAlgorithm_m_numPerturbationIterations_set(void *c,int a); //attribute: int btConvexConvexAlgorithm->m_numPerturbationIterations+int btConvexConvexAlgorithm_m_numPerturbationIterations_get(void *c); //attribute: int btConvexConvexAlgorithm->m_numPerturbationIterations+void btConvexConvexAlgorithm_m_minimumPointsPerturbationThreshold_set(void *c,int a); //attribute: int btConvexConvexAlgorithm->m_minimumPointsPerturbationThreshold+int btConvexConvexAlgorithm_m_minimumPointsPerturbationThreshold_get(void *c); //attribute: int btConvexConvexAlgorithm->m_minimumPointsPerturbationThreshold+void* btDefaultCollisionConfiguration_new(void* p0); //constructor: btDefaultCollisionConfiguration  ( ::btDefaultCollisionConfiguration::* )( ::btDefaultCollisionConstructionInfo const & ) +void btDefaultCollisionConfiguration_free(void *c); +void* btDefaultCollisionConfiguration_getStackAllocator(void *c); //method: getStackAllocator ::btStackAlloc * ( ::btDefaultCollisionConfiguration::* )(  ) +//not supported method: getPersistentManifoldPool ::btPoolAllocator * ( ::btDefaultCollisionConfiguration::* )(  ) +// error:  - unsupported++void btDefaultCollisionConfiguration_setPlaneConvexMultipointIterations(void *c,int p0,int p1); //method: setPlaneConvexMultipointIterations void ( ::btDefaultCollisionConfiguration::* )( int,int ) +void* btDefaultCollisionConfiguration_getSimplexSolver(void *c); //method: getSimplexSolver ::btVoronoiSimplexSolver * ( ::btDefaultCollisionConfiguration::* )(  ) +void btDefaultCollisionConfiguration_setConvexConvexMultipointIterations(void *c,int p0,int p1); //method: setConvexConvexMultipointIterations void ( ::btDefaultCollisionConfiguration::* )( int,int ) +//not supported method: getCollisionAlgorithmPool ::btPoolAllocator * ( ::btDefaultCollisionConfiguration::* )(  ) +// error:  - unsupported++void* btDefaultCollisionConfiguration_getCollisionAlgorithmCreateFunc(void *c,int p0,int p1); //method: getCollisionAlgorithmCreateFunc ::btCollisionAlgorithmCreateFunc * ( ::btDefaultCollisionConfiguration::* )( int,int ) +void btDefaultCollisionConfiguration_m_persistentManifoldPoolSize_set(void *c,int a); //attribute: int btDefaultCollisionConfiguration->m_persistentManifoldPoolSize+int btDefaultCollisionConfiguration_m_persistentManifoldPoolSize_get(void *c); //attribute: int btDefaultCollisionConfiguration->m_persistentManifoldPoolSize+void btDefaultCollisionConfiguration_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btDefaultCollisionConfiguration->m_stackAlloc+void* btDefaultCollisionConfiguration_m_stackAlloc_get(void *c); //attribute: ::btStackAlloc * btDefaultCollisionConfiguration->m_stackAlloc+void btDefaultCollisionConfiguration_m_ownsStackAllocator_set(void *c,int a); //attribute: bool btDefaultCollisionConfiguration->m_ownsStackAllocator+int btDefaultCollisionConfiguration_m_ownsStackAllocator_get(void *c); //attribute: bool btDefaultCollisionConfiguration->m_ownsStackAllocator+// attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConfiguration->m_persistentManifoldPool+void btDefaultCollisionConfiguration_m_ownsPersistentManifoldPool_set(void *c,int a); //attribute: bool btDefaultCollisionConfiguration->m_ownsPersistentManifoldPool+int btDefaultCollisionConfiguration_m_ownsPersistentManifoldPool_get(void *c); //attribute: bool btDefaultCollisionConfiguration->m_ownsPersistentManifoldPool+// attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConfiguration->m_collisionAlgorithmPool+void btDefaultCollisionConfiguration_m_ownsCollisionAlgorithmPool_set(void *c,int a); //attribute: bool btDefaultCollisionConfiguration->m_ownsCollisionAlgorithmPool+int btDefaultCollisionConfiguration_m_ownsCollisionAlgorithmPool_get(void *c); //attribute: bool btDefaultCollisionConfiguration->m_ownsCollisionAlgorithmPool+void btDefaultCollisionConfiguration_m_simplexSolver_set(void *c,void* a); //attribute: ::btVoronoiSimplexSolver * btDefaultCollisionConfiguration->m_simplexSolver+void* btDefaultCollisionConfiguration_m_simplexSolver_get(void *c); //attribute: ::btVoronoiSimplexSolver * btDefaultCollisionConfiguration->m_simplexSolver+// attribute not supported: //attribute: ::btConvexPenetrationDepthSolver * btDefaultCollisionConfiguration->m_pdSolver+void btDefaultCollisionConfiguration_m_convexConvexCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexConvexCreateFunc+void* btDefaultCollisionConfiguration_m_convexConvexCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexConvexCreateFunc+void btDefaultCollisionConfiguration_m_convexConcaveCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexConcaveCreateFunc+void* btDefaultCollisionConfiguration_m_convexConcaveCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexConcaveCreateFunc+void btDefaultCollisionConfiguration_m_swappedConvexConcaveCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_swappedConvexConcaveCreateFunc+void* btDefaultCollisionConfiguration_m_swappedConvexConcaveCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_swappedConvexConcaveCreateFunc+void btDefaultCollisionConfiguration_m_compoundCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_compoundCreateFunc+void* btDefaultCollisionConfiguration_m_compoundCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_compoundCreateFunc+void btDefaultCollisionConfiguration_m_swappedCompoundCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_swappedCompoundCreateFunc+void* btDefaultCollisionConfiguration_m_swappedCompoundCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_swappedCompoundCreateFunc+void btDefaultCollisionConfiguration_m_emptyCreateFunc_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_emptyCreateFunc+void* btDefaultCollisionConfiguration_m_emptyCreateFunc_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_emptyCreateFunc+void btDefaultCollisionConfiguration_m_sphereSphereCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_sphereSphereCF+void* btDefaultCollisionConfiguration_m_sphereSphereCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_sphereSphereCF+void btDefaultCollisionConfiguration_m_boxBoxCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_boxBoxCF+void* btDefaultCollisionConfiguration_m_boxBoxCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_boxBoxCF+void btDefaultCollisionConfiguration_m_sphereTriangleCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_sphereTriangleCF+void* btDefaultCollisionConfiguration_m_sphereTriangleCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_sphereTriangleCF+void btDefaultCollisionConfiguration_m_triangleSphereCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_triangleSphereCF+void* btDefaultCollisionConfiguration_m_triangleSphereCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_triangleSphereCF+void btDefaultCollisionConfiguration_m_planeConvexCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_planeConvexCF+void* btDefaultCollisionConfiguration_m_planeConvexCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_planeConvexCF+void btDefaultCollisionConfiguration_m_convexPlaneCF_set(void *c,void* a); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexPlaneCF+void* btDefaultCollisionConfiguration_m_convexPlaneCF_get(void *c); //attribute: ::btCollisionAlgorithmCreateFunc * btDefaultCollisionConfiguration->m_convexPlaneCF+void* btDefaultCollisionConstructionInfo_new(); //constructor: btDefaultCollisionConstructionInfo  ( ::btDefaultCollisionConstructionInfo::* )(  ) +void btDefaultCollisionConstructionInfo_free(void *c); +// attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConstructionInfo->m_collisionAlgorithmPool+void btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_customCollisionAlgorithmMaxElementSize+int btDefaultCollisionConstructionInfo_m_customCollisionAlgorithmMaxElementSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_customCollisionAlgorithmMaxElementSize+void btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxCollisionAlgorithmPoolSize+int btDefaultCollisionConstructionInfo_m_defaultMaxCollisionAlgorithmPoolSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxCollisionAlgorithmPoolSize+void btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxPersistentManifoldPoolSize+int btDefaultCollisionConstructionInfo_m_defaultMaxPersistentManifoldPoolSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultMaxPersistentManifoldPoolSize+void btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_defaultStackAllocatorSize+int btDefaultCollisionConstructionInfo_m_defaultStackAllocatorSize_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_defaultStackAllocatorSize+// attribute not supported: //attribute: ::btPoolAllocator * btDefaultCollisionConstructionInfo->m_persistentManifoldPool+void btDefaultCollisionConstructionInfo_m_stackAlloc_set(void *c,void* a); //attribute: ::btStackAlloc * btDefaultCollisionConstructionInfo->m_stackAlloc+void* btDefaultCollisionConstructionInfo_m_stackAlloc_get(void *c); //attribute: ::btStackAlloc * btDefaultCollisionConstructionInfo->m_stackAlloc+void btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_set(void *c,int a); //attribute: int btDefaultCollisionConstructionInfo->m_useEpaPenetrationAlgorithm+int btDefaultCollisionConstructionInfo_m_useEpaPenetrationAlgorithm_get(void *c); //attribute: int btDefaultCollisionConstructionInfo->m_useEpaPenetrationAlgorithm+void* btGhostObject_new(); //constructor: btGhostObject  ( ::btGhostObject::* )(  ) +void btGhostObject_free(void *c); +void btGhostObject_convexSweepTest(void *c,void* p0,float* p1,float* p2,void* p3,float p4); //method: convexSweepTest void ( ::btGhostObject::* )( ::btConvexShape const *,::btTransform const &,::btTransform const &,::btCollisionWorld::ConvexResultCallback &,::btScalar ) const+void btGhostObject_removeOverlappingObjectInternal(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingObjectInternal void ( ::btGhostObject::* )( ::btBroadphaseProxy *,::btDispatcher *,::btBroadphaseProxy * ) +int btGhostObject_getNumOverlappingObjects(void *c); //method: getNumOverlappingObjects int ( ::btGhostObject::* )(  ) const+void btGhostObject_addOverlappingObjectInternal(void *c,void* p0,void* p1); //method: addOverlappingObjectInternal void ( ::btGhostObject::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btGhostObject_rayTest(void *c,float* p0,float* p1,void* p2); //method: rayTest void ( ::btGhostObject::* )( ::btVector3 const &,::btVector3 const &,::btCollisionWorld::RayResultCallback & ) const+void* btGhostObject_getOverlappingPairs(void *c); //method: getOverlappingPairs ::btAlignedObjectArray<btCollisionObject*> & ( ::btGhostObject::* )(  ) +void* btGhostObject_getOverlappingPairs0(void *c); //method: getOverlappingPairs ::btAlignedObjectArray<btCollisionObject*> & ( ::btGhostObject::* )(  ) +//not supported method: getOverlappingPairs ::btAlignedObjectArray<btCollisionObject*> const ( ::btGhostObject::* )(  ) const+// error:  - unsupported++void* btGhostObject_upcast(void* p0); //method: upcast ::btGhostObject const * (*)( ::btCollisionObject const * )+void* btGhostObject_upcast0(void* p0); //method: upcast ::btGhostObject const * (*)( ::btCollisionObject const * )+void* btGhostObject_upcast1(void* p0); //method: upcast ::btGhostObject * (*)( ::btCollisionObject * )+void* btGhostObject_getOverlappingObject(void *c,int p0); //method: getOverlappingObject ::btCollisionObject * ( ::btGhostObject::* )( int ) +void* btGhostObject_getOverlappingObject0(void *c,int p0); //method: getOverlappingObject ::btCollisionObject * ( ::btGhostObject::* )( int ) +void* btGhostObject_getOverlappingObject1(void *c,int p0); //method: getOverlappingObject ::btCollisionObject const * ( ::btGhostObject::* )( int ) const+void btGhostObject_m_overlappingObjects_set(void *c,void* a); //attribute: ::btAlignedObjectArray<btCollisionObject*> btGhostObject->m_overlappingObjects+void* btGhostObject_m_overlappingObjects_get(void *c); //attribute: ::btAlignedObjectArray<btCollisionObject*> btGhostObject->m_overlappingObjects+void* btGhostPairCallback_new(); //constructor: btGhostPairCallback  ( ::btGhostPairCallback::* )(  ) +void btGhostPairCallback_free(void *c); +void* btGhostPairCallback_addOverlappingPair(void *c,void* p0,void* p1); //method: addOverlappingPair ::btBroadphasePair * ( ::btGhostPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void* btGhostPairCallback_removeOverlappingPair(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingPair void * ( ::btGhostPairCallback::* )( ::btBroadphaseProxy *,::btBroadphaseProxy *,::btDispatcher * ) +void btGhostPairCallback_removeOverlappingPairsContainingProxy(void *c,void* p0,void* p1); //method: removeOverlappingPairsContainingProxy void ( ::btGhostPairCallback::* )( ::btBroadphaseProxy *,::btDispatcher * ) +void* btManifoldResult_new0(); //constructor: btManifoldResult  ( ::btManifoldResult::* )(  ) +void* btManifoldResult_new1(void* p0,void* p1); //constructor: btManifoldResult  ( ::btManifoldResult::* )( ::btCollisionObject *,::btCollisionObject * ) +void btManifoldResult_free(void *c); +void* btManifoldResult_getPersistentManifold(void *c); //method: getPersistentManifold ::btPersistentManifold const * ( ::btManifoldResult::* )(  ) const+void* btManifoldResult_getPersistentManifold0(void *c); //method: getPersistentManifold ::btPersistentManifold const * ( ::btManifoldResult::* )(  ) const+void* btManifoldResult_getPersistentManifold1(void *c); //method: getPersistentManifold ::btPersistentManifold * ( ::btManifoldResult::* )(  ) +void* btManifoldResult_getBody0Internal(void *c); //method: getBody0Internal ::btCollisionObject const * ( ::btManifoldResult::* )(  ) const+void btManifoldResult_addContactPoint(void *c,float* p0,float* p1,float p2); //method: addContactPoint void ( ::btManifoldResult::* )( ::btVector3 const &,::btVector3 const &,::btScalar ) +void* btManifoldResult_getBody1Internal(void *c); //method: getBody1Internal ::btCollisionObject const * ( ::btManifoldResult::* )(  ) const+void btManifoldResult_setShapeIdentifiersB(void *c,int p0,int p1); //method: setShapeIdentifiersB void ( ::btManifoldResult::* )( int,int ) +void btManifoldResult_setShapeIdentifiersA(void *c,int p0,int p1); //method: setShapeIdentifiersA void ( ::btManifoldResult::* )( int,int ) +void btManifoldResult_refreshContactPoints(void *c); //method: refreshContactPoints void ( ::btManifoldResult::* )(  ) +void btManifoldResult_setPersistentManifold(void *c,void* p0); //method: setPersistentManifold void ( ::btManifoldResult::* )( ::btPersistentManifold * ) +void btManifoldResult_m_body0_set(void *c,void* a); //attribute: ::btCollisionObject * btManifoldResult->m_body0+void* btManifoldResult_m_body0_get(void *c); //attribute: ::btCollisionObject * btManifoldResult->m_body0+void btManifoldResult_m_body1_set(void *c,void* a); //attribute: ::btCollisionObject * btManifoldResult->m_body1+void* btManifoldResult_m_body1_get(void *c); //attribute: ::btCollisionObject * btManifoldResult->m_body1+void btManifoldResult_m_index0_set(void *c,int a); //attribute: int btManifoldResult->m_index0+int btManifoldResult_m_index0_get(void *c); //attribute: int btManifoldResult->m_index0+void btManifoldResult_m_index1_set(void *c,int a); //attribute: int btManifoldResult->m_index1+int btManifoldResult_m_index1_get(void *c); //attribute: int btManifoldResult->m_index1+void btManifoldResult_m_manifoldPtr_set(void *c,void* a); //attribute: ::btPersistentManifold * btManifoldResult->m_manifoldPtr+void* btManifoldResult_m_manifoldPtr_get(void *c); //attribute: ::btPersistentManifold * btManifoldResult->m_manifoldPtr+void btManifoldResult_m_partId0_set(void *c,int a); //attribute: int btManifoldResult->m_partId0+int btManifoldResult_m_partId0_get(void *c); //attribute: int btManifoldResult->m_partId0+void btManifoldResult_m_partId1_set(void *c,int a); //attribute: int btManifoldResult->m_partId1+int btManifoldResult_m_partId1_get(void *c); //attribute: int btManifoldResult->m_partId1+void btManifoldResult_m_rootTransA_set(void *c,float* a); //attribute: ::btTransform btManifoldResult->m_rootTransA+void btManifoldResult_m_rootTransA_get(void *c,float* a);+void btManifoldResult_m_rootTransB_set(void *c,float* a); //attribute: ::btTransform btManifoldResult->m_rootTransB+void btManifoldResult_m_rootTransB_get(void *c,float* a);+void* btPairCachingGhostObject_new(); //constructor: btPairCachingGhostObject  ( ::btPairCachingGhostObject::* )(  ) +void btPairCachingGhostObject_free(void *c); +void btPairCachingGhostObject_removeOverlappingObjectInternal(void *c,void* p0,void* p1,void* p2); //method: removeOverlappingObjectInternal void ( ::btPairCachingGhostObject::* )( ::btBroadphaseProxy *,::btDispatcher *,::btBroadphaseProxy * ) +void* btPairCachingGhostObject_getOverlappingPairCache(void *c); //method: getOverlappingPairCache ::btHashedOverlappingPairCache * ( ::btPairCachingGhostObject::* )(  ) +void btPairCachingGhostObject_addOverlappingObjectInternal(void *c,void* p0,void* p1); //method: addOverlappingObjectInternal void ( ::btPairCachingGhostObject::* )( ::btBroadphaseProxy *,::btBroadphaseProxy * ) +void btPairCachingGhostObject_m_hashPairCache_set(void *c,void* a); //attribute: ::btHashedOverlappingPairCache * btPairCachingGhostObject->m_hashPairCache+void* btPairCachingGhostObject_m_hashPairCache_get(void *c); //attribute: ::btHashedOverlappingPairCache * btPairCachingGhostObject->m_hashPairCache+void* btSphereSphereCollisionAlgorithm_new0(void* p0,void* p1,void* p2,void* p3); //constructor: btSphereSphereCollisionAlgorithm  ( ::btSphereSphereCollisionAlgorithm::* )( ::btPersistentManifold *,::btCollisionAlgorithmConstructionInfo const &,::btCollisionObject *,::btCollisionObject * ) +void* btSphereSphereCollisionAlgorithm_new1(void* p0); //constructor: btSphereSphereCollisionAlgorithm  ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionAlgorithmConstructionInfo const & ) +void btSphereSphereCollisionAlgorithm_free(void *c); +void btSphereSphereCollisionAlgorithm_getAllContactManifolds(void *c,void* p0); //method: getAllContactManifolds void ( ::btSphereSphereCollisionAlgorithm::* )( ::btManifoldArray & ) +float btSphereSphereCollisionAlgorithm_calculateTimeOfImpact(void *c,void* p0,void* p1,void* p2,void* p3); //method: calculateTimeOfImpact ::btScalar ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btSphereSphereCollisionAlgorithm_processCollision(void *c,void* p0,void* p1,void* p2,void* p3); //method: processCollision void ( ::btSphereSphereCollisionAlgorithm::* )( ::btCollisionObject *,::btCollisionObject *,::btDispatcherInfo const &,::btManifoldResult * ) +void btSphereSphereCollisionAlgorithm_m_ownManifold_set(void *c,int a); //attribute: bool btSphereSphereCollisionAlgorithm->m_ownManifold+int btSphereSphereCollisionAlgorithm_m_ownManifold_get(void *c); //attribute: bool btSphereSphereCollisionAlgorithm->m_ownManifold+void btSphereSphereCollisionAlgorithm_m_manifoldPtr_set(void *c,void* a); //attribute: ::btPersistentManifold * btSphereSphereCollisionAlgorithm->m_manifoldPtr+void* btSphereSphereCollisionAlgorithm_m_manifoldPtr_get(void *c); //attribute: ::btPersistentManifold * btSphereSphereCollisionAlgorithm->m_manifoldPtr #ifdef __cplusplus }  #endif
cbits/HaskellBulletAPI.h view
@@ -1,8 +1,14 @@+// this turn every method and attribute public+//#define class struct+#define private public+#define protected public+ #define USE_PTHREADS 1  // Collision // Dynamics #include "btBulletDynamicsCommon.h"+#include "BulletCollision/CollisionDispatch/btGhostObject.h"  // Gimpact #include "BulletCollision/Gimpact/btGImpactShape.h"